@aztec/aztec 0.0.1-commit.b655e406 → 0.0.1-commit.c0b82b2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dest/bin/index.d.ts +1 -1
- package/dest/bin/index.js +11 -4
- package/dest/cli/admin_api_key_store.d.ts +45 -0
- package/dest/cli/admin_api_key_store.d.ts.map +1 -0
- package/dest/cli/admin_api_key_store.js +98 -0
- 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 +58 -21
- package/dest/cli/aztec_start_options.d.ts +1 -1
- package/dest/cli/aztec_start_options.d.ts.map +1 -1
- package/dest/cli/aztec_start_options.js +46 -38
- package/dest/cli/cli.d.ts +1 -1
- package/dest/cli/cli.js +7 -7
- package/dest/cli/cmds/compile.d.ts +4 -0
- package/dest/cli/cmds/compile.d.ts.map +1 -0
- package/dest/cli/cmds/compile.js +160 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts +3 -0
- package/dest/cli/cmds/migrate_ha_db.d.ts.map +1 -0
- package/dest/cli/cmds/migrate_ha_db.js +27 -0
- package/dest/cli/cmds/profile.d.ts +4 -0
- package/dest/cli/cmds/profile.d.ts.map +1 -0
- package/dest/cli/cmds/profile.js +8 -0
- package/dest/cli/cmds/profile_flamegraph.d.ts +4 -0
- package/dest/cli/cmds/profile_flamegraph.d.ts.map +1 -0
- package/dest/cli/cmds/profile_flamegraph.js +51 -0
- package/dest/cli/cmds/profile_gates.d.ts +4 -0
- package/dest/cli/cmds/profile_gates.d.ts.map +1 -0
- package/dest/cli/cmds/profile_gates.js +57 -0
- package/dest/cli/cmds/profile_utils.d.ts +18 -0
- package/dest/cli/cmds/profile_utils.d.ts.map +1 -0
- package/dest/cli/cmds/profile_utils.js +50 -0
- package/dest/cli/cmds/start_archiver.d.ts +1 -1
- package/dest/cli/cmds/start_archiver.d.ts.map +1 -1
- package/dest/cli/cmds/start_archiver.js +11 -13
- package/dest/cli/cmds/start_bot.d.ts +3 -3
- package/dest/cli/cmds/start_bot.d.ts.map +1 -1
- package/dest/cli/cmds/start_bot.js +10 -6
- package/dest/cli/cmds/start_node.d.ts +1 -1
- package/dest/cli/cmds/start_node.d.ts.map +1 -1
- package/dest/cli/cmds/start_node.js +66 -14
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts +2 -2
- package/dest/cli/cmds/start_p2p_bootstrap.d.ts.map +1 -1
- package/dest/cli/cmds/start_p2p_bootstrap.js +2 -3
- 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 +4 -4
- 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 +4 -4
- package/dest/cli/cmds/start_txe.d.ts +1 -1
- package/dest/cli/cmds/utils/artifacts.d.ts +21 -0
- package/dest/cli/cmds/utils/artifacts.d.ts.map +1 -0
- package/dest/cli/cmds/utils/artifacts.js +24 -0
- package/dest/cli/cmds/utils/spawn.d.ts +3 -0
- package/dest/cli/cmds/utils/spawn.d.ts.map +1 -0
- package/dest/cli/cmds/utils/spawn.js +16 -0
- package/dest/cli/index.d.ts +1 -1
- package/dest/cli/preload_crs.d.ts +1 -1
- package/dest/cli/release_version.d.ts +1 -1
- package/dest/cli/util.d.ts +11 -20
- package/dest/cli/util.d.ts.map +1 -1
- package/dest/cli/util.js +16 -11
- package/dest/cli/versioning.d.ts +1 -1
- package/dest/examples/token.d.ts +1 -1
- package/dest/examples/token.js +6 -6
- package/dest/examples/util.d.ts +2 -2
- package/dest/examples/util.d.ts.map +1 -1
- package/dest/index.d.ts +2 -2
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/local-network/banana_fpc.d.ts +10 -0
- package/dest/local-network/banana_fpc.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/banana_fpc.js +3 -3
- package/dest/local-network/index.d.ts +4 -0
- package/dest/local-network/index.d.ts.map +1 -0
- package/dest/{sandbox → local-network}/index.js +1 -1
- package/dest/local-network/local-network.d.ts +73 -0
- package/dest/local-network/local-network.d.ts.map +1 -0
- package/dest/{sandbox/sandbox.js → local-network/local-network.js} +75 -45
- package/dest/local-network/sponsored_fpc.d.ts +5 -0
- package/dest/local-network/sponsored_fpc.d.ts.map +1 -0
- package/dest/mnemonic.d.ts +1 -1
- package/dest/splash.d.ts +1 -1
- package/dest/testing/anvil_test_watcher.d.ts +12 -4
- package/dest/testing/anvil_test_watcher.d.ts.map +1 -1
- package/dest/testing/anvil_test_watcher.js +68 -29
- package/dest/testing/cheat_codes.d.ts +1 -1
- package/dest/testing/cheat_codes.d.ts.map +1 -1
- package/dest/testing/epoch_test_settler.d.ts +19 -0
- package/dest/testing/epoch_test_settler.d.ts.map +1 -0
- package/dest/testing/epoch_test_settler.js +62 -0
- package/dest/testing/index.d.ts +2 -1
- package/dest/testing/index.d.ts.map +1 -1
- package/dest/testing/index.js +1 -0
- package/package.json +41 -37
- package/scripts/aztec.sh +66 -0
- package/scripts/init.sh +45 -0
- package/scripts/new.sh +60 -0
- package/scripts/setup_workspace.sh +124 -0
- package/src/bin/index.ts +12 -4
- package/src/cli/admin_api_key_store.ts +128 -0
- package/src/cli/aztec_start_action.ts +61 -16
- package/src/cli/aztec_start_options.ts +47 -36
- package/src/cli/cli.ts +11 -11
- package/src/cli/cmds/compile.ts +184 -0
- package/src/cli/cmds/migrate_ha_db.ts +43 -0
- package/src/cli/cmds/profile.ts +25 -0
- package/src/cli/cmds/profile_flamegraph.ts +63 -0
- package/src/cli/cmds/profile_gates.ts +67 -0
- package/src/cli/cmds/profile_utils.ts +58 -0
- package/src/cli/cmds/start_archiver.ts +7 -18
- package/src/cli/cmds/start_bot.ts +9 -6
- package/src/cli/cmds/start_node.ts +55 -13
- package/src/cli/cmds/start_p2p_bootstrap.ts +3 -3
- package/src/cli/cmds/start_prover_agent.ts +4 -12
- package/src/cli/cmds/start_prover_broker.ts +7 -3
- package/src/cli/cmds/utils/artifacts.ts +44 -0
- package/src/cli/cmds/utils/spawn.ts +16 -0
- package/src/cli/util.ts +22 -27
- package/src/examples/token.ts +6 -8
- package/src/examples/util.ts +1 -1
- package/src/index.ts +2 -2
- package/src/{sandbox → local-network}/banana_fpc.ts +11 -7
- package/src/{sandbox → local-network}/index.ts +1 -1
- package/src/local-network/local-network.ts +267 -0
- package/src/{sandbox → local-network}/sponsored_fpc.ts +3 -2
- package/src/testing/anvil_test_watcher.ts +76 -30
- package/src/testing/cheat_codes.ts +3 -2
- package/src/testing/epoch_test_settler.ts +71 -0
- package/src/testing/index.ts +1 -0
- package/dest/cli/cmds/start_blob_sink.d.ts +0 -3
- package/dest/cli/cmds/start_blob_sink.d.ts.map +0 -1
- package/dest/cli/cmds/start_blob_sink.js +0 -33
- package/dest/cli/cmds/start_prover_node.d.ts +0 -7
- package/dest/cli/cmds/start_prover_node.d.ts.map +0 -1
- package/dest/cli/cmds/start_prover_node.js +0 -108
- package/dest/sandbox/banana_fpc.d.ts +0 -10
- package/dest/sandbox/banana_fpc.d.ts.map +0 -1
- package/dest/sandbox/index.d.ts +0 -4
- package/dest/sandbox/index.d.ts.map +0 -1
- package/dest/sandbox/sandbox.d.ts +0 -74
- package/dest/sandbox/sandbox.d.ts.map +0 -1
- package/dest/sandbox/sponsored_fpc.d.ts +0 -4
- package/dest/sandbox/sponsored_fpc.d.ts.map +0 -1
- package/src/cli/cmds/start_blob_sink.ts +0 -57
- package/src/cli/cmds/start_prover_node.ts +0 -124
- package/src/sandbox/sandbox.ts +0 -242
- /package/dest/{sandbox → local-network}/sponsored_fpc.js +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { RollupCheatCodes } from '@aztec/ethereum/test';
|
|
2
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { EpochMonitor } from '@aztec/prover-node';
|
|
4
|
+
import { computeL2ToL1MembershipWitnessFromMessagesInEpoch } from '@aztec/stdlib/messaging';
|
|
5
|
+
export class EpochTestSettler {
|
|
6
|
+
l2BlockSource;
|
|
7
|
+
log;
|
|
8
|
+
options;
|
|
9
|
+
rollupCheatCodes;
|
|
10
|
+
epochMonitor;
|
|
11
|
+
constructor(cheatcodes, rollupAddress, l2BlockSource, log, options){
|
|
12
|
+
this.l2BlockSource = l2BlockSource;
|
|
13
|
+
this.log = log;
|
|
14
|
+
this.options = options;
|
|
15
|
+
this.rollupCheatCodes = new RollupCheatCodes(cheatcodes, {
|
|
16
|
+
rollupAddress
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async start() {
|
|
20
|
+
const { epochDuration } = await this.rollupCheatCodes.getConfig();
|
|
21
|
+
this.epochMonitor = new EpochMonitor(this.l2BlockSource, {
|
|
22
|
+
epochDuration: Number(epochDuration)
|
|
23
|
+
}, this.options);
|
|
24
|
+
this.epochMonitor.start(this);
|
|
25
|
+
}
|
|
26
|
+
async stop() {
|
|
27
|
+
await this.epochMonitor?.stop();
|
|
28
|
+
}
|
|
29
|
+
async handleEpochReadyToProve(epoch) {
|
|
30
|
+
const checkpointedBlocks = await this.l2BlockSource.getCheckpointedBlocksForEpoch(epoch);
|
|
31
|
+
const blocks = checkpointedBlocks.map((b)=>b.block);
|
|
32
|
+
this.log.info(`Settling epoch ${epoch} with blocks ${blocks[0]?.header.getBlockNumber()} to ${blocks.at(-1)?.header.getBlockNumber()}`, {
|
|
33
|
+
blocks: blocks.map((b)=>b.toBlockInfo())
|
|
34
|
+
});
|
|
35
|
+
const messagesInEpoch = [];
|
|
36
|
+
let previousSlotNumber = SlotNumber.ZERO;
|
|
37
|
+
let checkpointIndex = -1;
|
|
38
|
+
for (const block of blocks){
|
|
39
|
+
const slotNumber = block.header.globalVariables.slotNumber;
|
|
40
|
+
if (slotNumber !== previousSlotNumber) {
|
|
41
|
+
checkpointIndex++;
|
|
42
|
+
messagesInEpoch[checkpointIndex] = [];
|
|
43
|
+
previousSlotNumber = slotNumber;
|
|
44
|
+
}
|
|
45
|
+
messagesInEpoch[checkpointIndex].push(block.body.txEffects.map((txEffect)=>txEffect.l2ToL1Msgs));
|
|
46
|
+
}
|
|
47
|
+
const [firstMessage] = messagesInEpoch.flat(3);
|
|
48
|
+
if (firstMessage) {
|
|
49
|
+
const { root: outHash } = computeL2ToL1MembershipWitnessFromMessagesInEpoch(messagesInEpoch, firstMessage);
|
|
50
|
+
await this.rollupCheatCodes.insertOutbox(epoch, outHash.toBigInt());
|
|
51
|
+
} else {
|
|
52
|
+
this.log.info(`No L2 to L1 messages in epoch ${epoch}`);
|
|
53
|
+
}
|
|
54
|
+
const lastCheckpoint = checkpointedBlocks.at(-1)?.checkpointNumber;
|
|
55
|
+
if (lastCheckpoint !== undefined) {
|
|
56
|
+
await this.rollupCheatCodes.markAsProven(lastCheckpoint);
|
|
57
|
+
} else {
|
|
58
|
+
this.log.warn(`No checkpoint found for epoch ${epoch}`);
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
}
|
package/dest/testing/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { AnvilTestWatcher } from './anvil_test_watcher.js';
|
|
2
2
|
export { EthCheatCodes, RollupCheatCodes } from '@aztec/ethereum/test';
|
|
3
3
|
export { CheatCodes } from './cheat_codes.js';
|
|
4
|
-
|
|
4
|
+
export { EpochTestSettler } from './epoch_test_settler.js';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dest/testing/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec",
|
|
3
|
-
"version": "0.0.1-commit.
|
|
3
|
+
"version": "0.0.1-commit.c0b82b2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
7
7
|
"./testing": "./dest/testing/index.js"
|
|
8
8
|
},
|
|
9
|
-
"bin": "./
|
|
9
|
+
"bin": "./scripts/aztec.sh",
|
|
10
10
|
"typedocOptions": {
|
|
11
11
|
"entryPoints": [
|
|
12
12
|
"./src/index.ts"
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
"tsconfig": "./tsconfig.json"
|
|
16
16
|
},
|
|
17
17
|
"scripts": {
|
|
18
|
-
"build": "yarn clean && tsc
|
|
18
|
+
"build": "yarn clean && ../scripts/tsc.sh",
|
|
19
19
|
"start": "node --no-warnings ./dest/bin",
|
|
20
20
|
"start:debug": "node --inspect=0.0.0.0:9221 --no-warnings ./dest/bin",
|
|
21
|
-
"start:
|
|
21
|
+
"start:local-network": "ETHEREUM_HOSTS=http://0.0.0.0:8545/ && yarn start start --local-network",
|
|
22
22
|
"clean": "rm -rf ./dest .tsbuildinfo",
|
|
23
|
-
"build:dev": "tsc
|
|
23
|
+
"build:dev": "../scripts/tsc.sh --watch",
|
|
24
24
|
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}",
|
|
25
25
|
"run:example:token": "LOG_LEVEL='verbose' node ./dest/examples/token.js"
|
|
26
26
|
},
|
|
@@ -28,47 +28,50 @@
|
|
|
28
28
|
"../package.common.json"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
32
|
-
"@aztec/archiver": "0.0.1-commit.
|
|
33
|
-
"@aztec/aztec-faucet": "0.0.1-commit.
|
|
34
|
-
"@aztec/aztec-node": "0.0.1-commit.
|
|
35
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
36
|
-
"@aztec/bb-prover": "0.0.1-commit.
|
|
37
|
-
"@aztec/bb.js": "0.0.1-commit.
|
|
38
|
-
"@aztec/blob-
|
|
39
|
-
"@aztec/bot": "0.0.1-commit.
|
|
40
|
-
"@aztec/builder": "0.0.1-commit.
|
|
41
|
-
"@aztec/cli": "0.0.1-commit.
|
|
42
|
-
"@aztec/constants": "0.0.1-commit.
|
|
43
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
44
|
-
"@aztec/ethereum": "0.0.1-commit.
|
|
45
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
46
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
47
|
-
"@aztec/l1-artifacts": "0.0.1-commit.
|
|
48
|
-
"@aztec/node-lib": "0.0.1-commit.
|
|
49
|
-
"@aztec/noir-contracts.js": "0.0.1-commit.
|
|
50
|
-
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.
|
|
51
|
-
"@aztec/p2p": "0.0.1-commit.
|
|
52
|
-
"@aztec/p2p-bootstrap": "0.0.1-commit.
|
|
53
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
54
|
-
"@aztec/prover-client": "0.0.1-commit.
|
|
55
|
-
"@aztec/prover-node": "0.0.1-commit.
|
|
56
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
57
|
-
"@aztec/
|
|
58
|
-
"@aztec/
|
|
59
|
-
"@aztec/
|
|
60
|
-
"@aztec/txe": "0.0.1-commit.
|
|
61
|
-
"@aztec/
|
|
31
|
+
"@aztec/accounts": "0.0.1-commit.c0b82b2",
|
|
32
|
+
"@aztec/archiver": "0.0.1-commit.c0b82b2",
|
|
33
|
+
"@aztec/aztec-faucet": "0.0.1-commit.c0b82b2",
|
|
34
|
+
"@aztec/aztec-node": "0.0.1-commit.c0b82b2",
|
|
35
|
+
"@aztec/aztec.js": "0.0.1-commit.c0b82b2",
|
|
36
|
+
"@aztec/bb-prover": "0.0.1-commit.c0b82b2",
|
|
37
|
+
"@aztec/bb.js": "0.0.1-commit.c0b82b2",
|
|
38
|
+
"@aztec/blob-client": "0.0.1-commit.c0b82b2",
|
|
39
|
+
"@aztec/bot": "0.0.1-commit.c0b82b2",
|
|
40
|
+
"@aztec/builder": "0.0.1-commit.c0b82b2",
|
|
41
|
+
"@aztec/cli": "0.0.1-commit.c0b82b2",
|
|
42
|
+
"@aztec/constants": "0.0.1-commit.c0b82b2",
|
|
43
|
+
"@aztec/entrypoints": "0.0.1-commit.c0b82b2",
|
|
44
|
+
"@aztec/ethereum": "0.0.1-commit.c0b82b2",
|
|
45
|
+
"@aztec/foundation": "0.0.1-commit.c0b82b2",
|
|
46
|
+
"@aztec/kv-store": "0.0.1-commit.c0b82b2",
|
|
47
|
+
"@aztec/l1-artifacts": "0.0.1-commit.c0b82b2",
|
|
48
|
+
"@aztec/node-lib": "0.0.1-commit.c0b82b2",
|
|
49
|
+
"@aztec/noir-contracts.js": "0.0.1-commit.c0b82b2",
|
|
50
|
+
"@aztec/noir-protocol-circuits-types": "0.0.1-commit.c0b82b2",
|
|
51
|
+
"@aztec/p2p": "0.0.1-commit.c0b82b2",
|
|
52
|
+
"@aztec/p2p-bootstrap": "0.0.1-commit.c0b82b2",
|
|
53
|
+
"@aztec/protocol-contracts": "0.0.1-commit.c0b82b2",
|
|
54
|
+
"@aztec/prover-client": "0.0.1-commit.c0b82b2",
|
|
55
|
+
"@aztec/prover-node": "0.0.1-commit.c0b82b2",
|
|
56
|
+
"@aztec/pxe": "0.0.1-commit.c0b82b2",
|
|
57
|
+
"@aztec/sequencer-client": "0.0.1-commit.c0b82b2",
|
|
58
|
+
"@aztec/stdlib": "0.0.1-commit.c0b82b2",
|
|
59
|
+
"@aztec/telemetry-client": "0.0.1-commit.c0b82b2",
|
|
60
|
+
"@aztec/txe": "0.0.1-commit.c0b82b2",
|
|
61
|
+
"@aztec/validator-ha-signer": "0.0.1-commit.c0b82b2",
|
|
62
|
+
"@aztec/wallets": "0.0.1-commit.c0b82b2",
|
|
63
|
+
"@aztec/world-state": "0.0.1-commit.c0b82b2",
|
|
62
64
|
"@types/chalk": "^2.2.0",
|
|
63
65
|
"abitype": "^0.8.11",
|
|
64
66
|
"chalk": "^5.3.0",
|
|
65
67
|
"commander": "^12.1.0",
|
|
66
68
|
"koa": "^2.16.1",
|
|
67
69
|
"koa-router": "^13.1.1",
|
|
68
|
-
"viem": "npm:@
|
|
70
|
+
"viem": "npm:@aztec/viem@2.38.2"
|
|
69
71
|
},
|
|
70
72
|
"files": [
|
|
71
73
|
"dest",
|
|
74
|
+
"scripts",
|
|
72
75
|
"src",
|
|
73
76
|
"!*.test.*"
|
|
74
77
|
],
|
|
@@ -77,6 +80,7 @@
|
|
|
77
80
|
"@jest/globals": "^30.0.0",
|
|
78
81
|
"@types/jest": "^30.0.0",
|
|
79
82
|
"@types/koa": "^2.15.0",
|
|
83
|
+
"@typescript/native-preview": "7.0.0-dev.20260113.1",
|
|
80
84
|
"jest": "^30.0.0",
|
|
81
85
|
"ts-node": "^10.9.1",
|
|
82
86
|
"typescript": "^5.3.3"
|
package/scripts/aztec.sh
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Re-execute using correct version if we have an .aztecrc file.
|
|
5
|
+
if [ "${AZTEC_VERSIONED:-0}" -eq 0 ] && [ -f .aztecrc ] && command -v aztec-up &>/dev/null; then
|
|
6
|
+
env_setup=$(aztec-up env)
|
|
7
|
+
eval "$env_setup"
|
|
8
|
+
AZTEC_VERSIONED=1 exec aztec "$@"
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
cmd=${1:-}
|
|
12
|
+
[ -n "$cmd" ] && shift
|
|
13
|
+
|
|
14
|
+
script_dir="$(dirname "$(realpath "$0")")"
|
|
15
|
+
|
|
16
|
+
function aztec {
|
|
17
|
+
export AZTEC_SHELL_WRAPPER=1
|
|
18
|
+
exec node --no-warnings $script_dir/../dest/bin/index.js "$@"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
case $cmd in
|
|
22
|
+
test)
|
|
23
|
+
export LOG_LEVEL="${LOG_LEVEL:-"error;trace:contract_log"}"
|
|
24
|
+
aztec start --txe --port 8081 &
|
|
25
|
+
server_pid=$!
|
|
26
|
+
trap 'kill $server_pid &>/dev/null || true' EXIT
|
|
27
|
+
while ! nc -z 127.0.0.1 8081 &>/dev/null; do sleep 0.2; done
|
|
28
|
+
export NARGO_FOREIGN_CALL_TIMEOUT=300000
|
|
29
|
+
nargo test --silence-warnings --oracle-resolver http://127.0.0.1:8081 --test-threads 16 "$@"
|
|
30
|
+
;;
|
|
31
|
+
start)
|
|
32
|
+
if [ "${1:-}" == "--local-network" ]; then
|
|
33
|
+
# TODO: Can these just be set in TS?
|
|
34
|
+
export ARCHIVER_POLLING_INTERVAL_MS=500
|
|
35
|
+
export P2P_BLOCK_CHECK_INTERVAL_MS=500
|
|
36
|
+
export SEQ_TX_POLLING_INTERVAL_MS=500
|
|
37
|
+
export WS_BLOCK_CHECK_INTERVAL_MS=500
|
|
38
|
+
export ARCHIVER_VIEM_POLLING_INTERVAL_MS=500
|
|
39
|
+
export TEST_ACCOUNTS=${TEST_ACCOUNTS:-true}
|
|
40
|
+
export LOG_LEVEL=${LOG_LEVEL:-info;silent:sequencer;verbose:debug_log}
|
|
41
|
+
export DEPLOY_AZTEC_CONTRACTS_SALT=${DEPLOY_AZTEC_CONTRACTS_SALT:-$RANDOM}
|
|
42
|
+
|
|
43
|
+
ANVIL_PORT=${ANVIL_PORT:-8545}
|
|
44
|
+
|
|
45
|
+
export L1_CHAIN_ID=${L1_CHAIN_ID:-31337}
|
|
46
|
+
export ETHEREUM_HOSTS=${ETHEREUM_HOSTS:-"http://127.0.0.1:${ANVIL_PORT}"}
|
|
47
|
+
|
|
48
|
+
anvil --version
|
|
49
|
+
anvil --silent --port "$ANVIL_PORT" &
|
|
50
|
+
anvil_pid=$!
|
|
51
|
+
trap 'kill $anvil_pid &>/dev/null' EXIT
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
aztec start "$@"
|
|
55
|
+
;;
|
|
56
|
+
new|init)
|
|
57
|
+
$script_dir/${cmd}.sh "$@"
|
|
58
|
+
;;
|
|
59
|
+
flamegraph)
|
|
60
|
+
echo "Warning: 'aztec flamegraph' is deprecated. Use 'aztec profile flamegraph' instead." >&2
|
|
61
|
+
aztec profile flamegraph "$@"
|
|
62
|
+
;;
|
|
63
|
+
*)
|
|
64
|
+
aztec $cmd "$@"
|
|
65
|
+
;;
|
|
66
|
+
esac
|
package/scripts/init.sh
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
script_path=$(realpath $(dirname "$0"))
|
|
5
|
+
|
|
6
|
+
name_arg=""
|
|
7
|
+
|
|
8
|
+
# Check for help first
|
|
9
|
+
for arg in "$@"; do
|
|
10
|
+
if [ "$arg" == "--help" ] || [ "$arg" == "-h" ]; then
|
|
11
|
+
cat << 'EOF'
|
|
12
|
+
Aztec Init - Create a new Aztec Noir project in the current directory
|
|
13
|
+
|
|
14
|
+
Usage: aztec init [OPTIONS]
|
|
15
|
+
|
|
16
|
+
Options:
|
|
17
|
+
--name <NAME> Name of the package [default: current directory name]
|
|
18
|
+
-h, --help Print help
|
|
19
|
+
|
|
20
|
+
This command creates a new Aztec Noir project in the current directory with
|
|
21
|
+
a workspace containing a contract crate and a test crate, and automatically
|
|
22
|
+
adds the Aztec.nr dependency to both.
|
|
23
|
+
EOF
|
|
24
|
+
exit 0
|
|
25
|
+
fi
|
|
26
|
+
done
|
|
27
|
+
|
|
28
|
+
# Parse arguments
|
|
29
|
+
while [[ $# -gt 0 ]]; do
|
|
30
|
+
case $1 in
|
|
31
|
+
--name)
|
|
32
|
+
name_arg="$2"
|
|
33
|
+
shift 2
|
|
34
|
+
;;
|
|
35
|
+
*)
|
|
36
|
+
shift
|
|
37
|
+
;;
|
|
38
|
+
esac
|
|
39
|
+
done
|
|
40
|
+
|
|
41
|
+
# Derive package name: use --name if provided, otherwise use current directory name
|
|
42
|
+
package_name="${name_arg:-$(basename $(pwd))}"
|
|
43
|
+
|
|
44
|
+
echo "Initializing Aztec contract project..."
|
|
45
|
+
$script_path/setup_workspace.sh "$package_name"
|
package/scripts/new.sh
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
script_path=$(realpath $(dirname "$0"))
|
|
5
|
+
|
|
6
|
+
name_arg=""
|
|
7
|
+
project_path=""
|
|
8
|
+
|
|
9
|
+
while [[ $# -gt 0 ]]; do
|
|
10
|
+
case $1 in
|
|
11
|
+
--help|-h)
|
|
12
|
+
cat << 'EOF'
|
|
13
|
+
Aztec New - Create a new Aztec Noir project in a new directory
|
|
14
|
+
|
|
15
|
+
Usage: aztec new [OPTIONS] <PATH>
|
|
16
|
+
|
|
17
|
+
Arguments:
|
|
18
|
+
<PATH> The path to save the new project
|
|
19
|
+
|
|
20
|
+
Options:
|
|
21
|
+
--name <NAME> Name of the package [default: package directory name]
|
|
22
|
+
-h, --help Print help
|
|
23
|
+
|
|
24
|
+
This command creates a new Aztec Noir project with a workspace containing
|
|
25
|
+
a contract crate and a test crate, and automatically adds the Aztec.nr
|
|
26
|
+
dependency to both.
|
|
27
|
+
EOF
|
|
28
|
+
exit 0
|
|
29
|
+
;;
|
|
30
|
+
--name)
|
|
31
|
+
name_arg="$2"
|
|
32
|
+
shift 2
|
|
33
|
+
;;
|
|
34
|
+
*)
|
|
35
|
+
project_path=$1
|
|
36
|
+
shift
|
|
37
|
+
break
|
|
38
|
+
;;
|
|
39
|
+
esac
|
|
40
|
+
done
|
|
41
|
+
|
|
42
|
+
if [ -z "$project_path" ]; then
|
|
43
|
+
echo "Error: PATH argument is required"
|
|
44
|
+
echo "Usage: aztec new [OPTIONS] <PATH>"
|
|
45
|
+
echo "Run 'aztec new --help' for more information"
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
48
|
+
|
|
49
|
+
if [ -d "$project_path" ] && [ "$(ls -A $project_path 2>/dev/null)" ]; then
|
|
50
|
+
echo "Error: $project_path already exists and is not empty"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
# Derive package name: use --name if provided, otherwise use directory basename
|
|
55
|
+
package_name="${name_arg:-$(basename $project_path)}"
|
|
56
|
+
|
|
57
|
+
echo "Creating new Aztec contract project at $project_path..."
|
|
58
|
+
mkdir -p "$project_path"
|
|
59
|
+
cd "$project_path"
|
|
60
|
+
$script_path/setup_workspace.sh "$package_name"
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
# Creates an Aztec contract workspace with a contract crate and a test crate.
|
|
5
|
+
# Usage: setup_workspace.sh <package_name>
|
|
6
|
+
# Must be called from the workspace root directory.
|
|
7
|
+
|
|
8
|
+
package_name=$1
|
|
9
|
+
|
|
10
|
+
if [ -z "$package_name" ]; then
|
|
11
|
+
echo "Error: package name is required"
|
|
12
|
+
exit 1
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
if [ -f "Nargo.toml" ]; then
|
|
16
|
+
echo "Error: Nargo.toml already exists in the current directory"
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Get the actual aztec version for the git tag.
|
|
21
|
+
AZTEC_VERSION=$(jq -r '.version' $(dirname $0)/../package.json)
|
|
22
|
+
|
|
23
|
+
# Create workspace root Nargo.toml
|
|
24
|
+
cat > Nargo.toml << 'EOF'
|
|
25
|
+
[workspace]
|
|
26
|
+
members = ["contract", "test"]
|
|
27
|
+
EOF
|
|
28
|
+
|
|
29
|
+
# Create contract crate
|
|
30
|
+
mkdir -p contract/src
|
|
31
|
+
cat > contract/Nargo.toml << CEOF
|
|
32
|
+
[package]
|
|
33
|
+
name = "${package_name}"
|
|
34
|
+
type = "contract"
|
|
35
|
+
|
|
36
|
+
[dependencies]
|
|
37
|
+
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
38
|
+
CEOF
|
|
39
|
+
|
|
40
|
+
cat > contract/src/main.nr << 'EOF'
|
|
41
|
+
use aztec::macros::aztec;
|
|
42
|
+
|
|
43
|
+
#[aztec]
|
|
44
|
+
pub contract Main {
|
|
45
|
+
use aztec::macros::functions::{external, initializer};
|
|
46
|
+
|
|
47
|
+
#[initializer]
|
|
48
|
+
#[external("private")]
|
|
49
|
+
fn constructor() {}
|
|
50
|
+
}
|
|
51
|
+
EOF
|
|
52
|
+
|
|
53
|
+
# Create test crate
|
|
54
|
+
mkdir -p test/src
|
|
55
|
+
cat > test/Nargo.toml << TEOF
|
|
56
|
+
[package]
|
|
57
|
+
name = "${package_name}_test"
|
|
58
|
+
type = "lib"
|
|
59
|
+
|
|
60
|
+
[dependencies]
|
|
61
|
+
aztec = { git="https://github.com/AztecProtocol/aztec-nr", tag="v${AZTEC_VERSION}", directory="aztec" }
|
|
62
|
+
${package_name} = { path = "../contract" }
|
|
63
|
+
TEOF
|
|
64
|
+
|
|
65
|
+
cat > test/src/lib.nr << 'NOIR'
|
|
66
|
+
use aztec::test::helpers::test_environment::TestEnvironment;
|
|
67
|
+
use __PACKAGE_NAME__::Main;
|
|
68
|
+
|
|
69
|
+
#[test]
|
|
70
|
+
unconstrained fn test_constructor() {
|
|
71
|
+
let mut env = TestEnvironment::new();
|
|
72
|
+
let deployer = env.create_light_account();
|
|
73
|
+
|
|
74
|
+
// Deploy the contract with the default constructor:
|
|
75
|
+
let contract_address = env.deploy("@__PACKAGE_NAME__/Main").with_private_initializer(
|
|
76
|
+
deployer,
|
|
77
|
+
Main::interface().constructor(),
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
// Deploy without an initializer:
|
|
81
|
+
let contract_address = env.deploy("@__PACKAGE_NAME__/Main").without_initializer();
|
|
82
|
+
}
|
|
83
|
+
NOIR
|
|
84
|
+
|
|
85
|
+
sed -i "s/__PACKAGE_NAME__/${package_name}/g" test/src/lib.nr
|
|
86
|
+
|
|
87
|
+
# Create README
|
|
88
|
+
cat > README.md << REOF
|
|
89
|
+
# ${package_name}
|
|
90
|
+
|
|
91
|
+
An Aztec Noir contract project.
|
|
92
|
+
|
|
93
|
+
## Compile
|
|
94
|
+
|
|
95
|
+
\`\`\`bash
|
|
96
|
+
aztec compile
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
This compiles the contract in \`contract/\` and outputs artifacts to \`target/\`.
|
|
100
|
+
|
|
101
|
+
## Test
|
|
102
|
+
|
|
103
|
+
\`\`\`bash
|
|
104
|
+
aztec test
|
|
105
|
+
\`\`\`
|
|
106
|
+
|
|
107
|
+
This runs the tests in \`test/\`.
|
|
108
|
+
|
|
109
|
+
## Generate TypeScript bindings
|
|
110
|
+
|
|
111
|
+
\`\`\`bash
|
|
112
|
+
aztec codegen target -o src/artifacts
|
|
113
|
+
\`\`\`
|
|
114
|
+
|
|
115
|
+
This generates TypeScript contract artifacts from the compiled output in \`target/\` into \`src/artifacts/\`.
|
|
116
|
+
REOF
|
|
117
|
+
|
|
118
|
+
# Create .gitignore
|
|
119
|
+
cat > .gitignore << 'GEOF'
|
|
120
|
+
target/
|
|
121
|
+
codegenCache.json
|
|
122
|
+
GEOF
|
|
123
|
+
|
|
124
|
+
echo "Created Aztec contract workspace with crates '${package_name}' and '${package_name}_test'"
|
package/src/bin/index.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
//
|
|
3
3
|
import { injectCommands as injectBuilderCommands } from '@aztec/builder';
|
|
4
4
|
import { injectCommands as injectAztecNodeCommands } from '@aztec/cli/aztec_node';
|
|
5
|
-
import {
|
|
5
|
+
import { enrichEnvironmentWithChainName } from '@aztec/cli/config/chain';
|
|
6
|
+
import { enrichEnvironmentWithNetworkConfig } from '@aztec/cli/config/network';
|
|
6
7
|
import { injectCommands as injectContractCommands } from '@aztec/cli/contracts';
|
|
7
8
|
import { injectCommands as injectInfrastructureCommands } from '@aztec/cli/infrastructure';
|
|
8
9
|
import { injectCommands as injectL1Commands } from '@aztec/cli/l1';
|
|
@@ -13,10 +14,14 @@ import { createConsoleLogger, createLogger } from '@aztec/foundation/log';
|
|
|
13
14
|
|
|
14
15
|
import { Command } from 'commander';
|
|
15
16
|
|
|
16
|
-
import {
|
|
17
|
+
import { injectCompileCommand } from '../cli/cmds/compile.js';
|
|
18
|
+
import { injectMigrateCommand } from '../cli/cmds/migrate_ha_db.js';
|
|
19
|
+
import { injectProfileCommand } from '../cli/cmds/profile.js';
|
|
17
20
|
import { injectAztecCommands } from '../cli/index.js';
|
|
18
21
|
import { getCliVersion } from '../cli/release_version.js';
|
|
19
22
|
|
|
23
|
+
const NETWORK_FLAG = 'network';
|
|
24
|
+
|
|
20
25
|
const userLog = createConsoleLogger();
|
|
21
26
|
const debugLogger = createLogger('cli');
|
|
22
27
|
|
|
@@ -40,11 +45,11 @@ async function main() {
|
|
|
40
45
|
|
|
41
46
|
const networkName = getActiveNetworkName(networkValue);
|
|
42
47
|
await enrichEnvironmentWithNetworkConfig(networkName);
|
|
43
|
-
|
|
48
|
+
enrichEnvironmentWithChainName(networkName);
|
|
44
49
|
|
|
45
50
|
const cliVersion = getCliVersion();
|
|
46
51
|
let program = new Command('aztec');
|
|
47
|
-
program.description('Aztec command line interface').version(cliVersion);
|
|
52
|
+
program.description('Aztec command line interface').version(cliVersion).enablePositionalOptions();
|
|
48
53
|
program = injectAztecCommands(program, userLog, debugLogger);
|
|
49
54
|
program = injectBuilderCommands(program);
|
|
50
55
|
program = injectContractCommands(program, userLog, debugLogger);
|
|
@@ -53,6 +58,9 @@ async function main() {
|
|
|
53
58
|
program = injectAztecNodeCommands(program, userLog, debugLogger);
|
|
54
59
|
program = injectMiscCommands(program, userLog);
|
|
55
60
|
program = injectValidatorKeysCommands(program, userLog);
|
|
61
|
+
program = injectCompileCommand(program, userLog);
|
|
62
|
+
program = injectProfileCommand(program, userLog);
|
|
63
|
+
program = injectMigrateCommand(program, userLog);
|
|
56
64
|
|
|
57
65
|
await program.parseAsync(process.argv);
|
|
58
66
|
}
|