1
This commit is contained in:
parent
85d8995206
commit
430ae926a4
100
server/web3sign/controllers/benftmall_trans.js
Normal file
100
server/web3sign/controllers/benftmall_trans.js
Normal file
@ -0,0 +1,100 @@
|
||||
const app = require('j7/app');
|
||||
const utils = require('j7/utils');
|
||||
const bcutils = require('j7/bcutils');
|
||||
const bcconst = require('common/bcconst');
|
||||
const contract = require('common/contract');
|
||||
const serviceFactory = require('../services/factory');
|
||||
|
||||
async function buyPlanet(session) {
|
||||
try {
|
||||
const account = bcutils.toNormalAddress(session.request('account', ''));
|
||||
const netId = session.request('net_id');
|
||||
const price = session.request('price');
|
||||
const currencyName = session.request('currency_name');
|
||||
const ids = session.request('ids', '');
|
||||
const bc = serviceFactory.create('BlockChain');
|
||||
{
|
||||
const ret = await bc.init(netId);
|
||||
if (!ret) {
|
||||
session.rspErr(500, 'net_id error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
{
|
||||
if (!bc.isValidAddress(account)) {
|
||||
session.rspErr(500, 'account error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const currency = bc.getCurrencyAddressByName(currencyName);
|
||||
const userAddress = bc.getUserAddress();
|
||||
{
|
||||
if (!bc.isValidAddress(currency)) {
|
||||
session.rspErr(500, 'ceg error');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
const transModel = session.createModel('Transaction');
|
||||
const usedTokenIdModel = session.createModel('UsedTokenId');
|
||||
|
||||
const {err, seqId} = await transModel.add(account, session.requestToJson(), netId);
|
||||
if (err) {
|
||||
session.rspErr(500, 'server internal error');
|
||||
return;
|
||||
}
|
||||
|
||||
const nowTime = utils.getUtcTime();
|
||||
const transId = bcutils.genTransId
|
||||
(
|
||||
bcconst.BC_FUNC_COMMON,
|
||||
nowTime,
|
||||
seqId,
|
||||
[
|
||||
]
|
||||
);
|
||||
await transModel.update
|
||||
(
|
||||
seqId,
|
||||
[
|
||||
['trans_id', transId]
|
||||
]);
|
||||
const nonce = transId;
|
||||
const orderId = transId;
|
||||
const signature = await bc.soliditySha3Sign(
|
||||
account,
|
||||
orderId,
|
||||
currency,
|
||||
price,
|
||||
nowTime,
|
||||
nonce
|
||||
);
|
||||
|
||||
const rspParams = [
|
||||
orderId,
|
||||
currency,
|
||||
price,
|
||||
nowTime,
|
||||
nonce,
|
||||
signature
|
||||
];
|
||||
utils.arrayToStrings(rspParams);
|
||||
|
||||
session.rspData({
|
||||
'trans_id' : transId,
|
||||
'order_id': orderId,
|
||||
'params': rspParams
|
||||
});
|
||||
} catch (e) {
|
||||
session.rspErr(1, 1);
|
||||
utils.safeDumpErrStack(e);
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
function init() {
|
||||
app.registerHandler('BeNftMallTrans', 'buyPlanet', buyPlanet);
|
||||
}
|
||||
|
||||
exports.init = init;
|
@ -10,6 +10,7 @@ async function init() {
|
||||
add('activate721nft');
|
||||
add('game_item_mall');
|
||||
add('game_item_market');
|
||||
add('benftmall_trans');
|
||||
}
|
||||
|
||||
exports.init = init;
|
||||
|
Loading…
x
Reference in New Issue
Block a user