Testing
如何從乙太幣中的地址創建簽名者對象?
我有一個地址列表,我想用它們來測試我在安全帽乙太項目中的契約。通常我會得到一個這樣的地址列表:
[a, b, c] = await ethers.getSigners()
但我想做的是獲取地址
0x70997970C51812dc3A010C7d01b50e0d17dc79C8
並將其轉換為簽名者對象,以便我可以呼叫:
contract.connect("0x70997970C51812dc3A010C7d01b50e0d17dc79C8").method()
由於簽名者可以是 Wallet、VoidSigner 或 JsonRpcSigner,因此您可以使用
jsonRpcProvider.getSigner( [ addressOrIndex ] )
返回JsonRpcSigner
.
最簡單的答案是使用已經有提供者的已部署合約。
contract.provider.getSigner('0x70997970C51812dc3A010C7d01b50e0d17dc79C8')