前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于区块链柚子(EOS)钱包前端插件 scatter开发

基于区块链柚子(EOS)钱包前端插件 scatter开发

作者头像
chuchur
发布2022-10-25 14:36:58
5100
发布2022-10-25 14:36:58
举报
文章被收录于专栏:禅境花园

基于区块链柚子(EOS)钱包前端插件 scatter

安装和使用
代码语言:javascript
复制
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());
网络链
代码语言:javascript
复制
// 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. 生成秘钥对,一键生成私钥和公钥
  3. 新建测试账号,需要填入刚才的公钥,账号名是 z-a,1-5 长度 12 位组合
  4. 充值,账号建立成功之后莫有钱, 可以先充值 100 块.测试的时候省着点用
  5. 测试链上的账号建好之后,打开 scatter---身份---新建,选择刚才建立的 network => jungle2,然后选择对应的账号. 点导入---保存

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

创建 scatter
代码语言:javascript
复制
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"
    );
  }
});
授权和取消授权
代码语言:javascript
复制
//授权
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;
});
转账交易部分
代码语言:javascript
复制
//取币种相关信息
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,
});
交互部分
代码语言:javascript
复制
// 获取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);
    });

当然 EOSAPI 非常多,但是对于前端而言,以上足够开发一个线上赌博游戏了.

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

[完]?

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/02/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基于区块链柚子(EOS)钱包前端插件 scatter
    • 安装和使用
      • 网络链
        • 调试和配置
          • 创建 scatter
            • 授权和取消授权
              • 转账交易部分
                • 交互部分
                相关产品与服务
                访问管理
                访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档