Metamask

使用安全帽在錢包中使用第二個地址部署合約

  • April 24, 2022

我正在嘗試使用錢包中的第二個地址(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函式。

引用自:https://ethereum.stackexchange.com/questions/125593