Metamask
使用安全帽在錢包中使用第二個地址部署合約
我正在嘗試使用錢包中的第二個地址(Metamask)部署合約,我怎樣才能從安全帽中實現這樣的事情?這是我的安全帽配置:
/** * @type import('hardhat/config').HardhatUserConfig */ require("@nomiclabs/hardhat-ethers"); require('@openzeppelin/hardhat-upgrades'); require("@nomiclabs/hardhat-etherscan"); module.exports = { solidity: "0.8.2", networks: { rinkeby: { url: `https://eth-rinkeby.alchemyapi.io/v2/${process.env.ALCHEMY_KEY}`, accounts: {mnemonic: process.env.MNEMONIC_WALLET}, gas: 2100000, gasPrice: 80000000000 } }, etherscan: { apiKey: process.env.ETHERSCAN_API_KEY } };
這樣,我使用 Metamask 錢包的第一個地址部署合約,如何使用第二個地址部署合約?
這實際上是關於ethers.js的問題,而不是安全帽。
讓我們使用我的Greeter 部署器作為基礎,從以下開始:
task("deploy:Greeter") .addParam("greeting", "Say hello, be nice") .setAction(async function (taskArguments: TaskArguments, { ethers }) { const signers: SignerWithAddress[] = await ethers.getSigners(); const greeterFactory: Greeter__factory = <Greeter__factory>await ethers.getContractFactory("Greeter"); const greeter: Greeter = <Greeter>await greeterFactory.connect(signers[0]).deploy(taskArguments.greeting); await greeter.deployed(); console.log("Greeter deployed to: ", greeter.address); });
因此,要更改部署者帳戶,請使用該
connect
方法,然後呼叫該deploy
函式。