首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么isValidSignature不在gnosis安全合同中?

为什么isValidSignature不在gnosis安全合同中?
EN

Ethereum用户
提问于 2023-04-22 12:13:31
回答 1查看 22关注 0票数 0

我有一份安全的合同,我正试着用它签消息并核实一下,

代码语言:javascript
复制
export async function createSafe() {
  const { daoMember1, daoMember2, daoMember3, daoMember4 } = await getAccounts()

  // Deploy Gnosis Safe master copy contract
  const masterCopyFactory = await ethers.getContractFactory('GnosisSafe')
  const masterCopy = await masterCopyFactory.deploy()

  // Deploy Gnosis Safe proxy factory contract
  const proxyFactoryFactory = await ethers.getContractFactory('GnosisSafeProxyFactory')
  const proxyFactory = await proxyFactoryFactory.deploy()

  // Create Gnosis Safe contract

  const safeProxy = await proxyFactory.createProxy(masterCopy.address, '0x')
  // console.log(safeProxy)
  const transactionReceipt = await safeProxy.wait()
  const proxyAddress = transactionReceipt.events[0].args.proxy
  const safe = await ethers.getContractAt('GnosisSafe', proxyAddress)

  await safe.setup(
    [daoMember1.address, daoMember2.address, daoMember3.address],
    2,
    ethers.constants.AddressZero,
    '0x',
    ethers.constants.AddressZero,
    ethers.constants.AddressZero,
    0,
    ethers.constants.AddressZero
  )

  return safe
}

在这里,我签署了一条信息,并试图验证:

代码语言:javascript
复制
      const makerMessageHashBinary = ethers.utils.arrayify(makermessageHash)

      //makers signatur(Gnosis safe)
      const sig1 = safe.connect(daoMember1).approveHash(makerMessageHashBinary)

      const isValidSignature = await safe.isValidSignature(makerMessageHashBinary, sig1)

但问题是:

代码语言:javascript
复制
Property 'isValidSignature' does not exist on type 'GnosisSafe'.
EN

回答 1

Ethereum用户

发布于 2023-04-24 05:50:10

我认为您要寻找的函数是checkNSignatures(),据我所知,安全契约并不实现isValidSignature()函数,而是在一个接口中定义的,该接口用于回调到验证签名的契约。

下面是可以帮助您解决问题的代码片段

https://github.com/safe-global/safe-contracts/blob/main/contracts/Safe.sol#L274

以下是关于预先批准的散列https://docs.safe.global/learn/safe-core/safe-core-protocol/signatures#pre-validated-signatures的文档

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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