Evm

解碼已部署智能合約的建構子參數

  • February 21, 2022

我需要知道哪些參數已用於初始化以下智能合約:https ://testnet.bscscan.com/address/0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3#code

從頁面上,我只能看到它已經用 2 個參數初始化,但它們是編碼的。從原始碼我可以猜到它們是 2 個地址,但是有沒有辦法解碼它們?

先感謝您

您給出了答案 =) 它們是 2 個地址,例如,第一個是 0xb7926c0430afb07aa7defde6da862ae0bde767bc。問題是地址有 20 個字節,參數有 32 個字節。這就是為什麼它們被編碼為 000000000000000000000000b7926c0430afb07aa7defde6da862ae0bde767bc 的原因。只需拾取最後 20 個字節(40 位)。

您是否在連結的頁面中看到“建構子參數”部分?在那裡你也可以看到這些值(它們被填充到 32 個字節(256 位))並且簡單地忽略第一個零,因為 anaddress是 20 個字節)。

但是,即使對於未經驗證的合約,如果您知道建構子簽名(在這種情況下address,address,沒有空格),您總是可以恢復參數值。如果您以程式方式需要它,您可以使用ether.jsAbiCoder對象。否則網上有很多這樣的工具

引用自:https://ethereum.stackexchange.com/questions/122210