diff --git a/.gitignore b/.gitignore index 90503f4..30c138e 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ yarn-error.log* #Hardhat files cache artifacts +.openzeppelin diff --git a/scripts/deploy-gns.js b/scripts/deploy-gns.js index 26f5d19..e6f0575 100644 --- a/scripts/deploy-gns.js +++ b/scripts/deploy-gns.js @@ -3,15 +3,22 @@ const hardhat = require('hardhat') +const { getImplementationAddress } = require('@openzeppelin/upgrades-core') + const uri = 'https://ipfs.io/ipfs/bafkreicw32mefimobvabviirb7rao45r3kpy5zdudiputyubcmp2gag4xa' async function main() { await hre.run('compile') - const NFT = await hardhat.ethers.getContractFactory('GryphNamespaces') - const nft = await hardhat.upgrades.deployProxy(NFT, [uri], { initializer: 'initialize'}) - await nft.deployed() - console.log('NFT contract deployed to (update .env):', nft.address) - console.log('npx hardhat verify --network', hardhat.config.defaultNetwork, nft.address, `"${uri}"`) + const Upgradeable = await hardhat.ethers.getContractFactory('GryphNamespaces') + const proxy = await hardhat.upgrades.deployProxy(Upgradeable, [uri], { initializer: 'initialize'}) + await proxy.deployed() + + const network = hardhat.config.networks[hardhat.config.defaultNetwork] + const provider = new hardhat.ethers.providers.JsonRpcProvider(network.url) + const implementation = await getImplementationAddress(provider, proxy.address); + + console.log('Proxy contract deployed to (update .env):', proxy.address) + console.log('npx hardhat verify --network', hardhat.config.defaultNetwork, implementation, `"${uri}"`) } // We recommend this pattern to be able to use async/await everywhere diff --git a/scripts/upgrade-gns.js b/scripts/upgrade-gns.js new file mode 100644 index 0000000..93bc121 --- /dev/null +++ b/scripts/upgrade-gns.js @@ -0,0 +1,23 @@ +//to run this on testnet: +// $ npx hardhat run scripts/deploy-gns.js + +const hardhat = require('hardhat') + +async function main() { + await hre.run('compile') + const network = hardhat.config.networks[hardhat.config.defaultNetwork] + const NFT = await hardhat.ethers.getContractFactory('GryphNamespaces') + const nft = await hardhat.upgrades.UpgradeProxy(network.contracts.namespaces, NFT) + await nft.deployed() + console.log('Proxy contract updated to (update .env):', nft.address) +} + +// We recommend this pattern to be able to use async/await everywhere +// and properly handle errors. +main().then(() => process.exit(0)).catch(error => { + console.error(error) + process.exit(1) +}); + +//$ npx hardhat verify --network testnet 0xCFe522301C7246401387003156dFb7cd4826Bd3b "https://ipfs.io/ipfs/bafkreicw32mefimobvabviirb7rao45r3kpy5zdudiputyubcmp2gag4xa" +//$ npx hardhat verify --network mainnet