1
This commit is contained in:
parent
0d84a32b64
commit
832b7f6d82
@ -1,8 +1,8 @@
|
|||||||
const utils = require('j7/utils');
|
const utils = require('j7/utils');
|
||||||
const basewrap = require('./basewrap');
|
const basewrap = require('./basewrap');
|
||||||
|
|
||||||
class Contract extends basewrap.BaseWrap {
|
class BlockChainDb extends basewrap.BaseWrap {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Contract;
|
module.exports = BlockChainDb;
|
@ -1,8 +0,0 @@
|
|||||||
const utils = require('j7/utils');
|
|
||||||
const basewrap = require('./basewrap');
|
|
||||||
|
|
||||||
class GameDb extends basewrap.BaseWrap {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = GameDb;
|
|
@ -1,8 +0,0 @@
|
|||||||
const utils = require('j7/utils');
|
|
||||||
const basewrap = require('./basewrap');
|
|
||||||
|
|
||||||
class MarketDb extends basewrap.BaseWrap {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = MarketDb;
|
|
@ -1,8 +0,0 @@
|
|||||||
const utils = require('j7/utils');
|
|
||||||
const basewrap = require('./basewrap');
|
|
||||||
|
|
||||||
class Web3 extends basewrap.BaseWrap {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = Web3;
|
|
@ -4,8 +4,11 @@ const log = require('j7/log');
|
|||||||
|
|
||||||
const metaClassList = [];
|
const metaClassList = [];
|
||||||
const metaClasses = {};
|
const metaClasses = {};
|
||||||
|
const web3ConfHash = {};
|
||||||
|
let web3ServiceConf = null;
|
||||||
|
let configDir = './config/';
|
||||||
|
|
||||||
function registerMetaClass(fileName, primKey, wrapClass, aliseName = '') {
|
function registerMetaClass(fileName, primKey, wrapClass) {
|
||||||
const metaClass = {
|
const metaClass = {
|
||||||
'fileName' : fileName,
|
'fileName' : fileName,
|
||||||
'primKey' : primKey,
|
'primKey' : primKey,
|
||||||
@ -15,34 +18,13 @@ function registerMetaClass(fileName, primKey, wrapClass, aliseName = '') {
|
|||||||
'rawHash' : {},
|
'rawHash' : {},
|
||||||
'wrapList' : [],
|
'wrapList' : [],
|
||||||
'wrapHash' : {},
|
'wrapHash' : {},
|
||||||
'aliseName': aliseName
|
|
||||||
};
|
};
|
||||||
metaClassList.push(metaClass);
|
metaClassList.push(metaClass);
|
||||||
if (aliseName) {
|
|
||||||
metaClasses[aliseName] = metaClass;
|
|
||||||
} else {
|
|
||||||
metaClasses[wrapClass] = metaClass;
|
metaClasses[wrapClass] = metaClass;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAllLoadPost(classList) {
|
function load() {
|
||||||
for (let i = 0; i < 3; ++i) {
|
metaClassList.forEach((metaClass) => {
|
||||||
classList.forEach((metaClass) => {
|
|
||||||
metaClass['wrapList'].forEach((item) => {
|
|
||||||
if (item['_init' + i]) {
|
|
||||||
item['_init' + i](exports);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
classList.forEach((metaClass) => {
|
|
||||||
metaClass['wrapList'].forEach((item) => {
|
|
||||||
item.lock();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadMeta(metaClass) {
|
|
||||||
const json = utils.readJsonFromFile(metaClass['fileName']);
|
const json = utils.readJsonFromFile(metaClass['fileName']);
|
||||||
if (!json) {
|
if (!json) {
|
||||||
throw new Error('读取配置' + metaClass['fileName'] + '失败');
|
throw new Error('读取配置' + metaClass['fileName'] + '失败');
|
||||||
@ -67,18 +49,28 @@ function loadMeta(metaClass) {
|
|||||||
}
|
}
|
||||||
++idx;
|
++idx;
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
function load() {
|
|
||||||
metaClassList.forEach((metaClass) => {
|
|
||||||
loadMeta(metaClass);
|
|
||||||
//log.debug(utils.jsonEncode(metaClass));
|
//log.debug(utils.jsonEncode(metaClass));
|
||||||
});
|
});
|
||||||
onAllLoadPost(metaClassList);
|
{
|
||||||
|
for (let i = 0; i < 3; ++i) {
|
||||||
|
metaClassList.forEach((metaClass) => {
|
||||||
|
metaClass['wrapList'].forEach((item) => {
|
||||||
|
if (item['_init' + i]) {
|
||||||
|
item['_init' + i](exports);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
metaClassList.forEach((metaClass) => {
|
||||||
|
metaClass['wrapList'].forEach((item) => {
|
||||||
|
item.lock();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function init() {
|
async function init() {
|
||||||
let configDir = './config/';
|
configDir = './config/';
|
||||||
if (utils.isOnlineEnv()) {
|
if (utils.isOnlineEnv()) {
|
||||||
configDir = '../config/';
|
configDir = '../config/';
|
||||||
} else if (utils.getArgv('env') == 'dev'){
|
} else if (utils.getArgv('env') == 'dev'){
|
||||||
@ -92,50 +84,41 @@ function init() {
|
|||||||
} else if (utils.getArgv('env') == 'dev'){
|
} else if (utils.getArgv('env') == 'dev'){
|
||||||
resDir = './res_dev/';
|
resDir = './res_dev/';
|
||||||
}
|
}
|
||||||
|
console.log(resDir);
|
||||||
|
|
||||||
registerMetaClass(configDir + 'config.json',
|
registerMetaClass(configDir + 'config.json',
|
||||||
'',
|
'',
|
||||||
'Config'
|
'Config'
|
||||||
);
|
);
|
||||||
registerMetaClass(configDir + 'web3.json',
|
registerMetaClass(configDir + 'blockchaindb_mysql.json',
|
||||||
'',
|
'',
|
||||||
'Web3'
|
'BlockChainDb'
|
||||||
);
|
);
|
||||||
registerMetaClass(configDir + 'contract.json',
|
registerMetaClass(configDir + 'web3service.cluster.json',
|
||||||
'',
|
'',
|
||||||
'Contract'
|
'Web3Service'
|
||||||
);
|
|
||||||
registerMetaClass(configDir + 'marketdb_mysql.json',
|
|
||||||
'',
|
|
||||||
'MarketDb'
|
|
||||||
);
|
|
||||||
registerMetaClass(configDir + 'gamedb_mysql.json',
|
|
||||||
'',
|
|
||||||
'GameDb'
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// registerMetaClass(resDir + 'item@item.json',
|
||||||
|
// 'id',
|
||||||
|
// 'Item'
|
||||||
|
// );
|
||||||
load();
|
load();
|
||||||
{
|
{
|
||||||
const classList = [];
|
traverseMetaList('BlockChainDb', (dbConf, idx) => {
|
||||||
getMetaByKey('PresentList', '0')['list'].forEach((item) => {
|
app.registerDb('BlockChainDb' + idx, dbConf);
|
||||||
registerMetaClass(resDir + item + '@present.json',
|
|
||||||
'id',
|
|
||||||
'Present',
|
|
||||||
'Present' + item
|
|
||||||
);
|
|
||||||
const metaClass = getMetaClass('Present' + item);
|
|
||||||
loadMeta(metaClass);
|
|
||||||
classList.push(metaClass);
|
|
||||||
});
|
});
|
||||||
onAllLoadPost(classList);
|
traverseMetaList('Web3Service', (item, idx) => {
|
||||||
}
|
if (item['instance_id'] == app.getInstanceId()) {
|
||||||
{
|
web3ServiceConf = item;
|
||||||
traverseMetaList('MarketDb', (dbConf, idx) => {
|
item['nets'].forEach((netId) => {
|
||||||
app.registerDb('MarketDb' + idx, dbConf);
|
const netDir = configDir + 'nets/' + netId + '/';
|
||||||
|
web3ConfHash[netId] = {
|
||||||
|
'Web3': utils.readJsonFromFile(netDir + 'web3.json'),
|
||||||
|
'Contract': utils.readJsonFromFile(netDir + 'contract.json')
|
||||||
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
{
|
|
||||||
traverseMetaList('GameDb', (dbConf, idx) => {
|
|
||||||
app.registerDb('GameDb' + idx, dbConf);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -170,34 +153,42 @@ function traverseMetaList(name, cb) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function getWeb3Conf() {
|
function getWeb3Conf(netId) {
|
||||||
return getMetaByKey('Web3', '0');
|
const keys = Object.keys(web3ConfHash);
|
||||||
}
|
for (let i = 0; i < keys.length; ++i) {
|
||||||
|
if (keys[i] == netId) {
|
||||||
function getContracts() {
|
return web3ConfHash[keys[i]]['Web3'];
|
||||||
return getMetaList('Contract');
|
|
||||||
}
|
|
||||||
|
|
||||||
function getContractByName(name) {
|
|
||||||
return getMetaByKey('Contract', name);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getContractByAddress(address) {
|
|
||||||
let contract = null;
|
|
||||||
getContracts().forEach((item) => {
|
|
||||||
if (item['address'] == address) {
|
|
||||||
contract = item;
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
return contract;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getUserAddress() {
|
function getWeb3ServiceConf() {
|
||||||
return getWeb3Conf()['user_address'];
|
return web3ServiceConf;
|
||||||
}
|
}
|
||||||
|
|
||||||
function getPrivateKey() {
|
function getContractsConf(netId) {
|
||||||
return getWeb3Conf()['private_key'];
|
const keys = Object.keys(web3ConfHash);
|
||||||
|
for (let i = 0; i < keys.length; ++i) {
|
||||||
|
if (keys[i] == netId) {
|
||||||
|
return web3ConfHash[keys[i]]['Contract'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNetList() {
|
||||||
|
const netList = [];
|
||||||
|
const keys = Object.keys(web3ConfHash);
|
||||||
|
for (let i = 0; i < keys.length; ++i) {
|
||||||
|
netList.push(keys[i]);
|
||||||
|
}
|
||||||
|
return netList;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getNetDir(netId) {
|
||||||
|
const netDir = configDir + 'nets/' + netId + '/';
|
||||||
|
return netDir;
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.init = init;
|
exports.init = init;
|
||||||
@ -207,8 +198,7 @@ exports.traverseMetaList = traverseMetaList;
|
|||||||
exports.callMetaStatic = callMetaStatic;
|
exports.callMetaStatic = callMetaStatic;
|
||||||
|
|
||||||
exports.getWeb3Conf = getWeb3Conf;
|
exports.getWeb3Conf = getWeb3Conf;
|
||||||
exports.getContracts = getContracts;
|
exports.getWeb3ServiceConf = getWeb3ServiceConf;
|
||||||
exports.getContractByName = getContractByName;
|
exports.getContractsConf = getContractsConf;
|
||||||
exports.getContractByAddress = getContractByAddress;
|
exports.getNetList = getNetList;
|
||||||
exports.getUserAddress = getUserAddress;
|
exports.getNetDir = getNetDir;
|
||||||
exports.getPrivateKey = getPrivateKey;
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user