Transactions

在python中將純文字腳本轉換為十六進制編碼的腳本

  • October 11, 2017

我正在創建一個程序(用於我正在開發的山寨幣),它應該可以輕鬆創建 OP_RETURN 交易。目前我在以python方式實際創建腳本時遇到了一些麻煩(我可以手動完成,但不知道如何程式)。

例如,程序採用 OP_RETURN 腳本(例如 6a4c0a0102030405060708090a)並使用該腳本自行創建交易。但是,目前您需要輸入實際的十六進制腳本,而不是要發送到區塊鏈的字元串。

我的問題是 - 獲取字元串/整數並將其轉換為事務友好的十六進制編碼腳本的最佳方法是什麼?例如:

String: OP_RETURN 12345678910
Output: 6a4c0a0102030405060708090a

非常感謝任何提供幫助的人。如果你能找到一個好的解決方案,我會給你一些比特幣。

對於這裡也需要這個答案的每個人:我的朋友用 Python 和 c++ 創建了一個簡單的程序來做這個確切的事情。你可以在這裡下載。

我正在閱讀規範。您的十六進製字元串必須以6a[OP_RETURN opcode] 開頭,然後是4c[OP_PUSHDATA1],然後是一個單字節數字,指示以下數據的大小(以字節為單位)。你有 10 個字節,所以這個0a. 然後是您的實際數據,在這裡我認為您犯了一個錯誤。在任何情況下,0102030405060708090a(在您的手動範例中)既不是 string 的十六進制編碼,"12345678910"也不是 integer的十六進制編碼12345678910。看看這個python片段:

>>> from binascii import hexlify
>>> hex(12345678910)
'0x2dfdc1c3e'

>>> hexlify("12345678910".encode()).decode()
'3132333435363738393130'

所以我想你需要澄清你的數據代表什麼以及你希望它如何編碼……

引用自:https://bitcoin.stackexchange.com/questions/60371