Omni-USDT钱包开发使用NodeJs离线签名
签名代码:
function addPreZero(num){var t = (num+'').length,s = '';for(var i=0; i<16-t; i++){s += '0';}return s+num;
}function usdtSign(privateKey, utxo, feeValue, usdtValue, fromAddress, toAddress) {var txb = new bitcoin.TransactionBuilder();var set = bitcoin.ECPair.fromWIF(privateKey);const fundValue = 546;var usdtAmount = parseInt(usdtValue*1e8).toString(16);var totalUnspent = 0;for(var i = 0; i < utxo.length; i++){totalUnspent = totalUnspent + utxo[i].value;}const changeValue = totalUnspent - fundValue - (feeValue*1e8);if (totalUnspent < feeValue + fundValue) {console.log("Total less than fee");return constant.LessValue;}for(var i = 0; i< utxo.length; i++){txb.addInput(utxo[i].tx_hash_big_endian, utxo[i].tx_output_n, 0xfffffffe);}const usdtInfo = ["6f6d6e69","0000","00000000001f",addPreZero(usdtAmount)].join('');const data = Buffer.from(usdtInfo, "hex");const omniOutput = bitcoin.script.compile([bitcoin.opcodes.OP_RETURN,data]);txb.addOutput(toAddress, fundValue);txb.addOutput(omniOutput, 0);txb.addOutput(fromAddress, changeValue);for(var i = 0;i < utxo.length; i++){txb.sign(0, set);}return txb.buildIncomplete().toHex();
};
上面代码中UXTO的获取方式和比特币的一样。
案列代码:
var utxo ={"unspent_outputs":[{"tx_hash":"1bf1e457ac7572518cde36945e94728659dfae7fb2229411c1e13c085054c506","tx_hash_big_endian":"06c55450083ce1c1119422b27faedf598672945e9436de8c517275ac57e4f11b","tx_index":399167492,"tx_output_n": 2,"script":"76a91479b275dd5f136c241f3c28549b4c338177d5cb2188ac","value": 1363462,"value_hex": "14ce06","confirmations":0}]
}var privateKey = "私钥";
var usdtValue = 2;
var feeValue = 0.0002;
var fromAddress = "1C6UYrmbtvdi8dHZNnZD3YoVwit2mccSgw";
var toAddress = "1DefiYRCAD4wVS7rXwFkqhEn6R88EkSUnh";
var sign = usdtSign(privateKey, utxo.unspent_outputs, feeValue, usdtValue, fromAddress, toAddress);
console.log(sign);
签名成功后调用Omni区块链浏览器接口https://api.omniexplorer.info/v1/transaction/pushtx
将其发到区块链网络即可
关注问我团队公众号
Omni-USDT钱包开发使用NodeJs离线签名相关推荐
- Omni/USDT钱包对接PHP开发包
OmniTool开发包适用于为PHP应用快速增加对Omni Layer/USDT数字资产的支持能力,即支持使用自有Omni Layer节点的应用场景,也支持基于第三方API服务和离线裸交易的轻量级部署 ...
- 区块链钱包—BTC Java版离线签名交易
对于离线交易不做过多解释~,说白了就是拿上一笔未发出交易记录进行私钥的签名然后广播到链上. 主要是对区块链离线交易进行utxo上链. 代码参考: https://gitee.com/DHing/sig ...
- Omni(USDT)钱包安装(ubuntu)
一.下载Omni Layer钱包 wget https://bintray.com/artifact/download/omni/OmniBinaries/omnicore-0.3.0-x86_64- ...
- 视频教程-BNB 钱包开发-区块链
BNB 钱包开发 毕业于黑龙江大学制药工程专业,曾任知名互联网公司架构师,先为某公司 CTO,参与中信银行三方存管项目,中信银行B股,银衍项目的开发,主导超球球场平台项目(包含从硬件底层到软件上层的一 ...
- NEO 交易所钱包开发之离线签名【区块链】JAVA
2019独角兽企业重金招聘Python工程师标准>>> 前言: 在2019年的3月之前我对铺天盖地的"区块链"网络风暴,都只是一个耳朵进另一个就帮忙给丢了...可 ...
- 以太坊钱包开发系列3 - 展示钱包信息及发起签名交易
最新内容会更新在主站深入浅出区块链社区 原文链接:使用 ethers.js 开发以太坊 Web 钱包 3 - 展示钱包信息及发起签名交易) 以太坊去中心化网页钱包开发系列,将从零开始开发出一个可以实际 ...
- scatter配合硬件钱包实现EOS离线签名
发现https://eostoolkit.io/home年久失修,无奈自己写个scatter调用,配合cleos可以实现任意命令调用. 1.scatter导入硬件钱包账号 2.新建index.html ...
- java json 转map_Java对接Omni/USDT教程「OmniTool.Java」
OmniTool.Java开发包适用于为Java应用快速增加对Omni/USDT数字资产的支持能力,即支持使用自有Omni节点的应用场景,也支持基于第三方API服务和离线裸交易的轻量级部署场景.官方下 ...
- 以太坊PHP离线交易签名生成,以太坊web3.sendRawTransaction离线签名交易
工作中需要复现短地址攻击和thedao重入攻击,重入攻击可以直接通过eth.sendTransaction和remix来发送交易,但是短地址攻击由于钱包和remix这些都对input做了长度检测,无法 ...
最新文章
- IAR 增加头文件注意事项
- 微软称电脑系统识别能力已经超越了人类
- JavaWeb学习之路——SpringBoot 中几种异常处理方法(四)
- Qt Creator连接设备
- java序列化_夯实Java基础系列22:一文读懂Java序列化和反序列化
- jquery ajax是什么意思,Jquery ajax
- 发现大数据产业创新黑马,CBDS2016大数据双创路演火热召集
- python3 模板库_[zz]尝试PyTenjin --号称最快的Python 模板库
- linux虚拟机备份树莓派,为树莓派做系统备份镜像(for Linux #038; Mac),
- 常用jar包之commons-collection使用
- linux 虚拟示波器,模拟示波器怎么看频率,模拟示波器频率计算
- 网友自制的谷歌输入法皮肤及制作方法
- C#语言-输入三角形或者长方形边长,计算其周长和面积并输出
- 魔兽星期二服务器维护,魔兽世界例行维护,假如我星期一晚上通宵,在星期二凌晨五点维护时我没退出游戏,会被强制退出么?...
- Tomcat端口被占用,解决方法
- 客户关系管理(CRM)系统源码设计方案
- 简单有效的低照度增强
- LOJ #10008. 「一本通 1.1 练习 4」家庭作业
- Lightgbm如何处理类别特征?
- 鸿蒙tv文件管理,手机如何推送文件到电视,三款TV投屏软件亲测推荐!
热门文章
- linux将压缩文件导入,[转载]通过vmware光驱把window上压缩文件导入到虚拟机中linux...
- 计算机学院学生划分哪些专业,计算机科学与工程学院2020年大类招生学生专业分流工作实施方案...
- 学习python路中的小栗子(函数篇)
- __attribute__ 详解 1
- 第1章会计:用于决策的信息
- STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告)
- boost库之正则匹配
- 中国联通自建内部商城 颠覆企业采购老传统
- DBG------破解小榕的字典UltraDict
- PON无源光网络的接入技术-EPON和GPON特点