检索传递给构造函数的参数
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
数据类型的长度。
我是新手。我用松露部署了我的第一个小合同 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
数据类型的长度。