diff --git a/config/config.js b/config/config.js index 69de552..321f40c 100644 --- a/config/config.js +++ b/config/config.js @@ -9,9 +9,10 @@ const market = { const admins = { admin: "0xa9ecB9F3A0b54d31ce4a035C89EC7Da4110beB59", proposers: [ - "0x7E8E62EF14E9ae1a0B1dd753b45AA42Faa6208D7" + "0xc1d9c0D5BfEa77bacF6d102B8CEAA4b07f6a0E25" ], - confirmers: ["0xA86Fc95bB9C663bAec0f97C53cC5338749E0ce39"], + confirmers: ["0xA86Fc95bB9C663bAec0f97C53cC5338749E0ce39", + "0x93Ee7F7eBAeF20613cFc0137f64Df0157b5fFa69"], executors: [ "0xc970c587085108671212F79e7F0Ad30937A44C28" ], diff --git a/migrations/17_deploy_candy.js b/migrations/17_deploy_candy.js new file mode 100644 index 0000000..855c5af --- /dev/null +++ b/migrations/17_deploy_candy.js @@ -0,0 +1,87 @@ +const Box = artifacts.require("tokens/erc721/BEBadge"); +const Metadata = artifacts.require("core/JSONMetadata"); +const base = require("../scripts/base"); +const config = require("../config/config"); +const Distributor = artifacts.require("logic/NftDistributor"); + +module.exports = async function (deployer, network, accounts) { + const name = "Candy"; + const symbol = "CANDY"; + await deployer.deploy(Box, name, symbol, 0); + const gachaInstance = await Box.deployed(); + if (gachaInstance) { + console.log("Candy successfully deployed."); + } + base.updateArray({ + name: "Candy", + type: "erc721", + json: "assets/contracts/BEBadge.json", + address: gachaInstance.address, + network, + }); + + const metaaddr = '0xfba1F2861718993B94edd5DCe1D06b3Cbe19353d' + + if(network == 'arbitrum_one'){ + // await deployer.deploy(Metadata); + const metadataInstance = await Metadata.deployed(); + if (metadataInstance) { + console.log("metadataInstance successfully deployed."); + } + // base.updateArray({ + // name: "JSONMetadata", + // type: "logic", + // json: "assets/contracts/JSONMetadata.json", + // address: metadataInstance.address, + // network, + // }); + + const mtname = name + const mtdesc = "this is test badge desc." + const mtimg = "https://gateway.pinata.cloud/ipfs/QmWuHBFGirZS7uyGDyEJNBnMjGLsP9Ke4QZaoL2MxYWtat" + const mtex = ',"animation_url": "https://gateway.pinata.cloud/ipfs/QmRJAN58RaFZUeor9VhdiqCziujwvwD98zq7xHUnmbzMXW"' + + await metadataInstance.setMetaData( + gachaInstance.address, + mtname, + mtdesc, + mtimg, + mtex + ); + console.log(`success update metadata for: ${gachaInstance.address}`); + + metaaddr = metadataInstance.address + } + + await gachaInstance.updateMetaAddress(metaaddr); + console.log(`success update meta address for: ${gachaInstance.address}`); + + const testexec = ['0x93Ee7F7eBAeF20613cFc0137f64Df0157b5fFa69'] + + const exec = network == 'arbitrum_one'? config.admins.executors: testexec + + await deployer.deploy( + Distributor, + gachaInstance.address, + exec + ); + const distributorInstance = await Distributor.deployed(); + if (distributorInstance) { + console.log("NftDistributor successfully deployed."); + console.log("address: " + distributorInstance.address); + } + base.updateArray({ + name: "NftDistributor", + type: "logic", + json: "assets/contracts/NftDistributor.json", + address: distributorInstance.address, + network, + }); + await gachaInstance.setMintRole(distributorInstance.address); + + console.log( + `success set mint role to: ${walletInstance.address} claim box ` + ); + + +}; diff --git a/migrations/2_depoly_etc.js b/migrations/2_depoly_etc.js index 68d0d5f..e9a9c95 100644 --- a/migrations/2_depoly_etc.js +++ b/migrations/2_depoly_etc.js @@ -33,14 +33,14 @@ module.exports = async function (deployer, network, accounts) { // address: coinInstance.address, // network, // }); - // await deployer.deploy( - // Wallet, - // 60, - // 1, - // config.admins.proposers, - // config.admins.confirmers, - // config.admins.executors - // ); + await deployer.deploy( + Wallet, + 60, + 1, + config.admins.proposers, + config.admins.confirmers, + config.admins.executors + ); const walletInstance = await Wallet.deployed(); if (walletInstance) { console.log("BEMultiSigWallet successfully deployed."); diff --git a/package.json b/package.json index 731cfd4..efce7c2 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "genesis_deploy:one": "truffle migrate --network arbitrum_one -f 16 --to 16 --compile-none", "genesis_deploy:test": "truffle migrate --network arbitrum_testnet -f 16 --to 16 --compile-none", "mulwallet:one": "npx truffle exec --network arbitrum_one_self ./init_scripts/generate_mulwallet.js", + "candy_deploy:test": "truffle migrate --network arbitrum_testnet -f 17 --to 17 --compile-none", "size": "truffle run contract-size" }, "author": "", diff --git a/truffle-config.js b/truffle-config.js index 70523e1..40cc13f 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -29,6 +29,7 @@ const mnemonic = fs.readFileSync(".secret").toString().trim(); // web3.eth.defaultAccount = '0x50A8e60041A206AcaA5F844a1104896224be6F39' const kccTestnetKey = "d9ed33809372932059c1ba7b336a33f406b4c55e7430daef8297134c67429d60"; +const arbTestnetKey = 'd2ec11734b45e4bcfa8a69f79d864edec9467552f9a5a53d22c17dc4a9a4f6ec'; const arbOneKey = fs.readFileSync(".key").toString().trim(); const arbOneAddr = fs.readFileSync(".addr").toString().trim(); @@ -130,7 +131,7 @@ module.exports = { arbitrum_testnet: { provider: () => new HDWalletProvider({ - privateKeys: [kccTestnetKey], + privateKeys: [arbTestnetKey], // providerOrUrl: `https://arbitrum-goerli.public.blastapi.io`, providerOrUrl: "https://arbitrum-goerli.publicnode.com", pollingInterval: 8000, @@ -143,7 +144,7 @@ module.exports = { skipDryRun: true, production: true, disableConfirmationListener: true, - from: "0x50A8e60041A206AcaA5F844a1104896224be6F39", + from: "0x1cC73CE74BA0BC080e7C0a37cb3a68f435Ab333A", }, arbitrum_one: { provider: () =>