Polkadot: как подписать Extrinsics в Python?

Благодаря py-substrate-interface Я могу создавать внешние элементы примерно так:

payload = substrate.compose_call(
    call_module='Balances',
    call_function='transfer',
    call_params={
        'dest': 'EaG2CRhJWPb7qmdcJvy3LiWdh26Jreu9Dx6R1rXxPmYXoDk',
        'value': 1000000000000
    }
)

Тогда я также могу увидеть rpc_request а также ws_requestв их документации, которую, как я полагаю, я могу использовать для трансляции подписанного внешнего.

Недостающим шагом будет подписание внешнего. Кто-нибудь знает, как это сделать на питоне?

1 ответ

На данный момент подписание невозможно (пока) непосредственно из библиотеки Python, но вы можете попробовать передать полезную нагрузку вызова из compose_call() функция для subkeyкоманда (https://substrate.dev/docs/en/ecosystem/subkey), например:

subkey sign-transaction --call "0x200400011074657374" --nonce 0 --suri "<secret_seed_or_words>" --password "" --prior-block-hash 0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b

Ты можешь использовать subprocess.run в Python, чтобы получить результат subkeyиз вашего кода Python (https://docs.python.org/3/library/subprocess.html)

Надеюсь это поможет!

Другие вопросы по тегам