bfc币对usdt
① 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来查看当前构建交易信息的更新情况。