This commit is contained in:
aozhiwei 2024-09-04 17:03:49 +08:00
parent bdcb136dac
commit 9063ed8586
2 changed files with 19 additions and 16 deletions

View File

@ -1,32 +1,24 @@
const app = require('j7/app');
const utils = require('j7/utils');
const Web3 = require('web3');
let erc20abi = null;
async function getErc20Abil() {
if (erc20abi) {
const json = utils.readJsonFromFile(jsonUrl);
erc20abi = json.abi;
}
return erc20abi;
}
const metaFactory = require('../metadata/factory');
async function getBalance(session) {
const tokenContractAddress = session.request('token_address'); // ERC20代币合约地址
const accountAddress = session.request('account_address'); // 用户地址
const rpcUrl = session.request('rpc_url');
const tokenContract = new web3.eth.Contract(await getErc20Abil(), tokenContractAddress);
const web3 = new Web3(rpcUrl);
const tokenContract = new web3.eth.Contract(metaFactory.getErc20Abil(), tokenContractAddress);
tokenContract.methods.balanceOf(accountAddress).call((error, balance) => {
if (error) {
console.error('获取余额时出错:', error);
tokenContract.methods.balanceOf(accountAddress).call((err, balance) => {
if (err) {
session.rspErr(1, err);
return;
}
console.log('余额:', balance);
session.rspOk();
session.rspData({
'balance': balance
});
});
}

View File

@ -6,6 +6,7 @@ const metaClassList = [];
const metaClasses = {};
let web3ServiceConf = null;
let configDir = './config/';
let erc20abi = null;
function registerMetaClass(fileName, primKey, wrapClass) {
const metaClass = {
@ -100,6 +101,9 @@ async function init() {
'',
'Web3Service'
);
{
erc20abi = utils.readJsonFromFile(configDir + 'erc20abi.json');
}
load();
}
@ -137,6 +141,12 @@ function getWeb3ServiceConf() {
return web3ServiceConf;
}
function getErc20Abil() {
if (erc20abi) {
}
return erc20abi.abi;
}
exports.init = init;
exports.getMetaByKey = getMetaByKey;
@ -144,3 +154,4 @@ exports.traverseMetaList = traverseMetaList;
exports.callMetaStatic = callMetaStatic;
exports.getWeb3ServiceConf = getWeb3ServiceConf;
exports.getErc20Abil = getErc20Abil;