web3js实现通过合约方法进行代币交易查询余额

web3js

这里使用MetaMask注入的etherum

js 复制代码
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);

获取合同

js 复制代码
getContract(abi, address) {
    if (!web3) return false;
    let contract = new web3.eth.Contract(abi, address);
    return contract
  }

交易

通过合同实现交易,具体参数根据合约需要,数量一般为16进制

js 复制代码
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)
      })
    })
  }

获取余额等

通过合同查询余额等

js 复制代码
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;
}
相关推荐
Aliex_git2 分钟前
Vue2 - Watch 侦听器源码理解
前端·javascript·vue.js·笔记·学习
cike_y2 分钟前
Spring5入门&IOC容器
java·开发语言·spring·jdk·ioc·jdk1.8
你疯了抱抱我3 分钟前
【QQ】空间说说批量删除脚本(不用任何额外插件,打开F12控制台即可使用)
开发语言·前端·javascript
鹏北海9 分钟前
Single-SPA 学习总结
前端·javascript·微服务
沐知全栈开发21 分钟前
Web 词汇表
开发语言
程芯带你刷C语言简单算法题22 分钟前
Day37~求组合数
c语言·开发语言·学习·算法·c
程序员-周李斌24 分钟前
transmittable-thread-local[线程池跨线程值传递]
java·开发语言·算法·散列表
范纹杉想快点毕业26 分钟前
入门工程师指南:基于CRC校验的通信协议底层C语言实现
c语言·开发语言·mongodb
_码力全开_28 分钟前
第一章 html5 第一节 HTML5入门基础
前端·javascript·css·html·css3·html5
亓才孓30 分钟前
【homework1】彩票奖金问题(苛刻条件变松弛条件需要避免条件重复)
java·开发语言