diff --git a/server/web3sign/controllers/erc.js b/server/web3sign/controllers/erc.js new file mode 100644 index 0000000..d2a7ab3 --- /dev/null +++ b/server/web3sign/controllers/erc.js @@ -0,0 +1,45 @@ +const app = require('j7/app'); +const utils = require('j7/utils'); +const bcutils = require('j7/bcutils'); +const bcconst = require('common/bcconst'); +const metaFactory = require('../metadata/factory'); +const serviceFactory = require('../services/factory'); + +async function approveErc20(session) { + try { + const accountAddress = bcutils.toNormalAddress(session.request('account_address')); + const netId = session.request('net_id'); + const spender = bcutils.toNormalAddress(session.request('spender')); + const value = session.request('value'); + const bc = serviceFactory.create('BlockChain'); + { + const ret = await bc.init(netId); + if (!ret) { + session.rspErr(500, 'net_id error'); + return; + } + } + { + if (!bc.isValidAddress(accountAddress)) { + session.rspErr(500, 'account_address error'); + return; + } + } + { + if (!bc.isValidAddress(spender)) { + session.rspErr(500, 'spender error'); + return; + } + } + } catch (e) { + session.rspErr(1, 1); + utils.safeDumpErrStack(e); + console.log(e); + } +} + +function init() { + app.registerHandler('BcService', 'approveErc20', approveErc20); +} + +exports.init = init; diff --git a/server/web3sign/controllers/factory.js b/server/web3sign/controllers/factory.js index 94a81f8..df3f67a 100644 --- a/server/web3sign/controllers/factory.js +++ b/server/web3sign/controllers/factory.js @@ -9,6 +9,7 @@ async function init() { add('activate721nft'); add('nftunlock'); add('minthero'); + add('erc20'); } exports.init = init;