这篇文章主要为大家展示了“基于区块链柚子钱包前端插件scatter如何使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“基于区块链柚子钱包前端插件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);
});
以上是“基于区块链柚子钱包前端插件scatter如何使用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!