网易首页 > 网易号 > 正文 申请入驻

如何使用 gear-js SDK

0
分享至

具体代码请参考:https://github.com/GearFans/example/blob/main/src/metadata.ts

gear-js 是 Gear 的 js SDK,通过这个工具我们可以连接节点,上传合约,发送交易,还有解析 Gear 合约等。

我们经常使用的 https://idea.gear-tech.io/ 最核心的功能就是由 gear-js 提供支持的。

现在我们以 erc20 合约为例子,介绍 gear-js。

如何安装 gear-js

npm install @gear-js/api
或者
yarn add @gear-js/api

开始

import { GearApi } from '@gear-js/api'

连接到 rpc 节点,并获取节点信息

在网站左侧可以看到切换 rpc 连接,并且可以看到最新的区块信息。通过 nodeName subscribeToNewBlocks 就可以轻松做到。

const rpc = "wss://rpc-node.gear-tech.io"
const gearApi = await GearApi.create({
providerAddress: rpc
})
const chain = await gearApi.chain()
const nodeName = await gearApi.nodeName()
const nodeVersion = await gearApi.nodeVersion()
console.log(`You are connected to chain ${chain} using ${nodeName} v${nodeVersion}`)
// 获取最新块信息
await gearApi.gearEvents.subscribeToNewBlocks((header) => {
console.log(`New block with number: ${header.number.toNumber()} and hash: ${header.hash.toHex()}`)
})

具体代码请参考:https://github.com/GearFans/example/blob/main/src/connect.ts

获取 wasm 合约的元数据

https://idea.gear-tech.io/ 很重要的功能是上传合约,我们先考虑如何解析合约。

import { getWasmMetadata } from '@gear-js/api'
const fileBuffer = fs.readFileSync('path/to/program.meta.wasm')
const meta = await getWasmMetadata(fileBuffer)
console.log({meta})

获取账户

我们上传合约、发送信息的前提,是我们要有 1 个账户。

// 创建一个新的 keyring
const { keyring, json } = await GearKeyring.create('keyringName')
// 从 JSON 文件得到 keyring
const jsonKeyring = fs.readFileSync('path/to/keyring.json').toString()
const keyring = GearKeyring.fromJson(jsonKeyring)

上传合约

有了账户,我们上传合约,initPayload 是非常重要的参数,发送成功后,我们会获得 programId。

const code = fs.readFileSync('path/to/program.wasm')
const somePayload = {
name: "GearFans Token",
symbol: "GFT"
}
const uploadProgram = {
code,
gasLimit: 1_000_000,
value: 0,
initPayload: somePayload
};
const programId = await gearApi.program.submit(uploadProgram, meta)
await gearApi.program.signAndSend(keyring, (data) => {
console.log(data)
});

发送消息

mint

Gear 调用任何方法,都需要发送信息。我们用 erc20 的 mint 方法作为例子。
const payload = {
"mint": {
"account": "5CyREBErNFhogptd92dtC8ybuoUczVYh2ijvdhTpS2PJGeq7",
"amount": "1000",
}
}
const message = {
destination: programId, // programId
payload: payload,
gasLimit: 1_000_000,
value: 0
}
await gearApi.message.submit(message, meta)
await gearApi.message.signAndSend(keyring, (data) => {
console.log(data)
})

balanceOf 如何调用 balanceOf,我们修改 payload 就可以。

const payload = {
"BalanceOf": "5CyREBErNFhogptd92dtC8ybuoUczVYh2ijvdhTpS2PJGeq7"
}

具体代码请参考: https://github.com/GearFans/example/blob/main/src/mint.ts https://github.com/GearFans/example/blob/main/src/balanceof.ts

获取事件

发送完事件后,我们要接受事件,查看结果。 Gear 的事件非常多,我们重点关注 MessageDispatched、Log。

const rpc = "wss://rpc-node.gear-tech.io"
const gearApi = await GearApi.create({
providerAddress: rpc
})
gearApi.allEvents((events) => {
events.forEach(async ({
event: { data, method }
}) => {
if (method == "MessageDispatched") {}
if (method == "Log") {}
})
})

获得 log 后,我们要继续解析 log 内的数据。

let decoded = CreateType.decode(type, payload, meta)
console.log(JSON.stringify(decoded))

具体代码请参考:https://github.com/GearFans/example/blob/main/src/event.ts

关于 GearFans

Gear 是波卡生态的计算组件,GearFans 是 Gear 爱好者社区。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
雷霆逆转,欧文冲突,东契齐骗犯规,独行侠输球罪人散步沮丧不该

雷霆逆转,欧文冲突,东契齐骗犯规,独行侠输球罪人散步沮丧不该

东球弟
2024-05-14 11:42:04
张韶涵,实力歌手有必要长成这样吗?造型团队没有瓶颈期吗?

张韶涵,实力歌手有必要长成这样吗?造型团队没有瓶颈期吗?

阿芒娱乐说
2024-05-13 17:23:47
台媒曝光赖清德就职演讲内容:将对大陆释放善意,可能提敏感要求

台媒曝光赖清德就职演讲内容:将对大陆释放善意,可能提敏感要求

陈菲副教授
2024-05-13 18:00:52
老板招聘程序员:“一个星期不能上手项目,你自己走且没工资!”

老板招聘程序员:“一个星期不能上手项目,你自己走且没工资!”

程序员古耕
2024-05-12 17:21:27
疑似理想M系车型曝光 SUV版MEGA?或命名:M7、M8

疑似理想M系车型曝光 SUV版MEGA?或命名:M7、M8

车见万宜
2024-05-13 19:47:10
网友发现冯提莫的秘密,户外直播永远要穿着它,里面构造有秘密

网友发现冯提莫的秘密,户外直播永远要穿着它,里面构造有秘密

新游戏大妹子
2024-05-14 12:47:30
用事实说话,布朗尼体测数据曝光行情大涨,同队核心则跌至首轮末

用事实说话,布朗尼体测数据曝光行情大涨,同队核心则跌至首轮末

拾叁back
2024-05-14 13:48:44
《我的阿勒泰》能爆火,于适功不可没,内娱的审美终于阳刚了!

《我的阿勒泰》能爆火,于适功不可没,内娱的审美终于阳刚了!

阿芒娱乐说
2024-05-14 00:50:11
美国报价1亿美金买一克月壤,法国人提出反对,我们怎么办?

美国报价1亿美金买一克月壤,法国人提出反对,我们怎么办?

三农老历
2024-05-14 11:35:24
外贸订单去哪了?低中高端市场全面崩溃,未来只能依赖国内消费?

外贸订单去哪了?低中高端市场全面崩溃,未来只能依赖国内消费?

庞明说财经
2024-05-11 11:15:26
清华大才女被佛祖托梦,此后身上出现一堆怪事,科学难解释

清华大才女被佛祖托梦,此后身上出现一堆怪事,科学难解释

古书记史
2024-05-12 18:55:02
我54岁包工头,她35岁寡妇,洞房夜那晚她跪下来求我

我54岁包工头,她35岁寡妇,洞房夜那晚她跪下来求我

小月文史
2024-05-07 18:03:10
最高3880元,两场主场门票卖光,辽宁男篮能赚多少钱?

最高3880元,两场主场门票卖光,辽宁男篮能赚多少钱?

东球弟
2024-05-14 11:26:14
A级片中的顶峰之作,场面逼真惨烈!点开就看,全程毫无尿点

A级片中的顶峰之作,场面逼真惨烈!点开就看,全程毫无尿点

曼妙观
2024-05-12 12:56:42
“靖康之耻”有多虐心?皇帝生母每日接客超百人,公主肛裂而死

“靖康之耻”有多虐心?皇帝生母每日接客超百人,公主肛裂而死

阿胡
2024-03-28 15:30:23
40岁辣妈之蜜桃臀

40岁辣妈之蜜桃臀

娱乐八卦木木子
2024-05-09 04:13:09
被嘲讽土味俗气,从刀郎到海来阿木,他们真的低人一等吗?

被嘲讽土味俗气,从刀郎到海来阿木,他们真的低人一等吗?

不八卦会死星人
2024-05-13 13:53:00
孙艺珍挺大肚高调复工!怀孕四个月终于有孕态,穿白裙大肚子明显

孙艺珍挺大肚高调复工!怀孕四个月终于有孕态,穿白裙大肚子明显

影苏爱时尚
2024-05-12 12:35:02
江青和王洪文合影照,两人在一起笑容满面,关系紧密

江青和王洪文合影照,两人在一起笑容满面,关系紧密

历史控
2024-05-04 23:54:43
莎朗·斯通,情况不妙

莎朗·斯通,情况不妙

环球时报国际
2024-05-12 13:50:51
2024-05-14 14:22:44
GearFans
GearFans
GearFans
46文章数 20关注度
往期回顾 全部

科技要闻

OpenAI再压谷歌,最强模型GPT-4o免费发布

头条要闻

美媒:以色列正在面对被国际社会孤立的真正后果

头条要闻

美媒:以色列正在面对被国际社会孤立的真正后果

体育要闻

戈登,这次我能拿10分了吗?

娱乐要闻

《歌手》引爆全网,众多歌手请战!

财经要闻

日元狂贬!日本央行终于出手

汽车要闻

不到十万纯电SUV 比亚迪元UP主打一个卷

态度原创

本地
手机
健康
房产
亲子

本地新闻

云游中国|哪吒小镇,潮玩新地标!

手机要闻

官方试探?苹果小折叠屏新机谍照曝光 外屏超大

在中国,到底哪些人在吃“伟哥”?

房产要闻

最新,海口丁村城市更新又有大动作!

亲子要闻

倒计时!婴儿观察训练模块最后5席

无障碍浏览 进入关怀版