@aztec/aztec 0.0.1-commit.f504929 → 0.0.1-commit.f5a9928
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/dest/bin/index.js +4 -2
- package/dest/cli/aztec_start_action.d.ts +1 -1
- package/dest/cli/aztec_start_action.d.ts.map +1 -1
- package/dest/cli/aztec_start_action.js +42 -33
- package/dest/cli/aztec_start_options.d.ts +2 -2
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +22 -18
- package/dest/cli/cmds/compile.d.ts +1 -1
- package/dest/cli/cmds/compile.d.ts.map +1 -1
- package/dest/cli/cmds/compile.js +35 -21
- package/dest/cli/cmds/profile.d.ts +1 -1
- package/dest/cli/cmds/profile.d.ts.map +1 -1
- package/dest/cli/cmds/profile.js +1 -1
- package/dest/cli/cmds/profile_flamegraph.d.ts +1 -1
- package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -1
- package/dest/cli/cmds/profile_flamegraph.js +2 -1
- package/dest/cli/cmds/profile_gates.d.ts +2 -2
- package/dest/cli/cmds/profile_gates.d.ts.map +1 -1
- package/dest/cli/cmds/profile_gates.js +23 -4
- package/dest/cli/cmds/prover.d.ts +4 -0
- package/dest/cli/cmds/prover.d.ts.map +1 -0
- package/dest/cli/cmds/prover.js +24 -0
- package/dest/cli/cmds/standby.d.ts +56 -0
- package/dest/cli/cmds/standby.d.ts.map +1 -0
- package/dest/cli/cmds/standby.js +140 -0
- package/dest/cli/cmds/start_bot.d.ts +1 -1
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +8 -4
- package/dest/cli/cmds/start_node.d.ts +3 -2
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +36 -112
- package/dest/cli/cmds/start_prover_agent.d.ts +1 -1
- package/dest/cli/cmds/start_prover_agent.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_agent.js +5 -17
- package/dest/cli/cmds/start_prover_broker.d.ts +1 -1
- package/dest/cli/cmds/start_prover_broker.d.ts.map +1 -1
- package/dest/cli/cmds/start_prover_broker.js +22 -13
- package/dest/cli/cmds/start_txe.d.ts +2 -2
- package/dest/cli/cmds/start_txe.d.ts.map +1 -1
- package/dest/cli/cmds/start_txe.js +6 -5
- package/dest/cli/cmds/utils/artifacts.d.ts +6 -1
- package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -1
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts +21 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.d.ts.map +1 -0
- package/dest/cli/cmds/utils/collect_crate_dirs.js +114 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts +10 -0
- package/dest/cli/cmds/utils/needs_recompile.d.ts.map +1 -0
- package/dest/cli/cmds/utils/needs_recompile.js +90 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts +4 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.d.ts.map +1 -0
- package/dest/cli/cmds/utils/warn_if_aztec_version_mismatch.js +61 -0
- package/dest/cli/util.d.ts +9 -6
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +26 -94
- package/dest/deploy/bridging.d.ts +84 -0
- package/dest/deploy/bridging.d.ts.map +1 -0
- package/dest/deploy/bridging.js +121 -0
- package/dest/deploy/fees.d.ts +120 -0
- package/dest/deploy/fees.d.ts.map +1 -0
- package/dest/deploy/fees.js +278 -0
- package/dest/deploy/graph.d.ts +40 -0
- package/dest/deploy/graph.d.ts.map +1 -0
- package/dest/deploy/graph.js +120 -0
- package/dest/deploy/index.d.ts +19 -0
- package/dest/deploy/index.d.ts.map +1 -0
- package/dest/deploy/index.js +15 -0
- package/dest/deploy/reporter.d.ts +106 -0
- package/dest/deploy/reporter.d.ts.map +1 -0
- package/dest/deploy/reporter.js +76 -0
- package/dest/deploy/runner.d.ts +8 -0
- package/dest/deploy/runner.d.ts.map +1 -0
- package/dest/deploy/runner.js +886 -0
- package/dest/deploy/state.d.ts +19 -0
- package/dest/deploy/state.d.ts.map +1 -0
- package/dest/deploy/state.js +59 -0
- package/dest/deploy/types.d.ts +233 -0
- package/dest/deploy/types.d.ts.map +1 -0
- package/dest/deploy/types.js +9 -0
- package/dest/examples/token.js +3 -3
- package/dest/local-network/auth_registry.d.ts +5 -0
- package/dest/local-network/auth_registry.d.ts.map +1 -0
- package/dest/local-network/auth_registry.js +17 -0
- package/dest/local-network/banana_fpc.d.ts +3 -2
- package/dest/local-network/banana_fpc.d.ts.map +1 -1
- package/dest/local-network/banana_fpc.js +11 -7
- package/dest/local-network/local-network.d.ts +10 -32
- package/dest/local-network/local-network.d.ts.map +1 -1
- package/dest/local-network/local-network.js +60 -73
- package/dest/testing/cheat_codes.d.ts +17 -23
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/cheat_codes.js +17 -43
- package/dest/testing/epoch_test_settler.d.ts +2 -2
- package/dest/testing/epoch_test_settler.d.ts.map +1 -1
- package/dest/testing/epoch_test_settler.js +6 -26
- package/dest/testing/index.d.ts +3 -2
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +2 -1
- package/dest/testing/local-network.d.ts +51 -0
- package/dest/testing/local-network.d.ts.map +1 -0
- package/dest/testing/local-network.js +60 -0
- package/dest/testing/token_allowed_setup.d.ts +12 -0
- package/dest/testing/token_allowed_setup.d.ts.map +1 -0
- package/dest/testing/token_allowed_setup.js +24 -0
- package/package.json +38 -35
- package/scripts/add_crate.sh +11 -60
- package/scripts/aztec.sh +9 -2
- package/scripts/init.sh +5 -5
- package/scripts/new.sh +2 -2
- package/scripts/setup_workspace.sh +3 -2
- package/scripts/templates/blank/contract/Nargo.toml +6 -0
- package/scripts/templates/blank/contract/src/main.nr +10 -0
- package/scripts/templates/blank/test/Nargo.toml +7 -0
- package/scripts/templates/blank/test/src/lib.nr +11 -0
- package/scripts/templates/counter/contract/Nargo.toml +7 -0
- package/scripts/templates/counter/contract/src/main.nr +48 -0
- package/scripts/templates/counter/test/Nargo.toml +7 -0
- package/scripts/templates/counter/test/src/lib.nr +32 -0
- package/src/bin/index.ts +4 -2
- package/src/cli/aztec_start_action.ts +44 -27
- package/src/cli/aztec_start_options.ts +28 -25
- package/src/cli/cmds/compile.ts +41 -20
- package/src/cli/cmds/profile.ts +2 -1
- package/src/cli/cmds/profile_flamegraph.ts +2 -1
- package/src/cli/cmds/profile_gates.ts +22 -5
- package/src/cli/cmds/prover.ts +42 -0
- package/src/cli/cmds/standby.ts +184 -0
- package/src/cli/cmds/start_bot.ts +9 -6
- package/src/cli/cmds/start_node.ts +46 -131
- package/src/cli/cmds/start_prover_agent.ts +5 -8
- package/src/cli/cmds/start_prover_broker.ts +23 -24
- package/src/cli/cmds/start_txe.ts +7 -5
- package/src/cli/cmds/utils/artifacts.ts +5 -0
- package/src/cli/cmds/utils/collect_crate_dirs.ts +118 -0
- package/src/cli/cmds/utils/needs_recompile.ts +98 -0
- package/src/cli/cmds/utils/warn_if_aztec_version_mismatch.ts +76 -0
- package/src/cli/util.ts +26 -100
- package/src/deploy/bridging.ts +191 -0
- package/src/deploy/fees.ts +322 -0
- package/src/deploy/graph.ts +137 -0
- package/src/deploy/index.ts +41 -0
- package/src/deploy/reporter.ts +184 -0
- package/src/deploy/runner.ts +936 -0
- package/src/deploy/state.ts +66 -0
- package/src/deploy/types.ts +244 -0
- package/src/examples/token.ts +11 -3
- package/src/local-network/auth_registry.ts +19 -0
- package/src/local-network/banana_fpc.ts +12 -8
- package/src/local-network/local-network.ts +67 -83
- package/src/testing/cheat_codes.ts +18 -49
- package/src/testing/epoch_test_settler.ts +8 -32
- package/src/testing/index.ts +2 -1
- package/src/testing/local-network.ts +97 -0
- package/src/testing/token_allowed_setup.ts +26 -0
- package/dest/cli/cmds/start_archiver.d.ts +0 -9
- package/dest/cli/cmds/start_archiver.d.ts.map +0 -1
- package/dest/cli/cmds/start_archiver.js +0 -48
- package/dest/cli/release_version.d.ts +0 -2
- package/dest/cli/release_version.d.ts.map +0 -1
- package/dest/cli/release_version.js +0 -14
- package/dest/testing/anvil_test_watcher.d.ts +0 -42
- package/dest/testing/anvil_test_watcher.d.ts.map +0 -1
- package/dest/testing/anvil_test_watcher.js +0 -181
- package/src/cli/cmds/start_archiver.ts +0 -50
- package/src/cli/release_version.ts +0 -21
- package/src/testing/anvil_test_watcher.ts +0 -210
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/deploy/graph.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAiBlG;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACnC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GACnC,MAAM,EAAE,EAAE,CA+CZ;AAED,oCAAoC;AACpC,MAAM,WAAW,OAAO;IACtB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,iDAAgD;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,6CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAWjE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAcvE"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency-graph utilities for the deploy framework: topological layering (which steps
|
|
3
|
+
* can run together) and a pretty-printer for the resulting plan.
|
|
4
|
+
*/ /**
|
|
5
|
+
* Group `nodes` into dependency layers (Kahn's algorithm). Each layer contains nodes whose
|
|
6
|
+
* dependencies all sit in earlier layers, so a layer's nodes are mutually independent and
|
|
7
|
+
* may run in parallel. Dependencies pointing outside `nodes` (e.g. already-satisfied work)
|
|
8
|
+
* are treated as satisfied. Throws on a cycle.
|
|
9
|
+
*/ export function topologicalLayers(nodes, dependencies) {
|
|
10
|
+
const remaining = new Set(nodes);
|
|
11
|
+
const layers = [];
|
|
12
|
+
while(remaining.size > 0){
|
|
13
|
+
// A node is ready when every dependency already sits in an earlier layer (i.e. is no longer in `remaining`).
|
|
14
|
+
const layer = [
|
|
15
|
+
...remaining
|
|
16
|
+
].filter((node)=>(dependencies.get(node) ?? []).every((dependency)=>!remaining.has(dependency)));
|
|
17
|
+
if (layer.length === 0) {
|
|
18
|
+
throw new Error(`Dependency cycle among: ${[
|
|
19
|
+
...remaining
|
|
20
|
+
].join(', ')}`);
|
|
21
|
+
}
|
|
22
|
+
for (const node of layer){
|
|
23
|
+
remaining.delete(node);
|
|
24
|
+
}
|
|
25
|
+
layers.push(layer);
|
|
26
|
+
}
|
|
27
|
+
return layers;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Like {@link topologicalLayers}, but nodes for which `floatLate(node)` is true are scheduled as
|
|
31
|
+
* LATE as their dependents allow (ALAP) instead of as early as possible. Used to push batchable
|
|
32
|
+
* actions into the latest layer they can share, so same-account actions in adjacent layers coalesce
|
|
33
|
+
* into one tx. Fixed nodes (e.g. contract publishes, which unblock dependents and don't batch) keep
|
|
34
|
+
* their earliest layer; the relative order — and so the critical-path length — is unchanged. Throws
|
|
35
|
+
* on a cycle (via {@link topologicalLayers}).
|
|
36
|
+
*/ export function scheduleLayers(nodes, dependencies, floatLate) {
|
|
37
|
+
const asap = topologicalLayers(nodes, dependencies);
|
|
38
|
+
if (asap.length === 0) {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
const lastLayer = asap.length - 1;
|
|
42
|
+
const nodeSet = new Set(nodes);
|
|
43
|
+
const layerOf = new Map();
|
|
44
|
+
for (const [index, layer] of asap.entries()){
|
|
45
|
+
for (const node of layer){
|
|
46
|
+
layerOf.set(node, index);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Reverse adjacency: which in-set nodes depend on each node.
|
|
50
|
+
const dependents = new Map();
|
|
51
|
+
for (const node of nodes){
|
|
52
|
+
for (const dependency of dependencies.get(node) ?? []){
|
|
53
|
+
if (!nodeSet.has(dependency)) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
const list = dependents.get(dependency);
|
|
57
|
+
if (list) {
|
|
58
|
+
list.push(node);
|
|
59
|
+
} else {
|
|
60
|
+
dependents.set(dependency, [
|
|
61
|
+
node
|
|
62
|
+
]);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Push floating nodes as late as possible, visiting in reverse topological order (the flattened
|
|
67
|
+
// ASAP order reversed) so every node is placed after all of its dependents are placed.
|
|
68
|
+
for (const node of asap.flat().reverse()){
|
|
69
|
+
if (!floatLate(node)) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
const deps = dependents.get(node) ?? [];
|
|
73
|
+
const latest = deps.length === 0 ? lastLayer : Math.min(...deps.map((d)=>layerOf.get(d))) - 1;
|
|
74
|
+
layerOf.set(node, Math.max(layerOf.get(node), latest));
|
|
75
|
+
}
|
|
76
|
+
const layers = Array.from({
|
|
77
|
+
length: asap.length
|
|
78
|
+
}, ()=>[]);
|
|
79
|
+
for (const node of nodes){
|
|
80
|
+
layers[layerOf.get(node)].push(node);
|
|
81
|
+
}
|
|
82
|
+
return layers.filter((layer)=>layer.length > 0);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Render a titled flat list of plan rows (no layer grouping). Use for the declared-contracts
|
|
86
|
+
* overview, whose `← ...` arrows are constructor-arg references — not an execution order.
|
|
87
|
+
*/ export function formatList(title, rows) {
|
|
88
|
+
if (rows.length === 0) {
|
|
89
|
+
return `${title}: (none)`;
|
|
90
|
+
}
|
|
91
|
+
const lines = [
|
|
92
|
+
`${title}:`
|
|
93
|
+
];
|
|
94
|
+
for (const row of rows){
|
|
95
|
+
const dependencies = row.dependencies && row.dependencies.length ? ` ← ${row.dependencies.join(', ')}` : '';
|
|
96
|
+
const tag = row.tag ? ` [${row.tag}]` : '';
|
|
97
|
+
lines.push(` ${row.name}${tag}${dependencies}`);
|
|
98
|
+
}
|
|
99
|
+
return lines.join('\n');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Render a titled, layer-grouped section of the plan as an indented tree. Each layer's txs are
|
|
103
|
+
* submitted in parallel.
|
|
104
|
+
*/ export function formatLayers(title, layers) {
|
|
105
|
+
if (layers.length === 0) {
|
|
106
|
+
return `${title}: (none)`;
|
|
107
|
+
}
|
|
108
|
+
const lines = [
|
|
109
|
+
`${title}:`
|
|
110
|
+
];
|
|
111
|
+
for (const [index, layer] of layers.entries()){
|
|
112
|
+
lines.push(` layer ${index + 1}${layer.length > 1 ? ' (parallel)' : ''}`);
|
|
113
|
+
for (const row of layer){
|
|
114
|
+
const dependencies = row.dependencies && row.dependencies.length ? ` ← ${row.dependencies.join(', ')}` : '';
|
|
115
|
+
const tag = row.tag ? ` [${row.tag}]` : '';
|
|
116
|
+
lines.push(` ${row.name}${tag}${dependencies}`);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return lines.join('\n');
|
|
120
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal, declarative deployment framework for Aztec.
|
|
3
|
+
*
|
|
4
|
+
* Describe the accounts you send from and a graph of steps — contracts that must end up on-chain
|
|
5
|
+
* (deterministic addresses, interdependencies via `initializerArgs`) and the txs to send — plus how
|
|
6
|
+
* fees are paid; then {@link runDeployment} resolves, takes an on-chain inventory, funds, and
|
|
7
|
+
* executes only what's missing in dependency order — idempotently and resumably. The framework
|
|
8
|
+
* never reads the environment; callers pipe in secrets and config.
|
|
9
|
+
*
|
|
10
|
+
* Node-only: pulls in the PXE-backed `EmbeddedWallet`, `@aztec/noir-contracts.js`, and (for the
|
|
11
|
+
* `fee-juice` policy) L1 bridging — none browser-safe. Lives under the `@aztec/aztec/deploy` subpath
|
|
12
|
+
* so it stays out of any browser bundle.
|
|
13
|
+
*/
|
|
14
|
+
export { runDeployment } from './runner.js';
|
|
15
|
+
export { defaultFeePolicy } from './fees.js';
|
|
16
|
+
export { consoleReporter } from './reporter.js';
|
|
17
|
+
export type { DeployReporter, DeployPlan, DeployPlanAccount, DeployPlanStep, AccountFunding, DeploySummary, DeployUnitInfo, DeployUnitResult, DeployUnitKind, BridgeEvent, } from './reporter.js';
|
|
18
|
+
export type { DeploymentSpec, AccountSpec, ContractStep, ActionStep, FundStep, StepSpec, Steps, GeneratedContractClass, FeePolicy, Resolver, Ctx, } from './types.js';
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXBsb3kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxZQUFZLEVBQ1YsY0FBYyxFQUNkLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixjQUFjLEVBQ2QsV0FBVyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLFlBQVksRUFDVixjQUFjLEVBQ2QsV0FBVyxFQUNYLFlBQVksRUFDWixVQUFVLEVBQ1YsUUFBUSxFQUNSLFFBQVEsRUFDUixLQUFLLEVBQ0wsc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsR0FBRyxHQUNKLE1BQU0sWUFBWSxDQUFDIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/deploy/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EACV,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,sBAAsB,EACtB,SAAS,EACT,QAAQ,EACR,GAAG,GACJ,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A minimal, declarative deployment framework for Aztec.
|
|
3
|
+
*
|
|
4
|
+
* Describe the accounts you send from and a graph of steps — contracts that must end up on-chain
|
|
5
|
+
* (deterministic addresses, interdependencies via `initializerArgs`) and the txs to send — plus how
|
|
6
|
+
* fees are paid; then {@link runDeployment} resolves, takes an on-chain inventory, funds, and
|
|
7
|
+
* executes only what's missing in dependency order — idempotently and resumably. The framework
|
|
8
|
+
* never reads the environment; callers pipe in secrets and config.
|
|
9
|
+
*
|
|
10
|
+
* Node-only: pulls in the PXE-backed `EmbeddedWallet`, `@aztec/noir-contracts.js`, and (for the
|
|
11
|
+
* `fee-juice` policy) L1 bridging — none browser-safe. Lives under the `@aztec/aztec/deploy` subpath
|
|
12
|
+
* so it stays out of any browser bundle.
|
|
13
|
+
*/ export { runDeployment } from './runner.js';
|
|
14
|
+
export { defaultFeePolicy } from './fees.js';
|
|
15
|
+
export { consoleReporter } from './reporter.js';
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability for the deploy framework. {@link runDeployment} emits structured lifecycle events
|
|
3
|
+
* to a {@link DeployReporter} instead of writing to the console directly, so callers control where
|
|
4
|
+
* the signal goes: the default ({@link consoleReporter}) renders human-readably to **stderr** —
|
|
5
|
+
* keeping stdout clear for the deploy scripts' `export KEY=VAL` lines, which an orchestrator evals —
|
|
6
|
+
* while e2e, a progress UI, or structured CI logging can inject their own reporter and consume the
|
|
7
|
+
* events as data. Every hook is optional; an empty `{}` is a valid (silent) reporter.
|
|
8
|
+
*/
|
|
9
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
10
|
+
import type { TxHash } from '@aztec/stdlib/tx';
|
|
11
|
+
/** What a unit did: publish a contract, send an action's tx, or fund an address with Fee Juice. */
|
|
12
|
+
export type DeployUnitKind = 'publish' | 'action' | 'fund';
|
|
13
|
+
/** Identity of one execution unit (a single tx), as reported by the unit lifecycle hooks. */
|
|
14
|
+
export interface DeployUnitInfo {
|
|
15
|
+
/** Human label, e.g. `publish goCoin`, `action mintGoCoin`. */
|
|
16
|
+
label: string;
|
|
17
|
+
kind: DeployUnitKind;
|
|
18
|
+
/** The account that sends and pays for this tx. */
|
|
19
|
+
account: AztecAddress;
|
|
20
|
+
}
|
|
21
|
+
/** What a unit produced once its tx settled. Fields beyond `durationMs` come from the receipt. */
|
|
22
|
+
export interface DeployUnitResult {
|
|
23
|
+
txHash?: TxHash;
|
|
24
|
+
blockNumber?: number;
|
|
25
|
+
feePaid?: bigint;
|
|
26
|
+
status?: string;
|
|
27
|
+
durationMs: number;
|
|
28
|
+
}
|
|
29
|
+
/** An account's funding posture for this run, as resolved at planning time. */
|
|
30
|
+
export type AccountFunding = {
|
|
31
|
+
kind: 'idle';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'sponsored';
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'funded';
|
|
36
|
+
balance: bigint;
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'not-funded';
|
|
39
|
+
balance: bigint;
|
|
40
|
+
fundAmount: bigint;
|
|
41
|
+
};
|
|
42
|
+
export interface DeployPlanAccount {
|
|
43
|
+
alias: string;
|
|
44
|
+
address: AztecAddress;
|
|
45
|
+
funding: AccountFunding;
|
|
46
|
+
}
|
|
47
|
+
export interface DeployPlanStep {
|
|
48
|
+
id: string;
|
|
49
|
+
kind: 'contract' | 'action' | 'fund';
|
|
50
|
+
/**
|
|
51
|
+
* Status at the start of the run: a contract is `published` / `to publish` (public) or
|
|
52
|
+
* `registered` (private); an action is `done` / `to run`; a fund step is `funded` / `to fund`.
|
|
53
|
+
*/
|
|
54
|
+
status: 'published' | 'to publish' | 'registered' | 'done' | 'to run' | 'funded' | 'to fund';
|
|
55
|
+
/** Steps it depends on (constructor-arg refs and explicit `dependsOn`). */
|
|
56
|
+
dependsOn: string[];
|
|
57
|
+
}
|
|
58
|
+
export interface DeployPlan {
|
|
59
|
+
/** Human label for the target (e.g. `local`, or a caller-chosen name). */
|
|
60
|
+
label: string;
|
|
61
|
+
accounts: DeployPlanAccount[];
|
|
62
|
+
steps: DeployPlanStep[];
|
|
63
|
+
/** Execution layers (step ids) — what will actually run, in dependency order. A layer runs parallel. */
|
|
64
|
+
layers: string[][];
|
|
65
|
+
}
|
|
66
|
+
export interface DeploySummary {
|
|
67
|
+
label: string;
|
|
68
|
+
contracts: {
|
|
69
|
+
alias: string;
|
|
70
|
+
address: AztecAddress;
|
|
71
|
+
status: 'published' | 'registered';
|
|
72
|
+
}[];
|
|
73
|
+
accounts: {
|
|
74
|
+
alias: string;
|
|
75
|
+
address: AztecAddress;
|
|
76
|
+
}[];
|
|
77
|
+
}
|
|
78
|
+
export interface BridgeEvent {
|
|
79
|
+
recipient: AztecAddress;
|
|
80
|
+
amount: bigint;
|
|
81
|
+
/** True when resuming a persisted claim instead of bridging anew. */
|
|
82
|
+
reused: boolean;
|
|
83
|
+
}
|
|
84
|
+
/** Lifecycle hooks the framework emits during a run. All optional — implement only what you need. */
|
|
85
|
+
export interface DeployReporter {
|
|
86
|
+
/** The resolved plan, before execution. */
|
|
87
|
+
onPlan?(plan: DeployPlan): void;
|
|
88
|
+
/** Everything is already on-chain; nothing will be sent. */
|
|
89
|
+
onNothingToDo?(label: string): void;
|
|
90
|
+
/** An account's Fee Juice is being topped up (or a persisted claim is being resumed). */
|
|
91
|
+
onBridge?(event: BridgeEvent): void;
|
|
92
|
+
/** A unit's tx is about to be sent. */
|
|
93
|
+
onUnitStart?(unit: DeployUnitInfo): void;
|
|
94
|
+
/** A unit's tx settled successfully. */
|
|
95
|
+
onUnitSettled?(unit: DeployUnitInfo, result: DeployUnitResult): void;
|
|
96
|
+
/** A unit's tx threw; the run will abort after this. */
|
|
97
|
+
onUnitError?(unit: DeployUnitInfo, error: unknown): void;
|
|
98
|
+
/** The run finished; `summary` holds the final resolved state. */
|
|
99
|
+
onComplete?(summary: DeploySummary): void;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The default reporter: renders events human-readably to **stderr**. Stderr (not stdout) so the
|
|
103
|
+
* traces survive an orchestrator that captures stdout for the scripts' `export` lines.
|
|
104
|
+
*/
|
|
105
|
+
export declare function consoleReporter(): DeployReporter;
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0ZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZXBsb3kvcmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSS9DLG1HQUFtRztBQUNuRyxNQUFNLE1BQU0sY0FBYyxHQUFHLFNBQVMsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDO0FBRTNELDZGQUE2RjtBQUM3RixNQUFNLFdBQVcsY0FBYztJQUM3QiwrREFBK0Q7SUFDL0QsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLElBQUksRUFBRSxjQUFjLENBQUM7SUFDckIsbURBQW1EO0lBQ25ELE9BQU8sRUFBRSxZQUFZLENBQUM7Q0FDdkI7QUFFRCxrR0FBa0c7QUFDbEcsTUFBTSxXQUFXLGdCQUFnQjtJQUMvQixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3JCLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNqQixNQUFNLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQjtBQUVELCtFQUErRTtBQUMvRSxNQUFNLE1BQU0sY0FBYyxHQUN0QjtJQUFFLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUNoQjtJQUFFLElBQUksRUFBRSxXQUFXLENBQUE7Q0FBRSxHQUNyQjtJQUFFLElBQUksRUFBRSxRQUFRLENBQUM7SUFBQyxPQUFPLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FDbkM7SUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDO0lBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUFDLFVBQVUsRUFBRSxNQUFNLENBQUE7Q0FBRSxDQUFDO0FBRWhFLE1BQU0sV0FBVyxpQkFBaUI7SUFDaEMsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLE9BQU8sRUFBRSxZQUFZLENBQUM7SUFDdEIsT0FBTyxFQUFFLGNBQWMsQ0FBQztDQUN6QjtBQUVELE1BQU0sV0FBVyxjQUFjO0lBQzdCLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxJQUFJLEVBQUUsVUFBVSxHQUFHLFFBQVEsR0FBRyxNQUFNLENBQUM7SUFDckM7OztPQUdHO0lBQ0gsTUFBTSxFQUFFLFdBQVcsR0FBRyxZQUFZLEdBQUcsWUFBWSxHQUFHLE1BQU0sR0FBRyxRQUFRLEdBQUcsUUFBUSxHQUFHLFNBQVMsQ0FBQztJQUM3RiwyRUFBMkU7SUFDM0UsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ3JCO0FBRUQsTUFBTSxXQUFXLFVBQVU7SUFDekIsMEVBQTBFO0lBQzFFLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUM5QixLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDeEIsMEdBQXdHO0lBQ3hHLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO0NBQ3BCO0FBRUQsTUFBTSxXQUFXLGFBQWE7SUFDNUIsS0FBSyxFQUFFLE1BQU0sQ0FBQztJQUNkLFNBQVMsRUFBRTtRQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7UUFBQyxPQUFPLEVBQUUsWUFBWSxDQUFDO1FBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxZQUFZLENBQUE7S0FBRSxFQUFFLENBQUM7SUFDMUYsUUFBUSxFQUFFO1FBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUFDLE9BQU8sRUFBRSxZQUFZLENBQUE7S0FBRSxFQUFFLENBQUM7Q0FDdEQ7QUFFRCxNQUFNLFdBQVcsV0FBVztJQUMxQixTQUFTLEVBQUUsWUFBWSxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixxRUFBcUU7SUFDckUsTUFBTSxFQUFFLE9BQU8sQ0FBQztDQUNqQjtBQUVELHVHQUFxRztBQUNyRyxNQUFNLFdBQVcsY0FBYztJQUM3QiwyQ0FBMkM7SUFDM0MsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDaEMsNERBQTREO0lBQzVELGFBQWEsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3BDLHlGQUF5RjtJQUN6RixRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNwQyx1Q0FBdUM7SUFDdkMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDekMsd0NBQXdDO0lBQ3hDLGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNyRSx3REFBd0Q7SUFDeEQsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN6RCxrRUFBa0U7SUFDbEUsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUM7Q0FDM0M7QUFvQkQ7OztHQUdHO0FBQ0gsd0JBQWdCLGVBQWUsSUFBSSxjQUFjLENBOERoRCJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../../src/deploy/reporter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C,mGAAmG;AACnG,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,mDAAmD;IACnD,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,kGAAkG;AAClG,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC;;;OAGG;IACH,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7F,2EAA2E;IAC3E,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,0GAAwG;IACxG,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAA;KAAE,EAAE,CAAC;IAC1F,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;CACtD;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,YAAY,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,uGAAqG;AACrG,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,MAAM,CAAC,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,yFAAyF;IACzF,QAAQ,CAAC,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACpC,uCAAuC;IACvC,WAAW,CAAC,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,wCAAwC;IACxC,aAAa,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrE,wDAAwD;IACxD,WAAW,CAAC,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACzD,kEAAkE;IAClE,UAAU,CAAC,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3C;AAoBD;;;GAGG;AACH,wBAAgB,eAAe,IAAI,cAAc,CA8DhD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability for the deploy framework. {@link runDeployment} emits structured lifecycle events
|
|
3
|
+
* to a {@link DeployReporter} instead of writing to the console directly, so callers control where
|
|
4
|
+
* the signal goes: the default ({@link consoleReporter}) renders human-readably to **stderr** —
|
|
5
|
+
* keeping stdout clear for the deploy scripts' `export KEY=VAL` lines, which an orchestrator evals —
|
|
6
|
+
* while e2e, a progress UI, or structured CI logging can inject their own reporter and consume the
|
|
7
|
+
* events as data. Every hook is optional; an empty `{}` is a valid (silent) reporter.
|
|
8
|
+
*/ import { formatLayers, formatList } from './graph.js';
|
|
9
|
+
const MS_PER_SECOND = 1000;
|
|
10
|
+
const WEI_PER_FEE_JUICE = 10n ** 18n;
|
|
11
|
+
const seconds = (ms)=>`${(ms / MS_PER_SECOND).toFixed(1)}s`;
|
|
12
|
+
const feeJuice = (wei)=>`${wei / WEI_PER_FEE_JUICE} FJ`;
|
|
13
|
+
function describeFunding(f) {
|
|
14
|
+
switch(f.kind){
|
|
15
|
+
case 'idle':
|
|
16
|
+
return 'idle (no work)';
|
|
17
|
+
case 'sponsored':
|
|
18
|
+
return 'sponsored';
|
|
19
|
+
case 'funded':
|
|
20
|
+
return `funded (${feeJuice(f.balance)})`;
|
|
21
|
+
case 'not-funded':
|
|
22
|
+
return `not funded (${feeJuice(f.balance)}) → will bridge ${feeJuice(f.fundAmount)}`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The default reporter: renders events human-readably to **stderr**. Stderr (not stdout) so the
|
|
27
|
+
* traces survive an orchestrator that captures stdout for the scripts' `export` lines.
|
|
28
|
+
*/ export function consoleReporter() {
|
|
29
|
+
const log = (line)=>void process.stderr.write(`${line}\n`);
|
|
30
|
+
return {
|
|
31
|
+
onPlan (plan) {
|
|
32
|
+
log(`\n── Plan (${plan.label}) ──`);
|
|
33
|
+
log(formatList('accounts', plan.accounts.map((a)=>({
|
|
34
|
+
name: a.alias,
|
|
35
|
+
tag: describeFunding(a.funding)
|
|
36
|
+
}))));
|
|
37
|
+
log(formatList('steps', plan.steps.map((s)=>({
|
|
38
|
+
name: s.id,
|
|
39
|
+
tag: `${s.kind} · ${s.status}`,
|
|
40
|
+
dependencies: s.dependsOn
|
|
41
|
+
}))));
|
|
42
|
+
log(formatLayers('execution layers', plan.layers.map((layer)=>layer.map((name)=>({
|
|
43
|
+
name
|
|
44
|
+
})))));
|
|
45
|
+
},
|
|
46
|
+
onNothingToDo (label) {
|
|
47
|
+
log(`\nNothing to do on ${label} — everything is already on-chain.`);
|
|
48
|
+
},
|
|
49
|
+
onBridge ({ recipient, amount, reused }) {
|
|
50
|
+
log(reused ? `Reusing a pending bridge claim for ${recipient} (resuming a top-up).` : `Bridging ${amount} Fee Juice to ${recipient} (this can take a few minutes)...`);
|
|
51
|
+
},
|
|
52
|
+
onUnitStart (unit) {
|
|
53
|
+
log(`→ ${unit.label}...`);
|
|
54
|
+
},
|
|
55
|
+
onUnitSettled (unit, result) {
|
|
56
|
+
const bits = [
|
|
57
|
+
result.txHash ? `tx ${result.txHash.toString().slice(0, 10)}…` : undefined,
|
|
58
|
+
result.blockNumber != null ? `block ${result.blockNumber}` : undefined,
|
|
59
|
+
seconds(result.durationMs)
|
|
60
|
+
].filter(Boolean);
|
|
61
|
+
log(`✓ ${unit.label} ${bits.join(' ')}`);
|
|
62
|
+
},
|
|
63
|
+
onUnitError (unit, error) {
|
|
64
|
+
log(`✗ ${unit.label} failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
65
|
+
},
|
|
66
|
+
onComplete (summary) {
|
|
67
|
+
log(`\n── Deployed to ${summary.label} ──`);
|
|
68
|
+
for (const c of summary.contracts){
|
|
69
|
+
log(` ${c.alias.padEnd(16)} ${c.address} (${c.status})`);
|
|
70
|
+
}
|
|
71
|
+
for (const a of summary.accounts){
|
|
72
|
+
log(` account ${a.alias}: ${a.address}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { DeploymentSpec, Steps } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Runs a {@link DeploymentSpec}: resolves accounts and deterministic addresses, inventories what's
|
|
4
|
+
* already on-chain, reports the plan, funds the working accounts, and executes the missing steps in
|
|
5
|
+
* dependency layers. Idempotent — a re-run sends nothing when everything is already in place.
|
|
6
|
+
*/
|
|
7
|
+
export declare function runDeployment<C extends Steps>(spec: DeploymentSpec<C>): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVubmVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVwbG95L3J1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3REEsT0FBTyxLQUFLLEVBSVYsY0FBYyxFQUtkLEtBQUssRUFDTixNQUFNLFlBQVksQ0FBQztBQWdEcEI7Ozs7R0FJRztBQUNILHdCQUFzQixhQUFhLENBQUMsQ0FBQyxTQUFTLEtBQUssRUFBRSxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FjM0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/deploy/runner.ts"],"names":[],"mappings":"AAwDA,OAAO,KAAK,EAIV,cAAc,EAKd,KAAK,EACN,MAAM,YAAY,CAAC;AAgDpB;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAc3F"}
|