1
This commit is contained in:
parent
7533a5e7ed
commit
f98d9e8dfb
45
bcutils.js
45
bcutils.js
@ -8,6 +8,10 @@ const BC_FUNC_BLIND_BOX = 5;
|
|||||||
const BC_FUNC_PRESENT = 6;
|
const BC_FUNC_PRESENT = 6;
|
||||||
const BC_MAX_TOKEN_IDX = 99999;
|
const BC_MAX_TOKEN_IDX = 99999;
|
||||||
|
|
||||||
|
const BC_TRANSID_MAX_PARAMS_NUM = 3;
|
||||||
|
const BC_TRANSID_MAX_SEQID = 9999999;
|
||||||
|
const BC_TRANS_FUNC_ACTIVATE = 11;
|
||||||
|
|
||||||
const BC_EPOCH = 1643212800;
|
const BC_EPOCH = 1643212800;
|
||||||
|
|
||||||
const NONE_TYPE = 0;
|
const NONE_TYPE = 0;
|
||||||
@ -62,6 +66,35 @@ function isSameAddress(a, b) {
|
|||||||
return a.toLowerCase() == b.toLowerCase();
|
return a.toLowerCase() == b.toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
max(uint64): 18446744073709551615 = len(20)
|
||||||
|
max(uint256): 115792089237316195423570985008687907853269984665640564039457584007913129639935 = len(78)
|
||||||
|
max(int32): 2147483648 = len(10)
|
||||||
|
len(tokenid) = 16
|
||||||
|
transHead: funcId(2)|time(9)|seqId(7) = len(18)
|
||||||
|
*/
|
||||||
|
|
||||||
|
function genTransId(funcId, time, seqId, params) {
|
||||||
|
let transId =
|
||||||
|
utils.pad(funcId, 2) +
|
||||||
|
utils.pad(toBcTime(time), 9) +
|
||||||
|
utils.pad(seqId % BC_TRANSID_MAX_SEQID, 7);
|
||||||
|
params.forEach
|
||||||
|
(
|
||||||
|
(element) => {
|
||||||
|
transId += utils.pad(element, 20);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
for (let i = 0; i < BC_TRANSID_MAX_PARAMS_NUM - params.length; ++i) {
|
||||||
|
transId += utils.pad(0, 20);
|
||||||
|
}
|
||||||
|
return transId;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isValidTransId(transId) {
|
||||||
|
return utils.isPureNumberStr(transId.toString()) && transId.toString().length == 78;
|
||||||
|
}
|
||||||
|
|
||||||
exports.BC_BASE_GAME_ID = BC_BASE_GAME_ID;
|
exports.BC_BASE_GAME_ID = BC_BASE_GAME_ID;
|
||||||
exports.BC_FUNC_CREATION = BC_FUNC_CREATION;
|
exports.BC_FUNC_CREATION = BC_FUNC_CREATION;
|
||||||
exports.BC_FUNC_GUILD = BC_FUNC_GUILD;
|
exports.BC_FUNC_GUILD = BC_FUNC_GUILD;
|
||||||
@ -69,11 +102,13 @@ exports.BC_FUNC_BLIND_BOX = BC_FUNC_BLIND_BOX;
|
|||||||
exports.BC_FUNC_PRESENT = BC_FUNC_PRESENT;
|
exports.BC_FUNC_PRESENT = BC_FUNC_PRESENT;
|
||||||
exports.BC_EPOCH = BC_EPOCH;
|
exports.BC_EPOCH = BC_EPOCH;
|
||||||
exports.BC_MAX_TOKEN_IDX = BC_MAX_TOKEN_IDX;
|
exports.BC_MAX_TOKEN_IDX = BC_MAX_TOKEN_IDX;
|
||||||
|
exports.BC_TRANSID_MAX_PARAMS_NUM = BC_TRANSID_MAX_PARAMS_NUM;
|
||||||
|
exports.BC_TRANS_FUNC_ACTIVATE = BC_TRANS_FUNC_ACTIVATE;
|
||||||
exports.NONE_TYPE = NONE_TYPE;
|
exports.NONE_TYPE = NONE_TYPE;
|
||||||
exports.HERO_TYPE = HERO_TYPE
|
exports.HERO_TYPE = HERO_TYPE;
|
||||||
exports.EQUIP_TYPE = EQUIP_TYPE
|
exports.EQUIP_TYPE = EQUIP_TYPE;
|
||||||
exports.CHIP_TYPE = CHIP_TYPE
|
exports.CHIP_TYPE = CHIP_TYPE;
|
||||||
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE
|
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE;
|
||||||
exports.isValidBcGameId = isValidBcGameId;
|
exports.isValidBcGameId = isValidBcGameId;
|
||||||
exports.isValidBcTime = isValidBcTime;
|
exports.isValidBcTime = isValidBcTime;
|
||||||
exports.isValidBcFuncId = isValidBcFuncId;
|
exports.isValidBcFuncId = isValidBcFuncId;
|
||||||
@ -83,3 +118,5 @@ exports.toNormalAddress = toNormalAddress;
|
|||||||
exports.genTokenId = genTokenId;
|
exports.genTokenId = genTokenId;
|
||||||
exports.isValidTokenId = isValidTokenId;
|
exports.isValidTokenId = isValidTokenId;
|
||||||
exports.isSameAddress = isSameAddress;
|
exports.isSameAddress = isSameAddress;
|
||||||
|
exports.genTransId = genTransId;
|
||||||
|
exports.isValidTransId = isValidTransId;
|
||||||
|
32
db.js
32
db.js
@ -117,6 +117,38 @@ class DB {
|
|||||||
return await this.execScript(sql, params);
|
return await this.execScript(sql, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async insertEx(tblName, fieldList) {
|
||||||
|
const params = [];
|
||||||
|
let sql = 'INSERT INTO `' + tblName + '` (';
|
||||||
|
|
||||||
|
fieldList.forEach((item, index) => {
|
||||||
|
const suffix = (index + 1 < fieldList.length ? ',': '');
|
||||||
|
sql += '`' + item[0] + '`' + suffix;
|
||||||
|
});
|
||||||
|
|
||||||
|
sql += ') VALUES (';
|
||||||
|
fieldList.forEach((item, index) => {
|
||||||
|
const suffix = (index + 1 < fieldList.length ? ',': '');
|
||||||
|
sql += '?' + suffix;
|
||||||
|
params.push(item[1]);
|
||||||
|
});
|
||||||
|
sql += ')';
|
||||||
|
|
||||||
|
const ret = await this.execScript(sql, params);
|
||||||
|
ret['last_idx'] = 0;
|
||||||
|
const {err, row} = await this.execQueryOne(
|
||||||
|
'SELECT LAST_INSERT_ID() AS lastId',
|
||||||
|
[
|
||||||
|
]
|
||||||
|
);
|
||||||
|
if (err) {
|
||||||
|
ret['err'] = err;
|
||||||
|
} else {
|
||||||
|
ret['lastId'] = row['lastId'];
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
async upsert(tblName, whereList, updateList, insertList, opts = null) {
|
async upsert(tblName, whereList, updateList, insertList, opts = null) {
|
||||||
const params = [];
|
const params = [];
|
||||||
let sql = 'SELECT * FROM `' + tblName + '` ';
|
let sql = 'SELECT * FROM `' + tblName + '` ';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user