主页 > imtoken官网网址 > 如何使用比特币离线钱包
如何使用比特币离线钱包
如何离线比特币钱包第 1 部分
1. //这是签名后的原始交易,直接广播即可。
2.从事区块链钱包方向快一年了。 一直在研究方向,没时间分享经验。 借此机会,给大家分享一下基于Omni协议的USDT的坑,以及如何线下签名。 !
3. //这是比特币的最小转账金额,所以转多笔usdt都会收到一个00000546的btc。
4. tran.addInput(Sha256Hash.wrap(output.getTxHash()), output.getVout(), newScript(HexUtil.decodeHex(output.getScriptPubKey()))).setSequenceNumber(TransactionInput.NO_SEQUENCE-2);。
5、0000000000000001f是31的十六进制,16位补零。
6. tran.addOutput(Coin.valueOf(changeAmount),Address.fromBase58(network,changeAddress));。
7.我们只要搭建好这部分USDT转账离线钱包USDT转账离线钱包,就可以转出usdt了。
8.TransactionInputtransactionInput=tran.getInput(i);。
9.有什么不懂的可以在下方留言,
10. ScriptscriptPubKey = ScriptBuilder.createOutputScript(Address.fromBase58(network, output.getAddress()));.
如何离线比特币钱包第 2 部分
1. //先添加无符号输入,即utxo。
2. StringsignedHex=HexUtil.encodeHexStr(tran.bitcoinSerialize());。
3.如果你做过BTC的离线签名,那么这部分应该直接复用,只需要添加一个输出,需要引用bitcoinj的依赖,StringchangeAddress, LongchangeAmount, StringtoAddress, Listoutputs, Longamount){.
4. ECKeyecKey=DumpedPrivateKey.fromBase58(network, privateKey).getKey();。
5、0000000000989680是金额*10^8然后转成16进制,16位补0。
6.大家好,我是亮亮,今天是第一次写博客,如有不足之处还请见谅!
7. //构造usdt的输出脚本 注意这里的数量是要乘以10的8次方。
8. StringusdtHex="6a146f6d6e69"+字符串。 格式(“6x”,31)+字符串。 格式(“6x”,数量);。
9. 前言。 // 这是交易的哈希值。
10. Utxo输出=输出。 得到(我);。
如何离线比特币钱包第 3 部分
1. for(inti=0;i
2.返回带符号的十六进制;。
3. ECKey.ECDSASignatureecSig=ecKey.sign(hash);.
4.usdt输出脚本的组成。 文本。
5. Transactiontrans = newTransaction(MainNetParams.get());。
6. //下面是签名。 如何写代码。
7,}。 StringtxHash = HexUtil.encodeHexStr(Utils.reverseBytes(Sha256Hash.hash(Sha256Hash.hash(tran.bitcoinSerialize()))));。
8. if(changeAmount.compareTo(0L)>0){.
9. 6a146f6d6e69是固定前缀,测试网和正式网是一样的!
10. for (Utxo output: outputs) {.
如何离线比特币钱包第 4 部分
1. TransactionSignature txSig = new TransactionSignature(ecSig, Transaction.SigHash.ALL, false);。
2、我们首先要知道BTC和USDT的关系。 omni协议的usdt转账是基于btc链的。 与btc转账的区别在于多了一个null_data输出脚本。
3. Sha256Hashhash=tran.hashForSignature(i, scriptPubKey, Transaction.SigHash.ALL, false);。
4.转账usdt的密钥。 transactionInput.setScriptSig(ScriptBuilder.createInputScript(txSig, ecKey));.
5. MainNetParamsnetwork=MainNetParams.get();.
6. tran.addOutput(Coin.valueOf(546L),Address.fromBase58(network,toAddress));。
7. tran.addOutput(Coin.valueOf(0L), newScript(Utils.HEX.decode(usdtHex)));。
币圈新闻,版权所有丨如未注明,均为原创丨本站受BY-NC-SA协议授权