diff --git a/server/web3service/controllers/erc20.js b/server/web3service/controllers/erc20.js index a7d1b22..4635a1d 100644 --- a/server/web3service/controllers/erc20.js +++ b/server/web3service/controllers/erc20.js @@ -2,12 +2,22 @@ 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; +} + 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(ERC20_ABI, tokenContractAddress); + const tokenContract = new web3.eth.Contract(await getErc20Abil(), tokenContractAddress); const web3 = new Web3(rpcUrl); tokenContract.methods.balanceOf(accountAddress).call((error, balance) => {