• 技术文章 >web前端 >js教程

    浅析EOS区块链柚子钱包前端插件scatter开发(分享)

    奋力向前奋力向前2021-09-14 11:35:52转载93

    之前的文章《一招教你使用Node.js中iis部署运行node(附代码)》中,给大家介绍怎么使用iis部署运行node。下面本篇文章给大家了解EOS区块链柚子钱包前端插件scatter开发,伙伴们来看看一下。

    基于区块链柚子(EOS)钱包前端插件scatter安装和使用

    安装和使用

    npm i scatterjs-core scatterjs-plugin-eosjs eosjs -D
    
    //main.js
    import ScatterJS from "scatterjs-core";
    import ScatterEOS from "scatterjs-plugin-eosjs";
    import Eos from "eosjs";
    ScatterJS.plugins(new ScatterEOS());

    网络链

    // EOS公链(正式环境)
    let main = {
      protocol: "https",
      blockchain: "eos",
      host: "nodes.get-scatter.com",
      port: 443,
      chainId: "aca376f206b8fc25a6ed44dbdc66547c36c6c33e3a119ffbeaef943642f0e906",
    };
    
    // 测试链 (就是用来测试的)
    let jungle2 = {
      protocol: "http",
      blockchain: "eos",
      host: "jungle2.cryptolions.io",
      port: 80,
      chainId: "e70aaab8997e1dfce58fbfac80cbbb8fecec7b99cf982a9444273cbc64c41473",
    };

    调试和配置

    翻墙下载scatter插件安装。

    1、打开scatter---setting--network---新建把jungle2的信息填到对应的位置,(取名随便取,jungle2)--保存

    2、生成秘钥对,一键生成私钥和公钥

    生成秘钥对的地址https://eostea.github.io/eos-generate-key/

    3、新建测试账号,需要填入刚才的公钥,账号名是z-a,1-5长度 12 位组合

    新建测试账号的地址https://monitor.jungletestnet.io/#account

    4、充值,账号建立成功之后莫有钱, 可以先充值 100 块。测试的时候省着点用

    充值的地址http://monitor.jungletestnet.io/#faucet

    5、测试链上的账号建好之后,打开scatter---身份---新建,选择刚才建立的network => jungle2,然后选择对应的账号。点导入---保存

    这样scatter插件配置完毕。可以愉快的开发了。

    创建scatter

    ScatterJS.scatter.connect("app").then((connected) => {
      if (!connected) return false;
      let scatter = ScatterJS.scatter; //这里就是
      window.ScatterJS = null;
      window.scatter = null;
      //通过两种方式拿到eos 对象
      // this.eos = Eos({ httpEndpoint: '', signatureProvider: ScatterJS.scatter.eosHook(jungle2) });
      this.eos = scatter.eos(jungle2, Eos, { expireInSeconds: 60 });
      //如果授权成功,则可以拿到用户相关信息
      if (scatter.identity) {
        this.account = scatter.identity.accounts.find(
          (x) => x.blockchain === "eos"
        );
      }
    });

    授权和取消授权

    //授权
    const requiredFields = { accounts: [jungle2] };
    
    scatter
      .getIdentity(requiredFields)
      .then(() => {
        //分别拿到用户信息 和 eos 对象
        this.account = scatter.identity.accounts.find(
          (x) => x.blockchain === "eos"
        );
        this.eos = scatter.eos(jungle2, Eos, { expireInSeconds: 60 }, "https");
      })
      .catch((res) => {});
    
    //退出
    scatter.forgetIdentity().then((id) => {
      this.account = null;
      this.eos = null;
    });

    转账交易部分

    //取币种相关信息
    let config = {
      account: "xxx", //账号名称
      code: "eosio.token", //合约名称
      symbol: "ETH", //币种
    };
    eos.getCurrencyBalance(config).then((e) => {
      console.log(e);
    });
    
    //取用户相关信息
    eos.getAccount({ account_name: "xxx" }).then((res) => {
      // console.log(res)
      let totoal = res.core_liquid_balance; //余额
      let cpu = res.cpu_limit; //CPU
      let net = res.net_limit; //NET
    });
    
    //发起转账
    // eos.transfer('发送方帐号', '接收方帐号', '0.3000 DEV','memo', options, callback)
    
    eos
      .transfer(account.name, user, `${coin} EOS`, memo, transactionOptions)
      .then((trx) => {
        // That's it!
        console.log(`Transaction ID: ${trx.transaction_id}`);
        //有transaction_id 就代表转账成功了
      })
      .catch((res) => {});
    
    //还可以使用对象
    eos.transfer({
      from: "发送方帐号",
      to: "接收方帐号",
      quantity: "0.1000 DEV",
      memo: "备注",
      callback,
    });

    交互部分

    // 获取Table行数据
    eosjs.getTableRows({"scope":'合约名字', "code":'合约名字', "table":"game", "json": true},callback)
    
    //执行合约上的函数
    
    eos.contract("合约名字").then(actions => {       //actions随便起的变量名
        actions.test('hello', {                     //test是方法名, 'hello'是该actions合约test方法的参数
        	authorization: [{actor:'lilei'}]           //lilei是建立该合约的用户
        }).then(result => {
            console.log(result);
        });

    当然EOS的API 非常多地址:https://developers.eos.io/eosio-nodeos/v1.6.0/reference#get_block但是对于前端而言,以上足够开发一个线上赌博游戏了。

    至于说发代币啊,部署合约,抵押,竞拍,出售,购买,新建帐号这些都用不着,可以转给后端。

    【完】

    推荐学习:JS视频教程

    以上就是浅析EOS区块链柚子钱包前端插件scatter开发(分享)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:禅境花园,如有侵犯,请联系admin@php.cn删除
    专题推荐:js 前端
    上一篇:怎么用javascript实现文字滚动 下一篇:怎么用javascript设置时间格式
    线上培训班

    相关文章推荐

    • javascript函数有哪些• javascript怎么增加class• 你对javascript中的postMessage怎么用吗?• 写javascript用什么软件• 怎么用javascript实现文字滚动

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网