This commit is contained in:
aozhiwei 2023-07-10 17:46:27 +08:00
parent 25969152df
commit d5ced23381
4 changed files with 50 additions and 33 deletions

View File

@ -5,8 +5,11 @@ const GAMEDB_NAME = 'GameDb0';
const BCEVENTDB_NAME = 'BcEventDb0';
const BCNFTDB_NAME = 'BcNftDb0';
const GAME_ID = 2006;
exports.EVENTDB_STATE_PENDING = EVENTDB_STATE_PENDING;
exports.EVENTDB_STATE_HANDLED = EVENTDB_STATE_HANDLED;
exports.GAMEDB_NAME = GAMEDB_NAME;
exports.BCEVENTDB_NAME = BCEVENTDB_NAME;
exports.BCNFTDB_NAME = BCNFTDB_NAME;
exports.GAME_ID = GAME_ID;

View File

@ -1,3 +1,5 @@
const bcconst = require("common/bcconst");
const CEC_INSTANCE_NAME = 'CEC';
const CEG_INSTANCE_NAME = 'CEG';
const HERO_INSTANCE_NAME = 'HERO';
@ -13,6 +15,30 @@ const BENftMall_INSTANCE_NAME = 'BENftMall';
const GameItemMarket_INSTANCE_NAME = 'GameItemMarket';
const GameItemMall_INSTANCE_NAME = 'GameItemMall';
function getNftNameByTokenType(tokenType) {
switch (Number(tokenType)) {
case bcconst.BC_NFT_HERO:
{
return HERO_INSTANCE_NAME;
}
break;
case bcconst.BC_NFT_CHIP:
{
return CHIP_INSTANCE_NAME;
}
break;
case bcconst.BC_NFT_CLAIM_BOX:
{
return Gacha_INSTANCE_NAME;
}
break;
default:
{
return '';
}
}
}
exports.CEC_INSTANCE_NAME = CEC_INSTANCE_NAME;
exports.CEG_INSTANCE_NAME = CEG_INSTANCE_NAME;
exports.HERO_INSTANCE_NAME = HERO_INSTANCE_NAME;
@ -27,3 +53,5 @@ exports.BENftMarket_INSTANCE_NAME = BENftMarket_INSTANCE_NAME;
exports.BENftMall_INSTANCE_NAME = BENftMall_INSTANCE_NAME;
exports.GameItemMarket_INSTANCE_NAME = GameItemMarket_INSTANCE_NAME;
exports.GameItemMall_INSTANCE_NAME = GameItemMall_INSTANCE_NAME;
exports.getNftNameByTokenType = getNftNameByTokenType;

View File

@ -1,7 +1,6 @@
const util = require('util');
const Web3 = require('web3');
const utils = require('j7/utils');
const bcutils = require('j7/bcutils');
const event = require('j7/event');
const sync = require("j7/sync");
const log = require("j7/log");
@ -76,37 +75,9 @@ class BlockChain {
}
getNftAddress(tokenType) {
switch (Number(tokenType)) {
case bcutils.HERO_TYPE:
{
return this.getContractByName('HERO')['address'];
}
break;
case bcutils.EQUIP_TYPE:
{
return this.getContractByName('WEAPON')['address'];
}
break;
case bcutils.CHIP_TYPE:
{
return this.getContractByName('CHIP')['address'];
}
break;
case bcutils.FRAGMENT_TYPE:
{
return this.getContractByName('shard')['address'];
}
break;
case bcutils.CLAIM_BOX_TYPE:
{
return this.getContractByName('Gacha')['address'];
}
break;
default:
{
return '';
}
}
const name = contract.getNftNameByTokenType(tokenType);
const c = this.getContractByName(name);
return c ? c['address'] : '';
}
}

View File

@ -4,16 +4,31 @@ const sigUtil = require('@metamask/eth-sig-util');
const app = require('j7/app');
const utils = require('j7/utils');
const bcutils = require('j7/bcutils');
const bc = require('../blockchain');
const metaFactory = require('../metadata/factory');
const serviceFactory = require('../services/factory');
async function activate721Nft(session) {
try {
const account = 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 (!bcutils.isValidAddress(account)) {
session.rspErr(500, 'account error');
return;
}
}
const nftAddress = bc.getNftAddress(tokenType);
const userAddress = metaFactory.getUserAddress();