Contract-Deployment

使用 nonce 生成合約地址

  • October 23, 2018

美好的一天,我正在研究創建合約地址的方式,並且該過程似乎是非常確定的(取決於隨機數)。有沒有辦法獲取尚未為特定隨機數部署的合約的地址?就像是:

contractAddress = getAddress(nonce1, data, privateKey)

我知道曾經有提供此類工具的 pyethereum 庫,但很長時間沒有更新,我希望使用更活躍的工具。

一如既往,感謝您的幫助!

其他人可以添加其他答案,但 pyethereum 仍然處於活動狀態,並且此類型程式碼不會更改:

def mk_contract_address(sender, nonce):
   return sha3(rlp.encode([normalize_address(sender), nonce]))[12:]

來自乙太坊合約的地址是如何計算的?

不需要私鑰,只需要發件人地址。但是,如果senderOP 的 未知,privateKeysender通過以下方式計​​算:

def privtoaddr(x, extended=False):
   if len(x) > 32:
       x = decode_hex(x)
   o = sha3(privtopub(x)[1:])[12:]
   return add_checksum(o) if extended else o

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