1
This commit is contained in:
parent
f0a4cd7a17
commit
8d8d639990
@ -10,6 +10,7 @@ async function init() {
|
||||
add('nftunlock');
|
||||
add('minthero');
|
||||
add('erc');
|
||||
add('recharge');
|
||||
}
|
||||
|
||||
exports.init = init;
|
||||
|
75
server/web3sign/controllers/recharge.js
Normal file
75
server/web3sign/controllers/recharge.js
Normal file
@ -0,0 +1,75 @@
|
||||
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 recharge(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 currencyName = session.request('currency_name');
|
||||
const orderId = session.request('orderId');
|
||||
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;
|
||||
}
|
||||
}
|
||||
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 instance = bc.getInstanceByName(currencyName);
|
||||
if (!instance) {
|
||||
session.rspErr(500, 'currency error');
|
||||
return;
|
||||
}
|
||||
let data = instance.methods.approve
|
||||
(
|
||||
spender,
|
||||
value).encodeABI();
|
||||
|
||||
}
|
||||
|
||||
session.rspData({
|
||||
'calls' : calls,
|
||||
});
|
||||
} catch (e) {
|
||||
session.rspErr(1, 1);
|
||||
utils.safeDumpErrStack(e);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
app.registerHandler('BcService', 'recharge', recharge);
|
||||
}
|
||||
|
||||
exports.init = init;
|
Loading…
x
Reference in New Issue
Block a user