㈠ USDT歸集問題
最近幾天在對接USDT錢包,遇到一個問題就是根本沒辦法通過omni 錢包提供的API來實現錢包歸集,因為API提供的介面都需要發送USDT的地址有一定的BTC數量才可以發送交易,所以沒辦只能找其他方案替代,請教了其他人後才知道只能通過創建BTC的原生交易才能達到這個效果,折騰了好幾天,終於把這個流程給整理通順了,估計還有很多人會遇到這個問題,所以記錄下來為後面的人節省一些時間。
首先兩個地址, 發送USDT(地址裡面要有USDT,這里通常可能是交易所用戶的USDT錢包地址)地址和付手續費的地址(地址裡面要有足夠的BTC,這里通常可能是熱錢包地址)
本次案例中
發送USDT地址為:
付手續費地址為:
接收USDT地址為:
得到UXTO:
得到UXTO:
指令:
得到:
得到:
指令:
得到(事務hash):
指令:
得到(事務hash):
指令:(事務HASH,交易信息,找零地址,手續費)
得到(事務hash):
指令:
得到(區塊信息):
指令:
得到(交易ID):
注意:每次操作後可用指令:
omni官方文檔
㈡ USDT錢包歸集
解決USDT錢包歸集問題
在對接USDT錢包時,面臨無法通過omni 錢包提供的API實現錢包歸集的情況。這是因為API介面要求發送USDT的地址必須具備一定量的BTC,從而觸發交易。為此,需尋找替代方案,最終了解到只能通過創建BTC的原生交易達到目的。經過多日努力,流程得以順暢進行,預計許多人會遇到類似問題,故記錄此過程,為後續使用者節省時間。
准備兩個地址:發送USDT的地址和支付手續費的地址。確保發送USDT的地址內有USDT,支付手續費的地址內有足夠的BTC。本案例中,發送USDT地址為:,支付手續費地址為:,接收USDT的地址為:。
分別找到發送地址和熱錢包地址的一筆UXTO(未花費的交易輸出)作為發送USDT交易的載體。使用指令:listunspent 0 999999 '[""]' 和 listunspent 0 999999 '[""]',得到相應的UXTO信息。將找到的UXTO信息用於創建交易負載。
創建負載的指令為:createrawtransaction '[{"txid":"","vout":0},{"txid":"","vout":1,"scriptPubKey":"","value": 0.00992750}]' '{}'。
創建USDT交易的過程如下:使用指令 omni_createpayload_simplesend 31 2.0,得到。
在交易上綁定代幣數據,指令為:omni_createrawtx_opreturn 0000。
在交易上添加接收地址,指令為:omni_createrawtx_reference 0000000000001900000000。
指定礦工費用的指令為:(事務HASH,交易信息,找零地址,手續費)。
對交易進行簽名,指令為:signrawtransaction 0000000000001900000000。
最終,廣播交易的指令為:Sendrawtransaction 6922020000000000001900000000。
交易ID為:。執行每步操作後,可使用指令 decoderawtransaction 事務ID 和 omni_decodetransaction 事務ID來查看當前構建交易信息的更新情況。