【问题标题】:Metamask 'Contract Interaction' label for defined function?定义功能的元掩码“合同交互”标签?
【发布时间】:2022-06-18 03:17:54
【问题描述】:

使用元掩码,我有这两个函数,它们(大部分)对智能合约的调用几乎相同:

  localContract.methods
    .presaleMint(window.ethereum.selectedAddress, ipfs)
    .send({ 
      from: window.ethereum.selectedAddress,
      value: web3.utils.toWei(price * amount + "", "ether"),
      gas: 240000 * (100 - amount * 4) / 100 * amount
    })
  localContract.methods.togglePresale().send({ 
    from: window.ethereum.selectedAddress,
    gas: 800000
  })

我看到的主要区别是第一个函数有参数。

我的问题是,为什么 metamask 给第二个调用函数的名称,而不是第一个? (首先只显示“合约交互”)

我可以看到这是几年前在 metamask git 上提出的,我只是很惊讶它仍然以这种方式设置...... https://github.com/MetaMask/metamask-extension/issues/8835

【问题讨论】:

    标签: smartcontracts metamask


    【解决方案1】:

    MetaMask 使用字典将函数选择器(0xdata 字段的前 8 个十六进制字符)转换为人类可读的名称。

    如果 MM 在字典中没有找到函数选择器,他们会使用通用标签“合同交互”。

    如何将您的函数选择器(presaleMint() 函数)添加到他们的字典中:https://docs.metamask.io/guide/registering-function-names.html#verify

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2010-10-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 2012-12-11
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多