@ckb-lumos/config-manager
Advanced tools
Comparing version 0.18.0-rc1 to 0.18.0-rc2
120
lib/index.js
@@ -1,86 +0,36 @@ | ||
const deepFreeze = require("deep-freeze-strict"); | ||
const { readFileSync } = require("fs"); | ||
const { env } = require("process"); | ||
const predefined = require("./predefined"); | ||
function assertHexString(debugPath, string) { | ||
if (!/^0x([0-9a-fA-F][0-9a-fA-F])*$/.test(string)) { | ||
throw new Error(`${debugPath} must be a hex string!`); | ||
} | ||
} | ||
function assertHash(debugPath, hash) { | ||
assertHexString(debugPath, hash); | ||
if (hash.length != 66) { | ||
throw new Error(`${debugPath} must be a hex string of 66 bytes long!`); | ||
} | ||
} | ||
function assertInteger(debugPath, i) { | ||
if (i === "0x0") { | ||
return; | ||
} | ||
if (!/^0x[1-9a-fA-F][0-9a-fA-F]*$/.test(i)) { | ||
throw new Error(`${debugPath} must be a hex integer!`); | ||
} | ||
} | ||
function validateConfig(config) { | ||
if (typeof config.PREFIX !== "string") { | ||
throw new Error("PREFIX must be a string!"); | ||
} | ||
for (const scriptName of Object.keys(config.SCRIPTS)) { | ||
const scriptConfig = config.SCRIPTS[scriptName]; | ||
assertHash(`SCRIPTS.${scriptName}.CODE_HASH`, scriptConfig.CODE_HASH); | ||
const hashType = scriptConfig.HASH_TYPE; | ||
if (hashType !== "type" && hashType !== "data") { | ||
throw new Error( | ||
`SCRIPTS.${scriptName}.HASH_TYPE must either be data or type!` | ||
); | ||
} | ||
assertHash(`SCRIPTS.${scriptName}.TX_HASH`, scriptConfig.TX_HASH); | ||
assertInteger(`SCRIPTS.${scriptName}.INDEX`, scriptConfig.INDEX); | ||
const depType = scriptConfig.DEP_TYPE; | ||
if (depType !== "dep_group" && depType !== "code") { | ||
throw new Error( | ||
`SCRIPTS.${scriptName}.DEP_TYPE must either be dep_group or code!` | ||
); | ||
} | ||
const shortId = scriptConfig.SHORT_ID; | ||
// Short ID is optional | ||
if (shortId != undefined) { | ||
if (typeof shortId !== "number") { | ||
throw new Error("SHORT_ID must be a number!"); | ||
} | ||
} | ||
} | ||
} | ||
let config = predefined.LINA; | ||
function getConfig() { | ||
return config; | ||
} | ||
function initializeConfig() { | ||
if (env.LUMOS_CONFIG_NAME && predefined[env.LUMOS_CONFIG_NAME]) { | ||
config = predefined[env.LUMOS_CONFIG_NAME]; | ||
return; | ||
} | ||
const configFilename = env.LUMOS_CONFIG_FILE || "config.json"; | ||
try { | ||
const data = readFileSync(configFilename); | ||
const loadedConfig = JSON.parse(data); | ||
validateConfig(loadedConfig); | ||
config = deepFreeze(loadedConfig); | ||
} catch (e) { | ||
throw new Error(`Error loading config from file ${configFilename}: ${e}`); | ||
} | ||
} | ||
module.exports = { | ||
getConfig, | ||
initializeConfig, | ||
predefined, | ||
validateConfig, | ||
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); | ||
}; | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
__exportStar(require("./types"), exports); | ||
var manager_1 = require("./manager"); | ||
Object.defineProperty(exports, "initializeConfig", { enumerable: true, get: function () { return manager_1.initializeConfig; } }); | ||
Object.defineProperty(exports, "getConfig", { enumerable: true, get: function () { return manager_1.getConfig; } }); | ||
Object.defineProperty(exports, "validateConfig", { enumerable: true, get: function () { return manager_1.validateConfig; } }); | ||
Object.defineProperty(exports, "CKB2019", { enumerable: true, get: function () { return manager_1.CKB2019; } }); | ||
Object.defineProperty(exports, "CKB2021", { enumerable: true, get: function () { return manager_1.CKB2021; } }); | ||
exports.helpers = __importStar(require("./helpers")); | ||
var predefined_1 = require("./predefined"); | ||
Object.defineProperty(exports, "predefined", { enumerable: true, get: function () { return predefined_1.predefined; } }); | ||
Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return predefined_1.createConfig; } }); | ||
//# sourceMappingURL=index.js.map |
@@ -1,112 +0,105 @@ | ||
const deepFreeze = require("deep-freeze-strict"); | ||
const LINA = deepFreeze({ | ||
PREFIX: "ckb", | ||
SCRIPTS: { | ||
SECP256K1_BLAKE160: { | ||
CODE_HASH: | ||
"0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 0, | ||
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.predefined = exports.createConfig = void 0; | ||
const deep_freeze_strict_1 = __importDefault(require("deep-freeze-strict")); | ||
/** | ||
* create a frozen {@link ScriptConfig}, also this is a TypeScript helper to create an autocomplete-friendly {@link ScriptConfigs} | ||
* @param configShape | ||
*/ | ||
function createConfig(configShape) { | ||
return deep_freeze_strict_1.default(configShape); | ||
} | ||
exports.createConfig = createConfig; | ||
const LINA = createConfig({ | ||
CKB2021: true, | ||
PREFIX: "ckb", | ||
SCRIPTS: { | ||
SECP256K1_BLAKE160: { | ||
CODE_HASH: "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 0, | ||
}, | ||
SECP256K1_BLAKE160_MULTISIG: { | ||
CODE_HASH: "0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c", | ||
INDEX: "0x1", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 1, | ||
}, | ||
DAO: { | ||
CODE_HASH: "0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xe2fb199810d49a4d8beec56718ba2593b665db9d52299a0f9e6e75416d73ff5c", | ||
INDEX: "0x2", | ||
DEP_TYPE: "code", | ||
}, | ||
SUDT: { | ||
CODE_HASH: "0x5e7a36a77e68eecc013dfa2fe6a23f3b6c344b04005808694ae6dd45eea4cfd5", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xc7813f6a415144643970c2e88e0bb6ca6a8edc5dd7c1022746f628284a9936d5", | ||
INDEX: "0x0", | ||
DEP_TYPE: "code", | ||
}, | ||
ANYONE_CAN_PAY: { | ||
CODE_HASH: "0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0x4153a2014952d7cac45f285ce9a7c5c0c0e1b21f2d378b82ac1433cb11c25c4d", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 2, | ||
}, | ||
}, | ||
SECP256K1_BLAKE160_MULTISIG: { | ||
CODE_HASH: | ||
"0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c", | ||
INDEX: "0x1", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 1, | ||
}, | ||
DAO: { | ||
CODE_HASH: | ||
"0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xe2fb199810d49a4d8beec56718ba2593b665db9d52299a0f9e6e75416d73ff5c", | ||
INDEX: "0x2", | ||
DEP_TYPE: "code", | ||
}, | ||
SUDT: { | ||
CODE_HASH: | ||
"0x5e7a36a77e68eecc013dfa2fe6a23f3b6c344b04005808694ae6dd45eea4cfd5", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xc7813f6a415144643970c2e88e0bb6ca6a8edc5dd7c1022746f628284a9936d5", | ||
INDEX: "0x0", | ||
DEP_TYPE: "code", | ||
}, | ||
ANYONE_CAN_PAY: { | ||
CODE_HASH: | ||
"0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0x4153a2014952d7cac45f285ce9a7c5c0c0e1b21f2d378b82ac1433cb11c25c4d", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
}, | ||
}, | ||
}); | ||
const AGGRON4 = deepFreeze({ | ||
PREFIX: "ckt", | ||
SCRIPTS: { | ||
SECP256K1_BLAKE160: { | ||
CODE_HASH: | ||
"0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 0, | ||
const AGGRON4 = createConfig({ | ||
CKB2021: true, | ||
PREFIX: "ckt", | ||
SCRIPTS: { | ||
SECP256K1_BLAKE160: { | ||
CODE_HASH: "0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 0, | ||
}, | ||
SECP256K1_BLAKE160_MULTISIG: { | ||
CODE_HASH: "0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37", | ||
INDEX: "0x1", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 1, | ||
}, | ||
DAO: { | ||
CODE_HASH: "0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0x8f8c79eb6671709633fe6a46de93c0fedc9c1b8a6527a18d3983879542635c9f", | ||
INDEX: "0x2", | ||
DEP_TYPE: "code", | ||
}, | ||
SUDT: { | ||
CODE_HASH: "0xc5e5dcf215925f7ef4dfaf5f4b4f105bc321c02776d6e7d52a1db3fcd9d011a4", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xe12877ebd2c3c364dc46c5c992bcfaf4fee33fa13eebdf82c591fc9825aab769", | ||
INDEX: "0x0", | ||
DEP_TYPE: "code", | ||
}, | ||
ANYONE_CAN_PAY: { | ||
CODE_HASH: "0x3419a1c09eb2567f6552ee7a8ecffd64155cffe0f1796e6e61ec088d740c1356", | ||
HASH_TYPE: "type", | ||
TX_HASH: "0xec26b0f85ed839ece5f11c4c4e837ec359f5adc4420410f6453b1f6b60fb96a6", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 2 | ||
}, | ||
}, | ||
SECP256K1_BLAKE160_MULTISIG: { | ||
CODE_HASH: | ||
"0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37", | ||
INDEX: "0x1", | ||
DEP_TYPE: "dep_group", | ||
SHORT_ID: 1, | ||
}, | ||
DAO: { | ||
CODE_HASH: | ||
"0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0x8f8c79eb6671709633fe6a46de93c0fedc9c1b8a6527a18d3983879542635c9f", | ||
INDEX: "0x2", | ||
DEP_TYPE: "code", | ||
}, | ||
SUDT: { | ||
CODE_HASH: | ||
"0xc5e5dcf215925f7ef4dfaf5f4b4f105bc321c02776d6e7d52a1db3fcd9d011a4", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xe12877ebd2c3c364dc46c5c992bcfaf4fee33fa13eebdf82c591fc9825aab769", | ||
INDEX: "0x0", | ||
DEP_TYPE: "code", | ||
}, | ||
ANYONE_CAN_PAY: { | ||
CODE_HASH: | ||
"0x3419a1c09eb2567f6552ee7a8ecffd64155cffe0f1796e6e61ec088d740c1356", | ||
HASH_TYPE: "type", | ||
TX_HASH: | ||
"0xec26b0f85ed839ece5f11c4c4e837ec359f5adc4420410f6453b1f6b60fb96a6", | ||
INDEX: "0x0", | ||
DEP_TYPE: "dep_group", | ||
}, | ||
}, | ||
}); | ||
module.exports = { | ||
LINA, | ||
AGGRON4, | ||
}; | ||
exports.predefined = { LINA, AGGRON4 }; | ||
//# sourceMappingURL=predefined.js.map |
{ | ||
"name": "@ckb-lumos/config-manager", | ||
"version": "0.18.0-rc1", | ||
"version": "0.18.0-rc2", | ||
"description": "Config manager for lumos", | ||
@@ -8,4 +8,3 @@ "author": "Xuejie Xiao <xxuejie@gmail.com>", | ||
"license": "MIT", | ||
"main": "lib/index.js", | ||
"types": "index.d.ts", | ||
"main": "lib", | ||
"engines": { | ||
@@ -29,3 +28,3 @@ "node": ">=12.0.0" | ||
"access": "public", | ||
"registry": "http://registry.npmjs.org/" | ||
"registry": "https://registry.npmjs.org/" | ||
}, | ||
@@ -37,5 +36,9 @@ "repository": { | ||
"scripts": { | ||
"fmt": "prettier --write \"{lib,tests}/**/*.js\" index.d.ts package.json", | ||
"lint": "eslint -c ../../.eslintrc.js \"{lib,tests}/**/*.js\"", | ||
"test": "ava" | ||
"fmt": "prettier --write \"{src,tests}/**/*.ts\" package.json", | ||
"lint": "eslint -c ../../.eslintrc.js \"{src,tests}/**/*.ts\"", | ||
"test": "ava", | ||
"build": "tsc", | ||
"clean": "rm -rf lib", | ||
"prepublishOnly": "yarn run clean && yarn run build", | ||
"release": "npm publish" | ||
}, | ||
@@ -46,4 +49,6 @@ "bugs": { | ||
"dependencies": { | ||
"@ckb-lumos/base": "^0.18.0-rc2", | ||
"@types/deep-freeze-strict": "^1.1.0", | ||
"deep-freeze-strict": "^1.1.1" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
24578
17
442
0
16
3
2
2
+ Added@ckb-lumos/base@^0.18.0-rc2
+ Added@ckb-lumos/base@0.18.0(transitive)
+ Added@ckb-lumos/bi@0.18.0(transitive)
+ Added@ckb-lumos/toolkit@0.18.0(transitive)
+ Added@types/deep-freeze-strict@1.1.2(transitive)
+ Added@types/lodash@4.17.15(transitive)
+ Added@types/lodash.isequal@4.5.8(transitive)
+ Addedb4a@1.6.7(transitive)
+ Addedblake2b@2.1.4(transitive)
+ Addedblake2b-wasm@2.4.0(transitive)
+ Addedcross-fetch@3.2.0(transitive)
+ Addedjs-xxhash@1.0.4(transitive)
+ Addedjsbi@4.3.0(transitive)
+ Addedlodash.isequal@4.5.0(transitive)
+ Addednanoassert@2.0.0(transitive)
+ Addednode-fetch@2.7.0(transitive)
+ Addedtr46@0.0.3(transitive)
+ Addedwebidl-conversions@3.0.1(transitive)
+ Addedwhatwg-url@5.0.0(transitive)