新手教程 如果你想要在测试网上发布合约,请看过来,少踩一个大坑!(连接第三方节点)

pengpengpemg · December 20, 2018 · Last by strahe replied at December 21, 2018 · 680 hits

在通过eosjs在测试网发布合约的时候我踩过一个大坑,别问我为什么不用cleos,环境坑的要死,把我本地测试节点都弄炸了,看下面: ```const Eos = require('eosjs'); var http = require('http'); var url = require('url'); var express = require('express'); const ecc = require('eosjs-ecc'); fs = require('fs'); var app = express();

const home="你的账户名";

const httpEndpoint = 'http://39.108.231.157:30065//麒麟测试网的节点'; const chainId = '5fff1dae8dc8e2fc4d5b23b2c7665c97f9e9d8edf2b6485a86ba311c25639191';//麒麟创世节点 const key = 'xxx';//你的私钥,active的,

const config = { // private keys used to request net keyProvider: [key], // 配置私钥字符串

httpEndpoint: httpEndpoint, // mainNet bp endpoint chainId: chainId, // 通过cleos get info可以获取chainId expireInSeconds: 1000, broadcast: true, debug: false, sign: true, authorization: null // 该参数用于在多签名情况下,识别签名帐号与权限,格式如:account@permission // transactionHeaders: (expireInSeconds, callback) => { // callback(null/error/, headers) //手动设置交易记录头,该方法中的callback回调函数每次交易都会被调用 // }, };

const eos = Eos(config);

module.exports = { home, eos, key };

app.get('/',function(req,res) { wasm = fs.readFileSync(token.wasm) ;//导入token.wasm文件,注意这里是相对路经,你也可以用绝对路径 abi = fs.readFileSync(token.abi);//同上

eos.setcode({account:home,vmtype: 0, vmversion:0,code: wasm}, {authorization: [${home}@active]}) //就是这步,卡了我三天,如果不加后面的授权,那你一直会报没有授权,哪怕你上面配置了,加了授权,那前面得加大括号,里面不能只传参数,还要写形参,也就是account vmtype vmversion code,这些参数名我找了一整天,中间两个是版本相关的,无所谓,第一个是你的账户名,最上面的时候配置了

eos.setabi({account:home, abi:JSON.parse(abi)},{authorization: [${home}@active]}) //同上,一样的问题,参数名找了好久,这里需要注意一个问题,setabi和setcode必须都成功,这里如果出现一个成功一个不成功,那是绝对不行的,亲测!!!因为我是在后面加了 .then(=>rs......打印出来的,当时只打印了一条,结果只成功一个, }); app.listen(7777);//这个是你可以通过浏览器弄,涉及业务我懒得改了

最后:创建账户我就不在这里具体说了https://kylin.eosx.io/tools/account/create
          里面自己充eos买ram买cpu那些
          node和eosjs模块自己上网补习,网上能搜到的我就不写了

分享一个eosjs的api网址:https://www.jianshu.com/p/30e933df1600             虽然没有解释,但是懂一些之后还是能看懂
如果侵权,请联系删除!      不过代码都是我自己写的,应该不会
共收到 1 条回复

赞, 建议格式优化下就更好了.

代码可以用 ``` 符号

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up