From 3e8908628f783a38d3b60d310ff8c0433df74cbd Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 26 Jul 2024 10:01:04 +0800 Subject: [PATCH] 1 --- server/web3sign/controllers/recharge.js | 54 +++++++++++++++++++------ 1 file changed, 42 insertions(+), 12 deletions(-) diff --git a/server/web3sign/controllers/recharge.js b/server/web3sign/controllers/recharge.js index ab16dc9..82e1b85 100644 --- a/server/web3sign/controllers/recharge.js +++ b/server/web3sign/controllers/recharge.js @@ -2,6 +2,7 @@ const app = require('j7/app'); const utils = require('j7/utils'); const bcutils = require('j7/bcutils'); const bcconst = require('common/bcconst'); +const bccontract = require('common/contract'); const metaFactory = require('../metadata/factory'); const serviceFactory = require('../services/factory'); @@ -33,29 +34,58 @@ async function recharge(session) { return; } } - const contractMeta = bc.getContractByName(currencyName); - if (!contractMeta) { - session.rspErr(500, 'currency meta not found'); - return; - } - console.log(contractMeta); - if (contractMeta['type'] != 'erc20') { - session.rspErr(500, 'currency meta type error'); - return; - } const calls = []; { + const contractMeta = bc.getContractByName(currencyName); + if (!contractMeta) { + session.rspErr(500, 'currency meta not found'); + return; + } + console.log(contractMeta); + if (contractMeta['type'] != 'erc20') { + session.rspErr(500, 'currency meta type error'); + return; + } + const instance = bc.getInstanceByName(currencyName); if (!instance) { session.rspErr(500, 'currency error'); return; } - let data = instance.methods.approve - ( + let data = instance.methods.approve( spender, value).encodeABI(); + calls.push({ + 'trans_id' : '', + 'trans_req': { + 'to': bcutils.toNormalAddress(contractMeta['address']), + 'data': data + } + }); + } + { + const contractMeta = bc.getContractByName(bccontract.GameItemMall_INSTANCE_NAME); + if (!contractMeta) { + session.rspErr(500, 'gamemall meta not found'); + return; + } + const instance = bc.getInstanceByName(bccontract.GameItemMall_INSTANCE_NAME); + if (!instance) { + session.rspErr(500, 'gamemall error'); + return; + } + let data = instance.methods.buy( + spender, + value).encodeABI(); + calls.push({ + 'trans_id' : '', + 'trans_req': { + 'to': bcutils.toNormalAddress(contractMeta['address']), + 'data': data + } + }); } session.rspData({