首頁 > web前端 > js教程 > 主體

淺析EOS區塊鏈柚子錢包前端插件scatter開發(分享)

奋力向前
發布: 2021-09-14 11:35:52
轉載
2517 人瀏覽過

之前的文章《一招教你使用Node.js中iis部署運行node(附程式碼)》中,跟大家介紹怎麼使用iis部署運行node。以下這篇文章給大家了解EOS區塊鏈柚子皮夾前端插件scatter開發,夥伴們來看看。

淺析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中文網其他相關文章!

相關標籤:
來源:chuchur.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!