检索传递给构造函数的参数

Retrieve argument pass to constructor

我是新手。我用松露部署了我的第一个小合同 ERC20。 使用 python 上的 web3 包,我探索了这个创建的事务,我正在寻找我传递给构造函数的参数(名称、initialsupply ...),但我找不到它们。 有没有办法在区块链中找到这个论点?它们隐藏在输入的散列中吗?

感谢您的帮助。

构造函数参数在部署的字节码末尾进行编码。


示例:

pragma solidity ^0.8;

contract MyContract {
    constructor(uint256 _foo) {
    }
}

编译后的字节码:

0x6080604052348015600f57600080fd5b5060405160dc38038060dc8339818101604052810190
602d91906045565b506090565b600081519050603f81607c565b92915050565b60006020828403
121560585760576077565b5b60006064848285016032565b91505092915050565b600081905091
9050565b600080fd5b608381606d565b8114608d57600080fd5b50565b603f80609d6000396000
f3fe6080604052600080fdfea264697066735822122003a184614c306711c11c8169439e473b01
fb186c8094644efc80975e3fe2660964736f6c63430008060033

部署的字节码:

0x6080604052348015600f57600080fd5b5060405160dc38038060dc8339818101604052810190
602d91906045565b506090565b600081519050603f81607c565b92915050565b60006020828403
121560585760576077565b5b60006064848285016032565b91505092915050565b600081905091
9050565b600080fd5b608381606d565b8114608d57600080fd5b50565b603f80609d6000396000
f3fe6080604052600080fdfea264697066735822122003a184614c306711c11c8169439e473b01
fb186c8094644efc80975e3fe2660964736f6c63430008060033
000000000000000000000000000000000000000000000000000000000001e240

其中 1e240 是十进制的十六进制值 123456。 64 个十六进制字符(包括前导零)的长度是因为 256 位(64 个十六进制字符)uint 数据类型的长度。