diff --git a/deployment-script/.env.example b/deployment-script/.env.example index e46bdc9..8a50586 100644 --- a/deployment-script/.env.example +++ b/deployment-script/.env.example @@ -1,3 +1,3 @@ -PROVIDER_URL= -ACCOUNT_PUBLIC= -ACCOUNT_PRIVATE= \ No newline at end of file +PROVIDER_URL=XXX +ACCOUNT_PUBLIC=XXX +ACCOUNT_PRIVATE=XXX \ No newline at end of file diff --git a/deployment-script/deploymentTransferManager.ts b/deployment-script/deploymentTransferManager.ts deleted file mode 100644 index 14ca104..0000000 --- a/deployment-script/deploymentTransferManager.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Account, hash, Contract, json, Calldata, CallData, RpcProvider, shortString } from "starknet" -import fs from 'fs' -import dotenv from 'dotenv' - -dotenv.config() - -const ethAddress = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" -const strkAddress = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d" - -async function deploy() { - // connect provider - const provider = new RpcProvider({ nodeUrl: process.env.PROVIDER_URL as string }) - // connect your account. To adapt to your own account : - const privateKey0: string = process.env.ACCOUNT_PRIVATE as string - const account0Address: string = process.env.ACCOUNT_PUBLIC as string - const account0 = new Account(provider, account0Address!, privateKey0!) - console.log("šŸš€ Deploying with Account: " + account0Address) - - // console.log("\nšŸ“¦ Deploying SignatureChecker2...") - // const compiledSignatureChecker2Casm = json.parse(fs.readFileSync("../target/dev/flex_SignatureChecker2.compiled_contract_class.json").toString("ascii")) - // const compiledSignatureChecker2Sierra = json.parse(fs.readFileSync("../target/dev/flex_SignatureChecker2.contract_class.json").toString("ascii")) - // const signatureChecker2CallData: CallData = new CallData(compiledSignatureChecker2Sierra.abi) - // const signatureChecker2Constructor: Calldata = signatureChecker2CallData.compile("constructor", {}) - // const deploySignatureChecker2Response = await account0.declareAndDeploy({ - // contract: compiledSignatureChecker2Sierra, - // casm: compiledSignatureChecker2Casm, - // constructorCalldata: signatureChecker2Constructor - // }) - // console.log("āœ… SignatureChecker2 Deployed: ", deploySignatureChecker2Response.deploy.contract_address) - - console.log("\nšŸ“¦ Deploying MarketPlace...") - const compiledMarketplaceCasm = json.parse(fs.readFileSync("../target/dev/flex_MarketPlace.compiled_contract_class.json").toString("ascii")) - const compiledMarketplaceSierra = json.parse(fs.readFileSync("../target/dev/flex_MarketPlace.contract_class.json").toString("ascii")) - const marketplaceCallData: CallData = new CallData(compiledMarketplaceSierra.abi) - const marketplaceConstructor: Calldata = marketplaceCallData.compile("constructor", - { - domain_name: "Flex", - domain_ver: "1", - recipient: account0.address, - currency: "0x51437e199770c7dc068feeb415c7d4b11fb8bd85720ef4c2af21bcfdc1a8a0e", - execution: "0x506e8991aa19400ea8d0e2170d32253592452c31928ca4255b3f0138a42753c", - royalty_manager: "0x15847ab0292274d7c559e25bdf73b015d92c7d5be08bb1560aa0ff9380ec86a", - checker: "0x03b6ae6c8f0c9042398b2692c655180610cba4a58fd49bef49a8cead68bf14f5", - owner: account0.address - }) - const deployMarketplaceResponse = await account0.declareAndDeploy({ - contract: compiledMarketplaceSierra, - casm: compiledMarketplaceCasm, - constructorCalldata: marketplaceConstructor - }) - console.log("āœ… MarketPlace Deployed: ", deployMarketplaceResponse.deploy.contract_address) - - const marketplaceContract = new Contract(compiledMarketplaceSierra.abi, deployMarketplaceResponse.deploy.contract_address, provider) - marketplaceContract.connect(account0); - - console.log("\nšŸ“¦ Whitelist TransferSelectorNFT...") - const transferSelectorCall = marketplaceContract.populate("update_transfer_selector_NFT", ["0x2397c230d7a1c5a647d026344f2f5c5c2aba80d5aa19c3dd98a5bdba4f29fad"]) - const add_transferSelector_tx = await marketplaceContract.update_transfer_selector_NFT(transferSelectorCall.calldata) - await provider.waitForTransaction(add_transferSelector_tx.transaction_hash) - console.log("āœ… TransferSelectorNFT whitelisted.") - - console.log("\nšŸ“¦ Update Marketplace of TransferManagerERC721...") - const compiledTransferManagerNFTSierra = json.parse(fs.readFileSync("../target/dev/flex_TransferManagerNFT.contract_class.json").toString("ascii")) - const transferManagerNFTContract = new Contract(compiledTransferManagerNFTSierra.abi, "0x374710de50333c5ad1a1ed4dc2dcf9f1e64b05155cc12282839bbed43ddee72", provider) - transferManagerNFTContract.connect(account0); - - const updateMarketplaceCall = transferManagerNFTContract.populate("update_marketplace", [deployMarketplaceResponse.deploy.contract_address]) - const update_marketplace_tx = await transferManagerNFTContract.update_marketplace(updateMarketplaceCall.calldata) - await provider.waitForTransaction(update_marketplace_tx.transaction_hash) - console.log("āœ… Marketplace updated.") - - // console.log("\nšŸ“¦ Set ProtocolFeeRecipient...") - // const protocolFeeRecipientCall = marketplaceContract.populate("update_protocol_fee_recipient", [account0.address]) - // const set_protocolFeeRecipient_tx = await marketplaceContract.update_protocol_fee_recipient(protocolFeeRecipientCall.calldata) - // await provider.waitForTransaction(set_protocolFeeRecipient_tx.transaction_hash) - // console.log("āœ… ProtocolFeeRecipient set.") -} - -deploy() \ No newline at end of file diff --git a/deployment-script/deploymentTransferManager1155.ts b/deployment-script/deploymentTransferManager1155.ts new file mode 100644 index 0000000..42e9e47 --- /dev/null +++ b/deployment-script/deploymentTransferManager1155.ts @@ -0,0 +1,52 @@ +import { Account, hash, Contract, json, Calldata, CallData, RpcProvider, shortString } from "starknet" +import fs from 'fs' +import dotenv from 'dotenv' + +dotenv.config() + +const ethAddress = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7" +const strkAddress = "0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d" +const marketplaceAddress = "0x1ad73c66d2f526e8ffed6db27652b658c0351f58c355e33a4c784a977caec4" +const transferSelectorAddress = "0x6ff00cf55c7a0bb534aa6f4f78fbd7923168c60b3f9b80df7f9c7ffd8a007e" + +async function deploy() { + // connect provider + const providerUrl = process.env.PROVIDER_URL + console.log("providerUrl", providerUrl); + const provider = new RpcProvider({ nodeUrl: providerUrl! }) + // connect your account. To adapt to your own account : + const privateKey0 = process.env.ACCOUNT_PRIVATE + console.log("privateKey0", privateKey0); + const account0Address = process.env.ACCOUNT_PUBLIC + console.log("account0Address", account0Address); + const account0 = new Account(provider, account0Address!, privateKey0!) + console.log("šŸš€ Deploying with Account: " + account0Address) + + const compiledMarketplaceSierra = json.parse(fs.readFileSync("../target/dev/flex_MarketPlace.contract_class.json").toString("ascii")) + const marketplaceContract = new Contract(compiledMarketplaceSierra.abi, marketplaceAddress, provider) + marketplaceContract.connect(account0); + + console.log("\nšŸ“¦ Deploying TransferManagerERC1155...") + const compiledERC1155TransferManagerCasm = json.parse(fs.readFileSync("../target/dev/flex_ERC1155TransferManager.compiled_contract_class.json").toString("ascii")) + const compiledERC1155TransferManagerSierra = json.parse(fs.readFileSync("../target/dev/flex_ERC1155TransferManager.contract_class.json").toString("ascii")) + const ERC1155TransferManagerCallData: CallData = new CallData(compiledERC1155TransferManagerSierra.abi) + const ERC1155TransferManagerConstructor: Calldata = ERC1155TransferManagerCallData.compile("constructor", { marketplace: marketplaceAddress, owner: account0.address }) + const deployERC1155TransferManagerResponse = await account0.declareAndDeploy({ + contract: compiledERC1155TransferManagerSierra, + casm: compiledERC1155TransferManagerCasm, + constructorCalldata: ERC1155TransferManagerConstructor + }) + console.log("āœ… ERC1155TransferManager Deployed: ", deployERC1155TransferManagerResponse.deploy.contract_address) + + const compiledTransferSelectorNFTSierra = json.parse(fs.readFileSync("../target/dev/flex_TransferSelectorNFT.contract_class.json").toString("ascii")) + const transferSelectorNFTContract = new Contract(compiledTransferSelectorNFTSierra.abi, transferSelectorAddress, provider) + transferSelectorNFTContract.connect(account0); + + console.log("\nšŸ“¦ update_TRANSFER_MANAGER_ERC1155 in TransferSelectorNFT...") + const transferSelectorCall = transferSelectorNFTContract.populate("update_TRANSFER_MANAGER_ERC1155", [deployERC1155TransferManagerResponse.deploy.contract_address]) + const add_transferSelector_tx = await transferSelectorNFTContract.update_TRANSFER_MANAGER_ERC1155(transferSelectorCall.calldata) + await provider.waitForTransaction(add_transferSelector_tx.transaction_hash) + console.log("āœ… Updated TRANSFER_MANAGER_ERC1155 in TransferSelectorNFT") +} + +deploy() \ No newline at end of file diff --git a/deployment-script/package.json b/deployment-script/package.json index e504f66..afdec18 100644 --- a/deployment-script/package.json +++ b/deployment-script/package.json @@ -12,6 +12,7 @@ "scripts": { "deploy": "scarb build && ts-node ./deployment.ts", "marketplace-deploy": "scarb build && ts-node ./deploymentMarketplace.ts", + "transfermanager1155-deploy": "scarb build && ts-node ./deploymentTransferManager1155.ts", "signaturechecker-deploy": "scarb build && ts-node ./deploymentSignatureChecker.ts" }, "license": "MIT"