From ff391b8fc6289348ba5b1e5add9c215253b5f28c Mon Sep 17 00:00:00 2001 From: Jawad Tariq Date: Thu, 7 Sep 2023 14:57:47 -0400 Subject: [PATCH] feat: add SubnetRegistrator deployment script Signed-off-by: Jawad Tariq --- scripts/deploy-subnet-registrator.ts | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 scripts/deploy-subnet-registrator.ts diff --git a/scripts/deploy-subnet-registrator.ts b/scripts/deploy-subnet-registrator.ts new file mode 100644 index 0000000..20f1b05 --- /dev/null +++ b/scripts/deploy-subnet-registrator.ts @@ -0,0 +1,29 @@ +import { providers, utils, Wallet } from 'ethers' +import subnetRegistratorJSON from '../artifacts/contracts/topos-core/SubnetRegistrator.sol/SubnetRegistrator.json' +import { Arg, deployContractConstant } from './const-addr-deployer' + +const main = async function (..._args: Arg[]) { + const [providerEndpoint, salt, gasLimit, ...args] = _args + const provider = new providers.JsonRpcProvider(providerEndpoint) + const privateKey = process.env.PRIVATE_KEY + + if (!privateKey || !utils.isHexString(privateKey, 32)) { + console.error('ERROR: Please provide a valid private key! (PRIVATE_KEY)') + return + } + + const wallet = new Wallet(privateKey || '', provider) + const address = await deployContractConstant( + wallet, + subnetRegistratorJSON, + salt, + [wallet.address, ...args], + gasLimit + ) + .then(({ address }) => address) + .catch(console.error) + console.log(address) +} + +const args = process.argv.slice(2) +main(...args)