Я создаю программу (для разрабатываемого мной альткойна), которая должна упростить создание транзакций OP_RETURN. В настоящее время у меня возникают проблемы с созданием скрипта на питоне (я могу сделать это вручную, но не знаю, как его запрограммировать).
Например, программа берет сценарий OP_RETURN (например, 6a4c0a0102030405060708090a) и сама создает транзакцию с этим сценарием. Однако в настоящее время вам нужно ввести фактический шестнадцатеричный скрипт вместо строки, которую вы хотите отправить в блокчейн.
Мой вопрос: как лучше всего взять строку/int и преобразовать ее в скрипт с шестнадцатеричным кодированием, удобный для транзакций? Например:
String: OP_RETURN 12345678910
Output: 6a4c0a0102030405060708090a
Большое спасибо всем, кто помогает. Я дам вам немного биткойнов, если вам удастся найти хорошее решение.
Я читаю спецификацию . Ваша шестнадцатеричная строка должна начинаться с 6a
[OP_RETURN opcode], за которым следует 4c
[OP_PUSHDATA1], за которым следует однобайтовое число, указывающее размер (в байтах) следующих данных. У вас есть 10 байт, так что это 0a
. Затем пришли ваши фактические данные, и здесь, я думаю, вы ошиблись. В любом случае 0102030405060708090a
(в вашем ручном примере) это не шестнадцатеричная кодировка строки "12345678910"
или целого числа 12345678910
. Посмотрите на эти фрагменты Python:
>>> from binascii import hexlify
>>> hex(12345678910)
'0x2dfdc1c3e'
>>> hexlify("12345678910".encode()).decode()
'3132333435363738393130'
Поэтому я думаю, вам нужно уточнить, что представляют ваши данные и как вы хотите их закодировать...
Для всех здесь, кому тоже нужен этот ответ: мой друг создал простую программу на Python и C++, чтобы делать именно это. Вы можете скачать его здесь .
мешколлайдер
Джестин