diff --git a/server/web3service/controllers/erc20.js b/server/web3service/controllers/erc20.js index 4635a1d..bec69c6 100644 --- a/server/web3service/controllers/erc20.js +++ b/server/web3service/controllers/erc20.js @@ -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 + }); }); } diff --git a/server/web3service/metadata/factory.js b/server/web3service/metadata/factory.js index bfbf987..e356ee5 100644 --- a/server/web3service/metadata/factory.js +++ b/server/web3service/metadata/factory.js @@ -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;