1
This commit is contained in:
parent
4c3445e061
commit
05bdceb14a
@ -1,143 +0,0 @@
|
|||||||
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 activate721Nft(session) {
|
|
||||||
try {
|
|
||||||
const account = bcutils.toNormalAddress(session.request('account'));
|
|
||||||
const netId = session.request('net_id');
|
|
||||||
const tokenId = session.request('token_id');
|
|
||||||
const tokenType = session.request('token_type');
|
|
||||||
const itemUniId = session.request('item_uniid');
|
|
||||||
const itemId = session.request('item_id');
|
|
||||||
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 nftAddress = bc.getNftAddress(tokenType);
|
|
||||||
const userAddress = bc.getUserAddress();
|
|
||||||
const thisContractAddress = bc.getContractAddressByName('NFTLock');
|
|
||||||
const instance = bc.getInstanceByName('NFTLock');
|
|
||||||
|
|
||||||
const transModel = session.createModel('Transaction');
|
|
||||||
const usedTokenIdModel = session.createModel('UsedTokenId');
|
|
||||||
|
|
||||||
{
|
|
||||||
const itemMeta = metaFactory.getMetaByKey('Item', itemId);
|
|
||||||
if (!itemMeta) {
|
|
||||||
session.rspErr(101, 'item_id param error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (itemMeta.getNftType() != tokenType) {
|
|
||||||
session.rspErr(101, 'item_id param error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!(itemMeta.getNftType() == bcconst.BC_NFT_HERO ||
|
|
||||||
itemMeta.getNftType() == bcconst.BC_NFT_CHIP)) {
|
|
||||||
session.rspErr(101, 'token_type param error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
if (!nftAddress) {
|
|
||||||
session.rspErr(101, 'token_type param error2');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
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,
|
|
||||||
[
|
|
||||||
itemUniId,
|
|
||||||
itemId
|
|
||||||
]
|
|
||||||
);
|
|
||||||
await transModel.update
|
|
||||||
(
|
|
||||||
seqId,
|
|
||||||
[
|
|
||||||
['trans_id', transId]
|
|
||||||
]);
|
|
||||||
const nonce = transId;
|
|
||||||
const nftList = [
|
|
||||||
[
|
|
||||||
tokenId,
|
|
||||||
true
|
|
||||||
]
|
|
||||||
];
|
|
||||||
const nftListArr = [];
|
|
||||||
nftList.forEach((item) => {
|
|
||||||
nftListArr.push(item[0].toString());
|
|
||||||
nftListArr.push('0x01');
|
|
||||||
});
|
|
||||||
const signature = await bc.soliditySha3Sign(
|
|
||||||
account,
|
|
||||||
nftAddress,
|
|
||||||
thisContractAddress,
|
|
||||||
netId,
|
|
||||||
nowTime,
|
|
||||||
nonce,
|
|
||||||
...nftListArr,
|
|
||||||
);
|
|
||||||
console.log(
|
|
||||||
account,
|
|
||||||
nftAddress,
|
|
||||||
thisContractAddress,
|
|
||||||
netId,
|
|
||||||
nowTime,
|
|
||||||
nonce,
|
|
||||||
nftListArr,
|
|
||||||
signature
|
|
||||||
);
|
|
||||||
|
|
||||||
let data = instance.methods.unlockOrMint
|
|
||||||
(
|
|
||||||
nftAddress,
|
|
||||||
nftList,
|
|
||||||
nowTime,
|
|
||||||
nonce,
|
|
||||||
signature).encodeABI();
|
|
||||||
|
|
||||||
session.rspData({
|
|
||||||
'trans_id' : transId,
|
|
||||||
'trans_req': {
|
|
||||||
'to': thisContractAddress,
|
|
||||||
'data': data
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
session.rspErr(1, 1);
|
|
||||||
utils.safeDumpErrStack(e);
|
|
||||||
console.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
app.registerHandler('BcService', 'activate721Nft', activate721Nft);
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.init = init;
|
|
@ -1,130 +0,0 @@
|
|||||||
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 = utils.jsonDecode(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 nftAddresses = [];
|
|
||||||
const amounts = [];
|
|
||||||
const values = [orderId, price, nowTime, nonce];
|
|
||||||
{
|
|
||||||
for (let i = 0; i < ids.length; ++i) {
|
|
||||||
nftAddresses.push(bc.getContractAddressByName('PLANET'));
|
|
||||||
amounts.push(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
utils.arrayToStrings(ids);
|
|
||||||
utils.arrayToStrings(amounts);
|
|
||||||
utils.arrayToStrings(values);
|
|
||||||
|
|
||||||
const signArr = [];
|
|
||||||
{
|
|
||||||
for (let i = 0; i < ids.length * 2 + 4; ++i) {
|
|
||||||
signArr.push('');
|
|
||||||
}
|
|
||||||
for (let i = 0; i < ids.length; ++i) {
|
|
||||||
signArr[i * 2] = ids[i];
|
|
||||||
signArr[i * 2 + 1] = amounts[i];
|
|
||||||
}
|
|
||||||
for (let i = 0; i < values.length; ++i) {
|
|
||||||
signArr[ids.length * 2 + i] = values[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log([
|
|
||||||
currency,
|
|
||||||
account,
|
|
||||||
...nftAddresses,
|
|
||||||
...signArr
|
|
||||||
]);
|
|
||||||
const signature = await bc.soliditySha3Sign(
|
|
||||||
currency,
|
|
||||||
account,
|
|
||||||
...nftAddresses,
|
|
||||||
...signArr
|
|
||||||
);
|
|
||||||
|
|
||||||
const rspParams = [
|
|
||||||
currency,
|
|
||||||
utils.jsonEncode(nftAddresses),
|
|
||||||
utils.jsonEncode(ids),
|
|
||||||
utils.jsonEncode(amounts),
|
|
||||||
utils.jsonEncode(values),
|
|
||||||
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;
|
|
@ -1,92 +0,0 @@
|
|||||||
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 claim(session) {
|
|
||||||
try {
|
|
||||||
const account = bcutils.toNormalAddress(session.request('account', ''));
|
|
||||||
const netId = session.request('net_id');
|
|
||||||
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 nftAddress = bc.getNftAddress(bcconst.BC_NFT_CLAIM_BOX);
|
|
||||||
|
|
||||||
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 tokenId = bcutils.genTokenId(
|
|
||||||
2006,
|
|
||||||
bcconst.BC_FUNC_COMMON,
|
|
||||||
nowTime,
|
|
||||||
1,
|
|
||||||
seqId
|
|
||||||
);
|
|
||||||
const transId = bcutils.genTransId
|
|
||||||
(
|
|
||||||
bcconst.BC_TRANS_FUNC_COMMON,
|
|
||||||
nowTime,
|
|
||||||
seqId,
|
|
||||||
[
|
|
||||||
tokenId
|
|
||||||
]
|
|
||||||
);
|
|
||||||
await transModel.update
|
|
||||||
(
|
|
||||||
seqId,
|
|
||||||
[
|
|
||||||
['trans_id', transId]
|
|
||||||
]);
|
|
||||||
const nonce = transId;
|
|
||||||
const signature = await bc.soliditySha3Sign(
|
|
||||||
account,
|
|
||||||
nftAddress,
|
|
||||||
nowTime,
|
|
||||||
nonce
|
|
||||||
);
|
|
||||||
|
|
||||||
const rspParams = [
|
|
||||||
nftAddress,
|
|
||||||
nowTime,
|
|
||||||
nonce,
|
|
||||||
signature
|
|
||||||
];
|
|
||||||
utils.arrayToStrings(rspParams);
|
|
||||||
|
|
||||||
session.rspData({
|
|
||||||
'trans_id' : transId,
|
|
||||||
'params': rspParams
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
session.rspErr(1, 1);
|
|
||||||
utils.safeDumpErrStack(e);
|
|
||||||
console.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
app.registerHandler('ClaimBox', 'claim', claim);
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.init = init;
|
|
@ -6,11 +6,6 @@ function add(name) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function init() {
|
async function init() {
|
||||||
//add('claim_box');
|
|
||||||
add('activate721nft');
|
|
||||||
//add('game_item_mall');
|
|
||||||
//add('game_item_market');
|
|
||||||
//add('benftmall_trans');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.init = init;
|
exports.init = init;
|
||||||
|
@ -1,99 +0,0 @@
|
|||||||
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 buy(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 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('GameItemMall', 'buy', buy);
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.init = init;
|
|
@ -1,107 +0,0 @@
|
|||||||
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 buy(session) {
|
|
||||||
try {
|
|
||||||
const account = bcutils.toNormalAddress(session.request('account', ''));
|
|
||||||
const seller = bcutils.toNormalAddress(session.request('seller', ''));
|
|
||||||
const netId = session.request('net_id');
|
|
||||||
const price = session.request('price');
|
|
||||||
const currencyName = session.request('currency_name');
|
|
||||||
const orderId = session.request('order_id');
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
if (!bc.isValidAddress(seller)) {
|
|
||||||
session.rspErr(500, 'seller error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const currency = bc.getCurrencyAddressByName(currencyName);
|
|
||||||
const userAddress = bc.getUserAddress();
|
|
||||||
{
|
|
||||||
if (!bc.isValidAddress(currency)) {
|
|
||||||
session.rspErr(500, 'currency 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 signature = await bc.soliditySha3Sign(
|
|
||||||
account,
|
|
||||||
seller,
|
|
||||||
orderId,
|
|
||||||
currency,
|
|
||||||
price,
|
|
||||||
nowTime,
|
|
||||||
nonce
|
|
||||||
);
|
|
||||||
|
|
||||||
const rspParams = [
|
|
||||||
orderId,
|
|
||||||
seller,
|
|
||||||
currency,
|
|
||||||
price,
|
|
||||||
nowTime,
|
|
||||||
nonce,
|
|
||||||
signature
|
|
||||||
];
|
|
||||||
utils.arrayToStrings(rspParams);
|
|
||||||
|
|
||||||
session.rspData({
|
|
||||||
'trans_id' : transId,
|
|
||||||
'params': rspParams
|
|
||||||
});
|
|
||||||
} catch (e) {
|
|
||||||
session.rspErr(1, 1);
|
|
||||||
utils.safeDumpErrStack(e);
|
|
||||||
console.log(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
app.registerHandler('GameItemMarket', 'buy', buy);
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.init = init;
|
|
Loading…
x
Reference in New Issue
Block a user