Ethereum-Classic

Q&A:如何測試不同賬戶下的合約?

  • September 30, 2022

這部分自己的問答系列文章分享了在一個項目的工作中獲得的知識

我需要在不同的帳戶下測試我的契約,並正在尋找方法來做到這一點。

在安全帽案例中,您首先需要使用 ethers.getSigners() 函式獲取您的安全帽區塊鏈模擬賬戶。請知道它返回一個帶有簽名者對象的數組。當您擁有帳戶時,您可以使用 contract.connect 方法將您的契約與您從 getSigners() 函式獲得的所需簽名者帳戶連接起來。

https://hardhat.org/hardhat-runner/plugins/nomiclabs-hardhat-ethers https://docs.ethers.io/v5/api/contract/contract/

let [account1,account2,account3] = await ethers.getSigners();
await contract.connect(account2).method();

ether.js允許這樣做:

contract.connect(anotherUser).transfer();

我還看到了一個創建單獨合約的選項,該合約將充當 Actor 來驗證測試案例。

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