@sentio/cli 2.18.3 → 2.18.4-rc.2

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.
Files changed (84) hide show
  1. package/lib/abi.d.ts +9 -0
  2. package/lib/abi.d.ts.map +1 -0
  3. package/lib/abi.js +136 -0
  4. package/lib/abi.js.map +1 -0
  5. package/lib/abi.test.d.ts +2 -0
  6. package/lib/abi.test.d.ts.map +1 -0
  7. package/lib/abi.test.js.map +1 -0
  8. package/lib/commands/build.d.ts +28 -0
  9. package/lib/commands/build.d.ts.map +1 -0
  10. package/lib/commands/build.js +213 -0
  11. package/lib/commands/build.js.map +1 -0
  12. package/lib/commands/login-server.d.ts +8 -0
  13. package/lib/commands/login-server.d.ts.map +1 -0
  14. package/lib/commands/login-server.js +110 -0
  15. package/lib/commands/login-server.js.map +1 -0
  16. package/lib/commands/run-add.d.ts +2 -0
  17. package/lib/commands/run-add.d.ts.map +1 -0
  18. package/lib/commands/run-add.js +100 -0
  19. package/lib/commands/run-add.js.map +1 -0
  20. package/lib/commands/run-compile.d.ts +2 -0
  21. package/lib/commands/run-compile.d.ts.map +1 -0
  22. package/lib/commands/run-compile.js +199 -0
  23. package/lib/commands/run-compile.js.map +1 -0
  24. package/lib/commands/run-create.d.ts +2 -0
  25. package/lib/commands/run-create.d.ts.map +1 -0
  26. package/lib/commands/run-create.js +142 -0
  27. package/lib/commands/run-create.js.map +1 -0
  28. package/lib/commands/run-graph.d.ts +3 -0
  29. package/lib/commands/run-graph.d.ts.map +1 -0
  30. package/lib/commands/run-graph.js +136 -0
  31. package/lib/commands/run-graph.js.map +1 -0
  32. package/lib/commands/run-login.d.ts +2 -0
  33. package/lib/commands/run-login.d.ts.map +1 -0
  34. package/lib/commands/run-login.js +107 -0
  35. package/lib/commands/run-login.js.map +1 -0
  36. package/lib/commands/run-test.d.ts +2 -0
  37. package/lib/commands/run-test.d.ts.map +1 -0
  38. package/lib/commands/run-test.js +11 -0
  39. package/lib/commands/run-test.js.map +1 -0
  40. package/lib/commands/run-upload.d.ts +14 -0
  41. package/lib/commands/run-upload.d.ts.map +1 -0
  42. package/lib/commands/run-upload.js +332 -0
  43. package/lib/commands/run-upload.js.map +1 -0
  44. package/lib/commands/run-version.d.ts +2 -0
  45. package/lib/commands/run-version.d.ts.map +1 -0
  46. package/lib/commands/run-version.js +38 -0
  47. package/lib/commands/run-version.js.map +1 -0
  48. package/lib/config.d.ts +23 -0
  49. package/lib/config.d.ts.map +1 -0
  50. package/lib/config.js +70 -0
  51. package/lib/config.js.map +1 -0
  52. package/lib/execution.d.ts +5 -0
  53. package/lib/execution.d.ts.map +1 -0
  54. package/lib/execution.js +31 -0
  55. package/lib/execution.js.map +1 -0
  56. package/lib/index.d.ts +3 -0
  57. package/lib/index.d.ts.map +1 -0
  58. package/lib/index.js +130 -1183
  59. package/lib/index.js.map +1 -7
  60. package/lib/key.d.ts +3 -0
  61. package/lib/key.d.ts.map +1 -0
  62. package/lib/key.js +36 -0
  63. package/lib/key.js.map +1 -0
  64. package/lib/utils.d.ts +4 -0
  65. package/lib/utils.d.ts.map +1 -0
  66. package/lib/utils.js +32 -0
  67. package/lib/utils.js.map +1 -0
  68. package/package.json +23 -5
  69. package/src/commands/run-test.ts +2 -4
  70. package/templates/aptos/src/processor.test.ts +4 -2
  71. package/templates/aptos/tsconfig.json +1 -1
  72. package/templates/eth/src/processor.test.ts +6 -4
  73. package/templates/eth/tsconfig.json +1 -1
  74. package/templates/fuel/src/processor.test.ts +4 -2
  75. package/templates/fuel/tsconfig.json +1 -1
  76. package/templates/raw/src/processor.test.ts +4 -2
  77. package/templates/raw/tsconfig.json +1 -1
  78. package/templates/solana/src/processor.test.ts +4 -2
  79. package/templates/solana/tsconfig.json +1 -1
  80. package/src/cjs-shim.ts +0 -8
  81. package/templates/aptos/jest.config.ts +0 -8
  82. package/templates/eth/jest.config.ts +0 -8
  83. package/templates/raw/jest.config.ts +0 -8
  84. package/templates/solana/jest.config.ts +0 -8
package/lib/abi.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import { ChainId } from '@sentio/chain';
2
+ export declare const ETH_API_URL_MAP: Record<string, string>;
3
+ export declare function getABI(chain: ChainId, address: string, name: string | undefined): Promise<{
4
+ name?: string;
5
+ abi: object | string;
6
+ }>;
7
+ export declare function getABIFilePath(chain: string, name: string): string;
8
+ export declare function writeABIFile(obj: string | object, output: string): void;
9
+ //# sourceMappingURL=abi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"AAOA,OAAO,EAAgB,OAAO,EAA0B,MAAM,eAAe,CAAA;AAE7E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,CAAA;AAezD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,SAAS,GACvB,OAAO,CAAC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,CAyFlD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAoBlE;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,QAQhE"}
package/lib/abi.js ADDED
@@ -0,0 +1,136 @@
1
+ import { Aptos, AptosConfig } from '@aptos-labs/ts-sdk';
2
+ import { SuiClient } from '@mysten/sui.js/client';
3
+ import chalk from 'chalk';
4
+ import process from 'process';
5
+ import path from 'path';
6
+ import fs from 'fs-extra';
7
+ import fetch from 'node-fetch';
8
+ import { AptosChainId, EthChainId, SuiChainId } from '@sentio/chain';
9
+ export const ETH_API_URL_MAP = {};
10
+ ETH_API_URL_MAP[EthChainId.ETHEREUM] = 'https://api.etherscan.io';
11
+ ETH_API_URL_MAP[EthChainId.GOERLI] = 'https://api-goerli.etherscan.io';
12
+ ETH_API_URL_MAP[EthChainId.BINANCE] = 'https://api.bscscan.com';
13
+ ETH_API_URL_MAP[EthChainId.POLYGON] = 'https://api.polygonscan.com';
14
+ ETH_API_URL_MAP[EthChainId.ARBITRUM] = 'https://api.arbiscan.io';
15
+ ETH_API_URL_MAP[EthChainId.OPTIMISM] = 'https://api-optimistic.etherscan.io';
16
+ // ETH_API_URL_MAP[CHAIN_IDS.BASE_GOERLI] = 'https://api-goerli.basescan.org' // didn't see any verified contract
17
+ ETH_API_URL_MAP[EthChainId.AVALANCHE] = 'https://api.snowtrace.io';
18
+ ETH_API_URL_MAP[EthChainId.CRONOS] = 'https://api.cronoscan.com';
19
+ ETH_API_URL_MAP[EthChainId.MOONBEAM] = 'https://api-moonbeam.moonscan.io';
20
+ ETH_API_URL_MAP[EthChainId.FANTOM] = 'https://api.ftmscan.com';
21
+ export async function getABI(chain, address, name) {
22
+ let ethApi;
23
+ let aptosClient;
24
+ let suiClient;
25
+ switch (chain) {
26
+ case AptosChainId.APTOS_MAINNET:
27
+ aptosClient = new Aptos(new AptosConfig({ fullnode: 'https://mainnet.aptoslabs.com/v1' }));
28
+ break;
29
+ case AptosChainId.APTOS_TESTNET:
30
+ aptosClient = new Aptos(new AptosConfig({ fullnode: 'https://testnet.aptoslabs.com/v1' }));
31
+ break;
32
+ case SuiChainId.SUI_MAINNET:
33
+ suiClient = new SuiClient({ url: 'https://fullnode.mainnet.sui.io/' });
34
+ break;
35
+ case SuiChainId.SUI_TESTNET:
36
+ suiClient = new SuiClient({ url: 'https://fullnode.testnet.sui.io/' });
37
+ break;
38
+ default:
39
+ ethApi = ETH_API_URL_MAP[chain];
40
+ if (!ethApi) {
41
+ console.error(chalk.red(`chain ${chain} not supported for direct add, please download the ABI manually`));
42
+ process.exit(1);
43
+ }
44
+ }
45
+ const baseErrMsg = chalk.red(`Failed to automatic download contract ${address} from ${chain}, please manually download abi and put it into abis/eth directory`);
46
+ if (aptosClient) {
47
+ try {
48
+ return {
49
+ abi: await aptosClient.getAccountModules({ accountAddress: address }),
50
+ name
51
+ };
52
+ }
53
+ catch (e) {
54
+ console.error(baseErrMsg, e);
55
+ process.exit(1);
56
+ }
57
+ }
58
+ if (suiClient) {
59
+ try {
60
+ return {
61
+ abi: await suiClient.getNormalizedMoveModulesByPackage({ package: address }),
62
+ name
63
+ };
64
+ }
65
+ catch (e) {
66
+ console.error(baseErrMsg, e);
67
+ process.exit(1);
68
+ }
69
+ }
70
+ try {
71
+ const apiKey = process.env['ETHERSCAN_API_KEY_' + chain];
72
+ if (apiKey) {
73
+ ethApi = `${ethApi}/api?apikey=${apiKey}&`;
74
+ }
75
+ else {
76
+ ethApi = `${ethApi}/api?`;
77
+ }
78
+ let resp = (await (await fetch(`${ethApi}module=contract&action=getabi&address=${address}`)).json());
79
+ if (resp.status !== '1') {
80
+ if (resp.result?.startsWith('Contract source code not verified')) {
81
+ throw Error(resp.result + "(API can't retrieve ABI based on similar contract)");
82
+ }
83
+ throw Error(resp.message);
84
+ }
85
+ const abi = resp.result;
86
+ if (!name) {
87
+ await new Promise((resolve) => setTimeout(resolve, 5000));
88
+ resp = (await (await fetch(`${ethApi}module=contract&action=getsourcecode&address=${address}`)).json());
89
+ if (resp.status !== '1') {
90
+ throw Error(resp.message);
91
+ }
92
+ const contractName = resp.result[0].ContractName;
93
+ if (contractName) {
94
+ name = contractName;
95
+ }
96
+ }
97
+ return {
98
+ name,
99
+ abi
100
+ };
101
+ }
102
+ catch (e) {
103
+ console.error(baseErrMsg, e);
104
+ process.exit(1);
105
+ }
106
+ }
107
+ export function getABIFilePath(chain, name) {
108
+ let subpath;
109
+ switch (chain) {
110
+ case AptosChainId.APTOS_MAINNET:
111
+ subpath = 'aptos';
112
+ break;
113
+ case AptosChainId.APTOS_TESTNET:
114
+ subpath = 'aptos/testnet';
115
+ break;
116
+ case SuiChainId.SUI_MAINNET:
117
+ subpath = 'sui';
118
+ break;
119
+ case SuiChainId.SUI_TESTNET:
120
+ subpath = 'sui/testnet';
121
+ break;
122
+ default:
123
+ subpath = 'eth';
124
+ }
125
+ return path.join('abis', subpath, name + '.json');
126
+ }
127
+ export function writeABIFile(obj, output) {
128
+ if (typeof obj === 'string') {
129
+ obj = JSON.parse(obj);
130
+ }
131
+ const data = JSON.stringify(obj, null, 2);
132
+ fs.mkdirSync(path.dirname(output), { recursive: true });
133
+ fs.writeFileSync(output, data);
134
+ console.log(chalk.green('ABI has been downloaded to', output));
135
+ }
136
+ //# sourceMappingURL=abi.js.map
package/lib/abi.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.js","sourceRoot":"","sources":["../src/abi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=abi.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.test.d.ts","sourceRoot":"","sources":["../src/abi.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abi.test.js","sourceRoot":"","sources":["../src/abi.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAE7B,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACjC,OAAM;IACR,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACtG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;QACrB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACrG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACzB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACrG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAE,SAAS,CAAC,CAAA;QACpG,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;QAC1B,MAAM,GAAG,GAAG,MAAM,MAAM,CACtB,UAAU,CAAC,WAAW,EACtB,oEAAoE,EACpE,SAAS,CACV,CAAA;QACD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,28 @@
1
+ import commandLineArgs from 'command-line-args';
2
+ export declare const buildOptionDefinitions: ({
3
+ name: string;
4
+ alias: string;
5
+ type: BooleanConstructor;
6
+ description: string;
7
+ } | {
8
+ name: string;
9
+ type: BooleanConstructor;
10
+ description: string;
11
+ alias?: undefined;
12
+ })[];
13
+ export declare const GenOptionDefinitions: ({
14
+ name: string;
15
+ alias: string;
16
+ type: BooleanConstructor;
17
+ description: string;
18
+ } | {
19
+ name: string;
20
+ type: BooleanConstructor;
21
+ description: string;
22
+ alias?: undefined;
23
+ })[];
24
+ export declare function buildProcessorWithArgs(argv: string[]): Promise<void>;
25
+ export declare function generate(argv: string[]): Promise<void>;
26
+ export declare function buildProcessor(onlyGen: boolean, options: commandLineArgs.CommandLineOptions): Promise<void>;
27
+ export declare function codegen(genExample: boolean): Promise<void>;
28
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAIA,OAAO,eAAe,MAAM,mBAAmB,CAAA;AAO/C,eAAO,MAAM,sBAAsB;;;;;;;;;;IAsBlC,CAAA;AAED,eAAO,MAAM,oBAAoB;;;;;;;;;;IAYhC,CAAA;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,iBAkB1D;AAED,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,iBAkB5C;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,kBAAkB,iBA0CjG;AAED,wBAAsB,OAAO,CAAC,UAAU,EAAE,OAAO,iBAoGhD"}
@@ -0,0 +1,213 @@
1
+ import chalk from 'chalk';
2
+ import path from 'path';
3
+ import fs from 'fs-extra';
4
+ import { getPackageRoot } from '../utils.js';
5
+ import commandLineArgs from 'command-line-args';
6
+ import commandLineUsage from 'command-line-usage';
7
+ import yaml from 'yaml';
8
+ import { getABIFilePath, getABI, writeABIFile } from '../abi.js';
9
+ import { execStep, execYarn } from '../execution.js';
10
+ export const buildOptionDefinitions = [
11
+ {
12
+ name: 'help',
13
+ alias: 'h',
14
+ type: Boolean,
15
+ description: 'Display this usage guide.'
16
+ },
17
+ {
18
+ name: 'skip-gen',
19
+ type: Boolean,
20
+ description: 'Skip code generation.'
21
+ },
22
+ {
23
+ name: 'skip-deps',
24
+ type: Boolean,
25
+ description: 'Skip dependency enforce.'
26
+ },
27
+ {
28
+ name: 'example',
29
+ type: Boolean,
30
+ description: 'Generate example usage of the processor.'
31
+ }
32
+ ];
33
+ export const GenOptionDefinitions = [
34
+ {
35
+ name: 'help',
36
+ alias: 'h',
37
+ type: Boolean,
38
+ description: 'Display this usage guide.'
39
+ },
40
+ {
41
+ name: 'example',
42
+ type: Boolean,
43
+ description: 'Generate example usage of the processor.'
44
+ }
45
+ ];
46
+ export async function buildProcessorWithArgs(argv) {
47
+ const options = commandLineArgs(buildOptionDefinitions, { argv, partial: true });
48
+ const usage = commandLineUsage([
49
+ {
50
+ header: 'Build project',
51
+ content: 'sentio build'
52
+ },
53
+ {
54
+ header: 'Options',
55
+ optionList: buildOptionDefinitions
56
+ }
57
+ ]);
58
+ if (options.help) {
59
+ console.log(usage);
60
+ process.exit(0);
61
+ }
62
+ await buildProcessor(false, options);
63
+ }
64
+ export async function generate(argv) {
65
+ const options = commandLineArgs(GenOptionDefinitions, { argv, partial: true });
66
+ const usage = commandLineUsage([
67
+ {
68
+ header: 'Generate type binding',
69
+ content: 'sentio gen [--example]'
70
+ },
71
+ {
72
+ header: 'Options',
73
+ optionList: GenOptionDefinitions
74
+ }
75
+ ]);
76
+ if (options.help) {
77
+ console.log(usage);
78
+ process.exit(0);
79
+ }
80
+ await buildProcessor(true, options);
81
+ }
82
+ export async function buildProcessor(onlyGen, options) {
83
+ if (!options['skip-deps'] && !onlyGen) {
84
+ await installDeps();
85
+ }
86
+ if (!options['skip-gen']) {
87
+ await codegen(options.example || false);
88
+ }
89
+ if (!onlyGen) {
90
+ let tsupConfig;
91
+ try {
92
+ tsupConfig = path.resolve(getPackageRoot('@sentio/sdk'), 'lib', 'tsup.config.ts');
93
+ }
94
+ catch (e) {
95
+ console.error(chalk.red("Wrong CLI version for sdk, can't find tsup.config.ts"));
96
+ process.exit(1);
97
+ }
98
+ const tsc = path.resolve(getPackageRoot('typescript'), 'bin', 'tsc');
99
+ await execStep(['node', tsc, '--noEmit'], 'type checking');
100
+ const tsup = path.resolve(getPackageRoot('tsup'), 'dist', 'cli-default.js');
101
+ // await execStep('yarn tsc -p .', 'Compile')
102
+ await execStep(['node', tsup, '--config', tsupConfig], 'Packaging');
103
+ const dir = fs.readdirSync(path.join(process.cwd(), 'dist'));
104
+ const generated = dir.filter((d) => d.endsWith('.js')).length;
105
+ if (generated < 0) {
106
+ console.error(chalk.red('No filed generated, please check if your processor.ts file'));
107
+ process.exit(1);
108
+ }
109
+ if (generated > 1) {
110
+ console.error(chalk.red('Packing failed: '), `Multiple entry point is not allowed. If your processor.ts have multiple file imported, please change:
111
+ import('mine.js')
112
+ to
113
+ import 'mine.js'
114
+ `);
115
+ }
116
+ }
117
+ }
118
+ export async function codegen(genExample) {
119
+ const processorConfig = yaml.parse(fs.readFileSync('sentio.yaml', 'utf8'));
120
+ const contractsForUsage = processorConfig.contracts || [];
121
+ let previousChain = '';
122
+ for (const contract of contractsForUsage) {
123
+ const outputPath = getABIFilePath(contract.chain, contract.name || contract.address);
124
+ if (fs.existsSync(outputPath)) {
125
+ continue;
126
+ }
127
+ console.log('Download Missing ABI specified in sentio.yaml');
128
+ if (contract.chain === previousChain) {
129
+ await new Promise((resolve) => setTimeout(resolve, 5000));
130
+ }
131
+ else {
132
+ previousChain = contract.chain;
133
+ }
134
+ const res = await getABI(contract.chain, contract.address, contract.name);
135
+ writeABIFile(res.abi, outputPath);
136
+ }
137
+ const outputBase = path.resolve('src', 'types');
138
+ try {
139
+ // @ts-ignore dynamic import
140
+ const codegen = await import('@sentio/sdk/eth/codegen');
141
+ let input = path.resolve('abis', 'eth');
142
+ let output = path.resolve(outputBase, 'eth');
143
+ if (!fs.existsSync(input)) {
144
+ input = path.resolve('abis', 'evm');
145
+ output = path.resolve(outputBase, 'eth');
146
+ }
147
+ fs.emptyDirSync(output);
148
+ // @ts-ignore dynamic import
149
+ await codegen.codegen(input, output, genExample ? contractsForUsage : []);
150
+ }
151
+ catch (e) {
152
+ console.error('code gen error', e);
153
+ }
154
+ try {
155
+ // @ts-ignore dynamic import
156
+ const codegen = await import('@sentio/sdk/solana/codegen');
157
+ const output = path.resolve(outputBase, 'solana');
158
+ fs.emptyDirSync(output);
159
+ // @ts-ignore dynamic import
160
+ await codegen.codegen(path.resolve('abis', 'solana'), output, genExample);
161
+ }
162
+ catch (e) {
163
+ console.error('code gen error', e);
164
+ }
165
+ try {
166
+ // @ts-ignore dynamic import
167
+ const codegen = await import('@sentio/sdk/aptos/codegen');
168
+ const output = path.resolve(outputBase, 'aptos');
169
+ fs.emptyDirSync(output);
170
+ // @ts-ignore dynamic import
171
+ await codegen.codegen(path.resolve('abis', 'aptos'), output, genExample);
172
+ }
173
+ catch (e) {
174
+ console.error('code gen error', e);
175
+ }
176
+ try {
177
+ // @ts-ignore dynamic import
178
+ const codegen = await import('@sentio/sdk/sui/codegen');
179
+ const output = path.resolve(outputBase, 'sui');
180
+ fs.emptyDirSync(output);
181
+ // @ts-ignore dynamic import
182
+ await codegen.codegen(path.resolve('abis', 'sui'), output, genExample);
183
+ }
184
+ catch (e) {
185
+ console.error('code gen error', e);
186
+ }
187
+ try {
188
+ // @ts-ignore dynamic import
189
+ const codegen = await import('@sentio/sdk/fuel/codegen');
190
+ const output = path.resolve(outputBase, 'fuel');
191
+ fs.emptyDirSync(output);
192
+ // @ts-ignore dynamic import
193
+ await codegen.codegen(path.resolve('abis', 'fuel'), output, genExample);
194
+ }
195
+ catch (e) {
196
+ console.error('code gen error', e);
197
+ }
198
+ try {
199
+ const src = path.resolve('.');
200
+ // @ts-ignore dynamic import
201
+ const codegen = await import('@sentio/sdk/store/codegen');
202
+ const output = path.resolve('src', 'schema');
203
+ fs.emptyDirSync(output);
204
+ await codegen.codegen(src, output);
205
+ }
206
+ catch (e) {
207
+ console.error('database schema gen failed', e);
208
+ }
209
+ }
210
+ async function installDeps() {
211
+ await execYarn(['install', '--ignore-scripts'], 'Yarn Install');
212
+ }
213
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ interface AuthParams {
2
+ serverPort: number;
3
+ sentioHost: string;
4
+ codeVerifier: string;
5
+ }
6
+ export declare function startServer(params: AuthParams): void;
7
+ export {};
8
+ //# sourceMappingURL=login-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-server.d.ts","sourceRoot":"","sources":["../../src/commands/login-server.ts"],"names":[],"mappings":"AAWA,UAAU,UAAU;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAOD,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,QAG7C"}
@@ -0,0 +1,110 @@
1
+ import express from 'express';
2
+ import { getAuthConfig, getFinalizedHost } from '../config.js';
3
+ import url, { URL } from 'url';
4
+ import fetch from 'node-fetch';
5
+ import { getCliVersion } from '../utils.js';
6
+ import { WriteKey } from '../key.js';
7
+ import chalk from 'chalk';
8
+ import os from 'os';
9
+ import * as crypto from 'crypto';
10
+ const app = express();
11
+ let server;
12
+ let authParams;
13
+ export function startServer(params) {
14
+ authParams = params;
15
+ server = app.listen(params.serverPort);
16
+ }
17
+ app.get('/callback', async (req, res) => {
18
+ const fail = function (...args) {
19
+ console.error(chalk.red(args));
20
+ res.end(args.toString());
21
+ server.close();
22
+ setTimeout(() => process.exit(), 1000);
23
+ };
24
+ const host = getFinalizedHost(authParams.sentioHost);
25
+ const code = req.query.code;
26
+ if (!code || code.length == 0) {
27
+ fail('Failed to get authorization code');
28
+ return;
29
+ }
30
+ // exchange token
31
+ const tokenResRaw = await getToken(host, code);
32
+ if (!tokenResRaw.ok) {
33
+ fail(`Failed to get access token: ${tokenResRaw.status} ${tokenResRaw.statusText}, ${await tokenResRaw.text()}`);
34
+ return;
35
+ }
36
+ const tokenRes = (await tokenResRaw.json());
37
+ const accessToken = tokenRes.access_token;
38
+ // check if the account is ready
39
+ const userResRaw = await getUser(host, accessToken);
40
+ if (!userResRaw.ok) {
41
+ if (userResRaw.status == 401) {
42
+ fail('The account does not exist, please sign up on sentio first');
43
+ }
44
+ else {
45
+ fail(`Failed to get user info: ${userResRaw.status} ${userResRaw.statusText}`);
46
+ }
47
+ return;
48
+ }
49
+ const userRes = (await userResRaw.json());
50
+ if (!userRes.emailVerified) {
51
+ fail('Your account is not verified, please verify your email first');
52
+ return;
53
+ }
54
+ // create API key
55
+ const apiKeyName = `${os.hostname()}-${crypto.randomBytes(4).toString('hex')}`;
56
+ const createApiKeyResRaw = await createApiKey(host, apiKeyName, 'sdk_generated', accessToken);
57
+ if (!createApiKeyResRaw.ok) {
58
+ fail(`Failed to create API key: ${createApiKeyResRaw.status} ${createApiKeyResRaw.statusText}`);
59
+ return;
60
+ }
61
+ const { key, username } = (await createApiKeyResRaw.json());
62
+ WriteKey(host, key);
63
+ res.end('Login success, please go back to CLI to continue');
64
+ console.log(chalk.green(`Login success with ${username}, new API key: ${key}`));
65
+ server.close();
66
+ setTimeout(() => process.exit(), 1000);
67
+ });
68
+ async function getToken(host, code) {
69
+ const authConf = getAuthConfig(host);
70
+ const params = new url.URLSearchParams({
71
+ grant_type: 'authorization_code',
72
+ client_id: authConf.clientId,
73
+ code_verifier: authParams.codeVerifier,
74
+ code: code,
75
+ redirect_uri: authConf.redirectUri
76
+ });
77
+ return fetch(`${authConf.domain}/oauth/token`, {
78
+ method: 'POST',
79
+ headers: {
80
+ 'Content-Type': 'application/x-www-form-urlencoded'
81
+ },
82
+ body: params.toString()
83
+ });
84
+ }
85
+ async function createApiKey(host, name, source, accessToken) {
86
+ const createApiKeyUrl = new URL('/api/v1/keys', host);
87
+ return fetch(createApiKeyUrl.href, {
88
+ method: 'POST',
89
+ headers: {
90
+ Authorization: 'Bearer ' + accessToken,
91
+ version: getCliVersion()
92
+ },
93
+ body: JSON.stringify({
94
+ name: name,
95
+ scopes: ['write:project'],
96
+ source: source
97
+ })
98
+ });
99
+ }
100
+ async function getUser(host, accessToken) {
101
+ const getUserUrl = new URL('/api/v1/users', host);
102
+ return fetch(getUserUrl.href, {
103
+ method: 'GET',
104
+ headers: {
105
+ Authorization: 'Bearer ' + accessToken,
106
+ version: getCliVersion()
107
+ }
108
+ });
109
+ }
110
+ //# sourceMappingURL=login-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-server.js","sourceRoot":"","sources":["../../src/commands/login-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runAdd(argv: string[]): Promise<void>;
2
+ //# sourceMappingURL=run-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-add.d.ts","sourceRoot":"","sources":["../../src/commands/run-add.ts"],"names":[],"mappings":"AAWA,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,iBAoG1C"}