@chainlink/cre-sdk 1.5.0-alpha.1 โ 1.5.0-alpha.3
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/bin/cre-compile.ts +18 -9
- package/dist/generated/chain-selectors/mainnet/evm/ab-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/ab-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/adi-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/adi-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/edge-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/edge-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/everclear-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/everclear-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/gate-chain-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/gate-chain-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/gate-layer-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/gate-layer-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/jovay-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/jovay-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/megaeth-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/megaeth-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/pharos-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/pharos-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/stable-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/stable-mainnet.js +12 -0
- package/dist/generated/chain-selectors/mainnet/evm/tempo-mainnet.d.ts +3 -0
- package/dist/generated/chain-selectors/mainnet/evm/tempo-mainnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo-1.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/0g-testnet-galileo-1.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ab-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ab-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/adi-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/adi-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/arc-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/arc-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/celo-sepolia.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/celo-sepolia.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/dogeos-testnet-chikyu.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/dogeos-testnet-chikyu.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/edge-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/edge-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-morph.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-morph.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko-1.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko-1.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi-taiko.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-hoodi.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-ronin-1.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/ethereum-testnet-sepolia-ronin-1.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/everclear-testnet-sepolia.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/everclear-testnet-sepolia.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/gate-chain-testnet-meteora.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/gate-chain-testnet-meteora.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/gate-layer-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/gate-layer-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet-2.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/megaeth-testnet-2.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/pharos-atlantic-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/pharos-atlantic-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/robinhood-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/robinhood-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/sonic-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/sonic-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/stable-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/stable-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet-moderato.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet-moderato.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/tempo-testnet.js +12 -0
- package/dist/generated/chain-selectors/testnet/evm/xlayer-testnet.d.ts +3 -0
- package/dist/generated/chain-selectors/testnet/evm/xlayer-testnet.js +12 -0
- package/dist/generated/networks.d.ts +2 -2
- package/dist/generated/networks.js +238 -0
- package/package.json +2 -2
- package/scripts/run-standard-tests.sh +3 -3
- package/scripts/src/compile-to-wasm.ts +32 -18
- package/scripts/src/compile-workflow.ts +29 -18
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainlink/cre-sdk",
|
|
3
|
-
"version": "1.5.0-alpha.
|
|
3
|
+
"version": "1.5.0-alpha.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"dependencies": {
|
|
61
61
|
"@bufbuild/protobuf": "2.6.3",
|
|
62
62
|
"@bufbuild/protoc-gen-es": "2.6.3",
|
|
63
|
-
"@chainlink/cre-sdk-javy-plugin": "1.5.0-alpha.
|
|
63
|
+
"@chainlink/cre-sdk-javy-plugin": "1.5.0-alpha.3",
|
|
64
64
|
"@standard-schema/spec": "1.0.0",
|
|
65
65
|
"viem": "2.34.0",
|
|
66
66
|
"zod": "3.25.76"
|
|
@@ -8,9 +8,9 @@ set -e
|
|
|
8
8
|
# Create dist test workflow folder
|
|
9
9
|
mkdir -p ./dist/workflows/standard_tests
|
|
10
10
|
|
|
11
|
-
#
|
|
12
|
-
if [ ! -f ../cre-sdk-javy-plugin/dist/
|
|
13
|
-
echo "Error:
|
|
11
|
+
# Plugin package must be built (initialized plugin is what we ship).
|
|
12
|
+
if [ ! -f ../cre-sdk-javy-plugin/dist/javy-chainlink-sdk.plugin.wasm ]; then
|
|
13
|
+
echo "Error: javy-chainlink-sdk.plugin.wasm not found (run cre-sdk-javy-plugin build first)"
|
|
14
14
|
exit 1
|
|
15
15
|
fi
|
|
16
16
|
|
|
@@ -2,6 +2,7 @@ import { spawn } from 'node:child_process'
|
|
|
2
2
|
import { existsSync } from 'node:fs'
|
|
3
3
|
import { mkdir } from 'node:fs/promises'
|
|
4
4
|
import path from 'node:path'
|
|
5
|
+
import { parseCompileFlags } from '../../../cre-sdk-javy-plugin/scripts/parse-compile-flags'
|
|
5
6
|
|
|
6
7
|
function runBun(args: string[]): Promise<void> {
|
|
7
8
|
return new Promise((resolve, reject) => {
|
|
@@ -19,20 +20,29 @@ function runBun(args: string[]): Promise<void> {
|
|
|
19
20
|
|
|
20
21
|
const isJsFile = (p: string) => ['.js', '.mjs', '.cjs'].includes(path.extname(p).toLowerCase())
|
|
21
22
|
|
|
22
|
-
export const main = async (
|
|
23
|
+
export const main = async (
|
|
24
|
+
inputFile?: string,
|
|
25
|
+
outputFile?: string,
|
|
26
|
+
creExportsPaths?: string[],
|
|
27
|
+
pluginPath?: string | null,
|
|
28
|
+
) => {
|
|
23
29
|
const cliArgs = process.argv.slice(3)
|
|
30
|
+
const { creExports: cliCreExports, plugin: cliPlugin, rest: cliRest } = parseCompileFlags(cliArgs)
|
|
24
31
|
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
const
|
|
32
|
+
const inputPath = inputFile ?? cliRest[0]
|
|
33
|
+
const outputPathArg = outputFile ?? cliRest[1]
|
|
34
|
+
const creExports = creExportsPaths ?? cliCreExports
|
|
35
|
+
const plugin = pluginPath !== undefined ? pluginPath : cliPlugin
|
|
36
|
+
|
|
37
|
+
if (plugin !== null && plugin !== undefined && creExports.length > 0) {
|
|
38
|
+
console.error('โ Error: --plugin and --cre-exports are mutually exclusive.')
|
|
39
|
+
process.exit(1)
|
|
40
|
+
}
|
|
28
41
|
|
|
29
42
|
if (!inputPath) {
|
|
30
43
|
console.error(
|
|
31
44
|
'Usage: bun compile:js-to-wasm <path/to/input.(js|mjs|cjs)> [path/to/output.wasm]',
|
|
32
45
|
)
|
|
33
|
-
console.error('Examples:')
|
|
34
|
-
console.error(' bun compile:js-to-wasm ./build/workflows/test.js')
|
|
35
|
-
console.error(' bun compile:js-to-wasm ./build/workflows/test.mjs ./artifacts/test.wasm')
|
|
36
46
|
process.exit(1)
|
|
37
47
|
}
|
|
38
48
|
|
|
@@ -47,31 +57,35 @@ export const main = async (inputFile?: string, outputFile?: string) => {
|
|
|
47
57
|
process.exit(1)
|
|
48
58
|
}
|
|
49
59
|
|
|
50
|
-
// Default output = same dir, same basename, .wasm extension
|
|
51
60
|
const defaultOut = path.join(
|
|
52
61
|
path.dirname(resolvedInput),
|
|
53
62
|
path.basename(resolvedInput).replace(/\.(m|c)?js$/i, '.wasm'),
|
|
54
63
|
)
|
|
55
64
|
const resolvedOutput = outputPathArg ? path.resolve(outputPathArg) : defaultOut
|
|
56
65
|
|
|
57
|
-
// Ensure output directory exists
|
|
58
66
|
await mkdir(path.dirname(resolvedOutput), { recursive: true })
|
|
59
67
|
|
|
60
|
-
console.info(
|
|
68
|
+
console.info('๐จ Compiling to WASM')
|
|
61
69
|
console.info(`๐ Input: ${resolvedInput}`)
|
|
62
70
|
console.info(`๐ฏ Output: ${resolvedOutput}`)
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
const compileArgs: string[] = []
|
|
73
|
+
if (plugin != null && plugin !== '') {
|
|
74
|
+
compileArgs.push('--plugin', path.resolve(plugin))
|
|
75
|
+
} else {
|
|
76
|
+
compileArgs.push(...creExports.flatMap((p) => ['--cre-exports', path.resolve(p)]))
|
|
77
|
+
}
|
|
78
|
+
compileArgs.push(resolvedInput, resolvedOutput)
|
|
79
|
+
|
|
66
80
|
const scriptDir = import.meta.dir
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
'../../../cre-sdk-javy-plugin
|
|
70
|
-
)
|
|
81
|
+
const javyPluginRoot = process.env.CRE_SDK_JAVY_PLUGIN_HOME
|
|
82
|
+
? path.resolve(process.env.CRE_SDK_JAVY_PLUGIN_HOME)
|
|
83
|
+
: path.resolve(scriptDir, '../../../cre-sdk-javy-plugin')
|
|
84
|
+
const compilerPath = path.join(javyPluginRoot, 'bin/compile-workflow.ts')
|
|
71
85
|
if (existsSync(compilerPath)) {
|
|
72
|
-
await runBun(['--bun', compilerPath,
|
|
86
|
+
await runBun(['--bun', compilerPath, ...compileArgs])
|
|
73
87
|
} else {
|
|
74
|
-
await runBun(['x', 'cre-compile-workflow',
|
|
88
|
+
await runBun(['x', 'cre-compile-workflow', ...compileArgs])
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
console.info(`โ
Compiled: ${resolvedOutput}`)
|
|
@@ -1,23 +1,31 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs'
|
|
2
2
|
import { mkdir } from 'node:fs/promises'
|
|
3
3
|
import path from 'node:path'
|
|
4
|
+
import { parseCompileFlags } from '../../../cre-sdk-javy-plugin/scripts/parse-compile-flags'
|
|
4
5
|
import { main as compileToJs } from './compile-to-js'
|
|
5
6
|
import { main as compileToWasm } from './compile-to-wasm'
|
|
6
7
|
|
|
7
|
-
export const main = async (
|
|
8
|
+
export const main = async (
|
|
9
|
+
inputFile?: string,
|
|
10
|
+
outputWasmFile?: string,
|
|
11
|
+
creExportsPaths?: string[],
|
|
12
|
+
pluginPath?: string | null,
|
|
13
|
+
) => {
|
|
8
14
|
const cliArgs = process.argv.slice(3)
|
|
15
|
+
const { creExports: cliCreExports, plugin: cliPlugin, rest: cliRest } = parseCompileFlags(cliArgs)
|
|
9
16
|
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
const
|
|
17
|
+
const inputPath = inputFile ?? cliRest[0]
|
|
18
|
+
const outputPathArg = outputWasmFile ?? cliRest[1]
|
|
19
|
+
const creExports = creExportsPaths ?? cliCreExports
|
|
20
|
+
const plugin = pluginPath !== undefined ? pluginPath : cliPlugin
|
|
21
|
+
|
|
22
|
+
if (plugin != null && plugin !== '' && creExports.length > 0) {
|
|
23
|
+
console.error('โ Error: --plugin and --cre-exports are mutually exclusive.')
|
|
24
|
+
process.exit(1)
|
|
25
|
+
}
|
|
13
26
|
|
|
14
27
|
if (!inputPath) {
|
|
15
28
|
console.error('Usage: bun compile:workflow <path/to/workflow.ts> [path/to/output.wasm]')
|
|
16
|
-
console.error('Examples:')
|
|
17
|
-
console.error(' bun compile:workflow src/standard_tests/secrets/test.ts')
|
|
18
|
-
console.error(
|
|
19
|
-
' bun compile:workflow src/standard_tests/secrets/test.ts .temp/standard_tests/secrets/test.wasm',
|
|
20
|
-
)
|
|
21
29
|
process.exit(1)
|
|
22
30
|
}
|
|
23
31
|
|
|
@@ -27,30 +35,33 @@ export const main = async (inputFile?: string, outputWasmFile?: string) => {
|
|
|
27
35
|
process.exit(1)
|
|
28
36
|
}
|
|
29
37
|
|
|
30
|
-
// Default final output = same dir, same basename, .wasm
|
|
31
38
|
const defaultWasmOut = path.join(
|
|
32
39
|
path.dirname(resolvedInput),
|
|
33
40
|
path.basename(resolvedInput).replace(/\.[^.]+$/, '.wasm'),
|
|
34
41
|
)
|
|
35
42
|
const resolvedWasmOutput = outputPathArg ? path.resolve(outputPathArg) : defaultWasmOut
|
|
36
|
-
|
|
37
|
-
// Put the intermediate JS next to the final wasm (so custom outputs stay together)
|
|
38
43
|
const resolvedJsOutput = resolvedWasmOutput.replace(/\.wasm$/i, '.js')
|
|
39
44
|
|
|
40
|
-
// Ensure directories exist (handles both intermediate JS dir and wasm dir)
|
|
41
45
|
await mkdir(path.dirname(resolvedJsOutput), { recursive: true })
|
|
42
46
|
|
|
43
|
-
console.info(
|
|
44
|
-
console.info(`๐ Input: ${resolvedInput}
|
|
47
|
+
console.info('๐ Compiling workflow')
|
|
48
|
+
console.info(`๐ Input: ${resolvedInput}`)
|
|
49
|
+
console.info(`๐งช JS out: ${resolvedJsOutput}`)
|
|
50
|
+
console.info(`๐ฏ WASM out:${resolvedWasmOutput}\n`)
|
|
45
51
|
|
|
46
|
-
// Step 1: TS/JS โ JS (bundled)
|
|
47
52
|
console.info('๐ฆ Step 1: Compiling JS...')
|
|
48
53
|
await compileToJs(resolvedInput, resolvedJsOutput)
|
|
49
54
|
|
|
50
|
-
// Step 2: JS โ WASM
|
|
51
55
|
console.info('\n๐จ Step 2: Compiling to WASM...')
|
|
52
|
-
await compileToWasm(resolvedJsOutput, resolvedWasmOutput)
|
|
56
|
+
await compileToWasm(resolvedJsOutput, resolvedWasmOutput, creExports, plugin)
|
|
53
57
|
|
|
54
58
|
console.info(`\nโ
Workflow built: ${resolvedWasmOutput}`)
|
|
55
59
|
return resolvedWasmOutput
|
|
56
60
|
}
|
|
61
|
+
|
|
62
|
+
if (import.meta.main) {
|
|
63
|
+
main().catch((e) => {
|
|
64
|
+
console.error(e)
|
|
65
|
+
process.exit(1)
|
|
66
|
+
})
|
|
67
|
+
}
|