@recoillink/aleo-sdk 0.0.0-stage → 45.0.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/LICENSE.md +193 -0
- package/README.md +56 -2
- package/dist/artifacts.d.ts +14 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +23 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/clients/base.d.ts +27 -0
- package/dist/clients/base.d.ts.map +1 -0
- package/dist/clients/base.js +105 -0
- package/dist/clients/base.js.map +1 -0
- package/dist/clients/protocol.d.ts +26 -0
- package/dist/clients/protocol.d.ts.map +1 -0
- package/dist/clients/protocol.js +104 -0
- package/dist/clients/protocol.js.map +1 -0
- package/dist/clients/provider.d.ts +42 -0
- package/dist/clients/provider.d.ts.map +1 -0
- package/dist/clients/provider.js +460 -0
- package/dist/clients/provider.js.map +1 -0
- package/dist/clients/provider.node.d.ts +7 -0
- package/dist/clients/provider.node.d.ts.map +1 -0
- package/dist/clients/provider.node.js +20 -0
- package/dist/clients/provider.node.js.map +1 -0
- package/dist/clients/signer.d.ts +32 -0
- package/dist/clients/signer.d.ts.map +1 -0
- package/dist/clients/signer.js +137 -0
- package/dist/clients/signer.js.map +1 -0
- package/dist/constants.d.ts +8 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +8 -0
- package/dist/constants.js.map +1 -0
- package/dist/hook/base.d.ts +19 -0
- package/dist/hook/base.d.ts.map +1 -0
- package/dist/hook/base.js +29 -0
- package/dist/hook/base.js.map +1 -0
- package/dist/hook/hook-artifact-manager.d.ts +25 -0
- package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
- package/dist/hook/hook-artifact-manager.js +62 -0
- package/dist/hook/hook-artifact-manager.js.map +1 -0
- package/dist/hook/hook-query.d.ts +44 -0
- package/dist/hook/hook-query.d.ts.map +1 -0
- package/dist/hook/hook-query.js +103 -0
- package/dist/hook/hook-query.js.map +1 -0
- package/dist/hook/hook-tx.d.ts +46 -0
- package/dist/hook/hook-tx.d.ts.map +1 -0
- package/dist/hook/hook-tx.js +89 -0
- package/dist/hook/hook-tx.js.map +1 -0
- package/dist/hook/igp-hook.d.ts +21 -0
- package/dist/hook/igp-hook.d.ts.map +1 -0
- package/dist/hook/igp-hook.js +145 -0
- package/dist/hook/igp-hook.js.map +1 -0
- package/dist/hook/merkle-tree-hook.d.ts +21 -0
- package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
- package/dist/hook/merkle-tree-hook.js +58 -0
- package/dist/hook/merkle-tree-hook.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/ism/base.d.ts +15 -0
- package/dist/ism/base.d.ts.map +1 -0
- package/dist/ism/base.js +25 -0
- package/dist/ism/base.js.map +1 -0
- package/dist/ism/ism-artifact-manager.d.ts +12 -0
- package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
- package/dist/ism/ism-artifact-manager.js +62 -0
- package/dist/ism/ism-artifact-manager.js.map +1 -0
- package/dist/ism/ism-query.d.ts +51 -0
- package/dist/ism/ism-query.d.ts.map +1 -0
- package/dist/ism/ism-query.js +155 -0
- package/dist/ism/ism-query.js.map +1 -0
- package/dist/ism/ism-tx.d.ts +14 -0
- package/dist/ism/ism-tx.d.ts.map +1 -0
- package/dist/ism/ism-tx.js +77 -0
- package/dist/ism/ism-tx.js.map +1 -0
- package/dist/ism/multisig-ism.d.ts +20 -0
- package/dist/ism/multisig-ism.d.ts.map +1 -0
- package/dist/ism/multisig-ism.js +56 -0
- package/dist/ism/multisig-ism.js.map +1 -0
- package/dist/ism/routing-ism.d.ts +20 -0
- package/dist/ism/routing-ism.d.ts.map +1 -0
- package/dist/ism/routing-ism.js +108 -0
- package/dist/ism/routing-ism.js.map +1 -0
- package/dist/ism/test-ism.d.ts +20 -0
- package/dist/ism/test-ism.d.ts.map +1 -0
- package/dist/ism/test-ism.js +50 -0
- package/dist/ism/test-ism.js.map +1 -0
- package/dist/mailbox/mailbox-artifact-manager.d.ts +21 -0
- package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
- package/dist/mailbox/mailbox-artifact-manager.js +36 -0
- package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
- package/dist/mailbox/mailbox-query.d.ts +12 -0
- package/dist/mailbox/mailbox-query.d.ts.map +1 -0
- package/dist/mailbox/mailbox-query.js +33 -0
- package/dist/mailbox/mailbox-query.js.map +1 -0
- package/dist/mailbox/mailbox-tx.d.ts +42 -0
- package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
- package/dist/mailbox/mailbox-tx.js +94 -0
- package/dist/mailbox/mailbox-tx.js.map +1 -0
- package/dist/mailbox/mailbox.d.ts +29 -0
- package/dist/mailbox/mailbox.d.ts.map +1 -0
- package/dist/mailbox/mailbox.js +165 -0
- package/dist/mailbox/mailbox.js.map +1 -0
- package/dist/programs.d.ts +3 -0
- package/dist/programs.d.ts.map +1 -0
- package/dist/programs.js +14 -0
- package/dist/programs.js.map +1 -0
- package/dist/runtime/mainnet.d.ts +3 -0
- package/dist/runtime/mainnet.d.ts.map +1 -0
- package/dist/runtime/mainnet.js +5 -0
- package/dist/runtime/mainnet.js.map +1 -0
- package/dist/runtime/provider.d.ts +10 -0
- package/dist/runtime/provider.d.ts.map +1 -0
- package/dist/runtime/provider.js +18 -0
- package/dist/runtime/provider.js.map +1 -0
- package/dist/runtime/provider.test.d.ts +2 -0
- package/dist/runtime/provider.test.d.ts.map +1 -0
- package/dist/runtime/provider.test.js +45 -0
- package/dist/runtime/provider.test.js.map +1 -0
- package/dist/runtime/testnet.d.ts +3 -0
- package/dist/runtime/testnet.d.ts.map +1 -0
- package/dist/runtime/testnet.js +8 -0
- package/dist/runtime/testnet.js.map +1 -0
- package/dist/runtime.d.ts +5 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +4 -0
- package/dist/runtime.js.map +1 -0
- package/dist/testing/constants.d.ts +58 -0
- package/dist/testing/constants.d.ts.map +1 -0
- package/dist/testing/constants.js +60 -0
- package/dist/testing/constants.js.map +1 -0
- package/dist/testing/index.d.ts +4 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +7 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/node.d.ts +10 -0
- package/dist/testing/node.d.ts.map +1 -0
- package/dist/testing/node.js +39 -0
- package/dist/testing/node.js.map +1 -0
- package/dist/testing/utils.d.ts +19 -0
- package/dist/testing/utils.d.ts.map +1 -0
- package/dist/testing/utils.js +23 -0
- package/dist/testing/utils.js.map +1 -0
- package/dist/tests/5_ism_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/5_ism_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/5_ism_artifacts.e2e-test.js +415 -0
- package/dist/tests/5_ism_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/6_hook_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/6_hook_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/6_hook_artifacts.e2e-test.js +306 -0
- package/dist/tests/6_hook_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/7a_warp_native_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/7a_warp_native_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/7a_warp_native_artifacts.e2e-test.js +105 -0
- package/dist/tests/7a_warp_native_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/7b_warp_collateral_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/7b_warp_collateral_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/7b_warp_collateral_artifacts.e2e-test.js +144 -0
- package/dist/tests/7b_warp_collateral_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.js +99 -0
- package/dist/tests/7c_warp_synthetic_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/8_mailbox_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/8_mailbox_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/8_mailbox_artifacts.e2e-test.js +395 -0
- package/dist/tests/8_mailbox_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/9_validator_announce_artifacts.e2e-test.d.ts +2 -0
- package/dist/tests/9_validator_announce_artifacts.e2e-test.d.ts.map +1 -0
- package/dist/tests/9_validator_announce_artifacts.e2e-test.js +138 -0
- package/dist/tests/9_validator_announce_artifacts.e2e-test.js.map +1 -0
- package/dist/tests/e2e-test.setup.d.ts +2 -0
- package/dist/tests/e2e-test.setup.d.ts.map +1 -0
- package/dist/tests/e2e-test.setup.js +33 -0
- package/dist/tests/e2e-test.setup.js.map +1 -0
- package/dist/tests/warp-artifact-test-suite.d.ts +34 -0
- package/dist/tests/warp-artifact-test-suite.d.ts.map +1 -0
- package/dist/tests/warp-artifact-test-suite.js +672 -0
- package/dist/tests/warp-artifact-test-suite.js.map +1 -0
- package/dist/utils/base-query.d.ts +50 -0
- package/dist/utils/base-query.d.ts.map +1 -0
- package/dist/utils/base-query.js +72 -0
- package/dist/utils/base-query.js.map +1 -0
- package/dist/utils/helper.crypto.d.ts +4 -0
- package/dist/utils/helper.crypto.d.ts.map +1 -0
- package/dist/utils/helper.crypto.js +12 -0
- package/dist/utils/helper.crypto.js.map +1 -0
- package/dist/utils/helper.d.ts +63 -0
- package/dist/utils/helper.d.ts.map +1 -0
- package/dist/utils/helper.js +291 -0
- package/dist/utils/helper.js.map +1 -0
- package/dist/utils/helper.node.d.ts +9 -0
- package/dist/utils/helper.node.d.ts.map +1 -0
- package/dist/utils/helper.node.js +159 -0
- package/dist/utils/helper.node.js.map +1 -0
- package/dist/utils/helper.test.d.ts +2 -0
- package/dist/utils/helper.test.d.ts.map +1 -0
- package/dist/utils/helper.test.js +22 -0
- package/dist/utils/helper.test.js.map +1 -0
- package/dist/utils/provable.d.ts +4 -0
- package/dist/utils/provable.d.ts.map +1 -0
- package/dist/utils/provable.js +2 -0
- package/dist/utils/provable.js.map +1 -0
- package/dist/utils/types.d.ts +104 -0
- package/dist/utils/types.d.ts.map +1 -0
- package/dist/utils/types.js +64 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/validator-announce/validator-announce-artifact-manager.d.ts +21 -0
- package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-artifact-manager.js +27 -0
- package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
- package/dist/validator-announce/validator-announce-query.d.ts +15 -0
- package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-query.js +32 -0
- package/dist/validator-announce/validator-announce-query.js.map +1 -0
- package/dist/validator-announce/validator-announce-tx.d.ts +11 -0
- package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce-tx.js +20 -0
- package/dist/validator-announce/validator-announce-tx.js.map +1 -0
- package/dist/validator-announce/validator-announce.d.ts +29 -0
- package/dist/validator-announce/validator-announce.d.ts.map +1 -0
- package/dist/validator-announce/validator-announce.js +71 -0
- package/dist/validator-announce/validator-announce.js.map +1 -0
- package/dist/warp/collateral-token.d.ts +21 -0
- package/dist/warp/collateral-token.d.ts.map +1 -0
- package/dist/warp/collateral-token.js +108 -0
- package/dist/warp/collateral-token.js.map +1 -0
- package/dist/warp/native-token.d.ts +21 -0
- package/dist/warp/native-token.d.ts.map +1 -0
- package/dist/warp/native-token.js +114 -0
- package/dist/warp/native-token.js.map +1 -0
- package/dist/warp/provider-query.d.ts +22 -0
- package/dist/warp/provider-query.d.ts.map +1 -0
- package/dist/warp/provider-query.js +89 -0
- package/dist/warp/provider-query.js.map +1 -0
- package/dist/warp/synthetic-token.d.ts +21 -0
- package/dist/warp/synthetic-token.d.ts.map +1 -0
- package/dist/warp/synthetic-token.js +108 -0
- package/dist/warp/synthetic-token.js.map +1 -0
- package/dist/warp/warp-artifact-manager.d.ts +15 -0
- package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
- package/dist/warp/warp-artifact-manager.js +48 -0
- package/dist/warp/warp-artifact-manager.js.map +1 -0
- package/dist/warp/warp-query.d.ts +76 -0
- package/dist/warp/warp-query.d.ts.map +1 -0
- package/dist/warp/warp-query.js +321 -0
- package/dist/warp/warp-query.js.map +1 -0
- package/dist/warp/warp-query.test.d.ts +2 -0
- package/dist/warp/warp-query.test.d.ts.map +1 -0
- package/dist/warp/warp-query.test.js +270 -0
- package/dist/warp/warp-query.test.js.map +1 -0
- package/dist/warp/warp-tx.d.ts +58 -0
- package/dist/warp/warp-tx.d.ts.map +1 -0
- package/dist/warp/warp-tx.js +229 -0
- package/dist/warp/warp-tx.js.map +1 -0
- package/dist/warp/warp-tx.test.d.ts +2 -0
- package/dist/warp/warp-tx.test.d.ts.map +1 -0
- package/dist/warp/warp-tx.test.js +44 -0
- package/dist/warp/warp-tx.test.js.map +1 -0
- package/package.json +91 -3
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { Program } from '@provablehq/sdk/mainnet.js';
|
|
3
|
+
import { assert } from '@recoillink/utils';
|
|
4
|
+
import { programRegistry } from '../artifacts.js';
|
|
5
|
+
const upgradeAuthority = process.env['ALEO_UPGRADE_AUTHORITY'] || '';
|
|
6
|
+
const skipSuffixes = JSON.parse(process.env['ALEO_SKIP_SUFFIXES'] || 'false');
|
|
7
|
+
const customIsmSuffix = process.env['ALEO_ISM_MANAGER_SUFFIX'];
|
|
8
|
+
// Env vars that point to pre-built .aleo files to deploy verbatim
|
|
9
|
+
export const PROGRAM_FILE_ENV = {
|
|
10
|
+
credits: 'ALEO_CREDITS',
|
|
11
|
+
dispatch_proxy: 'ALEO_DISPATCH_PROXY',
|
|
12
|
+
hook_manager: 'ALEO_HOOK_MANAGER',
|
|
13
|
+
hyp_collateral: 'ALEO_HYP_COLLATERAL',
|
|
14
|
+
hyp_native: 'ALEO_HYP_NATIVE',
|
|
15
|
+
hyp_synthetic: 'ALEO_HYP_SYNTHETIC',
|
|
16
|
+
ism_manager: 'ALEO_ISM_MANAGER',
|
|
17
|
+
mailbox: 'ALEO_MAILBOX',
|
|
18
|
+
token_registry: 'ALEO_TOKEN_REGISTRY',
|
|
19
|
+
validator_announce: 'ALEO_VALIDATOR_ANNOUNCE',
|
|
20
|
+
};
|
|
21
|
+
function readFileOverride(programName) {
|
|
22
|
+
const envVar = PROGRAM_FILE_ENV[programName];
|
|
23
|
+
if (!envVar)
|
|
24
|
+
return undefined;
|
|
25
|
+
const filePath = process.env[envVar];
|
|
26
|
+
if (!filePath)
|
|
27
|
+
return undefined;
|
|
28
|
+
const content = readFileSync(filePath, 'utf8');
|
|
29
|
+
const match = content.match(/^program ([a-z0-9_]+\.aleo);/m);
|
|
30
|
+
assert(match, `Could not find program declaration in override file ${filePath}`);
|
|
31
|
+
const [, id] = match;
|
|
32
|
+
assert(id, `Program declaration has no id in override file ${filePath}`);
|
|
33
|
+
try {
|
|
34
|
+
Program.fromString(content);
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
38
|
+
throw new Error(`Invalid Aleo program in override file ${filePath} (${id}): ${msg}`);
|
|
39
|
+
}
|
|
40
|
+
return { id, program: content };
|
|
41
|
+
}
|
|
42
|
+
export function getFileOverrideProgramId(programName) {
|
|
43
|
+
return readFileOverride(programName)?.id;
|
|
44
|
+
}
|
|
45
|
+
function getCustomWarpSuffixFromEnv() {
|
|
46
|
+
return process.env['ALEO_WARP_SUFFIX'];
|
|
47
|
+
}
|
|
48
|
+
export function loadProgramsInDeployOrder(prefix, programName, coreSuffix, warpSuffix) {
|
|
49
|
+
// If a file override is set, deploy that file verbatim — no substitutions, no deps
|
|
50
|
+
const override = readFileOverride(programName);
|
|
51
|
+
if (override) {
|
|
52
|
+
return [{ id: override.id, name: programName, program: override.program }];
|
|
53
|
+
}
|
|
54
|
+
const visited = new Set();
|
|
55
|
+
let programs = [];
|
|
56
|
+
function visit(p) {
|
|
57
|
+
if (visited.has(p))
|
|
58
|
+
return;
|
|
59
|
+
visited.add(p);
|
|
60
|
+
const code = programRegistry[p];
|
|
61
|
+
if (!code)
|
|
62
|
+
throw new Error(`Program ${p} not found`);
|
|
63
|
+
const program = Program.fromString(code);
|
|
64
|
+
program
|
|
65
|
+
.getImports()
|
|
66
|
+
.map((dep) => dep.replace('.aleo', ''))
|
|
67
|
+
.forEach((dep) => visit(dep));
|
|
68
|
+
programs.push(program);
|
|
69
|
+
}
|
|
70
|
+
visit(programName);
|
|
71
|
+
programs = programs.map((p) => {
|
|
72
|
+
let output = p.toString();
|
|
73
|
+
for (const r of Object.keys(programRegistry)) {
|
|
74
|
+
if (r === 'credits' || r === 'token_registry') {
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
output = output.replaceAll(`${r}.aleo`, `${prefix}_${r.replaceAll('hyp_', '')}.aleo`);
|
|
78
|
+
}
|
|
79
|
+
return Program.fromString(output);
|
|
80
|
+
});
|
|
81
|
+
if (!skipSuffixes) {
|
|
82
|
+
programs = programs.map((p) => Program.fromString(p
|
|
83
|
+
.toString()
|
|
84
|
+
.replaceAll(/(mailbox|hook_manager|dispatch_proxy|validator_announce).aleo/g, (_, p1) => (coreSuffix ? `${p1}_${coreSuffix}.aleo` : `${p1}.aleo`))
|
|
85
|
+
.replaceAll(/(hyp_native|hyp_collateral|hyp_synthetic).aleo/g, (_, p1) => {
|
|
86
|
+
if (p1 === 'hyp_native') {
|
|
87
|
+
return `hyp_warp_token_credits.aleo`;
|
|
88
|
+
}
|
|
89
|
+
const effectiveSuffix = getCustomWarpSuffixFromEnv() || warpSuffix || coreSuffix;
|
|
90
|
+
return `hyp_warp_token_${effectiveSuffix}.aleo`;
|
|
91
|
+
})));
|
|
92
|
+
if (customIsmSuffix) {
|
|
93
|
+
programs = programs.map((p) => Program.fromString(p
|
|
94
|
+
.toString()
|
|
95
|
+
.replaceAll('ism_manager.aleo', `ism_manager_${customIsmSuffix}.aleo`)));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (upgradeAuthority) {
|
|
99
|
+
if (new RegExp(/^(aleo1[a-z0-9]{58})$/).test(upgradeAuthority)) {
|
|
100
|
+
programs = programs.map((p) => Program.fromString(p.toString().replaceAll(`constructor:
|
|
101
|
+
assert.eq edition 0u16;`, `constructor:
|
|
102
|
+
assert.eq program_owner ${upgradeAuthority};`)));
|
|
103
|
+
}
|
|
104
|
+
else if (new RegExp(/^[a-z0-9_]+\.aleo$/).test(upgradeAuthority)) {
|
|
105
|
+
programs = programs.map((p) => Program.fromString(`import ${upgradeAuthority};\n` +
|
|
106
|
+
p.toString().replaceAll(`constructor:
|
|
107
|
+
assert.eq edition 0u16;`, `struct ChecksumEdition:
|
|
108
|
+
checksum as [u8; 32u32];
|
|
109
|
+
edition as u16;
|
|
110
|
+
|
|
111
|
+
struct WalletEcdsaSigner:
|
|
112
|
+
wallet_id as address;
|
|
113
|
+
ecdsa_signer as [u8; 20u32];
|
|
114
|
+
|
|
115
|
+
struct WalletSigningOpId:
|
|
116
|
+
wallet_id as address;
|
|
117
|
+
signing_op_id as field;
|
|
118
|
+
|
|
119
|
+
struct AdminOp:
|
|
120
|
+
op as u8;
|
|
121
|
+
threshold as u8;
|
|
122
|
+
aleo_signer as address;
|
|
123
|
+
ecdsa_signer as [u8; 20u32];
|
|
124
|
+
|
|
125
|
+
constructor:
|
|
126
|
+
gt edition 0u16 into r0;
|
|
127
|
+
branch.eq r0 false to end_then_0_2;
|
|
128
|
+
cast checksum edition into r1 as ChecksumEdition;
|
|
129
|
+
hash.bhp256 r1 into r2 as field;
|
|
130
|
+
cast ${p.id()} r2 into r3 as WalletSigningOpId;
|
|
131
|
+
hash.bhp256 r3 into r4 as field;
|
|
132
|
+
contains ${upgradeAuthority}/completed_signing_ops[r4] into r5;
|
|
133
|
+
assert.eq r5 true;
|
|
134
|
+
branch.eq true true to end_otherwise_0_3;
|
|
135
|
+
position end_then_0_2;
|
|
136
|
+
position end_otherwise_0_3;`)));
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw new Error(`upgrade authority must be an aleo account address or the program id of a multisig program`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return programs.map((p) => ({
|
|
143
|
+
id: p.id(),
|
|
144
|
+
name: Object.keys(programRegistry).find((r) => {
|
|
145
|
+
if (r === 'hyp_native') {
|
|
146
|
+
return p.id() === `${prefix}_warp_token_credits.aleo`;
|
|
147
|
+
}
|
|
148
|
+
if ((r === 'hyp_collateral' || r === 'hyp_synthetic') &&
|
|
149
|
+
r === programName &&
|
|
150
|
+
p.id().startsWith(`${prefix}_warp_token_`) &&
|
|
151
|
+
p.id() !== `${prefix}_warp_token_credits.aleo`) {
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
return p.id().startsWith(`${prefix}_${r.replaceAll('hyp_', '')}`);
|
|
155
|
+
}) || '',
|
|
156
|
+
program: p.toString(),
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=helper.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.node.js","sourceRoot":"","sources":["../../src/utils/helper.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.test.d.ts","sourceRoot":"","sources":["../../src/utils/helper.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { expect } from 'chai';
|
|
2
|
+
import { ALEO_PROGRAMS } from '../programs.js';
|
|
3
|
+
import { bytes32ToU128String, bytesLeToU128String, getProgramSuffix, } from './helper.js';
|
|
4
|
+
describe('getProgramSuffix', () => {
|
|
5
|
+
it('uses the generated program metadata', () => {
|
|
6
|
+
expect(ALEO_PROGRAMS).to.include('mailbox');
|
|
7
|
+
expect(getProgramSuffix('hyp_mailbox_abc123.aleo')).to.equal('abc123');
|
|
8
|
+
});
|
|
9
|
+
it('removes the testnet prefix', () => {
|
|
10
|
+
expect(getProgramSuffix('test_hyp_mailbox_abc123.aleo')).to.equal('abc123');
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
describe('u128 byte encoding', () => {
|
|
14
|
+
it('encodes little-endian bytes without the Provable runtime', () => {
|
|
15
|
+
expect(bytesLeToU128String(Uint8Array.from([1, 1]))).to.equal('257u128');
|
|
16
|
+
expect(bytesLeToU128String(new Uint8Array(16).fill(255))).to.equal('340282366920938463463374607431768211455u128');
|
|
17
|
+
});
|
|
18
|
+
it('splits bytes32 values into little-endian u128 pairs', () => {
|
|
19
|
+
expect(bytes32ToU128String('0x0101000000000000000000000000000002000000000000000000000000000000')).to.equal('[257u128,2u128]');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=helper.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helper.test.js","sourceRoot":"","sources":["../../src/utils/helper.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;QAC7C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,gBAAgB,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACzE,MAAM,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAChE,6CAA6C,CAC9C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,CACJ,mBAAmB,CACjB,oEAAoE,CACrE,CACF,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provable.d.ts","sourceRoot":"","sources":["../../src/utils/provable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAElE,MAAM,MAAM,OAAO,GAAG,OAAO,cAAc,CAAC;AAE5C,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provable.js","sourceRoot":"","sources":["../../src/utils/provable.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { type ConfirmedTransactionJSON, type ExecuteOptions } from '@provablehq/sdk';
|
|
2
|
+
import { type RawWarpArtifactConfig } from '@recoillink/provider-sdk/warp';
|
|
3
|
+
import { type Annotated } from '@recoillink/utils';
|
|
4
|
+
import { AleoNetworkId } from '../constants.js';
|
|
5
|
+
export { AleoNetworkId };
|
|
6
|
+
export interface AleoTransaction extends ExecuteOptions {
|
|
7
|
+
}
|
|
8
|
+
export type AnnotatedAleoTransaction = Annotated<AleoTransaction>;
|
|
9
|
+
export interface AleoReceipt extends ConfirmedTransactionJSON {
|
|
10
|
+
transactionHash: string;
|
|
11
|
+
}
|
|
12
|
+
export declare enum AleoTokenType {
|
|
13
|
+
NATIVE = 0,
|
|
14
|
+
SYNTHETIC = 1,
|
|
15
|
+
COLLATERAL = 2
|
|
16
|
+
}
|
|
17
|
+
export declare enum AleoHookType {
|
|
18
|
+
CUSTOM = 0,
|
|
19
|
+
MERKLE_TREE = 3,
|
|
20
|
+
INTERCHAIN_GAS_PAYMASTER = 4,
|
|
21
|
+
PAUSABLE = 7
|
|
22
|
+
}
|
|
23
|
+
export declare enum AleoIsmType {
|
|
24
|
+
TEST_ISM = 6,
|
|
25
|
+
ROUTING = 1,
|
|
26
|
+
MERKLE_ROOT_MULTISIG = 4,
|
|
27
|
+
MESSAGE_ID_MULTISIG = 5
|
|
28
|
+
}
|
|
29
|
+
export declare function toAleoNetworkId(chainId: number): AleoNetworkId;
|
|
30
|
+
/**
|
|
31
|
+
* Internal Aleo-specific warp token configuration types.
|
|
32
|
+
* These are used by query and transaction functions, and converted to/from
|
|
33
|
+
* provider-sdk artifact types by reader/writer implementations.
|
|
34
|
+
*/
|
|
35
|
+
interface BaseAleoWarpTokenConfig {
|
|
36
|
+
owner: string;
|
|
37
|
+
mailbox: string;
|
|
38
|
+
ism?: string;
|
|
39
|
+
hook?: string;
|
|
40
|
+
remoteRouters: Record<number, {
|
|
41
|
+
address: string;
|
|
42
|
+
gas: string;
|
|
43
|
+
}>;
|
|
44
|
+
}
|
|
45
|
+
export interface AleoNativeWarpTokenConfig extends BaseAleoWarpTokenConfig {
|
|
46
|
+
type: AleoTokenType.NATIVE;
|
|
47
|
+
scale?: number;
|
|
48
|
+
}
|
|
49
|
+
export interface AleoCollateralWarpTokenConfig extends BaseAleoWarpTokenConfig {
|
|
50
|
+
type: AleoTokenType.COLLATERAL;
|
|
51
|
+
token: string;
|
|
52
|
+
name: string;
|
|
53
|
+
symbol: string;
|
|
54
|
+
decimals: number;
|
|
55
|
+
scale?: number;
|
|
56
|
+
}
|
|
57
|
+
export interface AleoSyntheticWarpTokenConfig extends BaseAleoWarpTokenConfig {
|
|
58
|
+
type: AleoTokenType.SYNTHETIC;
|
|
59
|
+
name: string;
|
|
60
|
+
symbol: string;
|
|
61
|
+
decimals: number;
|
|
62
|
+
scale?: number;
|
|
63
|
+
}
|
|
64
|
+
export type AleoWarpTokenConfig = AleoNativeWarpTokenConfig | AleoCollateralWarpTokenConfig | AleoSyntheticWarpTokenConfig;
|
|
65
|
+
export interface OnChainArtifactManagers {
|
|
66
|
+
ismManagerAddress: string;
|
|
67
|
+
hookManagerAddress: string;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Transform Aleo warp token's common fields to provider-sdk artifact format.
|
|
71
|
+
* Handles ISM, remote routers, and destination gas transformations that are
|
|
72
|
+
* identical across all token types.
|
|
73
|
+
*/
|
|
74
|
+
export declare function aleoWarpFieldsToArtifactApi(token: Pick<AleoWarpTokenConfig, 'ism' | 'remoteRouters' | 'hook'>): Pick<RawWarpArtifactConfig, 'interchainSecurityModule' | 'hook' | 'remoteRouters' | 'destinationGas'>;
|
|
75
|
+
/**
|
|
76
|
+
* Aleo mailbox config structure matching on-chain data
|
|
77
|
+
*/
|
|
78
|
+
export interface AleoMailboxData {
|
|
79
|
+
local_domain: number;
|
|
80
|
+
nonce: number;
|
|
81
|
+
process_count: number;
|
|
82
|
+
default_ism: string;
|
|
83
|
+
default_hook: string;
|
|
84
|
+
required_hook: string;
|
|
85
|
+
dispatch_proxy: string;
|
|
86
|
+
mailbox_owner: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Parsed mailbox configuration
|
|
90
|
+
*/
|
|
91
|
+
export interface AleoMailboxConfig {
|
|
92
|
+
address: string;
|
|
93
|
+
owner: string;
|
|
94
|
+
localDomain: number;
|
|
95
|
+
nonce: number;
|
|
96
|
+
defaultIsm: string;
|
|
97
|
+
defaultHook: string;
|
|
98
|
+
requiredHook: string;
|
|
99
|
+
}
|
|
100
|
+
export type AleoArtifactNetworkConfig = Readonly<{
|
|
101
|
+
domainId: number;
|
|
102
|
+
aleoNetworkId: AleoNetworkId;
|
|
103
|
+
}>;
|
|
104
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ArtifactState } from '@recoillink/provider-sdk/artifact';
|
|
2
|
+
import { assert } from '@recoillink/utils';
|
|
3
|
+
import { AleoNetworkId } from '../constants.js';
|
|
4
|
+
export { AleoNetworkId };
|
|
5
|
+
export var AleoTokenType;
|
|
6
|
+
(function (AleoTokenType) {
|
|
7
|
+
AleoTokenType[AleoTokenType["NATIVE"] = 0] = "NATIVE";
|
|
8
|
+
AleoTokenType[AleoTokenType["SYNTHETIC"] = 1] = "SYNTHETIC";
|
|
9
|
+
AleoTokenType[AleoTokenType["COLLATERAL"] = 2] = "COLLATERAL";
|
|
10
|
+
})(AleoTokenType || (AleoTokenType = {}));
|
|
11
|
+
export var AleoHookType;
|
|
12
|
+
(function (AleoHookType) {
|
|
13
|
+
AleoHookType[AleoHookType["CUSTOM"] = 0] = "CUSTOM";
|
|
14
|
+
AleoHookType[AleoHookType["MERKLE_TREE"] = 3] = "MERKLE_TREE";
|
|
15
|
+
AleoHookType[AleoHookType["INTERCHAIN_GAS_PAYMASTER"] = 4] = "INTERCHAIN_GAS_PAYMASTER";
|
|
16
|
+
AleoHookType[AleoHookType["PAUSABLE"] = 7] = "PAUSABLE";
|
|
17
|
+
})(AleoHookType || (AleoHookType = {}));
|
|
18
|
+
// This must be kept in sync with the enum at
|
|
19
|
+
// https://github.com/hyperlane-xyz/hyperlane-aleo/blob/50b9d0ba107939bf3d8f634d302fbd7db922165a/ism_manager/src/main.leo#L71-L74
|
|
20
|
+
export var AleoIsmType;
|
|
21
|
+
(function (AleoIsmType) {
|
|
22
|
+
AleoIsmType[AleoIsmType["TEST_ISM"] = 6] = "TEST_ISM";
|
|
23
|
+
AleoIsmType[AleoIsmType["ROUTING"] = 1] = "ROUTING";
|
|
24
|
+
AleoIsmType[AleoIsmType["MERKLE_ROOT_MULTISIG"] = 4] = "MERKLE_ROOT_MULTISIG";
|
|
25
|
+
AleoIsmType[AleoIsmType["MESSAGE_ID_MULTISIG"] = 5] = "MESSAGE_ID_MULTISIG";
|
|
26
|
+
})(AleoIsmType || (AleoIsmType = {}));
|
|
27
|
+
export function toAleoNetworkId(chainId) {
|
|
28
|
+
assert(chainId === AleoNetworkId.MAINNET || chainId === AleoNetworkId.TESTNET, `Unknown chain id ${chainId} for Aleo, only ${AleoNetworkId.MAINNET} or ${AleoNetworkId.TESTNET} allowed`);
|
|
29
|
+
return chainId;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Transform Aleo warp token's common fields to provider-sdk artifact format.
|
|
33
|
+
* Handles ISM, remote routers, and destination gas transformations that are
|
|
34
|
+
* identical across all token types.
|
|
35
|
+
*/
|
|
36
|
+
export function aleoWarpFieldsToArtifactApi(token) {
|
|
37
|
+
return {
|
|
38
|
+
interchainSecurityModule: token.ism
|
|
39
|
+
? {
|
|
40
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
41
|
+
deployed: {
|
|
42
|
+
address: token.ism,
|
|
43
|
+
},
|
|
44
|
+
}
|
|
45
|
+
: undefined,
|
|
46
|
+
hook: token.hook
|
|
47
|
+
? {
|
|
48
|
+
artifactState: ArtifactState.UNDERIVED,
|
|
49
|
+
deployed: {
|
|
50
|
+
address: token.hook,
|
|
51
|
+
},
|
|
52
|
+
}
|
|
53
|
+
: undefined,
|
|
54
|
+
remoteRouters: Object.fromEntries(Object.entries(token.remoteRouters).map(([domainId, router]) => [
|
|
55
|
+
domainId,
|
|
56
|
+
{ address: router.address },
|
|
57
|
+
])),
|
|
58
|
+
destinationGas: Object.fromEntries(Object.entries(token.remoteRouters).map(([domainId, router]) => [
|
|
59
|
+
domainId,
|
|
60
|
+
router.gas,
|
|
61
|
+
])),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/utils/types.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EAAkB,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,CAAC;AAQzB,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,qDAAU,CAAA;IACV,2DAAa,CAAA;IACb,6DAAc,CAAA;AAChB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,mDAAU,CAAA;IACV,6DAAe,CAAA;IACf,uFAA4B,CAAA;IAC5B,uDAAY,CAAA;AACd,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,6CAA6C;AAC7C,iIAAiI;AACjI,MAAM,CAAN,IAAY,WAKX;AALD,WAAY,WAAW;IACrB,qDAAY,CAAA;IACZ,mDAAW,CAAA;IACX,6EAAwB,CAAA;IACxB,2EAAuB,CAAA;AACzB,CAAC,EALW,WAAW,KAAX,WAAW,QAKtB;AAED,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,CACJ,OAAO,KAAK,aAAa,CAAC,OAAO,IAAI,OAAO,KAAK,aAAa,CAAC,OAAO,EACtE,oBAAoB,OAAO,mBAAmB,aAAa,CAAC,OAAO,OAAO,aAAa,CAAC,OAAO,UAAU,CAC1G,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAsDD;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,KAAkE;IAKlE,OAAO;QACL,wBAAwB,EAAE,KAAK,CAAC,GAAG;YACjC,CAAC,CAAC;gBACE,aAAa,EAAE,aAAa,CAAC,SAAS;gBACtC,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK,CAAC,GAAG;iBACnB;aACF;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;YACd,CAAC,CAAC;gBACE,aAAa,EAAE,aAAa,CAAC,SAAS;gBACtC,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK,CAAC,IAAI;iBACpB;aACF;YACH,CAAC,CAAC,SAAS;QACb,aAAa,EAAE,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YAC9D,QAAQ;YACR,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;SAC5B,CAAC,CACH;QACD,cAAc,EAAE,MAAM,CAAC,WAAW,CAChC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;YAC9D,QAAQ;YACR,MAAM,CAAC,GAAG;SACX,CAAC,CACH;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedValidatorAnnounceAddress, type IRawValidatorAnnounceArtifactManager, type RawValidatorAnnounceArtifactConfigs, type ValidatorAnnounceType } from '@recoillink/provider-sdk/validator-announce';
|
|
3
|
+
import { type AnyAleoNetworkClient } from '../clients/base.js';
|
|
4
|
+
import { type AleoSigner } from '../clients/signer.js';
|
|
5
|
+
import { type AleoArtifactNetworkConfig } from '../utils/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Aleo ValidatorAnnounce Artifact Manager implementing IRawValidatorAnnounceArtifactManager.
|
|
8
|
+
*
|
|
9
|
+
* This manager:
|
|
10
|
+
* - Provides factory methods for creating validator announce readers and writers
|
|
11
|
+
* - Handles validator announce deployment
|
|
12
|
+
*/
|
|
13
|
+
export declare class AleoValidatorAnnounceArtifactManager implements IRawValidatorAnnounceArtifactManager {
|
|
14
|
+
private readonly config;
|
|
15
|
+
private readonly aleoClient;
|
|
16
|
+
constructor(config: AleoArtifactNetworkConfig, aleoClient: AnyAleoNetworkClient);
|
|
17
|
+
readValidatorAnnounce(address: string): Promise<import("@recoillink/provider-sdk/artifact").ArtifactDeployed<import("@recoillink/provider-sdk/validator-announce").RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>>;
|
|
18
|
+
createReader<T extends ValidatorAnnounceType>(_type: T): ArtifactReader<RawValidatorAnnounceArtifactConfigs[T], DeployedValidatorAnnounceAddress>;
|
|
19
|
+
createWriter<T extends ValidatorAnnounceType>(_type: T, signer: AleoSigner): ArtifactWriter<RawValidatorAnnounceArtifactConfigs[T], DeployedValidatorAnnounceAddress>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=validator-announce-artifact-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,gCAAgC,EACrC,KAAK,oCAAoC,EACzC,KAAK,mCAAmC,EACxC,KAAK,qBAAqB,EAC3B,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAOnE;;;;;;GAMG;AACH,qBAAa,oCAAqC,YAAW,oCAAoC;IAE7F,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAF7B,YACmB,MAAM,EAAE,yBAAyB,EACjC,UAAU,EAAE,oBAAoB,EAC/C;IAEE,qBAAqB,CAAC,OAAO,EAAE,MAAM,6LAG1C;IAED,YAAY,CAAC,CAAC,SAAS,qBAAqB,EAC1C,KAAK,EAAE,CAAC,GACP,cAAc,CACf,mCAAmC,CAAC,CAAC,CAAC,EACtC,gCAAgC,CACjC,CAEA;IAED,YAAY,CAAC,CAAC,SAAS,qBAAqB,EAC1C,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,UAAU,GACjB,cAAc,CACf,mCAAmC,CAAC,CAAC,CAAC,EACtC,gCAAgC,CACjC,CAMA;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AleoValidatorAnnounceReader, AleoValidatorAnnounceWriter, } from './validator-announce.js';
|
|
2
|
+
/**
|
|
3
|
+
* Aleo ValidatorAnnounce Artifact Manager implementing IRawValidatorAnnounceArtifactManager.
|
|
4
|
+
*
|
|
5
|
+
* This manager:
|
|
6
|
+
* - Provides factory methods for creating validator announce readers and writers
|
|
7
|
+
* - Handles validator announce deployment
|
|
8
|
+
*/
|
|
9
|
+
export class AleoValidatorAnnounceArtifactManager {
|
|
10
|
+
config;
|
|
11
|
+
aleoClient;
|
|
12
|
+
constructor(config, aleoClient) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.aleoClient = aleoClient;
|
|
15
|
+
}
|
|
16
|
+
async readValidatorAnnounce(address) {
|
|
17
|
+
const reader = this.createReader('validatorAnnounce');
|
|
18
|
+
return reader.read(address);
|
|
19
|
+
}
|
|
20
|
+
createReader(_type) {
|
|
21
|
+
return new AleoValidatorAnnounceReader(this.aleoClient);
|
|
22
|
+
}
|
|
23
|
+
createWriter(_type, signer) {
|
|
24
|
+
return new AleoValidatorAnnounceWriter(this.config, this.aleoClient, signer);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=validator-announce-artifact-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-artifact-manager.js","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-artifact-manager.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,yBAAyB,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,OAAO,oCAAoC;IAE5B,MAAM;IACN,UAAU;IAF7B,YACmB,MAAiC,EACjC,UAAgC;sBADhC,MAAM;0BACN,UAAU;IAC1B,CAAC;IAEJ,KAAK,CAAC,qBAAqB,CAAC,OAAe;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,YAAY,CACV,KAAQ;QAKR,OAAO,IAAI,2BAA2B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,YAAY,CACV,KAAQ,EACR,MAAkB;QAKlB,OAAO,IAAI,2BAA2B,CACpC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,EACf,MAAM,CACP,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AnyAleoNetworkClient } from '../clients/base.js';
|
|
2
|
+
/**
|
|
3
|
+
* Query validator announce configuration from the chain.
|
|
4
|
+
*
|
|
5
|
+
* @param aleoClient - The Aleo network client
|
|
6
|
+
* @param validatorAnnounceAddress - The full validator announce address (e.g., "validator_announce.aleo/aleo1...")
|
|
7
|
+
* @returns The validator announce configuration with address and plain mailbox address (aleo1... format).
|
|
8
|
+
* Note: The mailbox address is returned as a plain address because the validator announce program
|
|
9
|
+
* does not import the mailbox program, so the program ID cannot be resolved from on-chain state.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getValidatorAnnounceConfig(aleoClient: AnyAleoNetworkClient, validatorAnnounceAddress: string): Promise<{
|
|
12
|
+
address: string;
|
|
13
|
+
mailboxAddress: string;
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=validator-announce-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-query.d.ts","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-query.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAQ/D;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,oBAAoB,EAChC,wBAAwB,EAAE,MAAM,GAC/B,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC,CAkCtD"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Address } from '@provablehq/sdk';
|
|
2
|
+
import { assert } from '@recoillink/utils';
|
|
3
|
+
import { queryMappingValue } from '../utils/base-query.js';
|
|
4
|
+
import { fromAleoAddress } from '../utils/helper.js';
|
|
5
|
+
/**
|
|
6
|
+
* Query validator announce configuration from the chain.
|
|
7
|
+
*
|
|
8
|
+
* @param aleoClient - The Aleo network client
|
|
9
|
+
* @param validatorAnnounceAddress - The full validator announce address (e.g., "validator_announce.aleo/aleo1...")
|
|
10
|
+
* @returns The validator announce configuration with address and plain mailbox address (aleo1... format).
|
|
11
|
+
* Note: The mailbox address is returned as a plain address because the validator announce program
|
|
12
|
+
* does not import the mailbox program, so the program ID cannot be resolved from on-chain state.
|
|
13
|
+
*/
|
|
14
|
+
export async function getValidatorAnnounceConfig(aleoClient, validatorAnnounceAddress) {
|
|
15
|
+
const { programId } = fromAleoAddress(validatorAnnounceAddress);
|
|
16
|
+
assert(programId, `Program Id is required for reading the on chain validator announce config. Is the input address formatted as "programId/address"?`);
|
|
17
|
+
const validatorAnnounceData = await queryMappingValue(aleoClient, programId, 'validator_announce', 'true', (raw) => {
|
|
18
|
+
const data = raw;
|
|
19
|
+
assert(data?.mailbox, `Invalid validator announce data structure for validator announce ${validatorAnnounceAddress}, expected object with mailbox field`);
|
|
20
|
+
return data;
|
|
21
|
+
});
|
|
22
|
+
// Convert mailbox address from bytes to human-readable string
|
|
23
|
+
// The mailbox field is stored as [u8; 32u32] bytes on chain
|
|
24
|
+
// Note: Only the plain address is available because the validator announce
|
|
25
|
+
// program does not import the mailbox program on chain.
|
|
26
|
+
const mailboxAddress = Address.fromBytesLe(Uint8Array.from(validatorAnnounceData.mailbox)).to_string();
|
|
27
|
+
return {
|
|
28
|
+
address: validatorAnnounceAddress,
|
|
29
|
+
mailboxAddress,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=validator-announce-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-query.js","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAAgC,EAChC,wBAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,GAAG,eAAe,CAAC,wBAAwB,CAAC,CAAC;IAChE,MAAM,CACJ,SAAS,EACT,mIAAmI,CACpI,CAAC;IAEF,MAAM,qBAAqB,GAAG,MAAM,iBAAiB,CACnD,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,MAAM,EACN,CAAC,GAAG,EAAyB,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAwC,CAAC;QACtD,MAAM,CACJ,IAAI,EAAE,OAAO,EACb,oEAAoE,wBAAwB,sCAAsC,CACnI,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;IAEF,8DAA8D;IAC9D,4DAA4D;IAC5D,2EAA2E;IAC3E,wDAAwD;IACxD,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CACxC,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAC/C,CAAC,SAAS,EAAE,CAAC;IAEd,OAAO;QACL,OAAO,EAAE,wBAAwB;QACjC,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type AleoTransaction } from '../utils/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build transaction to create a validator announce
|
|
4
|
+
*
|
|
5
|
+
* @param validatorAnnounceProgramId - The validator announce program ID
|
|
6
|
+
* @param mailboxAddress - The plain mailbox address (without program prefix)
|
|
7
|
+
* @param localDomain - The local domain ID
|
|
8
|
+
* @returns The transaction object
|
|
9
|
+
*/
|
|
10
|
+
export declare function getCreateValidatorAnnounceTx(validatorAnnounceProgramId: string, mailboxAddress: string, localDomain: number): AleoTransaction;
|
|
11
|
+
//# sourceMappingURL=validator-announce-tx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-tx.d.ts","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,0BAA0B,EAAE,MAAM,EAClC,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAClB,eAAe,CAUjB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { fromAleoAddress } from '../utils/helper.js';
|
|
2
|
+
/**
|
|
3
|
+
* Build transaction to create a validator announce
|
|
4
|
+
*
|
|
5
|
+
* @param validatorAnnounceProgramId - The validator announce program ID
|
|
6
|
+
* @param mailboxAddress - The plain mailbox address (without program prefix)
|
|
7
|
+
* @param localDomain - The local domain ID
|
|
8
|
+
* @returns The transaction object
|
|
9
|
+
*/
|
|
10
|
+
export function getCreateValidatorAnnounceTx(validatorAnnounceProgramId, mailboxAddress, localDomain) {
|
|
11
|
+
const { address: mailboxPlainAddress } = fromAleoAddress(mailboxAddress);
|
|
12
|
+
return {
|
|
13
|
+
programName: validatorAnnounceProgramId,
|
|
14
|
+
functionName: 'init',
|
|
15
|
+
priorityFee: 0,
|
|
16
|
+
privateFee: false,
|
|
17
|
+
inputs: [mailboxPlainAddress, `${localDomain}u32`],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=validator-announce-tx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce-tx.js","sourceRoot":"","sources":["../../src/validator-announce/validator-announce-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,0BAAkC,EAClC,cAAsB,EACtB,WAAmB;IAEnB,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,eAAe,CAAC,cAAc,CAAC,CAAC;IAEzE,OAAO;QACL,WAAW,EAAE,0BAA0B;QACvC,YAAY,EAAE,MAAM;QACpB,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,CAAC,mBAAmB,EAAE,GAAG,WAAW,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ArtifactDeployed, type ArtifactNew, type ArtifactReader, type ArtifactWriter } from '@recoillink/provider-sdk/artifact';
|
|
2
|
+
import { type DeployedValidatorAnnounceAddress, type RawValidatorAnnounceConfig } from '@recoillink/provider-sdk/validator-announce';
|
|
3
|
+
import { type AnyAleoNetworkClient } from '../clients/base.js';
|
|
4
|
+
import { type AleoSigner } from '../clients/signer.js';
|
|
5
|
+
import { type AleoArtifactNetworkConfig, type AleoReceipt, type AnnotatedAleoTransaction } from '../utils/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Reader for Aleo ValidatorAnnounce.
|
|
8
|
+
* Reads deployed validator announce configuration from the chain.
|
|
9
|
+
*/
|
|
10
|
+
export declare class AleoValidatorAnnounceReader implements ArtifactReader<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress> {
|
|
11
|
+
protected readonly aleoClient: AnyAleoNetworkClient;
|
|
12
|
+
constructor(aleoClient: AnyAleoNetworkClient);
|
|
13
|
+
read(address: string): Promise<ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Writer for Aleo ValidatorAnnounce.
|
|
17
|
+
* Handles deployment. ValidatorAnnounce is immutable after deployment.
|
|
18
|
+
*/
|
|
19
|
+
export declare class AleoValidatorAnnounceWriter extends AleoValidatorAnnounceReader implements ArtifactWriter<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress> {
|
|
20
|
+
private readonly config;
|
|
21
|
+
private readonly signer;
|
|
22
|
+
constructor(config: AleoArtifactNetworkConfig, aleoClient: AnyAleoNetworkClient, signer: AleoSigner);
|
|
23
|
+
create(artifact: ArtifactNew<RawValidatorAnnounceConfig>): Promise<[
|
|
24
|
+
ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>,
|
|
25
|
+
AleoReceipt[]
|
|
26
|
+
]>;
|
|
27
|
+
update(_artifact: ArtifactDeployed<RawValidatorAnnounceConfig, DeployedValidatorAnnounceAddress>): Promise<AnnotatedAleoTransaction[]>;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=validator-announce.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator-announce.d.ts","sourceRoot":"","sources":["../../src/validator-announce/validator-announce.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,cAAc,EAEnB,KAAK,cAAc,EACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,KAAK,gCAAgC,EACrC,KAAK,0BAA0B,EAChC,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQvD,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,wBAAwB,EAC9B,MAAM,mBAAmB,CAAC;AAK3B;;;GAGG;AACH,qBAAa,2BAA4B,YAAW,cAAc,CAChE,0BAA0B,EAC1B,gCAAgC,CACjC;IACa,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,oBAAoB;IAA/D,YAA+B,UAAU,EAAE,oBAAoB,EAAI;IAE7D,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CACR,gBAAgB,CACd,0BAA0B,EAC1B,gCAAgC,CACjC,CACF,CAeA;CACF;AAED;;;GAGG;AACH,qBAAa,2BACX,SAAQ,2BACR,YACE,cAAc,CACZ,0BAA0B,EAC1B,gCAAgC,CACjC;IAGD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,YACmB,MAAM,EAAE,yBAAyB,EAClD,UAAU,EAAE,oBAAoB,EACf,MAAM,EAAE,UAAU,EAGpC;IAEK,MAAM,CACV,QAAQ,EAAE,WAAW,CAAC,0BAA0B,CAAC,GAChD,OAAO,CACR;QACE,gBAAgB,CACd,0BAA0B,EAC1B,gCAAgC,CACjC;QACD,WAAW,EAAE;KACd,CACF,CAmDA;IAEK,MAAM,CACV,SAAS,EAAE,gBAAgB,CACzB,0BAA0B,EAC1B,gCAAgC,CACjC,GACA,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAGrC;CACF"}
|