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_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 NONE_TYPE = 0;
|
||||
@ -62,6 +66,35 @@ function isSameAddress(a, b) {
|
||||
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_FUNC_CREATION = BC_FUNC_CREATION;
|
||||
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_EPOCH = BC_EPOCH;
|
||||
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.HERO_TYPE = HERO_TYPE
|
||||
exports.EQUIP_TYPE = EQUIP_TYPE
|
||||
exports.CHIP_TYPE = CHIP_TYPE
|
||||
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE
|
||||
exports.HERO_TYPE = HERO_TYPE;
|
||||
exports.EQUIP_TYPE = EQUIP_TYPE;
|
||||
exports.CHIP_TYPE = CHIP_TYPE;
|
||||
exports.BLIND_BOX_TYPE = BLIND_BOX_TYPE;
|
||||
exports.isValidBcGameId = isValidBcGameId;
|
||||
exports.isValidBcTime = isValidBcTime;
|
||||
exports.isValidBcFuncId = isValidBcFuncId;
|
||||
@ -83,3 +118,5 @@ exports.toNormalAddress = toNormalAddress;
|
||||
exports.genTokenId = genTokenId;
|
||||
exports.isValidTokenId = isValidTokenId;
|
||||
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);
|
||||
}
|
||||
|
||||
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) {
|
||||
const params = [];
|
||||
let sql = 'SELECT * FROM `' + tblName + '` ';
|
||||
|
Loading…
x
Reference in New Issue
Block a user