matlab找数据的转账点,nodejs开发EOS转账服务的两种方案
第一种,使用eosjs开发,适用于用户输入私钥方式,不安全,易造成私钥泄露。
const rpcUrl = 'http://jungle2.cryptolions.io:80'
const { Api, JsonRpc, RpcError, JsSignatureProvider } = require('eosjs');
const ecc = require('eosjs-ecc');
const fetch = require('node-fetch');
const { TextDecoder, TextEncoder } = require('text-encoding');
const rpc = new JsonRpc(rpcUrl, { fetch });
//转账操作 转账到账户accountName 'eosaccountb2';转账数额quantity '1.1234 EOS'
async function transfer(accountName,quantity) {
let signatureProvider = new JsSignatureProvider([pkeys[0].privateKey]);
let api = new Api({ rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });
let result = await api.transact({
actions: [{
account: 'eosio.token',
name: 'transfer',
authorization: [{
actor: pkeys[0].actor,
permission: 'active',
}],
data: {
from: pkeys[0].actor,
to: accountName,//提现地址
quantity: quantity, //提现数量
memo: '',
},
}]
}, {
blocksBehind: 3,
expireSeconds: 30,
});
console.dir(result);
};
第二种,使用nodeos api+wallet api开发,适合用于公共账户给不同用户转账。相当于用wallet钱包服务来做密钥管理,隐藏了私钥,代码中只需提供公钥和钱包服务地址即可。
async function transfer() {
try {
let actor = "eosaccountaa"
let transferTo = "eosaccountbb"
let quantity = "1.1234 EOS"
let memo = "hi heere"
let blocksBehind = 3
let expireSeconds = 100
let info = await rpc.get_info();
if (info != null && info.chain_id != null && info.head_block_num != null) {
let chain_id = info.chain_id;
let head_block_num = info.head_block_num - blocksBehind;
let block = await get_block(head_block_num);
if (block != null && block.ref_block_prefix != null && block.timestamp != null) {
let data = await abi_json_to_bin(actor, transferTo, quantity, memo)
if (data != null) {
let transactions = {
"max_net_usage_words": 0,
"max_cpu_usage_ms": 0,
"delay_sec": 0,
"context_free_actions": [],
"actions": [{
"account": "eosio.token",
"name": "transfer",
"authorization": [{
"actor": actor,
"permission": "active"
}],
"data": data
}],
"transaction_extensions": [],
"expiration": ser.timePointSecToDate(ser.dateToTimePointSec(block.timestamp) + expireSeconds),
"ref_block_num": block.block_num & 0xffff,
"ref_block_prefix": block.ref_block_prefix
};
let signTransaction = await sign_transaction(transactions, ["EOS61VncKc7P8MhKzz8K7s3kAeNxFsp5ZQGoVFbLjRh1NVR1B6D9Z"], chain_id);
if (signTransaction != null && signTransaction.signatures != null) {
var transaction_detail = await push_transaction(transactions, signTransaction.signatures);
console.log('push_transaction=transaction_id==' + transaction_detail.transaction_id);
}
}
}
}
} catch (e) {
console.log(e)
}
}
matlab找数据的转账点,nodejs开发EOS转账服务的两种方案相关推荐
- 解决Android Studio等开发软件出现更新TKK失败的两种方案
解决Android Studio等开发软件出现更新TKK失败的两种方案 方案一 配置hosts 1. 配置域名与IP 2.扫描国内可用的IP 方案二 替换翻译引擎 百度翻译引擎 在Android St ...
- Wordpress开发 - 获取作者头像的两种方法
写在前面 今天又被一个头像坑搞惨了,一般我们获取作者的信息是都需要在循环判断中才可以使用的!比如获取作者名称 <?php the_author(); ?> .如果没有在 <?php ...
- 【Win 10 应用开发】文件读写的三种方案
本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧--事无定法,灵活运用者为上. OK,咱们开始吧 ...
- golang 开发 Struct 转换成 map 两种方式比较
原文链接:https://www.jianshu.com/p/81c4304f6d1b 最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接 ...
- Go开发Struct转换成map两种方式比较
最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接对struct结构进行操作的方法,有部分API是通过map进行数据库相关操作,那么就需要 ...
- Servlet 开发【07】Servlet两种跳转
回顾: 关于跳转之前就强调过有两种: 1. 客户端跳转: 地址栏跳转之后改变,而且无法传递request范围的属性,是在所有的操作执行完毕之后才发生跳转的操作,语法:request.sendRedir ...
- unity 2D游戏开发 制作帧动画的两种方法
本小主在这里给大家分享一下unity 2D游戏开发中制作帧动画的两种方法. 比较简单,一学即会. 方法一: 是用代码控制: 先创建一个2D工程.导入图片资源,并设置texture的texture ty ...
- SAP EWM 更改过账日期(手动、开发两种方案)
对于EWM手动进行过账日期更改,目前大致有两种实现方法: 第一种,对于卡在ECC-SMQ2中的Inbound Queue而言,可以手动去改/SPE/CL_IBDLV_CONTROL这个类去实现. 第二 ...
- 一个基于nodejs开发的微服务脚手架应用,架构和CRM WebUI很像
看我画的时序图: 块状图: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
最新文章
- 2017清华本科生特等奖得主出炉,AI学霸乔明达获奖
- 域控服务器发生w32time错误
- NB-IoT这块热豆腐公认可口 但勿太心急
- 网络传输为什么要序列化_企业为什么要选择网络营销外包
- @ConfigurationProperties注解的使用与@Value的使用
- 使用memcache缓存
- 加密安装Kli Linux
- SQLite多线程使用总结
- 密码学专题 OpenSSL中SSL相关指令
- 用RDLC报表(一)
- 江苏大学考研885程序设计 - 填空选择知识点
- STM32 学习周记
- plc编程和python的联系_Python与三菱PLC通信
- Python如何开发一款连连看脚本,第一必须是我。
- Java中serialVersionUID作用
- 想不想修真鸿蒙秘术,想不想修真鸿蒙秘诀怎么得 揭开想不想修真秘诀真面目...
- java推送叮叮消息,叮叮叮!请及时签收入门学习Java导航路线
- 附录三 虚拟机的使用
- 把数组里的数组合全部列出 (递归法)
- 设计一个形状类(接口)Shape,方法:求周长和求面积形状类(接口)的子类(实现类):
热门文章
- cocos2d-x CCScrollView和CCTableView的使用(转载)
- Unity: .NET下的依赖注入容器
- 用神经网络分类矩阵和矩阵的转置
- android 启动服务权限,android – 当我尝试启动服务时权限被拒绝
- 第6章-一阶多智体系统一致性-->6.2 离散时间多智能体系统一致性
- PyTorch max()函数取最大值
- 1.7 开发集和测试集的大小-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- 3.2 为超参数选择合适的范围-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 第六章 6.1 6.2 无限脉冲响应滤波器
- Android学习笔记:ScrollView卷轴视图