USDT离线签名交易
本文作者:陈进坚
个人博客:https://jian1098.github.io
CSDN博客:https://blog.csdn.net/c_jian
简书:https://www.jianshu.com/u/8ba9ac5706b6
联系方式:jian1098@qq.com
USDT
的离线交易需要进行下面这8个步骤
1.查询未花费交易
参数:最小确认区块数、最大确认区块数、钱包地址数组(逗号隔开)
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "listunspent" 0 999999 '["mu5vgTeuMRbGDAYZuvnYcebuky7bte2XNr","mxbL6VyXG4AJXD8ncrgRRgQY2GhbjTizSC"]'
返回结果:
转出钱包:mq8FvvycAHw8zzwarYbk8SQ8uTY3GN493u 转入3.33333000usdt{"txid": "7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout": 2,"address": "mq8FvvycAHw8zzwarYbk8SQ8uTY3GN493u","account": "usdt-test","scriptPubKey": "76a9146966699024c310c454049a6eaac9c58fee02081c88ac","amount": 0.00000546,"confirmations": 1,"spendable": false,"solvable": true}手续费钱包: miLt8eZ85Z4S4sDXAVbK2R1E49RgnRasgK 转入20btc{"txid": "7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout": 0,"address": "miLt8eZ85Z4S4sDXAVbK2R1E49RgnRasgK","account": "usdt-test","scriptPubKey": "76a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac","amount": 19.99960000,"confirmations": 1,"spendable": false,"solvable": true},
2.构建payload
参数:propertyid
、交易的usdt
数量
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "omni_createpayload_simplesend" 1 "2.22222"
返回结果:
0000000000000001000000000d3ed6b0
3.创建未签名交易
参数:第1步的input集合
(即一个或多个输入) 、{转出地址:0.00000546}
这0.00000546
个比特币是btc
交易的最小交易数,USDT
交易的本质是btc
交易中附带的数据,没有btc
,usdt就没有输入就不能转出
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "createrawtransaction" '[{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":2},{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":0}]' '{"mq8FvvycAHw8zzwarYbk8SQ8uTY3GN493u":0.00000546}'
返回结果:
01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0122020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac00000000
4.给交易添加payload
参数:第3步结果、第2步结果
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "omni_createrawtx_opreturn" "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0122020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac00000000" "0000000000000001000000000d3ed6b0"
返回结果:
01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0222020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b000000000
5.设置收款地址
参数:第4步结果、收款钱包地址
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "omni_createrawtx_reference" "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0222020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b000000000" "mtsZjfgk6mb2wKqzt76rsybANpys25dcmi"
返回结果:
01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0322020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000
6.设置找零和手续费
这里的找零和手续费指的是比特币
参数:第5步结果、第一步的输入列表(json
格式,注意amount
要改成value
)、btc
找零地址(可以设定为第一步中的地址)、交易手续费(设置太低会被视为尘埃交易而被丢弃)
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "omni_createrawtx_change" "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff0322020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000" '[{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":2,"scriptPubKey":"76a9146966699024c310c454049a6eaac9c58fee02081c88ac","value":0.00000546},{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":0,"scriptPubKey":"76a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac","value":19.99960000}]' "miLt8eZ85Z4S4sDXAVbK2R1E49RgnRasgK" 0.0004
返回结果:
01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff045e593477000000001976a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac22020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000
7.签名交易
最后两步直接用比特币的命令即可,但是即使是最新版的omnicored
程序都是基于老版本的bitcoind
(0.13.2),所以无法使用signrawtransactionwithkey
方法,只能使用旧版的signrawtransaction
方法
参数:第6步结果、输入列表、以及输入列表中地址对应的私钥
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "signrawtransaction" "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0200000000ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a0000000000ffffffff045e593477000000001976a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac22020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000" '[{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":2,"scriptPubKey":"76a9146966699024c310c454049a6eaac9c58fee02081c88ac","value":0.00000546},{"txid":"7a8614c268c3113bb5bdefd2d85c092960c957053f2abf1fb2a7f81b7a8ab72d","vout":0,"scriptPubKey":"76a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac","value":19.99960000}]' '["92a4LrHSVUqvFSn6fxQKgoEL6wRJjkYy54vqNXVe5tRupQusmHZ","93QsgtSBGBih7bGYCPvkuig9wKaMDpQXLsVYCWnD6aLovP2yXLn"]'
返回结果:
{"hex": "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a020000008b48304502210093ee76029c94f4d25c1e31f03940ab2eb4144a5a064d6088f33e3b0190e2f7ee02201724e427fe3158cadb4334f9ea90d279dfbe0b0b275ca58db94058ee4b76b7a6014104616a75154fb4ee49c6e18900c50c248f96a2b1b92f0233aa2600677390628372914181affbe0e5490c9387f428abc8047499c3034a88eea0f9b5368a2a969004ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a000000008b483045022100dd08f9f493f06f67b363d245bcd2afbe5cb191fc2a7636057d3b7fe6c480968802202dfee669eac6e2e79ea6e645080f5f379b1a5e74d77b6ee3b79524bb737e81dc014104b654748d41d8d81ee6849188c569b6686d22bdf17abfa55a69b8ea40d6e57e5134bbacdcd68bdb668ea2df6428aa5129cd28f04027a18f63066d9952caaf8a09ffffffff045e593477000000001976a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac22020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000","complete": true
}
8.广播交易
参数:第7步结果的hex
值
omnicore-cli -conf=/root/.omnicore/bitcoin.conf "sendrawtransaction" "01000000022db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a020000008b48304502210093ee76029c94f4d25c1e31f03940ab2eb4144a5a064d6088f33e3b0190e2f7ee02201724e427fe3158cadb4334f9ea90d279dfbe0b0b275ca58db94058ee4b76b7a6014104616a75154fb4ee49c6e18900c50c248f96a2b1b92f0233aa2600677390628372914181affbe0e5490c9387f428abc8047499c3034a88eea0f9b5368a2a969004ffffffff2db78a7a1bf8a7b21fbf2a3f0557c96029095cd8d2efbdb53b11c368c214867a000000008b483045022100dd08f9f493f06f67b363d245bcd2afbe5cb191fc2a7636057d3b7fe6c480968802202dfee669eac6e2e79ea6e645080f5f379b1a5e74d77b6ee3b79524bb737e81dc014104b654748d41d8d81ee6849188c569b6686d22bdf17abfa55a69b8ea40d6e57e5134bbacdcd68bdb668ea2df6428aa5129cd28f04027a18f63066d9952caaf8a09ffffffff045e593477000000001976a9141f00be4aee1d4534870b65c9b6c2e5276ffff0c888ac22020000000000001976a9146966699024c310c454049a6eaac9c58fee02081c88ac0000000000000000166a146f6d6e690000000000000001000000000d3ed6b022020000000000001976a914927f8a23044bf2f4d2231ec0d40c844da44216fe88ac00000000"
返回结果:
5c67fc9eb0cdce9af1aa4f4a9f134b1fa98bed68f03a186b2b7065227576afe3
参考文档:
https://github.com/OmniLayer/omnicore/blob/master/src/omnicore/doc/rpc-api.md
https://gist.github.com/dexX7/352670c990ebf9ea31d6346a1519eb52
http://cw.hubwiz.com/card/c/omni-rpc-api/
USDT离线签名交易相关推荐
- 以太坊PHP离线交易签名生成,以太坊web3.sendRawTransaction离线签名交易
工作中需要复现短地址攻击和thedao重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法 ...
- 区块链钱包—BTC Java版离线签名交易
对于离线交易不做过多解释~,说白了就是拿上一笔未发出交易记录进行私钥的签名然后广播到链上. 主要是对区块链离线交易进行utxo上链. 代码参考: https://gitee.com/DHing/sig ...
- Filecoin(FIL) 交易离线签名
FIL 交易离线签名 签名代码 第一步,准备交易参数 第二步,开始签名 用到的类 签名代码 第一步,准备交易参数 $message = ['version' => 0,'from' => ...
- BTC隔离见证(3开头)地址离线签名
BTC隔离见证(3开头)地址离线签名(亲测可行) 关于BTC隔离见证(3开头)地址的离线签名,貌似相关介绍比较少,主要以理论介绍居多. 所以在这里,我就不再赘述什么是隔离见证地址以及如何完成相关签名的 ...
- java工程打包时进行签名_使用Java SDK实现离线签名
严格来说,tx-signer并不属于SDK,它是bytomd中构建交易.对交易签名两大模块的java实现版.因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥. 如果你的 ...
- 以太坊钱包开发系列3 - 展示钱包信息及发起签名交易
最新内容会更新在主站深入浅出区块链社区 原文链接:使用 ethers.js 开发以太坊 Web 钱包 3 - 展示钱包信息及发起签名交易) 以太坊去中心化网页钱包开发系列,将从零开始开发出一个可以实际 ...
- NEO 交易所钱包开发之离线签名【区块链】JAVA
2019独角兽企业重金招聘Python工程师标准>>> 前言: 在2019年的3月之前我对铺天盖地的"区块链"网络风暴,都只是一个耳朵进另一个就帮忙给丢了...可 ...
- Php 波场离线签名 Tron离线签名
php TRON交易离线签名 本次演示使用http json 格式的数据进行签名 此开发包 调用的c++ 需要用到动态链接库 需要下载的小伙伴 可以去github 下载 签名说明 步骤 取交易的raw ...
- PHP实现ETH ERC20签名交易
最近在写ETH的NFT发行转账功能,使用的语言是PHP,但是发现github上使用比较多的web3.php有点问题,当solidity使用string[]类型时候web3.php没有做兼容,最后会导致 ...
最新文章
- JQuery插件:ScrollTo平滑滚动到页面指定位置
- saltui试用遇到的问题
- 智能建筑进入新的十年
- python 执行文件内容_python执行文件
- 50-10-010-配置-整体配置
- 带有进度报告的Angular 9/8多文件上传服务
- 九度 1529:棋盘寻宝(递推DP)
- Redis入门到精通-Redis集群搭建
- 【WPF】使用SVG资源
- 《高性能Linux服务器构建实战Ⅱ》已出版发售,附封面照!
- CF1375E Inversion SwapSort
- 迅雷2014C++研发笔试卷C解题分析
- 区块链测试(一):测试人员初学区块链
- Hexo博客删除文章
- 百趣代谢组学资讯:4篇经典案例助力科研不费力,均IF>12
- 专家谈手工查杀AV终结者病毒详解
- python +selenium 爬取淘宝网商品信息
- 如何处理项目遗留问题?
- iperf udb_使用PHP脚本通过Zend Core for i5 / OS访问DB2 UDB for iSeries数据
- Oracle简介和安装