web3js实现通过合约方法进行代币交易查询余额
web3js+metamasksdk通过合同实现交易,具体参数根据合约需要,数量一般为16进制。这里使用MetaMask注入的etherum。
·
web3js
这里使用MetaMask注入的etherum
import MetaMaskSDK from '@metamask/sdk';
import Web3 from 'web3';
let option = {
injectProvider: false,
communicationLayerPreference: 'webrtc',
preferDesktop: true
}
const MMSDK = new MetaMaskSDK(option);
const ethereum = MMSDK.getProvider();
let web3 = new Web3(ethereum);
获取合同
getContract(abi, address) {
if (!web3) return false;
let contract = new web3.eth.Contract(abi, address);
return contract
}
交易
通过合同实现交易,具体参数根据合约需要,数量一般为16进制
async sendTransactionByContract(param) {
const myContract = this.getContract(param.abi, param.address);
if (!myContract) return;
return new Promise((resolve, reject) => {
myContract.methods[param.funcName](param.amount ? this.toHex(param.amount) : null).send({
from: param.from
}).then(res => {
resolve(res)
}).catch(err => {
reject(err);
showToast(err)
})
})
}
获取余额等
通过合同查询余额等
async queryTransactionByContract(param) {
const myContract = this.getContract(param.abi, param.address);
if (!myContract) return;
let ret = await myContract.methods[param.funcName](param.from).call()
return ret;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)