30 lines
836 B
JavaScript
30 lines
836 B
JavaScript
const app = require('j7/app');
|
|
const utils = require('j7/utils');
|
|
const Web3 = require('web3');
|
|
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 web3 = new Web3(rpcUrl);
|
|
const tokenContract = new web3.eth.Contract(metaFactory.getErc20Abil(), tokenContractAddress);
|
|
|
|
tokenContract.methods.balanceOf(accountAddress).call((err, balance) => {
|
|
if (err) {
|
|
session.rspErr(1, err);
|
|
return;
|
|
}
|
|
session.rspData({
|
|
'balance': balance
|
|
});
|
|
});
|
|
}
|
|
|
|
function init() {
|
|
app.registerHandler('Erc20', 'getBalance', getBalance);
|
|
}
|
|
|
|
exports.init = init;
|