Создать контрактный адрес с помощью nonce

Добрый день, я смотрел, как создаются контракты, и кажется, что процесс довольно детерминирован (зависит от nonce). Есть ли способ получить адрес контракта, который еще не был развернут для конкретного пользователя nonce? что-то вроде:

contractAddress = getAddress(nonce1, data, privateKey)

Я знаю, что раньше была библиотека pyethereum, которая предлагала такой инструмент, но она не обновлялась в течение длительного времени, и я надеялся использовать более активный инструмент.

Как всегда, ваша помощь приветствуется!

5 голосов | спросил shultz 2 32016vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2016 21:35:54 +0300 2016, 21:35:54

1 ответ


3

Другие могут добавлять другие ответы, но pyethereum все еще активен, и этот код не изменяется:

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

from Как адрес контракта Ethereum вычислить?

Закрытый ключ не нужен, только адрес отправителя. Однако, если код sender неизвестен, из OP privateKey, sender вычисляется по:

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
ответил eth 3 42016vEurope/Moscow11bEurope/MoscowThu, 03 Nov 2016 04:29:58 +0300 2016, 04:29:58

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132