This commit is contained in:
aozhiwei 2024-06-11 10:54:11 +08:00
parent 4c3445e061
commit 05bdceb14a
6 changed files with 0 additions and 576 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -6,11 +6,6 @@ function add(name) {
}
async function init() {
//add('claim_box');
add('activate721nft');
//add('game_item_mall');
//add('game_item_market');
//add('benftmall_trans');
}
exports.init = init;

View File

@ -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;

View File

@ -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;