Я использую модуль pybitcointools в python 3.4.
Я снова и снова просматривал примеры, перечисленные на странице github, но они не очень хорошо документированы, как и код.
Моя ситуация такова: у меня есть список закрытых ключей в CSV, и я хочу сгенерировать необработанную транзакцию для каждого адреса и потратить их unspent_outputs на один адрес, отправив подписанную транзакцию в blockchain.info
У меня проблема с этими функциями: mktx, mksend, sign
Если бы кто-нибудь мог создать пример процесса, а также задокументировать каждый шаг и объяснить, для чего предназначен каждый аргумент для каждой функции и как он используется. Это было бы удивительной помощью, если бы кто-то мог протянуть руку здесь! Я искал далеко и низко, но я просто не могу найти хорошую документацию этого процесса. Я уверен, что это поможет и многим другим!
Итак, сначала:
make_request
README.txt
файл)Функции, которые вы назвали, работают так:
mktx(ins, outs)
где ins
массив "hexTxIdString:index"
и outs
массив{"value": 12345, "address": 1base58addressString}
mksend(ins, outs, txfee, 1changeAddress)
где txfee
опять в сатоши
sign(unsignedtx, index to sign, privkey for utxo)
где index
индекс input
для подписиНачнем со входов:
utxos = [(utxo_txid, utxo_index), (txid2, i2)....]
ins = ["%s:%d" % utxo for utxo in utxos]
change_addr = "1thisIsAChangeAddressYouOwn123"
txfee = int(0.45 * len(ins) * 10000) # you may want to check this 10000 value, it could be 100000
rawtx = mksend(ins, txfee, change_addr)
Итак, давайте предположим, что у вас есть UTXO TxID
и соответствующие vout
каждому закрытому ключу. Сделайте диктант privkeys ={ 'TxID:vout' : privkey, 'TxID2:vout2': privkey2 }
Затем, наконец, signall(rawtx, privkeys)
чтобы получить подписанный Tx. Затем, чтобы транслировать его, используйте pushtx(signedTx, source="bci")
или pushtx(signedTx, "testnet", source="blockr")
для Testnet. Сделанный!
get_outputs
для возврата требуемой строки. Была точно такая же проблемаaddress = 164QpJNZPYtHNVZiNmzuG2yEeWok2UfymZ
Итак, я должен использовать историю (адрес), а не неизрасходованные (адрес)? Не похоже, что история дает мне хэш unspent_output? Я все еще очень, очень запутался, потому что кажется, что в примере с pybitcointools они делают это совершенно по-другому. Я пытаюсь представить, как это сделать с самого начала, создавая свои переменные и все такое. "2e204724677fb2f6cc80ed4cc92f0d068e8ec7774f49bfbf4b075aea76154f2b:0"
это израсходованный вывод и индекс, я прав? По какой-то причине мне надрали задницу с форматированием здесь.unspent_1 = [unspent(privtoaddr(x)) for x in privs]
. Я полагаю, что это вернет массив «txid:index», который вам нужно будет отфильтровать для неизрасходованных средств с len> 1, с [x for y in unspent_1 for x in y]
которым возвращается сглаженный список. Re: mktx, mksend вызывает mktx, он просто вычисляет разницу и возвращает ее на измененный адрес.
Волшебник Оззи