【问题标题】:Converting and understanding values in solidity在solidity中转换和理解价值观
【发布时间】:2021-07-07 11:59:07
【问题描述】:

我一直在研究 Solidity,并且我一直在通过 etherscan 在以太坊主网上寻找类似的项目。我试图了解合同的某些功能使用了哪些值。当我看它时,我会看到这样的东西



Function: someUintFunction1(uint256 maxTxAmount)

MethodID: 0xec28438a
[0]:  0000000000000000000000000000000000000000000000a2a15d09519be00000

Function: someUintFunction2(uint256 _minimumTokensBeforeSwap)

MethodID: 0xf0f165af
[0]:  000000000000000000000000000000000000000000000002b5e3af16b1880000
=

Function: someBoolFunction(bool _enabled)

MethodID: 0xc49b9a80
[0]:  0000000000000000000000000000000000000000000000000000000000000000


我猜 000000000000000000000000000000000000000000000000000000000000000000 作为布尔值是假的?

但是我该如何解码 00000000000000000000000000000000000000000000000a2a15d09519be00000 和 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

【问题讨论】:

    标签: ethereum solidity


    【解决方案1】:

    但是我如何解码 0000000000000000000000000000000000a2a15d09519be00000 和 0000000000000000000000000000000000000000000000002b5e3

    这些是uint256 参数的值,转换为十六进制,使用大端显示(最大值在左)。

    您可以手动将其转换为十进制,或者这里是使用web3 JS 库的示例:

    const Web3 = require('web3');
    const web3 = new Web3();
    
    const decimal = web3.eth.abi.decodeParameter('uint256', '0000000000000000000000000000000000000000000000a2a15d09519be00000');
    console.log(decimal); // prints 3000000000000000000000
    

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      相关资源
      最近更新 更多