首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询connect()

查询connect()
EN

Ethereum用户
提问于 2023-02-16 18:45:29
回答 1查看 25关注 0票数 0

假设我部署了一个这样的契约:const test = await ethers.getContractFactory("Test"); await test.deployed(); const [ signer, acc1, acc2 ] = await ethers.provider.listAccounts()

因此,我们知道signer在默认情况下是连接的,而任何函数都是从该契约调用的。如果我想连接acc1意味着我希望acc1调用这个函数,我必须这样做-await test.connect(acc1). function_from_test()?如果没有,那怎么做?并帮助我了解connect()的用法,如何使用它?

EN

回答 1

Ethereum用户

发布于 2023-02-16 22:38:37

在“硬帽子”中,要冒充不同的签名者,必须执行以下两种指定方式之一:

  • 在部署的契约上使用connect()函数,如下面的链接
  • 使用impersonateAccount函数,可以从一个地址发送事务,比如这个链接

您的示例的问题是,您正在工厂实例上运行connect(acc1)。正确的方法是首先部署契约并将已部署的实例连接到acc1。如下代码所示:

代码语言:javascript
复制
const TestFactory = await ethers.getContractFactory("Test");
const testInstance = await TestFactory.deploy(); 
const [ signer, acc1, acc2 ] = await ethers.getSigners();

await testInstance.connect(acc1).function_from_test();
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/145061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档