Хорошо, как оказалось в этом потоке - https://forum.wavesplatform.com/t/question-about-addresses-endpoint/7752, каждый адрес генерируется с использованием одного и того же начального числа с добавленным байтовым массивом (например: для первого адреса - [0x00, 0x00, 0x00, 0x00]).
Bytesarray увеличивается после каждого создания адреса.
Таким образом, вместо использования семян из addresses/seed/<address>
, пришлось использовать семена из wallet/seed
Этот работает на python (используя pywaves)
import axolotl_curve25519 as curve
import base58
import hashlib
import sha3
import pyblake2
import struct
import pywaves
def hashChain(noncedSecret):
b = pyblake2.blake2b(noncedSecret, digest_size=32).digest()
return sha3.keccak_256(b).digest()
seed = "value from /wallet/seed"
nonce = struct.pack(">L", 40)
seedHash = hashChain(nonce + base58.b58decode(seed))
accountSeedHash = hashlib.sha256(seedHash).digest()
private_key = base58.b58encode(curve.generatePrivateKey(accountSeedHash))
address = pywaves.Address(privateKey=private_key)
P.S. Я почти уверен, что не понимаю, как семя адреса должно интерпретироваться / использоваться "правильным образом", но я не нашел никакой документации, связанной с этим. Если кто-то знает, как его использовать - я буду очень признателен.