@offckb/cli 0.3.0-rc7 → 0.3.0-rc9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/dist/cli.js +20 -6
- package/dist/cmd/deploy.d.ts +2 -1
- package/dist/cmd/deploy.js +14 -11
- package/dist/cmd/inject-config.d.ts +4 -1
- package/dist/cmd/inject-config.js +29 -7
- package/dist/cmd/list-hashes.d.ts +2 -2
- package/dist/cmd/list-hashes.js +6 -6
- package/dist/cmd/sync-scripts.d.ts +4 -1
- package/dist/cmd/sync-scripts.js +11 -4
- package/dist/cmd/system-scripts.d.ts +24 -35
- package/dist/cmd/system-scripts.js +108 -80
- package/dist/deploy/index.d.ts +2 -2
- package/dist/deploy/index.js +7 -6
- package/dist/scripts/gen.js +1 -1
- package/dist/scripts/private.js +1 -1
- package/dist/scripts/public.js +14 -181
- package/dist/scripts/type.d.ts +5 -0
- package/package.json +1 -1
- package/templates/v3/offckb.config.example.ts +6 -1
package/README.md
CHANGED
|
@@ -212,12 +212,18 @@ To build the script, in the root of the project, run:
|
|
|
212
212
|
make build
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
To deploy the script, cd into the frontend folder and run:
|
|
215
|
+
To deploy the script, cd into the frontend folder where the default `offckb.config.ts` file is located and run:
|
|
216
216
|
|
|
217
217
|
```sh
|
|
218
218
|
cd frontend && offckb deploy --network <devnet/testnet>
|
|
219
219
|
```
|
|
220
220
|
|
|
221
|
+
Or specific the `offckb.config.ts` file path for deploy command to locate:
|
|
222
|
+
|
|
223
|
+
```sh
|
|
224
|
+
offckb deploy --network <devnet/testnet> --config <file-path-to-your-offckb.config.ts-file>
|
|
225
|
+
```
|
|
226
|
+
|
|
221
227
|
Pass `--type-id` option if you want Scripts to be upgradable
|
|
222
228
|
|
|
223
229
|
```sh
|
package/dist/cli.js
CHANGED
|
@@ -95,9 +95,20 @@ program.command('accounts').description('Print account list info').action(accoun
|
|
|
95
95
|
program
|
|
96
96
|
.command('list-hashes [CKB-Version]')
|
|
97
97
|
.description('Use the CKB to list blockchain scripts hashes')
|
|
98
|
-
.action(list_hashes_1.
|
|
99
|
-
program
|
|
100
|
-
|
|
98
|
+
.action(list_hashes_1.printDevnetListHashes);
|
|
99
|
+
program
|
|
100
|
+
.command('inject-config')
|
|
101
|
+
.description('Add offckb.config.ts to your frontend workspace')
|
|
102
|
+
.option('--target <target>', 'Specify the custom file path of the new injected config')
|
|
103
|
+
.action(inject_config_1.injectConfig);
|
|
104
|
+
program
|
|
105
|
+
.command('sync-scripts')
|
|
106
|
+
.description('Sync scripts json files in your frontend workspace')
|
|
107
|
+
.option('--config <config>', 'Specify the offckb.config.ts file path', undefined)
|
|
108
|
+
.action((opt) => {
|
|
109
|
+
const configPath = opt.config;
|
|
110
|
+
return (0, sync_scripts_1.syncScripts)({ configPath });
|
|
111
|
+
});
|
|
101
112
|
program
|
|
102
113
|
.command('deposit [toAddress] [amountInCKB]')
|
|
103
114
|
.description('Deposit CKB tokens to address, only devnet and testnet')
|
|
@@ -136,6 +147,7 @@ program
|
|
|
136
147
|
.description('Deploy contracts to different networks, only supports devnet and testnet')
|
|
137
148
|
.option('--network <network>', 'Specify the network to deploy to', 'devnet')
|
|
138
149
|
.option('--target <target>', 'Specify the relative bin target folder to deploy to')
|
|
150
|
+
.option('--config <config>', 'Specify the offckb.config.ts file path for deployment', undefined)
|
|
139
151
|
.option('-t, --type-id', 'Specify if use upgradable type id to deploy the script')
|
|
140
152
|
.option('--privkey <privkey>', 'Specify the private key to deploy scripts')
|
|
141
153
|
.option('-r, --proxy-rpc', 'Use Proxy RPC to connect to blockchain')
|
|
@@ -166,11 +178,13 @@ program
|
|
|
166
178
|
}));
|
|
167
179
|
program
|
|
168
180
|
.command('system-scripts')
|
|
169
|
-
.option('--export-style <exportStyle>', 'Specify the export format, possible values are lumos and ccc.')
|
|
170
|
-
.
|
|
181
|
+
.option('--export-style <exportStyle>', 'Specify the export format, possible values are system, lumos and ccc.')
|
|
182
|
+
.option('--network <network>', 'Specify the CKB blockchain network', 'devnet')
|
|
183
|
+
.description('Output system scripts of the CKB blockchain')
|
|
171
184
|
.action((option) => __awaiter(void 0, void 0, void 0, function* () {
|
|
185
|
+
const network = option.network;
|
|
172
186
|
const exportStyle = option.exportStyle;
|
|
173
|
-
return (0, system_scripts_1.printSystemScripts)(exportStyle);
|
|
187
|
+
return (0, system_scripts_1.printSystemScripts)({ style: exportStyle, network });
|
|
174
188
|
}));
|
|
175
189
|
program
|
|
176
190
|
.command('mol')
|
package/dist/cmd/deploy.d.ts
CHANGED
package/dist/cmd/deploy.js
CHANGED
|
@@ -20,7 +20,8 @@ const fs_1 = require("../util/fs");
|
|
|
20
20
|
const validator_1 = require("../util/validator");
|
|
21
21
|
const deploy_1 = require("../deploy");
|
|
22
22
|
const ckb_1 = require("../sdk/ckb");
|
|
23
|
-
|
|
23
|
+
const fs_2 = __importDefault(require("fs"));
|
|
24
|
+
function deploy(opt = { network: base_1.Network.devnet, typeId: false, target: undefined, proxyRpc: false }) {
|
|
24
25
|
var _a;
|
|
25
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
27
|
const network = opt.network;
|
|
@@ -30,6 +31,7 @@ function deploy(opt = { network: base_1.Network.devnet, typeId: false, target: n
|
|
|
30
31
|
// we use deployerAccount to deploy contract by default
|
|
31
32
|
const privateKey = opt.privkey || account_1.deployerAccount.privkey;
|
|
32
33
|
const enableTypeId = (_a = opt.typeId) !== null && _a !== void 0 ? _a : false;
|
|
34
|
+
const configPath = opt.config;
|
|
33
35
|
const targetFolder = opt.target;
|
|
34
36
|
if (targetFolder) {
|
|
35
37
|
const binFolder = (0, fs_1.isAbsolutePath)(targetFolder) ? targetFolder : path_1.default.resolve(process.cwd(), targetFolder);
|
|
@@ -37,21 +39,22 @@ function deploy(opt = { network: base_1.Network.devnet, typeId: false, target: n
|
|
|
37
39
|
const binPaths = bins.map((bin) => path_1.default.resolve(binFolder, bin));
|
|
38
40
|
const results = yield (0, deploy_1.deployBinaries)(binPaths, privateKey, enableTypeId, ckb);
|
|
39
41
|
// record the deployed contract infos
|
|
40
|
-
(0, deploy_1.recordDeployResult)(results, network
|
|
42
|
+
(0, deploy_1.recordDeployResult)(results, network); // we don't update my-scripts.json since we don't know where the file is
|
|
41
43
|
return;
|
|
42
44
|
}
|
|
43
|
-
// check if target workspace is valid
|
|
44
|
-
try {
|
|
45
|
-
(0, validator_1.validateExecDappEnvironment)();
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
return console.debug('Not a valid offCKB dapp workspace.');
|
|
49
|
-
}
|
|
50
45
|
// read contract bin folder
|
|
51
|
-
const
|
|
46
|
+
const userOffCKBConfigPath = configPath
|
|
47
|
+
? (0, fs_1.isAbsolutePath)(configPath)
|
|
48
|
+
? configPath
|
|
49
|
+
: path_1.default.resolve(process.cwd(), configPath)
|
|
50
|
+
: path_1.default.resolve(process.cwd(), 'offckb.config.ts');
|
|
51
|
+
if (!fs_2.default.existsSync(userOffCKBConfigPath)) {
|
|
52
|
+
throw new Error(`config file not exits: ${userOffCKBConfigPath}, tips: use --config to specific the offckb.config.ts file`);
|
|
53
|
+
}
|
|
54
|
+
const bins = (0, deploy_1.getToDeployBinsPath)(userOffCKBConfigPath);
|
|
52
55
|
const results = yield (0, deploy_1.deployBinaries)(bins, privateKey, enableTypeId, ckb);
|
|
53
56
|
// record the deployed contract infos
|
|
54
|
-
(0, deploy_1.recordDeployResult)(results, network);
|
|
57
|
+
(0, deploy_1.recordDeployResult)(results, network, userOffCKBConfigPath);
|
|
55
58
|
});
|
|
56
59
|
}
|
|
57
60
|
exports.deploy = deploy;
|
|
@@ -1,22 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
26
|
exports.injectConfig = void 0;
|
|
7
27
|
const fs_1 = require("fs");
|
|
8
|
-
const
|
|
9
|
-
const path_1 = __importDefault(require("path"));
|
|
28
|
+
const path_1 = __importStar(require("path"));
|
|
10
29
|
const gen_1 = require("../scripts/gen");
|
|
11
30
|
const offckb_config_1 = require("../template/offckb-config");
|
|
12
31
|
const setting_1 = require("../cfg/setting");
|
|
13
32
|
const version = require('../../package.json').version;
|
|
14
|
-
function injectConfig() {
|
|
15
|
-
(0, validator_1.validateTypescriptWorkspace)();
|
|
33
|
+
function injectConfig({ target }) {
|
|
16
34
|
// inject the offckb.config.ts file into users workspace
|
|
17
35
|
// copy config template
|
|
36
|
+
const userOffCKBConfigPath = target
|
|
37
|
+
? (0, path_1.isAbsolute)(target)
|
|
38
|
+
? target
|
|
39
|
+
: path_1.default.resolve(process.cwd(), target)
|
|
40
|
+
: path_1.default.resolve(process.cwd(), 'offckb.config.ts');
|
|
18
41
|
const predefinedOffCKBConfigTsPath = path_1.default.resolve(setting_1.packageRootPath, 'templates/v3/offckb.config.example.ts');
|
|
19
|
-
const userOffCKBConfigPath = path_1.default.resolve(process.cwd(), 'offckb.config.ts');
|
|
20
42
|
(0, fs_1.copyFileSync)(predefinedOffCKBConfigTsPath, userOffCKBConfigPath);
|
|
21
43
|
// update the version in the offckb.config.ts
|
|
22
44
|
offckb_config_1.OffCKBConfigFile.updateVersion(version, userOffCKBConfigPath);
|
|
@@ -21,5 +21,5 @@ export interface SpecHashes {
|
|
|
21
21
|
export interface ListHashes {
|
|
22
22
|
offckb: SpecHashes;
|
|
23
23
|
}
|
|
24
|
-
export declare function
|
|
25
|
-
export declare function
|
|
24
|
+
export declare function printDevnetListHashes(version?: string): Promise<void>;
|
|
25
|
+
export declare function getDevnetListHashes(version?: string): string | null;
|
package/dist/cmd/list-hashes.js
CHANGED
|
@@ -9,18 +9,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.getDevnetListHashes = exports.printDevnetListHashes = void 0;
|
|
13
13
|
const child_process_1 = require("child_process");
|
|
14
14
|
const setting_1 = require("../cfg/setting");
|
|
15
15
|
const encoding_1 = require("../util/encoding");
|
|
16
|
-
function
|
|
16
|
+
function printDevnetListHashes(version) {
|
|
17
17
|
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
const output =
|
|
18
|
+
const output = getDevnetListHashes(version);
|
|
19
19
|
console.log(output);
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
exports.
|
|
23
|
-
function
|
|
22
|
+
exports.printDevnetListHashes = printDevnetListHashes;
|
|
23
|
+
function getDevnetListHashes(version) {
|
|
24
24
|
const settings = (0, setting_1.readSettings)();
|
|
25
25
|
const ckbVersion = version || settings.bins.defaultCKBVersion;
|
|
26
26
|
const ckbBinPath = (0, encoding_1.encodeBinPathForTerminal)((0, setting_1.getCKBBinaryPath)(ckbVersion));
|
|
@@ -37,4 +37,4 @@ function getListHashes(version) {
|
|
|
37
37
|
return null;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
exports.
|
|
40
|
+
exports.getDevnetListHashes = getDevnetListHashes;
|
package/dist/cmd/sync-scripts.js
CHANGED
|
@@ -5,12 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.syncScripts = void 0;
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const validator_1 = require("../util/validator");
|
|
9
8
|
const gen_1 = require("../scripts/gen");
|
|
10
9
|
const offckb_config_1 = require("../template/offckb-config");
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
const fs_1 = require("../util/fs");
|
|
11
|
+
const fs_2 = __importDefault(require("fs"));
|
|
12
|
+
function syncScripts({ configPath }) {
|
|
13
|
+
const userOffCKBConfigPath = configPath
|
|
14
|
+
? (0, fs_1.isAbsolutePath)(configPath)
|
|
15
|
+
? configPath
|
|
16
|
+
: path_1.default.resolve(process.cwd(), configPath)
|
|
17
|
+
: path_1.default.resolve(process.cwd(), 'offckb.config.ts');
|
|
18
|
+
if (!fs_2.default.existsSync(userOffCKBConfigPath)) {
|
|
19
|
+
throw new Error(`config file not exits: ${userOffCKBConfigPath}, tips: use --config to specific the offckb.config.ts file`);
|
|
20
|
+
}
|
|
14
21
|
const contractInfoFolder = offckb_config_1.OffCKBConfigFile.readContractInfoFolder(userOffCKBConfigPath);
|
|
15
22
|
if (!contractInfoFolder) {
|
|
16
23
|
throw new Error('No contract info folder found in offckb.config.ts!');
|
|
@@ -1,40 +1,29 @@
|
|
|
1
1
|
import { SystemCell } from './list-hashes';
|
|
2
2
|
import { CellDepInfoLike, Script } from '@ckb-ccc/core';
|
|
3
|
-
import { SystemScriptsRecord } from '../scripts/type';
|
|
4
|
-
|
|
5
|
-
export declare
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}):
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
hashType: string;
|
|
28
|
-
cellDeps: {
|
|
29
|
-
cellDep: {
|
|
30
|
-
outPoint: {
|
|
31
|
-
txHash: string;
|
|
32
|
-
index: number;
|
|
33
|
-
};
|
|
34
|
-
depType: "depGroup";
|
|
35
|
-
};
|
|
36
|
-
}[];
|
|
37
|
-
};
|
|
3
|
+
import { ScriptInfo, SystemScriptsRecord } from '../scripts/type';
|
|
4
|
+
import { Network, NetworkOption } from '../type/base';
|
|
5
|
+
export declare enum PrintStyle {
|
|
6
|
+
system = "system",
|
|
7
|
+
lumos = "lumos",
|
|
8
|
+
ccc = "ccc"
|
|
9
|
+
}
|
|
10
|
+
export interface PrintProps extends NetworkOption {
|
|
11
|
+
style?: PrintStyle;
|
|
12
|
+
}
|
|
13
|
+
export declare function printSystemScripts({ style, network }: PrintProps): Promise<void>;
|
|
14
|
+
export declare function printInSystemStyle(systemScripts: SystemScriptsRecord, network: Network): void;
|
|
15
|
+
export declare function printInLumosConfigStyle(scripts: SystemScriptsRecord, network: Network): void;
|
|
16
|
+
export declare function printInCCCStyle(scripts: SystemScriptsRecord, network: Network): void;
|
|
17
|
+
export declare function getDevnetSystemScriptsFromListHashes(): SystemScriptsRecord | null;
|
|
18
|
+
export declare function systemCellToScriptInfo({ cell, depType, depGroup, extraCellDeps, }: {
|
|
19
|
+
cell: SystemCell;
|
|
20
|
+
depType: 'code' | 'depGroup';
|
|
21
|
+
depGroup?: {
|
|
22
|
+
txHash: string;
|
|
23
|
+
index: number;
|
|
24
|
+
};
|
|
25
|
+
extraCellDeps?: ScriptInfo['cellDeps'];
|
|
26
|
+
}): ScriptInfo;
|
|
38
27
|
export declare function toLumosConfig(scripts: SystemScriptsRecord, addressPrefix?: 'ckb' | 'ckt'): {
|
|
39
28
|
PREFIX: "ckb" | "ckt";
|
|
40
29
|
SCRIPTS: {
|
|
@@ -12,30 +12,42 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.toCCCKnownScripts = exports.toLumosConfig = exports.systemCellToScriptInfo = exports.
|
|
15
|
+
exports.toCCCKnownScripts = exports.toLumosConfig = exports.systemCellToScriptInfo = exports.getDevnetSystemScriptsFromListHashes = exports.printInCCCStyle = exports.printInLumosConfigStyle = exports.printInSystemStyle = exports.printSystemScripts = exports.PrintStyle = void 0;
|
|
16
16
|
const setting_1 = require("../cfg/setting");
|
|
17
17
|
const list_hashes_1 = require("./list-hashes");
|
|
18
18
|
const toml_1 = __importDefault(require("@iarna/toml"));
|
|
19
19
|
const core_1 = require("@ckb-ccc/core");
|
|
20
|
-
|
|
20
|
+
const base_1 = require("../type/base");
|
|
21
|
+
const public_1 = require("../scripts/public");
|
|
22
|
+
var PrintStyle;
|
|
23
|
+
(function (PrintStyle) {
|
|
24
|
+
PrintStyle["system"] = "system";
|
|
25
|
+
PrintStyle["lumos"] = "lumos";
|
|
26
|
+
PrintStyle["ccc"] = "ccc";
|
|
27
|
+
})(PrintStyle || (exports.PrintStyle = PrintStyle = {}));
|
|
28
|
+
function printSystemScripts({ style = PrintStyle.system, network = base_1.Network.devnet }) {
|
|
21
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
const systemScripts =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
const systemScripts = network === base_1.Network.mainnet
|
|
31
|
+
? public_1.MAINNET_SYSTEM_SCRIPTS
|
|
32
|
+
: network === base_1.Network.testnet
|
|
33
|
+
? public_1.TESTNET_SYSTEM_SCRIPTS
|
|
34
|
+
: getDevnetSystemScriptsFromListHashes();
|
|
35
|
+
if (!systemScripts)
|
|
36
|
+
return console.log(`SystemScripts is null, ${network}`);
|
|
37
|
+
if (style === PrintStyle.system) {
|
|
38
|
+
return printInSystemStyle(systemScripts, network);
|
|
39
|
+
}
|
|
40
|
+
if (style === PrintStyle.lumos) {
|
|
41
|
+
return printInLumosConfigStyle(systemScripts, network);
|
|
42
|
+
}
|
|
43
|
+
if (style === PrintStyle.ccc) {
|
|
44
|
+
return printInCCCStyle(systemScripts, network);
|
|
33
45
|
}
|
|
34
46
|
});
|
|
35
47
|
}
|
|
36
48
|
exports.printSystemScripts = printSystemScripts;
|
|
37
|
-
function printInSystemStyle(systemScripts) {
|
|
38
|
-
console.log(
|
|
49
|
+
function printInSystemStyle(systemScripts, network) {
|
|
50
|
+
console.log(`*** CKB ${network.toUpperCase()} System Scripts ***\n`);
|
|
39
51
|
for (const [name, script] of Object.entries(systemScripts)) {
|
|
40
52
|
console.log(`- name: ${name}`);
|
|
41
53
|
if (script == null) {
|
|
@@ -48,86 +60,93 @@ function printInSystemStyle(systemScripts) {
|
|
|
48
60
|
}
|
|
49
61
|
}
|
|
50
62
|
exports.printInSystemStyle = printInSystemStyle;
|
|
51
|
-
function printInLumosConfigStyle(scripts) {
|
|
52
|
-
const config = toLumosConfig(scripts);
|
|
53
|
-
console.log(
|
|
63
|
+
function printInLumosConfigStyle(scripts, network) {
|
|
64
|
+
const config = toLumosConfig(scripts, network === base_1.Network.mainnet ? 'ckb' : 'ckt');
|
|
65
|
+
console.log(`*** CKB ${network.toUpperCase()} System Scripts As LumosConfig ***\n`);
|
|
54
66
|
console.log(JSON.stringify(config, null, 2));
|
|
55
67
|
}
|
|
56
68
|
exports.printInLumosConfigStyle = printInLumosConfigStyle;
|
|
57
|
-
function printInCCCStyle(scripts) {
|
|
69
|
+
function printInCCCStyle(scripts, network) {
|
|
58
70
|
const knownsScripts = toCCCKnownScripts(scripts);
|
|
59
|
-
console.log(
|
|
71
|
+
console.log(`*** CKB ${network.toUpperCase()} System Scripts As CCC KnownScripts ***\n`);
|
|
60
72
|
console.log(JSON.stringify(knownsScripts, null, 2));
|
|
61
73
|
}
|
|
62
74
|
exports.printInCCCStyle = printInCCCStyle;
|
|
63
|
-
function
|
|
75
|
+
function getDevnetSystemScriptsFromListHashes() {
|
|
76
|
+
var _a;
|
|
64
77
|
const settings = (0, setting_1.readSettings)();
|
|
65
|
-
const listHashesString = (0, list_hashes_1.
|
|
66
|
-
if (listHashesString) {
|
|
67
|
-
const listHashes = toml_1.default.parse(listHashesString);
|
|
68
|
-
const chainSpecHashes = Object.values(listHashes)[0];
|
|
69
|
-
if (chainSpecHashes == null) {
|
|
70
|
-
throw new Error(`invalid chain spec hashes file ${listHashesString}`);
|
|
71
|
-
}
|
|
72
|
-
const systemScriptArray = chainSpecHashes.system_cells
|
|
73
|
-
.map((cell) => {
|
|
74
|
-
var _a;
|
|
75
|
-
// Extract the file name
|
|
76
|
-
const name = ((_a = cell.path.split('/').pop()) === null || _a === void 0 ? void 0 : _a.replace(')', '')) || 'unknown script';
|
|
77
|
-
const depGroupIndex = chainSpecHashes.dep_groups.findIndex((depGroup) => depGroup.included_cells.includes(`Bundled(specs/cells/${name})`));
|
|
78
|
-
const depType = depGroupIndex === -1 ? 'code' : 'depGroup';
|
|
79
|
-
const depGroup = depGroupIndex === -1
|
|
80
|
-
? undefined
|
|
81
|
-
: {
|
|
82
|
-
txHash: chainSpecHashes.dep_groups[depGroupIndex].tx_hash,
|
|
83
|
-
index: chainSpecHashes.dep_groups[depGroupIndex].index,
|
|
84
|
-
};
|
|
85
|
-
const scriptInfo = systemCellToScriptInfo(cell, depType, depGroup);
|
|
86
|
-
return {
|
|
87
|
-
name,
|
|
88
|
-
file: cell.path,
|
|
89
|
-
script: scriptInfo,
|
|
90
|
-
};
|
|
91
|
-
})
|
|
92
|
-
.filter((s) => s.name != 'secp256k1_data');
|
|
93
|
-
const systemScripts = systemScriptArray.reduce((acc, item) => {
|
|
94
|
-
const key = item.name;
|
|
95
|
-
acc[key] = item;
|
|
96
|
-
return acc;
|
|
97
|
-
}, {});
|
|
98
|
-
return systemScripts;
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
78
|
+
const listHashesString = (0, list_hashes_1.getDevnetListHashes)(settings.bins.defaultCKBVersion);
|
|
79
|
+
if (!listHashesString) {
|
|
101
80
|
console.log(`list-hashes not found!`);
|
|
102
81
|
return null;
|
|
103
82
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
throw new Error('require depGroup info since the dep type is depGroup');
|
|
83
|
+
const listHashes = toml_1.default.parse(listHashesString);
|
|
84
|
+
const chainSpecHashes = Object.values(listHashes)[0];
|
|
85
|
+
if (chainSpecHashes == null) {
|
|
86
|
+
throw new Error(`invalid chain spec hashes file ${listHashesString}`);
|
|
109
87
|
}
|
|
110
|
-
|
|
88
|
+
const systemScriptArray = chainSpecHashes.system_cells
|
|
89
|
+
.map((cell) => {
|
|
90
|
+
var _a;
|
|
91
|
+
// Extract the file name
|
|
92
|
+
const name = ((_a = cell.path.split('/').pop()) === null || _a === void 0 ? void 0 : _a.replace(')', '')) || 'unknown script';
|
|
93
|
+
const depGroupIndex = chainSpecHashes.dep_groups.findIndex((depGroup) => depGroup.included_cells.includes(`Bundled(specs/cells/${name})`));
|
|
94
|
+
const depType = depGroupIndex === -1 ? 'code' : 'depGroup';
|
|
95
|
+
const depGroup = depGroupIndex === -1
|
|
96
|
+
? undefined
|
|
97
|
+
: {
|
|
98
|
+
txHash: chainSpecHashes.dep_groups[depGroupIndex].tx_hash,
|
|
99
|
+
index: chainSpecHashes.dep_groups[depGroupIndex].index,
|
|
100
|
+
};
|
|
101
|
+
const scriptInfo = systemCellToScriptInfo({ cell, depType, depGroup });
|
|
111
102
|
return {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
103
|
+
name,
|
|
104
|
+
file: cell.path,
|
|
105
|
+
script: scriptInfo,
|
|
106
|
+
};
|
|
107
|
+
})
|
|
108
|
+
.filter((s) => s.name != 'secp256k1_data');
|
|
109
|
+
const systemScripts = systemScriptArray.reduce((acc, item) => {
|
|
110
|
+
const key = item.name;
|
|
111
|
+
acc[key] = item;
|
|
112
|
+
return acc;
|
|
113
|
+
}, {});
|
|
114
|
+
// some special case fixes
|
|
115
|
+
// eg: omnilock also requires the deps of secp256k1-sigHashAll
|
|
116
|
+
(_a = systemScripts.omnilock) === null || _a === void 0 ? void 0 : _a.script.cellDeps.push(systemScripts.secp256k1_blake160_sighash_all.script.cellDeps[0]);
|
|
117
|
+
return systemScripts;
|
|
118
|
+
}
|
|
119
|
+
exports.getDevnetSystemScriptsFromListHashes = getDevnetSystemScriptsFromListHashes;
|
|
120
|
+
function systemCellToScriptInfo({ cell, depType, depGroup, extraCellDeps, }) {
|
|
121
|
+
// todo: we left the type in cellDepsInfo since it requires async fetching and
|
|
122
|
+
// chain running to get the full type script of the type-id deps.
|
|
123
|
+
// Also, in devnet there is no real need to auto upgrade the system scripts with type-id
|
|
124
|
+
if (depType === 'code') {
|
|
125
|
+
let cellDeps = [
|
|
126
|
+
{
|
|
127
|
+
cellDep: {
|
|
128
|
+
outPoint: {
|
|
129
|
+
txHash: cell.tx_hash,
|
|
130
|
+
index: cell.index,
|
|
122
131
|
},
|
|
132
|
+
depType,
|
|
123
133
|
},
|
|
124
|
-
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
if (extraCellDeps && extraCellDeps.length > 0) {
|
|
137
|
+
cellDeps = [...extraCellDeps, ...cellDeps];
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
codeHash: (cell.type_hash || cell.data_hash),
|
|
141
|
+
hashType: cell.type_hash ? 'type' : 'data1',
|
|
142
|
+
cellDeps,
|
|
125
143
|
};
|
|
126
144
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
145
|
+
if (depType === 'depGroup') {
|
|
146
|
+
if (!depGroup) {
|
|
147
|
+
throw new Error('require depGroup info since the dep type is depGroup');
|
|
148
|
+
}
|
|
149
|
+
let cellDeps = [
|
|
131
150
|
{
|
|
132
151
|
cellDep: {
|
|
133
152
|
outPoint: {
|
|
@@ -137,8 +156,17 @@ function systemCellToScriptInfo(cell, depType, depGroup) {
|
|
|
137
156
|
depType,
|
|
138
157
|
},
|
|
139
158
|
},
|
|
140
|
-
]
|
|
141
|
-
|
|
159
|
+
];
|
|
160
|
+
if (extraCellDeps && extraCellDeps.length > 0) {
|
|
161
|
+
cellDeps = [...extraCellDeps, ...cellDeps];
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
codeHash: (cell.type_hash || cell.data_hash),
|
|
165
|
+
hashType: cell.type_hash ? 'type' : 'data1',
|
|
166
|
+
cellDeps,
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
throw new Error(`unknown DepType ${depType}`);
|
|
142
170
|
}
|
|
143
171
|
exports.systemCellToScriptInfo = systemCellToScriptInfo;
|
|
144
172
|
function toLumosConfig(scripts, addressPrefix = 'ckt') {
|
package/dist/deploy/index.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { HexString } from '../type/base';
|
|
|
6
6
|
export type DeployBinaryReturnType = ReturnType<typeof deployBinary>;
|
|
7
7
|
export type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
|
|
8
8
|
export type DeployedInterfaceType = UnwrapPromise<DeployBinaryReturnType>;
|
|
9
|
-
export declare function getToDeployBinsPath(): string[];
|
|
10
|
-
export declare function recordDeployResult(results: DeployedInterfaceType[], network: Network,
|
|
9
|
+
export declare function getToDeployBinsPath(userOffCKBConfigPath: string): string[];
|
|
10
|
+
export declare function recordDeployResult(results: DeployedInterfaceType[], network: Network, userOffCKBConfigPath?: string): Promise<void>;
|
|
11
11
|
export declare function deployBinaries(binPaths: string[], privateKey: HexString, enableTypeId: boolean, ckb: CKB): Promise<{
|
|
12
12
|
deploymentRecipe: DeploymentRecipe;
|
|
13
13
|
deploymentOptions: DeploymentOptions;
|
package/dist/deploy/index.js
CHANGED
|
@@ -21,15 +21,14 @@ const fs_1 = require("../util/fs");
|
|
|
21
21
|
const path_1 = __importDefault(require("path"));
|
|
22
22
|
const fs_2 = __importDefault(require("fs"));
|
|
23
23
|
const core_1 = require("@ckb-ccc/core");
|
|
24
|
-
function getToDeployBinsPath() {
|
|
25
|
-
const userOffCKBConfigPath = path_1.default.resolve(process.cwd(), 'offckb.config.ts');
|
|
24
|
+
function getToDeployBinsPath(userOffCKBConfigPath) {
|
|
26
25
|
const fileContent = fs_2.default.readFileSync(userOffCKBConfigPath, 'utf-8');
|
|
27
26
|
const match = fileContent.match(/contractBinFolder:\s*['"]([^'"]+)['"]/);
|
|
28
27
|
if (match && match[1]) {
|
|
29
28
|
const contractBinFolderValue = match[1];
|
|
30
29
|
const binFolderPath = (0, fs_1.isAbsolutePath)(contractBinFolderValue)
|
|
31
30
|
? contractBinFolderValue
|
|
32
|
-
: path_1.default.resolve(
|
|
31
|
+
: path_1.default.resolve(userOffCKBConfigPath, contractBinFolderValue);
|
|
33
32
|
const bins = (0, fs_1.listBinaryFilesInFolder)(binFolderPath);
|
|
34
33
|
return bins.map((bin) => path_1.default.resolve(binFolderPath, bin));
|
|
35
34
|
}
|
|
@@ -39,7 +38,7 @@ function getToDeployBinsPath() {
|
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
exports.getToDeployBinsPath = getToDeployBinsPath;
|
|
42
|
-
function recordDeployResult(results, network,
|
|
41
|
+
function recordDeployResult(results, network, userOffCKBConfigPath) {
|
|
43
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
44
43
|
if (results.length === 0) {
|
|
45
44
|
return;
|
|
@@ -49,8 +48,10 @@ function recordDeployResult(results, network, isUpdateMyScriptsJsonFile = true)
|
|
|
49
48
|
(0, migration_1.generateDeploymentMigrationFile)(result.deploymentOptions.name, result.deploymentRecipe, network);
|
|
50
49
|
}
|
|
51
50
|
// update my-scripts.json
|
|
52
|
-
if (
|
|
53
|
-
|
|
51
|
+
if (userOffCKBConfigPath) {
|
|
52
|
+
if (!fs_2.default.existsSync(userOffCKBConfigPath)) {
|
|
53
|
+
throw new Error(`config file not exits: ${userOffCKBConfigPath}`);
|
|
54
|
+
}
|
|
54
55
|
const folder = offckb_config_1.OffCKBConfigFile.readContractInfoFolder(userOffCKBConfigPath);
|
|
55
56
|
if (folder) {
|
|
56
57
|
const myScriptsFilePath = path_1.default.resolve(folder, 'my-scripts.json');
|
package/dist/scripts/gen.js
CHANGED
|
@@ -34,7 +34,7 @@ const path_1 = __importDefault(require("path"));
|
|
|
34
34
|
const base_1 = require("../type/base");
|
|
35
35
|
const util_1 = require("./util");
|
|
36
36
|
function genSystemScripts() {
|
|
37
|
-
const devnetScripts = (0, system_scripts_1.
|
|
37
|
+
const devnetScripts = (0, system_scripts_1.getDevnetSystemScriptsFromListHashes)();
|
|
38
38
|
if (devnetScripts != null) {
|
|
39
39
|
const networkScripts = {
|
|
40
40
|
devnet: devnetScripts,
|
package/dist/scripts/private.js
CHANGED
|
@@ -4,7 +4,7 @@ exports.buildCCCDevnetKnownScripts = void 0;
|
|
|
4
4
|
//todo: extract getSystemScriptsFromListHashes/toCCCKnownScripts from cmd folder
|
|
5
5
|
const system_scripts_1 = require("../cmd/system-scripts");
|
|
6
6
|
function buildCCCDevnetKnownScripts() {
|
|
7
|
-
const devnetSystemScripts = (0, system_scripts_1.
|
|
7
|
+
const devnetSystemScripts = (0, system_scripts_1.getDevnetSystemScriptsFromListHashes)();
|
|
8
8
|
if (devnetSystemScripts == null) {
|
|
9
9
|
throw new Error('can not getSystemScriptsFromListHashes in devnet');
|
|
10
10
|
}
|
package/dist/scripts/public.js
CHANGED
|
@@ -1,62 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.MAINNET_SYSTEM_SCRIPTS = exports.TESTNET_SYSTEM_SCRIPTS = void 0;
|
|
4
|
+
const advanced_1 = require("@ckb-ccc/core/advanced");
|
|
5
|
+
const advanced_2 = require("@ckb-ccc/core/advanced");
|
|
4
6
|
// spore: https://github.com/sporeprotocol/spore-contract/blob/master/docs/VERSIONS.md
|
|
5
7
|
exports.TESTNET_SYSTEM_SCRIPTS = {
|
|
6
8
|
secp256k1_blake160_sighash_all: {
|
|
7
9
|
name: 'secp256k1_blake160_sighash_all',
|
|
8
|
-
script:
|
|
9
|
-
codeHash: '0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8',
|
|
10
|
-
hashType: 'type',
|
|
11
|
-
cellDeps: [
|
|
12
|
-
{
|
|
13
|
-
cellDep: {
|
|
14
|
-
outPoint: {
|
|
15
|
-
txHash: '0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37',
|
|
16
|
-
index: 0,
|
|
17
|
-
},
|
|
18
|
-
depType: 'depGroup',
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
],
|
|
22
|
-
},
|
|
10
|
+
script: advanced_1.TESTNET_SCRIPTS.Secp256k1Blake160,
|
|
23
11
|
},
|
|
24
12
|
dao: {
|
|
25
13
|
name: 'dao',
|
|
26
|
-
script:
|
|
27
|
-
codeHash: '0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e',
|
|
28
|
-
hashType: 'type',
|
|
29
|
-
cellDeps: [
|
|
30
|
-
{
|
|
31
|
-
cellDep: {
|
|
32
|
-
outPoint: {
|
|
33
|
-
txHash: '0x8f8c79eb6671709633fe6a46de93c0fedc9c1b8a6527a18d3983879542635c9f',
|
|
34
|
-
index: 2,
|
|
35
|
-
},
|
|
36
|
-
depType: 'code',
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
],
|
|
40
|
-
},
|
|
14
|
+
script: advanced_1.TESTNET_SCRIPTS.NervosDao,
|
|
41
15
|
},
|
|
42
16
|
secp256k1_blake160_multisig_all: {
|
|
43
17
|
name: 'secp256k1_blake160_multisig_all',
|
|
44
|
-
|
|
45
|
-
script: {
|
|
46
|
-
codeHash: '0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8',
|
|
47
|
-
hashType: 'type',
|
|
48
|
-
cellDeps: [
|
|
49
|
-
{
|
|
50
|
-
cellDep: {
|
|
51
|
-
outPoint: {
|
|
52
|
-
txHash: '0xf8de3bb47d055cdf460d93a2a6e1b05f7432f9777c8c474abf4eec1d4aee5d37',
|
|
53
|
-
index: 1,
|
|
54
|
-
},
|
|
55
|
-
depType: 'depGroup',
|
|
56
|
-
},
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
},
|
|
18
|
+
script: advanced_1.TESTNET_SCRIPTS.Secp256k1Multisig,
|
|
60
19
|
},
|
|
61
20
|
sudt: {
|
|
62
21
|
name: 'sudt',
|
|
@@ -78,57 +37,15 @@ exports.TESTNET_SYSTEM_SCRIPTS = {
|
|
|
78
37
|
},
|
|
79
38
|
xudt: {
|
|
80
39
|
name: 'xudt',
|
|
81
|
-
script:
|
|
82
|
-
codeHash: '0x25c29dc317811a6f6f3985a7a9ebc4838bd388d19d0feeecf0bcd60f6c0975bb',
|
|
83
|
-
hashType: 'type',
|
|
84
|
-
cellDeps: [
|
|
85
|
-
{
|
|
86
|
-
cellDep: {
|
|
87
|
-
outPoint: {
|
|
88
|
-
txHash: '0xbf6fb538763efec2a70a6a3dcb7242787087e1030c4e7d86585bc63a9d337f5f',
|
|
89
|
-
index: 0,
|
|
90
|
-
},
|
|
91
|
-
depType: 'code',
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
],
|
|
95
|
-
},
|
|
40
|
+
script: advanced_1.TESTNET_SCRIPTS.XUdt,
|
|
96
41
|
},
|
|
97
42
|
omnilock: {
|
|
98
43
|
name: 'omnilock',
|
|
99
|
-
script:
|
|
100
|
-
codeHash: '0xf329effd1c475a2978453c8600e1eaf0bc2087ee093c3ee64cc96ec6847752cb',
|
|
101
|
-
hashType: 'type',
|
|
102
|
-
cellDeps: [
|
|
103
|
-
{
|
|
104
|
-
cellDep: {
|
|
105
|
-
outPoint: {
|
|
106
|
-
txHash: '0xec18bf0d857c981c3d1f4e17999b9b90c484b303378e94de1a57b0872f5d4602',
|
|
107
|
-
index: 0,
|
|
108
|
-
},
|
|
109
|
-
depType: 'code',
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
],
|
|
113
|
-
},
|
|
44
|
+
script: advanced_1.TESTNET_SCRIPTS.OmniLock,
|
|
114
45
|
},
|
|
115
46
|
anyone_can_pay: {
|
|
116
47
|
name: 'anyone_can_pay',
|
|
117
|
-
script:
|
|
118
|
-
codeHash: '0x3419a1c09eb2567f6552ee7a8ecffd64155cffe0f1796e6e61ec088d740c1356',
|
|
119
|
-
hashType: 'type',
|
|
120
|
-
cellDeps: [
|
|
121
|
-
{
|
|
122
|
-
cellDep: {
|
|
123
|
-
outPoint: {
|
|
124
|
-
txHash: '0xec26b0f85ed839ece5f11c4c4e837ec359f5adc4420410f6453b1f6b60fb96a6',
|
|
125
|
-
index: 0,
|
|
126
|
-
},
|
|
127
|
-
depType: 'depGroup',
|
|
128
|
-
},
|
|
129
|
-
},
|
|
130
|
-
],
|
|
131
|
-
},
|
|
48
|
+
script: advanced_1.TESTNET_SCRIPTS.AnyoneCanPay,
|
|
132
49
|
},
|
|
133
50
|
always_success: undefined,
|
|
134
51
|
spore: {
|
|
@@ -225,57 +142,15 @@ exports.TESTNET_SYSTEM_SCRIPTS = {
|
|
|
225
142
|
exports.MAINNET_SYSTEM_SCRIPTS = {
|
|
226
143
|
secp256k1_blake160_sighash_all: {
|
|
227
144
|
name: 'secp256k1_blake160_sighash_all',
|
|
228
|
-
script:
|
|
229
|
-
codeHash: '0x9bd7e06f3ecf4be0f2fcd2188b23f1b9fcc88e5d4b65a8637b17723bbda3cce8',
|
|
230
|
-
hashType: 'type',
|
|
231
|
-
cellDeps: [
|
|
232
|
-
{
|
|
233
|
-
cellDep: {
|
|
234
|
-
outPoint: {
|
|
235
|
-
txHash: '0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c',
|
|
236
|
-
index: 0,
|
|
237
|
-
},
|
|
238
|
-
depType: 'depGroup',
|
|
239
|
-
},
|
|
240
|
-
},
|
|
241
|
-
],
|
|
242
|
-
},
|
|
145
|
+
script: advanced_2.MAINNET_SCRIPTS.Secp256k1Blake160,
|
|
243
146
|
},
|
|
244
147
|
dao: {
|
|
245
148
|
name: 'dao',
|
|
246
|
-
script:
|
|
247
|
-
codeHash: '0x82d76d1b75fe2fd9a27dfbaa65a039221a380d76c926f378d3f81cf3e7e13f2e',
|
|
248
|
-
hashType: 'type',
|
|
249
|
-
cellDeps: [
|
|
250
|
-
{
|
|
251
|
-
cellDep: {
|
|
252
|
-
outPoint: {
|
|
253
|
-
txHash: '0xe2fb199810d49a4d8beec56718ba2593b665db9d52299a0f9e6e75416d73ff5c',
|
|
254
|
-
index: 2,
|
|
255
|
-
},
|
|
256
|
-
depType: 'code',
|
|
257
|
-
},
|
|
258
|
-
},
|
|
259
|
-
],
|
|
260
|
-
},
|
|
149
|
+
script: advanced_2.MAINNET_SCRIPTS.NervosDao,
|
|
261
150
|
},
|
|
262
151
|
secp256k1_blake160_multisig_all: {
|
|
263
152
|
name: 'secp256k1_blake160_multisig_all',
|
|
264
|
-
script:
|
|
265
|
-
codeHash: '0x5c5069eb0857efc65e1bca0c07df34c31663b3622fd3876c876320fc9634e2a8',
|
|
266
|
-
hashType: 'type',
|
|
267
|
-
cellDeps: [
|
|
268
|
-
{
|
|
269
|
-
cellDep: {
|
|
270
|
-
outPoint: {
|
|
271
|
-
txHash: '0x71a7ba8fc96349fea0ed3a5c47992e3b4084b031a42264a018e0072e8172e46c',
|
|
272
|
-
index: 1,
|
|
273
|
-
},
|
|
274
|
-
depType: 'depGroup',
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
],
|
|
278
|
-
},
|
|
153
|
+
script: advanced_2.MAINNET_SCRIPTS.Secp256k1Multisig,
|
|
279
154
|
},
|
|
280
155
|
sudt: {
|
|
281
156
|
name: 'sudt',
|
|
@@ -297,57 +172,15 @@ exports.MAINNET_SYSTEM_SCRIPTS = {
|
|
|
297
172
|
},
|
|
298
173
|
xudt: {
|
|
299
174
|
name: 'xudt',
|
|
300
|
-
script:
|
|
301
|
-
codeHash: '0x50bd8d6680b8b9cf98b73f3c08faf8b2a21914311954118ad6609be6e78a1b95',
|
|
302
|
-
hashType: 'data1',
|
|
303
|
-
cellDeps: [
|
|
304
|
-
{
|
|
305
|
-
cellDep: {
|
|
306
|
-
outPoint: {
|
|
307
|
-
txHash: '0xc07844ce21b38e4b071dd0e1ee3b0e27afd8d7532491327f39b786343f558ab7',
|
|
308
|
-
index: 0,
|
|
309
|
-
},
|
|
310
|
-
depType: 'code',
|
|
311
|
-
},
|
|
312
|
-
},
|
|
313
|
-
],
|
|
314
|
-
},
|
|
175
|
+
script: advanced_2.MAINNET_SCRIPTS.XUdt,
|
|
315
176
|
},
|
|
316
177
|
omnilock: {
|
|
317
178
|
name: 'omnilock',
|
|
318
|
-
script:
|
|
319
|
-
codeHash: '0x9b819793a64463aed77c615d6cb226eea5487ccfc0783043a587254cda2b6f26',
|
|
320
|
-
hashType: 'type',
|
|
321
|
-
cellDeps: [
|
|
322
|
-
{
|
|
323
|
-
cellDep: {
|
|
324
|
-
outPoint: {
|
|
325
|
-
txHash: '0xc76edf469816aa22f416503c38d0b533d2a018e253e379f134c3985b3472c842',
|
|
326
|
-
index: 0,
|
|
327
|
-
},
|
|
328
|
-
depType: 'code',
|
|
329
|
-
},
|
|
330
|
-
},
|
|
331
|
-
],
|
|
332
|
-
},
|
|
179
|
+
script: advanced_2.MAINNET_SCRIPTS.OmniLock,
|
|
333
180
|
},
|
|
334
181
|
anyone_can_pay: {
|
|
335
182
|
name: 'anyone_can_pay',
|
|
336
|
-
script:
|
|
337
|
-
codeHash: '0xd369597ff47f29fbc0d47d2e3775370d1250b85140c670e4718af712983a2354',
|
|
338
|
-
hashType: 'type',
|
|
339
|
-
cellDeps: [
|
|
340
|
-
{
|
|
341
|
-
cellDep: {
|
|
342
|
-
outPoint: {
|
|
343
|
-
txHash: '0x4153a2014952d7cac45f285ce9a7c5c0c0e1b21f2d378b82ac1433cb11c25c4d',
|
|
344
|
-
index: 0,
|
|
345
|
-
},
|
|
346
|
-
depType: 'depGroup',
|
|
347
|
-
},
|
|
348
|
-
},
|
|
349
|
-
],
|
|
350
|
-
},
|
|
183
|
+
script: advanced_2.MAINNET_SCRIPTS.AnyoneCanPay,
|
|
351
184
|
},
|
|
352
185
|
always_success: undefined,
|
|
353
186
|
spore: {
|
package/dist/scripts/type.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -21,7 +21,7 @@ export enum SystemScriptName {
|
|
|
21
21
|
|
|
22
22
|
export interface ScriptInfo {
|
|
23
23
|
codeHash: `0x${string}`;
|
|
24
|
-
hashType: 'type' | 'data';
|
|
24
|
+
hashType: 'type' | 'data' | 'data1';
|
|
25
25
|
cellDeps: {
|
|
26
26
|
cellDep: {
|
|
27
27
|
outPoint: {
|
|
@@ -30,6 +30,11 @@ export interface ScriptInfo {
|
|
|
30
30
|
};
|
|
31
31
|
depType: 'code' | 'dep_group';
|
|
32
32
|
};
|
|
33
|
+
type?: {
|
|
34
|
+
codeHash: `0x${string}`;
|
|
35
|
+
hashType: 'type' | 'data' | 'data1';
|
|
36
|
+
args: `0x${string}`;
|
|
37
|
+
};
|
|
33
38
|
}[];
|
|
34
39
|
}
|
|
35
40
|
|