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;
}
相关推荐
Zayn10 分钟前
JavaScript 小数精度问题
前端·javascript
励志不掉头发的内向程序员13 分钟前
STL库——string(类模拟实现)
开发语言·c++
Maxkim15 分钟前
🐳 前端工程师的后端小实验:Docker + Sequelize 玩转 MySQL API 🚀
javascript·后端
王廷胡_白嫖帝16 分钟前
Qt文件压缩工具项目开发教程
java·开发语言·qt
110546540128 分钟前
35、自主移动机器人 (AMR) 调度模拟 (电子厂) - /物流与仓储组件/amr-scheduling-electronics
前端·javascript
张飞洪36 分钟前
C# 13 与 .NET 9 跨平台开发实战:基于.NET 9 与 EF Core 9 的现代网站与服务开发
开发语言·c#·.net
dingzd9537 分钟前
利用加密技术保障区块链安全
安全·web3·区块链·facebook·tiktok·instagram·clonbrowser
郝学胜-神的一滴41 分钟前
使用C++11改进工厂方法模式:支持运行时配置的增强实现
开发语言·c++·程序人生·设计模式
Aurora01031 小时前
树型结构,动态计算-实现表单合并【行、列】
javascript
我是场1 小时前
Android14内核调试 - boot & vendor_boot
java·开发语言·spring boot