@chainlink/cre-sdk 1.3.1 → 1.4.0-alpha.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/README.md +7 -1
- package/bin/cre-compile.ts +23 -6
- package/dist/generated/networks.d.ts +2 -2
- package/dist/generated/networks.js +0 -238
- package/package.json +1 -1
- package/scripts/run.ts +5 -1
- package/scripts/src/compile-cli-args.test.ts +32 -0
- package/scripts/src/compile-cli-args.ts +35 -0
- package/scripts/src/compile-to-js.test.ts +90 -0
- package/scripts/src/compile-to-js.ts +46 -7
- package/scripts/src/compile-workflow.ts +51 -12
- package/scripts/src/typecheck-workflow.test.ts +77 -0
- package/scripts/src/typecheck-workflow.ts +96 -0
- package/dist/generated/chain-selectors/mainnet/evm/ab-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/ab-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/adi-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/adi-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/edge-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/edge-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/everclear-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/everclear-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/gate-chain-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/gate-chain-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/gate-layer-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/gate-layer-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/jovay-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/jovay-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/megaeth-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/megaeth-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/pharos-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/pharos-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/stable-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/stable-mainnet.js +0 -12
- package/dist/generated/chain-selectors/mainnet/evm/tempo-mainnet.d.ts +0 -3
- package/dist/generated/chain-selectors/mainnet/evm/tempo-mainnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo-1.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo-1.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ab-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ab-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/adi-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/adi-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/arc-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/arc-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/celo-sepolia.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/celo-sepolia.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/dogeos-testnet-chikyu.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/dogeos-testnet-chikyu.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/edge-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/edge-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-morph.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-morph.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko-1.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko-1.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-ronin-1.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-ronin-1.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/everclear-testnet-sepolia.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/everclear-testnet-sepolia.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/gate-chain-testnet-meteora.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/gate-chain-testnet-meteora.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/gate-layer-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/gate-layer-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet-2.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet-2.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/pharos-atlantic-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/pharos-atlantic-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/robinhood-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/robinhood-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/sonic-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/sonic-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/stable-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/stable-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet-moderato.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet-moderato.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet.js +0 -12
- package/dist/generated/chain-selectors/testnet/evm/xlayer-testnet.d.ts +0 -3
- package/dist/generated/chain-selectors/testnet/evm/xlayer-testnet.js +0 -12
package/README.md
CHANGED
|
@@ -58,10 +58,16 @@ CRE workflows are compiled to WASM and executed through Javy (QuickJS). This is
|
|
|
58
58
|
|
|
59
59
|
- Node built-ins like `node:fs`, `node:crypto`, `node:http`, `node:net`, etc. are not supported in workflows.
|
|
60
60
|
- Browser globals like `fetch`, `window`, and `setTimeout` are also not available in workflow runtime.
|
|
61
|
-
- `cre compile:workflow` / `cre-compile` now validates workflow source and fails fast when unsupported APIs are used.
|
|
61
|
+
- `cre compile:workflow` / `cre-compile` now typechecks your workflow project first (using your nearest `tsconfig.json`), then validates workflow source and fails fast when unsupported APIs are used.
|
|
62
62
|
|
|
63
63
|
Use CRE capabilities (for example, `cre.capabilities.HTTPClient`) instead of direct Node/browser APIs.
|
|
64
64
|
|
|
65
|
+
If you need to compile despite TypeScript errors, pass `--skip-type-checks`:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
bun x cre-compile src/workflow.ts dist/workflow.wasm --skip-type-checks
|
|
69
|
+
```
|
|
70
|
+
|
|
65
71
|
## Getting Started
|
|
66
72
|
|
|
67
73
|
We recommend you consult the [getting started docs](https://docs.chain.link/cre/getting-started/cli-installation) and install the CRE CLI.
|
package/bin/cre-compile.ts
CHANGED
|
@@ -1,33 +1,50 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
|
|
3
3
|
import { main as compileWorkflow } from "../scripts/src/compile-workflow";
|
|
4
|
+
import { parseCompileCliArgs, skipTypeChecksFlag } from "../scripts/src/compile-cli-args";
|
|
5
|
+
import { WorkflowTypecheckError } from "../scripts/src/typecheck-workflow";
|
|
4
6
|
import { WorkflowRuntimeCompatibilityError } from "../scripts/src/validate-workflow-runtime-compat";
|
|
5
7
|
|
|
6
8
|
const main = async () => {
|
|
7
|
-
|
|
9
|
+
let inputPath: string | undefined;
|
|
10
|
+
let outputPathArg: string | undefined;
|
|
11
|
+
let skipTypeChecks = false;
|
|
8
12
|
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
try {
|
|
14
|
+
const parsed = parseCompileCliArgs(process.argv.slice(2));
|
|
15
|
+
inputPath = parsed.inputPath;
|
|
16
|
+
outputPathArg = parsed.outputPath;
|
|
17
|
+
skipTypeChecks = parsed.skipTypeChecks;
|
|
18
|
+
} catch (error) {
|
|
19
|
+
console.error(error instanceof Error ? error.message : error);
|
|
20
|
+
console.error(
|
|
21
|
+
`Usage: cre-compile <path/to/workflow.ts> [path/to/output.wasm] [${skipTypeChecksFlag}]`
|
|
22
|
+
);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
11
25
|
|
|
12
26
|
if (!inputPath) {
|
|
13
27
|
console.error(
|
|
14
|
-
|
|
28
|
+
`Usage: cre-compile <path/to/workflow.ts> [path/to/output.wasm] [${skipTypeChecksFlag}]`
|
|
15
29
|
);
|
|
16
30
|
console.error("Examples:");
|
|
17
31
|
console.error(" cre-compile src/standard_tests/secrets/test.ts");
|
|
18
32
|
console.error(
|
|
19
33
|
" cre-compile src/standard_tests/secrets/test.ts .temp/standard_tests/secrets/test.wasm"
|
|
20
34
|
);
|
|
35
|
+
console.error(
|
|
36
|
+
` cre-compile src/standard_tests/secrets/test.ts .temp/standard_tests/secrets/test.wasm ${skipTypeChecksFlag}`
|
|
37
|
+
);
|
|
21
38
|
process.exit(1);
|
|
22
39
|
}
|
|
23
40
|
|
|
24
41
|
// Delegate to the compile-workflow script
|
|
25
|
-
await compileWorkflow(inputPath, outputPathArg);
|
|
42
|
+
await compileWorkflow(inputPath, outputPathArg, { skipTypeChecks });
|
|
26
43
|
};
|
|
27
44
|
|
|
28
45
|
// CLI entry point
|
|
29
46
|
main().catch((e) => {
|
|
30
|
-
if (e instanceof WorkflowRuntimeCompatibilityError) {
|
|
47
|
+
if (e instanceof WorkflowRuntimeCompatibilityError || e instanceof WorkflowTypecheckError) {
|
|
31
48
|
console.error(`\n❌ ${e.message}`);
|
|
32
49
|
} else {
|
|
33
50
|
console.error(e);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { NetworkInfo } from '../sdk/utils/chain-selectors/types';
|
|
2
2
|
export declare const allNetworks: NetworkInfo[];
|
|
3
3
|
export declare const mainnet: {
|
|
4
|
-
readonly evm: readonly [NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo
|
|
4
|
+
readonly evm: readonly [NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo];
|
|
5
5
|
readonly solana: readonly [NetworkInfo];
|
|
6
6
|
readonly aptos: readonly [NetworkInfo];
|
|
7
7
|
readonly sui: readonly [NetworkInfo];
|
|
@@ -9,7 +9,7 @@ export declare const mainnet: {
|
|
|
9
9
|
readonly tron: readonly [NetworkInfo];
|
|
10
10
|
};
|
|
11
11
|
export declare const testnet: {
|
|
12
|
-
readonly evm: readonly [NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo
|
|
12
|
+
readonly evm: readonly [NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo, NetworkInfo];
|
|
13
13
|
readonly solana: readonly [NetworkInfo, NetworkInfo];
|
|
14
14
|
readonly aptos: readonly [NetworkInfo, NetworkInfo];
|
|
15
15
|
readonly sui: readonly [NetworkInfo, NetworkInfo];
|