Transactions
在python中將純文字腳本轉換為十六進制編碼的腳本
我正在創建一個程序(用於我正在開發的山寨幣),它應該可以輕鬆創建 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'
所以我想你需要澄清你的數據代表什麼以及你希望它如何編碼……