@sentio/cli 2.18.3-rc.1 → 2.18.4-rc.1
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/lib/abi.d.ts +9 -0
- package/lib/abi.d.ts.map +1 -0
- package/lib/abi.js +136 -0
- package/lib/abi.js.map +1 -0
- package/lib/abi.test.d.ts +2 -0
- package/lib/abi.test.d.ts.map +1 -0
- package/lib/abi.test.js.map +1 -0
- package/lib/commands/build.d.ts +28 -0
- package/lib/commands/build.d.ts.map +1 -0
- package/lib/commands/build.js +213 -0
- package/lib/commands/build.js.map +1 -0
- package/lib/commands/login-server.d.ts +8 -0
- package/lib/commands/login-server.d.ts.map +1 -0
- package/lib/commands/login-server.js +110 -0
- package/lib/commands/login-server.js.map +1 -0
- package/lib/commands/run-add.d.ts +2 -0
- package/lib/commands/run-add.d.ts.map +1 -0
- package/lib/commands/run-add.js +100 -0
- package/lib/commands/run-add.js.map +1 -0
- package/lib/commands/run-compile.d.ts +2 -0
- package/lib/commands/run-compile.d.ts.map +1 -0
- package/lib/commands/run-compile.js +199 -0
- package/lib/commands/run-compile.js.map +1 -0
- package/lib/commands/run-create.d.ts +2 -0
- package/lib/commands/run-create.d.ts.map +1 -0
- package/lib/commands/run-create.js +142 -0
- package/lib/commands/run-create.js.map +1 -0
- package/lib/commands/run-graph.d.ts +3 -0
- package/lib/commands/run-graph.d.ts.map +1 -0
- package/lib/commands/run-graph.js +136 -0
- package/lib/commands/run-graph.js.map +1 -0
- package/lib/commands/run-login.d.ts +2 -0
- package/lib/commands/run-login.d.ts.map +1 -0
- package/lib/commands/run-login.js +107 -0
- package/lib/commands/run-login.js.map +1 -0
- package/lib/commands/run-test.d.ts +2 -0
- package/lib/commands/run-test.d.ts.map +1 -0
- package/lib/commands/run-test.js +13 -0
- package/lib/commands/run-test.js.map +1 -0
- package/lib/commands/run-upload.d.ts +14 -0
- package/lib/commands/run-upload.d.ts.map +1 -0
- package/lib/commands/run-upload.js +332 -0
- package/lib/commands/run-upload.js.map +1 -0
- package/lib/commands/run-version.d.ts +2 -0
- package/lib/commands/run-version.d.ts.map +1 -0
- package/lib/commands/run-version.js +38 -0
- package/lib/commands/run-version.js.map +1 -0
- package/lib/config.d.ts +23 -0
- package/lib/config.d.ts.map +1 -0
- package/lib/config.js +70 -0
- package/lib/config.js.map +1 -0
- package/lib/execution.d.ts +5 -0
- package/lib/execution.d.ts.map +1 -0
- package/lib/execution.js +31 -0
- package/lib/execution.js.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +130 -1183
- package/lib/index.js.map +1 -7
- package/lib/key.d.ts +3 -0
- package/lib/key.d.ts.map +1 -0
- package/lib/key.js +36 -0
- package/lib/key.js.map +1 -0
- package/lib/utils.d.ts +4 -0
- package/lib/utils.d.ts.map +1 -0
- package/lib/utils.js +32 -0
- package/lib/utils.js.map +1 -0
- package/package.json +26 -4
- package/src/cjs-shim.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
|
package/lib/abi.d.ts.map
ADDED
|
@@ -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 @@
|
|
|
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,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,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;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAEvB,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 @@
|
|
|
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 @@
|
|
|
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"}
|