eosjs 连接nodeos 并实现转账

1 篇文章 0 订阅

最近编写eos智能合约需要做页面开发,简单得eosjs连接nodeos弄了好久都没好,最后弄了好长时间,看了好些文章才实现了一个简单得连接,至少可以转账了。希望对跟我一样的人有所帮助。

首先node安装

 

测试如下
C:\Users\gentlemen_yan>node -v
v10.13.0

eosjs安装

 

D:\code\work\eosjstest>npm install eosjs@beta node-fetch text-encoding eosjs-ecc
npm WARN deprecated text-encoding@0.7.0: no longer maintained
npm WARN deprecated text-encoding@0.6.4: no longer maintained
npm WARN saveError ENOENT: no such file or directory, open 'D:\code\work\eosjstest\package.json'
npm WARN enoent ENOENT: no such file or directory, open 'D:\code\work\eosjstest\package.json'
npm WARN eosjstest No description
npm WARN eosjstest No repository field.
npm WARN eosjstest No README data
npm WARN eosjstest No license field.

+ eosjs@20.0.0-beta2
+ node-fetch@2.3.0
+ text-encoding@0.7.0
+ eosjs-ecc@4.0.4
added 2 packages from 10 contributors and updated 3 packages in 4.163s

 

 

D:\code\work\eosjstest>node eostest.js
{ transaction_id:
   '253f4d3b9b1f34dde9a482646901774aaad95b14989824f4b765a99e92b31b47',
  processed:
   { id:
      '253f4d3b9b1f34dde9a482646901774aaad95b14989824f4b765a99e92b31b47',
     block_num: 3160790,
     block_time: '2018-11-27T14:38:10.500',
     producer_block_id: null,
     receipt:
      { status: 'executed', cpu_usage_us: 488, net_usage_words: 16 },
     elapsed: 488,
     net_usage: 128,
     scheduled: false,
     action_traces: [ [Object] ],
     except: null } }

D:\code\work\eosjstest>

eostest.js文件内容

// import Api from 'eosjs';

// import JsonRpc from 'eosjs';

// import RpcError from 'eosjs';

// import JsSignatureProvider from 'eosjs';

 

const { Api, JsonRpc, RpcError, JsSignatureProvider } = require('eosjs');

const fetch = require('node-fetch'); // node only; not needed in browsers

const { TextDecoder, TextEncoder } = require('text-encoding'); // node, IE11 and IE Edge Browsers

 

const defaultPrivateKey = "5K82FMzUgkMMhyrXxMwpytvwPHjbtib31vDxati6zFhHzvV5he9"; // useraaaaaaaa

const signatureProvider = new JsSignatureProvider([defaultPrivateKey]);

 

const rpc = new JsonRpc('http://127.0.0.1:8888', { fetch });

 

const api = new Api( {rpc, signatureProvider, textDecoder: new TextDecoder(), textEncoder: new TextEncoder() });


 

try {

(async () => {

const result = await api.transact({

actions: [{

account: 'eosio.token',

name: 'transfer',

authorization: [{

actor: 'yan1',

permission: 'advert',

}],

data: {

from: 'yan1',

to: 'yan2',

quantity: '0.1230 EOS',

memo: '',

},

}]

}, {

blocksBehind: 3,

expireSeconds: 30,

});

console.dir(result);

})();

} catch (e) {

console.log('\nCaught exception: ' + e);

if (e instanceof RpcError)

console.log(JSON.stringify(e.json, null, 2));

}

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要搭建本地以太坊私链并连接钱包实现转账,你需要按照以下步骤进行操作: 1. 安装以太坊客户端软件,比如 Geth、Parity、Quorum 等。 2. 创建私有网络,可以使用以下命令: ``` geth --datadir=./chaindata init ./genesis.json ``` 其中,`./chaindata` 是指定数据目录,`./genesis.json` 是指定创世区块文件。 3. 启动私有网络,可以使用以下命令: ``` geth --datadir=./chaindata --networkid=8888 --rpc --rpcaddr "0.0.0.0" --rpcport 8545 --rpcapi="eth,net,web3,personal" console ``` 其中,`--networkid` 是指定网络 ID,`--rpc` 是启用 JSON-RPC 接口,`--rpcaddr` 是指定 JSON-RPC 接口的 IP,`--rpcport` 是指定 JSON-RPC 接口的端口号,`--rpcapi` 是启用 JSON-RPC 接口的 API 列表。 4. 创建钱包地址,可以使用以下命令: ``` personal.newAccount("password") ``` 其中,`password` 是指定钱包密码。 5. 解锁钱包,可以使用以下命令: ``` personal.unlockAccount("address", "password", 0) ``` 其中,`address` 是指定钱包地址,`password` 是钱包密码,`0` 是指定解锁时间。 6. 发送转账交易,可以使用以下命令: ``` eth.sendTransaction({from:"from_address", to:"to_address", value: web3.toWei(1, "ether")}) ``` 其中,`from_address` 是发送方钱包地址,`to_address` 是接收方钱包地址,`1` 是转账金额,`ether` 是转账单位。 7. 确认交易状态,可以使用以下命令: ``` eth.getTransactionReceipt("transaction_hash") ``` 其中,`transaction_hash` 是指定交易哈希值。 以上是搭建本地以太坊私链并连接钱包实现转账的大致步骤,具体操作还需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值