@aztec/end-to-end 0.0.1-commit.21ecf947b → 0.0.1-commit.2448fdb
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 +27 -0
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +18 -11
- package/dest/bench/utils.d.ts +1 -1
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -3
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -2
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts.map +1 -1
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.js +15 -15
- package/dest/e2e_epochs/epochs_test.d.ts +11 -7
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +58 -36
- package/dest/e2e_fees/fees_test.d.ts +1 -1
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +14 -7
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +4 -6
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -1
- package/dest/e2e_p2p/inactivity_slash_test.js +1 -0
- package/dest/e2e_p2p/p2p_network.d.ts +3 -2
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +23 -6
- package/dest/e2e_p2p/reqresp/utils.d.ts +3 -3
- package/dest/e2e_p2p/reqresp/utils.d.ts.map +1 -1
- package/dest/e2e_p2p/reqresp/utils.js +32 -8
- package/dest/e2e_p2p/shared.d.ts +33 -1
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +56 -2
- package/dest/e2e_token_contract/token_contract_test.d.ts +1 -1
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +11 -11
- package/dest/fixtures/authwit_proxy.d.ts +3 -3
- package/dest/fixtures/authwit_proxy.d.ts.map +1 -1
- package/dest/fixtures/authwit_proxy.js +4 -0
- package/dest/fixtures/e2e_prover_test.d.ts +3 -3
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +33 -40
- package/dest/fixtures/fixtures.d.ts +5 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +6 -0
- package/dest/fixtures/setup.d.ts +32 -12
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +62 -89
- package/dest/fixtures/setup_p2p_test.d.ts +6 -3
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +12 -9
- package/dest/fixtures/token_utils.d.ts +2 -2
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +5 -4
- package/dest/forward-compatibility/wallet_rpc_client.d.ts +7 -0
- package/dest/forward-compatibility/wallet_rpc_client.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_rpc_client.js +15 -0
- package/dest/forward-compatibility/wallet_service.d.ts +3 -0
- package/dest/forward-compatibility/wallet_service.d.ts.map +1 -0
- package/dest/forward-compatibility/wallet_service.js +109 -0
- package/dest/install_legacy_contracts.d.cts +10 -0
- package/dest/install_legacy_contracts.d.cts.map +1 -0
- package/dest/legacy-jest-resolver.d.cts +3 -0
- package/dest/legacy-jest-resolver.d.cts.map +1 -0
- package/dest/shared/cross_chain_test_harness.d.ts +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +13 -13
- package/dest/shared/gas_portal_test_harness.js +2 -2
- package/dest/shared/submit-transactions.d.ts +1 -1
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts +1 -1
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +14 -17
- package/dest/simulators/lending_simulator.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +4 -4
- package/dest/simulators/token_simulator.d.ts +1 -1
- package/dest/simulators/token_simulator.d.ts.map +1 -1
- package/dest/simulators/token_simulator.js +2 -2
- package/dest/spartan/setup_test_wallets.d.ts +11 -2
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +56 -15
- package/dest/spartan/utils/bot.d.ts +3 -2
- package/dest/spartan/utils/bot.d.ts.map +1 -1
- package/dest/spartan/utils/bot.js +2 -1
- package/dest/spartan/utils/index.d.ts +3 -2
- package/dest/spartan/utils/index.d.ts.map +1 -1
- package/dest/spartan/utils/index.js +3 -1
- package/dest/spartan/utils/k8s.d.ts +3 -1
- package/dest/spartan/utils/k8s.d.ts.map +1 -1
- package/dest/spartan/utils/k8s.js +6 -0
- package/dest/test-wallet/test_wallet.d.ts +24 -23
- package/dest/test-wallet/test_wallet.d.ts.map +1 -1
- package/dest/test-wallet/test_wallet.js +116 -81
- package/dest/test-wallet/wallet_worker_script.d.ts +2 -0
- package/dest/test-wallet/wallet_worker_script.d.ts.map +1 -0
- package/dest/test-wallet/wallet_worker_script.js +48 -0
- package/dest/test-wallet/worker_wallet.d.ts +52 -0
- package/dest/test-wallet/worker_wallet.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet.js +151 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts +274 -0
- package/dest/test-wallet/worker_wallet_schema.d.ts.map +1 -0
- package/dest/test-wallet/worker_wallet_schema.js +10 -0
- package/package.json +41 -40
- package/src/bench/client_flows/client_flows_benchmark.ts +40 -32
- package/src/bench/utils.ts +7 -2
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +21 -20
- package/src/e2e_epochs/epochs_test.ts +76 -64
- package/src/e2e_fees/fees_test.ts +14 -7
- package/src/e2e_nested_contract/nested_contract_test.ts +6 -4
- package/src/e2e_p2p/inactivity_slash_test.ts +1 -0
- package/src/e2e_p2p/p2p_network.ts +30 -4
- package/src/e2e_p2p/reqresp/utils.ts +36 -8
- package/src/e2e_p2p/shared.ts +97 -2
- package/src/e2e_token_contract/token_contract_test.ts +16 -8
- package/src/fixtures/authwit_proxy.ts +4 -0
- package/src/fixtures/e2e_prover_test.ts +36 -40
- package/src/fixtures/fixtures.ts +10 -0
- package/src/fixtures/setup.ts +86 -120
- package/src/fixtures/setup_p2p_test.ts +9 -17
- package/src/fixtures/token_utils.ts +6 -3
- package/src/forward-compatibility/wallet_rpc_client.ts +14 -0
- package/src/forward-compatibility/wallet_service.ts +104 -0
- package/src/install_legacy_contracts.cjs +71 -0
- package/src/legacy-jest-resolver.cjs +101 -0
- package/src/shared/cross_chain_test_harness.ts +13 -9
- package/src/shared/gas_portal_test_harness.ts +1 -1
- package/src/shared/submit-transactions.ts +4 -1
- package/src/shared/uniswap_l1_l2.ts +35 -28
- package/src/simulators/lending_simulator.ts +8 -4
- package/src/simulators/token_simulator.ts +6 -2
- package/src/spartan/setup_test_wallets.ts +101 -17
- package/src/spartan/utils/bot.ts +3 -0
- package/src/spartan/utils/index.ts +4 -0
- package/src/spartan/utils/k8s.ts +8 -0
- package/src/test-wallet/test_wallet.ts +145 -100
- package/src/test-wallet/wallet_worker_script.ts +60 -0
- package/src/test-wallet/worker_wallet.ts +214 -0
- package/src/test-wallet/worker_wallet_schema.ts +13 -0
package/dest/e2e_p2p/shared.d.ts
CHANGED
|
@@ -4,7 +4,10 @@ import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
|
4
4
|
import type { Logger } from '@aztec/aztec.js/log';
|
|
5
5
|
import { TxHash } from '@aztec/aztec.js/tx';
|
|
6
6
|
import type { RollupCheatCodes } from '@aztec/aztec/testing';
|
|
7
|
+
import type { EpochCacheInterface } from '@aztec/epoch-cache';
|
|
7
8
|
import type { EmpireSlashingProposerContract, RollupContract, TallySlashingProposerContract } from '@aztec/ethereum/contracts';
|
|
9
|
+
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
10
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
8
11
|
import type { SpamContract } from '@aztec/noir-test-contracts.js/Spam';
|
|
9
12
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
10
13
|
import type { SlashFactoryContract } from '@aztec/stdlib/l1-contracts';
|
|
@@ -19,6 +22,35 @@ export declare function awaitCommitteeExists({ rollup, logger }: {
|
|
|
19
22
|
rollup: RollupContract;
|
|
20
23
|
logger: Logger;
|
|
21
24
|
}): Promise<readonly `0x${string}`[]>;
|
|
25
|
+
/**
|
|
26
|
+
* Advance epochs until we find one where the target proposer is selected for at least one slot,
|
|
27
|
+
* then stop one epoch before it. This leaves time for the caller to start sequencers before
|
|
28
|
+
* warping to the target epoch, avoiding the race where the target epoch passes before sequencers
|
|
29
|
+
* are ready.
|
|
30
|
+
*
|
|
31
|
+
* Returns the target epoch number so the caller can warp to it after starting sequencers.
|
|
32
|
+
*/
|
|
33
|
+
export declare function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts }: {
|
|
34
|
+
epochCache: EpochCacheInterface;
|
|
35
|
+
cheatCodes: RollupCheatCodes;
|
|
36
|
+
targetProposer: EthAddress;
|
|
37
|
+
logger: Logger;
|
|
38
|
+
maxAttempts?: number;
|
|
39
|
+
}): Promise<{
|
|
40
|
+
targetEpoch: EpochNumber;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Advance epochs until we find one where the target proposer is selected for at least one slot.
|
|
44
|
+
* With N validators and M slots per epoch, a specific proposer may not be selected in any given epoch.
|
|
45
|
+
* For example, with 4 validators and 2 slots/epoch, there is about a 44% chance per epoch.
|
|
46
|
+
*/
|
|
47
|
+
export declare function awaitEpochWithProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts }: {
|
|
48
|
+
epochCache: EpochCacheInterface;
|
|
49
|
+
cheatCodes: RollupCheatCodes;
|
|
50
|
+
targetProposer: EthAddress;
|
|
51
|
+
logger: Logger;
|
|
52
|
+
maxAttempts?: number;
|
|
53
|
+
}): Promise<void>;
|
|
22
54
|
export declare function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds }: {
|
|
23
55
|
nodeAdmin: AztecNodeAdmin;
|
|
24
56
|
logger: Logger;
|
|
@@ -43,4 +75,4 @@ export declare function awaitCommitteeKicked({ rollup, cheatCodes, committee, sl
|
|
|
43
75
|
logger: Logger;
|
|
44
76
|
offenseEpoch: number;
|
|
45
77
|
}): Promise<void>;
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZTJlX3AycC9zaGFyZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUd6RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUNWLDhCQUE4QixFQUM5QixjQUFjLEVBQ2QsNkJBQTZCLEVBQzlCLE1BQU0sMkJBQTJCLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBYyxNQUFNLGlDQUFpQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUl2RSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZFLE9BQU8sRUFBRSxLQUFLLFFBQVEsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUcxRSxlQUFPLE1BQU0sa0JBQWtCOzt1QkFrQjlCLENBQUM7QUFHRixlQUFPLE1BQU0sa0JBQWtCLGtIQWU5QixDQUFDO0FBRUYsd0JBQXNCLG1CQUFtQixDQUN2QyxN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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EACV,8BAA8B,EAC9B,cAAc,EACd,6BAA6B,EAC9B,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/e2e_p2p/shared.ts"],"names":[],"mappings":"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"}
|
package/dest/e2e_p2p/shared.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NO_WAIT, getContractInstanceFromInstantiationParams } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
3
|
-
import { EpochNumber } from '@aztec/foundation/branded-types';
|
|
3
|
+
import { EpochNumber, SlotNumber } from '@aztec/foundation/branded-types';
|
|
4
4
|
import { timesAsync, unique } from '@aztec/foundation/collection';
|
|
5
5
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
6
6
|
import { pluralize } from '@aztec/foundation/string';
|
|
@@ -17,7 +17,7 @@ export const submitComplexTxsTo = async (logger, from, spamContract, numTxs, opt
|
|
|
17
17
|
const spamCount = 15;
|
|
18
18
|
for(let i = 0; i < numTxs; i++){
|
|
19
19
|
const method = spamContract.methods.spam(seed + BigInt(i * spamCount), spamCount, !!opts.callPublic);
|
|
20
|
-
const txHash = await method.send({
|
|
20
|
+
const { txHash } = await method.send({
|
|
21
21
|
from,
|
|
22
22
|
wait: NO_WAIT
|
|
23
23
|
});
|
|
@@ -100,6 +100,60 @@ export async function awaitCommitteeExists({ rollup, logger }) {
|
|
|
100
100
|
});
|
|
101
101
|
return committee.map((c)=>c.toString());
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Advance epochs until we find one where the target proposer is selected for at least one slot,
|
|
105
|
+
* then stop one epoch before it. This leaves time for the caller to start sequencers before
|
|
106
|
+
* warping to the target epoch, avoiding the race where the target epoch passes before sequencers
|
|
107
|
+
* are ready.
|
|
108
|
+
*
|
|
109
|
+
* Returns the target epoch number so the caller can warp to it after starting sequencers.
|
|
110
|
+
*/ export async function advanceToEpochBeforeProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts = 20 }) {
|
|
111
|
+
const { epochDuration } = await cheatCodes.getConfig();
|
|
112
|
+
for(let attempt = 0; attempt < maxAttempts; attempt++){
|
|
113
|
+
const currentEpoch = await cheatCodes.getEpoch();
|
|
114
|
+
// Check the NEXT epoch's slots so we stay one epoch before the target,
|
|
115
|
+
// giving the caller time to start sequencers before the target epoch arrives.
|
|
116
|
+
const nextEpoch = Number(currentEpoch) + 1;
|
|
117
|
+
const startSlot = nextEpoch * Number(epochDuration);
|
|
118
|
+
const endSlot = startSlot + Number(epochDuration);
|
|
119
|
+
logger.info(`Checking next epoch ${nextEpoch} (slots ${startSlot}-${endSlot - 1}) for proposer ${targetProposer} (current epoch: ${currentEpoch})`);
|
|
120
|
+
for(let s = startSlot; s < endSlot; s++){
|
|
121
|
+
const proposer = await epochCache.getProposerAttesterAddressInSlot(SlotNumber(s));
|
|
122
|
+
if (proposer && proposer.equals(targetProposer)) {
|
|
123
|
+
logger.warn(`Found target proposer ${targetProposer} in slot ${s} of epoch ${nextEpoch}. Staying at epoch ${currentEpoch} to allow sequencer startup.`);
|
|
124
|
+
return {
|
|
125
|
+
targetEpoch: EpochNumber(nextEpoch)
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
logger.info(`Target proposer not found in epoch ${nextEpoch}, advancing to next epoch`);
|
|
130
|
+
await cheatCodes.advanceToNextEpoch();
|
|
131
|
+
}
|
|
132
|
+
throw new Error(`Target proposer ${targetProposer} not found in any slot after ${maxAttempts} epoch attempts`);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Advance epochs until we find one where the target proposer is selected for at least one slot.
|
|
136
|
+
* With N validators and M slots per epoch, a specific proposer may not be selected in any given epoch.
|
|
137
|
+
* For example, with 4 validators and 2 slots/epoch, there is about a 44% chance per epoch.
|
|
138
|
+
*/ export async function awaitEpochWithProposer({ epochCache, cheatCodes, targetProposer, logger, maxAttempts = 20 }) {
|
|
139
|
+
const { epochDuration } = await cheatCodes.getConfig();
|
|
140
|
+
for(let attempt = 0; attempt < maxAttempts; attempt++){
|
|
141
|
+
const currentEpoch = await cheatCodes.getEpoch();
|
|
142
|
+
const startSlot = Number(currentEpoch) * Number(epochDuration);
|
|
143
|
+
const endSlot = startSlot + Number(epochDuration);
|
|
144
|
+
logger.info(`Checking epoch ${currentEpoch} (slots ${startSlot}-${endSlot - 1}) for proposer ${targetProposer}`);
|
|
145
|
+
for(let s = startSlot; s < endSlot; s++){
|
|
146
|
+
const proposer = await epochCache.getProposerAttesterAddressInSlot(SlotNumber(s));
|
|
147
|
+
if (proposer && proposer.equals(targetProposer)) {
|
|
148
|
+
logger.warn(`Found target proposer ${targetProposer} in slot ${s} of epoch ${currentEpoch}`);
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
logger.info(`Target proposer not found in epoch ${currentEpoch}, advancing to next epoch`);
|
|
153
|
+
await cheatCodes.advanceToNextEpoch();
|
|
154
|
+
}
|
|
155
|
+
throw new Error(`Target proposer ${targetProposer} not found in any slot after ${maxAttempts} epoch attempts`);
|
|
156
|
+
}
|
|
103
157
|
export async function awaitOffenseDetected({ logger, nodeAdmin, slashingRoundSize, epochDuration, waitUntilOffenseCount, timeoutSeconds = 120 }) {
|
|
104
158
|
const targetOffenseCount = waitUntilOffenseCount ?? 1;
|
|
105
159
|
logger.warn(`Waiting for ${pluralize('offense', targetOffenseCount)} to be detected`);
|
|
@@ -41,4 +41,4 @@ export declare class TokenContractTest {
|
|
|
41
41
|
teardown(): Promise<void>;
|
|
42
42
|
private applyMint;
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fY29udHJhY3RfdGVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2UyZV90b2tlbl9jb250cmFjdC90b2tlbl9jb250cmFjdF90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBSXRGLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUQsTUFBTSxzQkFBc0IsQ0FBQztBQUVuSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFJaEUscUJBQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxVQUFVLFNBQVU7SUFDM0IsTUFBTSxDQUFDLFlBQVksU0FBUztJQUM1QixNQUFNLENBQUMsY0FBYyxTQUFPO0lBQzVCLE9BQU8sRUFBRyxlQUFlLENBQUM7SUFDMUIsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixLQUFLLEVBQUcsYUFBYSxDQUFDO0lBQ3RCLFFBQVEsRUFBRyxjQUFjLENBQUM7SUFDMUIsSUFBSSxFQUFHLFNBQVMsQ0FBQztJQUVqQixVQUFVLEVBQUcsc0JBQXNCLENBQUM7SUFDcEMsWUFBWSxFQUFHLG9CQUFvQixDQUFDO0lBQ3BDLE1BQU0sRUFBRyxVQUFVLENBQUM7SUFDcEIsWUFBWSxFQUFHLFlBQVksQ0FBQztJQUM1QixlQUFlLEVBQUcsWUFBWSxDQUFDO0lBQy9CLGVBQWUsRUFBRyxZQUFZLENBQUM7SUFFL0IsT0FBTyxDQUFDLG9CQUFvQixDQUFTO0lBQ3JDLE9BQU8sQ0FBQyxlQUFlLENBQVM7SUFFaEMsWUFBWSxRQUFRLEVBQUUsTUFBTSxFQUczQjtJQUVEOzs7T0FHRztJQUNILGtCQUFrQixTQUVqQjtJQUVEOzs7T0FHRztJQUNILGlCQUFpQixTQUVoQjtZQUthLGNBQWM7SUF3RHRCLEtBQUssa0JBY1Y7SUFFSyxRQUFRLGtCQUViO1lBRWEsU0FBUztDQStCeEIifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAItF,OAAO,EAAE,KAAK,eAAe,EAAyD,MAAM,sBAAsB,CAAC;AAEnH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,IAAI,EAAG,SAAS,CAAC;IAEjB,UAAU,EAAG,sBAAsB,CAAC;IACpC,YAAY,EAAG,oBAAoB,CAAC;IACpC,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,eAAe,EAAG,YAAY,CAAC;IAC/B,eAAe,EAAG,YAAY,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,QAAQ,EAAE,MAAM,EAG3B;IAED;;;OAGG;IACH,kBAAkB,SAEjB;IAED;;;OAGG;IACH,iBAAiB,SAEhB;YAKa,cAAc;
|
|
1
|
+
{"version":3,"file":"token_contract_test.d.ts","sourceRoot":"","sources":["../../src/e2e_token_contract/token_contract_test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAItF,OAAO,EAAE,KAAK,eAAe,EAAyD,MAAM,sBAAsB,CAAC;AAEnH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAG,aAAa,CAAC;IACtB,QAAQ,EAAG,cAAc,CAAC;IAC1B,IAAI,EAAG,SAAS,CAAC;IAEjB,UAAU,EAAG,sBAAsB,CAAC;IACpC,YAAY,EAAG,oBAAoB,CAAC;IACpC,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,YAAY,CAAC;IAC5B,eAAe,EAAG,YAAY,CAAC;IAC/B,eAAe,EAAG,YAAY,CAAC;IAE/B,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,eAAe,CAAS;IAEhC,YAAY,QAAQ,EAAE,MAAM,EAG3B;IAED;;;OAGG;IACH,kBAAkB,SAEjB;IAED;;;OAGG;IACH,iBAAiB,SAEhB;YAKa,cAAc;IAwDtB,KAAK,kBAcV;IAEK,QAAQ,kBAEb;YAEa,SAAS;CA+BxB"}
|
|
@@ -61,30 +61,30 @@ export class TokenContractTest {
|
|
|
61
61
|
this.account1Address
|
|
62
62
|
]);
|
|
63
63
|
this.logger.verbose(`Deploying TokenContract...`);
|
|
64
|
-
this.asset = await TokenContract.deploy(this.wallet, this.adminAddress, TokenContractTest.TOKEN_NAME, TokenContractTest.TOKEN_SYMBOL, TokenContractTest.TOKEN_DECIMALS).send({
|
|
64
|
+
({ contract: this.asset } = await TokenContract.deploy(this.wallet, this.adminAddress, TokenContractTest.TOKEN_NAME, TokenContractTest.TOKEN_SYMBOL, TokenContractTest.TOKEN_DECIMALS).send({
|
|
65
65
|
from: this.adminAddress
|
|
66
|
-
});
|
|
66
|
+
}));
|
|
67
67
|
this.logger.verbose(`Token deployed to ${this.asset.address}`);
|
|
68
68
|
this.logger.verbose(`Deploying bad account...`);
|
|
69
|
-
this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({
|
|
69
|
+
({ contract: this.badAccount } = await InvalidAccountContract.deploy(this.wallet).send({
|
|
70
70
|
from: this.adminAddress
|
|
71
|
-
});
|
|
71
|
+
}));
|
|
72
72
|
this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
|
|
73
73
|
// Deploy a proxy contract for "on behalf of other" tests. The note owner must be the tx sender
|
|
74
74
|
// (so their notes are in scope), but msg_sender in the target must differ from the note owner
|
|
75
75
|
// to trigger authwit validation. The proxy forwards calls so that msg_sender != tx sender.
|
|
76
76
|
this.logger.verbose(`Deploying generic proxy...`);
|
|
77
|
-
this.authwitProxy = await GenericProxyContract.deploy(this.wallet).send({
|
|
77
|
+
({ contract: this.authwitProxy } = await GenericProxyContract.deploy(this.wallet).send({
|
|
78
78
|
from: this.adminAddress
|
|
79
|
-
});
|
|
79
|
+
}));
|
|
80
80
|
this.logger.verbose(`Deployed to ${this.authwitProxy.address}.`);
|
|
81
81
|
this.tokenSim = new TokenSimulator(this.asset, this.wallet, this.adminAddress, this.logger, [
|
|
82
82
|
this.adminAddress,
|
|
83
83
|
this.account1Address
|
|
84
84
|
]);
|
|
85
|
-
expect(await this.asset.methods.get_admin().simulate({
|
|
85
|
+
expect((await this.asset.methods.get_admin().simulate({
|
|
86
86
|
from: this.adminAddress
|
|
87
|
-
})).toBe(this.adminAddress.toBigInt());
|
|
87
|
+
})).result).toBe(this.adminAddress.toBigInt());
|
|
88
88
|
}
|
|
89
89
|
async setup() {
|
|
90
90
|
this.context = await setup(0, {
|
|
@@ -111,7 +111,7 @@ export class TokenContractTest {
|
|
|
111
111
|
from: adminAddress
|
|
112
112
|
});
|
|
113
113
|
tokenSim.mintPublic(adminAddress, amount);
|
|
114
|
-
const publicBalance = await asset.methods.balance_of_public(adminAddress).simulate({
|
|
114
|
+
const { result: publicBalance } = await asset.methods.balance_of_public(adminAddress).simulate({
|
|
115
115
|
from: adminAddress
|
|
116
116
|
});
|
|
117
117
|
this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
|
|
@@ -119,12 +119,12 @@ export class TokenContractTest {
|
|
|
119
119
|
this.logger.verbose(`Minting ${amount} privately...`);
|
|
120
120
|
await mintTokensToPrivate(asset, adminAddress, adminAddress, amount);
|
|
121
121
|
tokenSim.mintPrivate(adminAddress, amount);
|
|
122
|
-
const privateBalance = await asset.methods.balance_of_private(adminAddress).simulate({
|
|
122
|
+
const { result: privateBalance } = await asset.methods.balance_of_private(adminAddress).simulate({
|
|
123
123
|
from: adminAddress
|
|
124
124
|
});
|
|
125
125
|
this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
|
|
126
126
|
expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(adminAddress));
|
|
127
|
-
const totalSupply = await asset.methods.total_supply().simulate({
|
|
127
|
+
const { result: totalSupply } = await asset.methods.total_supply().simulate({
|
|
128
128
|
from: adminAddress
|
|
129
129
|
});
|
|
130
130
|
this.logger.verbose(`Total supply: ${totalSupply}`);
|
|
@@ -5,11 +5,11 @@ import type { GenericProxyContract } from '@aztec/noir-test-contracts.js/Generic
|
|
|
5
5
|
* The proxy becomes msg_sender in the target (triggering authwit validation),
|
|
6
6
|
* while the actual tx sender retains their keys in scope.
|
|
7
7
|
*/
|
|
8
|
-
export declare function sendThroughAuthwitProxy(proxy: GenericProxyContract, action: ContractFunctionInteraction, options: SendInteractionOptions): Promise<import("@aztec/stdlib/tx").TxReceipt
|
|
8
|
+
export declare function sendThroughAuthwitProxy(proxy: GenericProxyContract, action: ContractFunctionInteraction, options: SendInteractionOptions): Promise<import("@aztec/aztec.js/contracts").TxSendResultMined<import("@aztec/stdlib/tx").TxReceipt>>;
|
|
9
9
|
/**
|
|
10
10
|
* Simulates a contract call through the authwit proxy.
|
|
11
11
|
* The proxy becomes msg_sender in the target (triggering authwit validation),
|
|
12
12
|
* while the actual tx sender retains their keys in scope.
|
|
13
13
|
*/
|
|
14
|
-
export declare function simulateThroughAuthwitProxy(proxy: GenericProxyContract, action: ContractFunctionInteraction, options: SimulateInteractionOptions): Promise<
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
export declare function simulateThroughAuthwitProxy(proxy: GenericProxyContract, action: ContractFunctionInteraction, options: SimulateInteractionOptions): Promise<import("@aztec/aztec.js/contracts").SimulationResult>;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aHdpdF9wcm94eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ZpeHR1cmVzL2F1dGh3aXRfcHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQ1YsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDM0IsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBc0J2Rjs7OztHQUlHO0FBQ0gsd0JBQXNCLHVCQUF1QixDQUMzQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLHNCQUFzQix3R0FJaEM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDJCQUEyQixDQUMvQyxLQUFLLEVBQUUsb0JBQW9CLEVBQzNCLE1BQU0sRUFBRSwyQkFBMkIsRUFDbkMsT0FBTyxFQUFFLDBCQUEwQixpRUFJcEMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authwit_proxy.d.ts","sourceRoot":"","sources":["../../src/fixtures/authwit_proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"authwit_proxy.d.ts","sourceRoot":"","sources":["../../src/fixtures/authwit_proxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAsBvF;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,sBAAsB,wGAIhC;AAED;;;;GAIG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,2BAA2B,EACnC,OAAO,EAAE,0BAA0B,iEAIpC"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
return proxy.methods.forward_private_3(call.to, call.selector, call.args);
|
|
10
10
|
} else if (argCount === 4) {
|
|
11
11
|
return proxy.methods.forward_private_4(call.to, call.selector, call.args);
|
|
12
|
+
} else if (argCount === 5) {
|
|
13
|
+
return proxy.methods.forward_private_5(call.to, call.selector, call.args);
|
|
14
|
+
} else if (argCount === 6) {
|
|
15
|
+
return proxy.methods.forward_private_6(call.to, call.selector, call.args);
|
|
12
16
|
}
|
|
13
17
|
throw new Error(`No forward_private_${argCount} method on proxy`);
|
|
14
18
|
}
|
|
@@ -38,8 +38,8 @@ export declare class FullProverTest {
|
|
|
38
38
|
circuitProofVerifier?: ClientProtocolCircuitVerifier;
|
|
39
39
|
provenAsset: TokenContract;
|
|
40
40
|
context: EndToEndContext;
|
|
41
|
-
private
|
|
42
|
-
private
|
|
41
|
+
private proverAztecNode;
|
|
42
|
+
private simulatedProverAztecNode;
|
|
43
43
|
l1Contracts: DeployAztecL1ContractsReturnType;
|
|
44
44
|
proverAddress: EthAddress;
|
|
45
45
|
private minNumberOfTxsPerBlock;
|
|
@@ -52,4 +52,4 @@ export declare class FullProverTest {
|
|
|
52
52
|
teardown(): Promise<void>;
|
|
53
53
|
private applyMint;
|
|
54
54
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTJlX3Byb3Zlcl90ZXN0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZml4dHVyZXMvZTJlX3Byb3Zlcl90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsS0FBSyxNQUFNLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFFTCxLQUFLLDZCQUE2QixFQUduQyxNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sS0FBSyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFJbEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFNdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUczRCxPQUFPLEVBQ0wsS0FBSyxlQUFlLEVBUXJCLE1BQU0sWUFBWSxDQUFDO0FBT3BCOzs7OztHQUtHO0FBRUgscUJBQWEsY0FBYztJQUN6QixNQUFNLENBQUMsVUFBVSxTQUFVO0lBQzNCLE1BQU0sQ0FBQyxZQUFZLFNBQVM7SUFDNUIsTUFBTSxDQUFDLGNBQWMsU0FBTztJQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFHLFVBQVUsQ0FBQztJQUNwQixZQUFZLEVBQUcsVUFBVSxDQUFDO0lBQzFCLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBTTtJQUM5QixnQkFBZ0IsRUFBRyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLGVBQWUsRUFBRyxhQUFhLENBQUM7SUFDaEMsdUJBQXVCLEVBQUcsMkJBQTJCLENBQUM7SUFDdEQsUUFBUSxFQUFHLGNBQWMsQ0FBQztJQUMxQixTQUFTLEVBQUcsU0FBUyxDQUFDO0lBQ3RCLGNBQWMsRUFBRyxjQUFjLENBQUM7SUFDaEMsVUFBVSxFQUFHLFVBQVUsQ0FBQztJQUN4QixPQUFPLENBQUMsZ0JBQWdCLENBQXFCO0lBQzdDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBc0I7SUFDOUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQXNCO0lBQ2hELG9CQUFvQixDQUFDLEVBQUUsNkJBQTZCLENBQUM7SUFDckQsV0FBVyxFQUFHLGFBQWEsQ0FBQztJQUM1QixPQUFPLEVBQUcsZUFBZSxDQUFDO0lBQzFCLE9BQU8sQ0FBQyxlQUFlLENBQW9CO0lBQzNDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBb0I7SUFDN0MsV0FBVyxFQUFHLGdDQUFnQyxDQUFDO0lBQy9DLGFBQWEsRUFBRyxVQUFVLENBQUM7SUFDbEMsT0FBTyxDQUFDLHNCQUFzQixDQUFTO0lBQ3ZDLE9BQU8sQ0FBQyxRQUFRLENBQWE7SUFDN0IsT0FBTyxDQUFDLFVBQVUsQ0FBVTtJQUU1QixZQUFZLFFBQVEsRUFBRSxNQUFNLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxVQUFPLEVBS3BHO1lBS2EsY0FBYztJQXVDdEIsS0FBSyxrQkF3SVY7WUFFYSxZQUFZO0lBU3BCLFFBQVEsa0JBY2I7WUFFYSxTQUFTO0NBc0N4QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAIlG,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAMtE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D,OAAO,EACL,KAAK,eAAe,EAQrB,MAAM,YAAY,CAAC;AAOpB;;;;;GAKG;AAEH,qBAAa,cAAc;IACzB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,YAAY,EAAG,UAAU,CAAC;IAC1B,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,eAAe,EAAG,aAAa,CAAC;IAChC,uBAAuB,EAAG,2BAA2B,CAAC;IACtD,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,UAAU,EAAG,UAAU,CAAC;IACxB,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,WAAW,EAAG,aAAa,CAAC;IAC5B,OAAO,EAAG,eAAe,CAAC;IAC1B,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,wBAAwB,CAAoB;IAC7C,WAAW,EAAG,gCAAgC,CAAC;IAC/C,aAAa,EAAG,UAAU,CAAC;IAClC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,UAAU,CAAU;IAE5B,YAAY,QAAQ,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,UAAO,EAKpG;YAKa,cAAc;IAuCtB,KAAK,kBAwIV;YAEa,YAAY;IASpB,QAAQ,kBAcb;YAEa,SAAS;CAsCxB"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AztecNodeService } from '@aztec/aztec-node';
|
|
2
2
|
import { EthAddress } from '@aztec/aztec.js/addresses';
|
|
3
3
|
import { createLogger } from '@aztec/aztec.js/log';
|
|
4
4
|
import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
|
|
5
5
|
import { BackendType, Barretenberg } from '@aztec/bb.js';
|
|
6
|
-
import { createBlobClientWithFileStores } from '@aztec/blob-client/client';
|
|
7
6
|
import { Buffer32 } from '@aztec/foundation/buffer';
|
|
8
7
|
import { SecretValue } from '@aztec/foundation/config';
|
|
9
8
|
import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts';
|
|
10
9
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
11
|
-
import { createProverNode } from '@aztec/prover-node';
|
|
12
10
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
13
11
|
import { getContract } from 'viem';
|
|
14
12
|
import { privateKeyToAddress } from 'viem/accounts';
|
|
@@ -42,8 +40,8 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
42
40
|
circuitProofVerifier;
|
|
43
41
|
provenAsset;
|
|
44
42
|
context;
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
proverAztecNode;
|
|
44
|
+
simulatedProverAztecNode;
|
|
47
45
|
l1Contracts;
|
|
48
46
|
proverAddress;
|
|
49
47
|
minNumberOfTxsPerBlock;
|
|
@@ -69,7 +67,7 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
69
67
|
this.logger.info('Applying base setup: publicly deploying accounts');
|
|
70
68
|
await publicDeployAccounts(this.wallet, this.accounts.slice(0, 2));
|
|
71
69
|
this.logger.info('Applying base setup: deploying token contract');
|
|
72
|
-
const { contract: asset, instance } = await TokenContract.deploy(this.wallet, this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
|
|
70
|
+
const { receipt: { contract: asset, instance } } = await TokenContract.deploy(this.wallet, this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
|
|
73
71
|
from: this.accounts[0],
|
|
74
72
|
wait: {
|
|
75
73
|
returnReceipt: true
|
|
@@ -80,9 +78,9 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
80
78
|
this.fakeProofsAssetInstance = instance;
|
|
81
79
|
this.logger.verbose(`Token contract address: ${this.fakeProofsAsset.address}`);
|
|
82
80
|
this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.wallet, this.accounts[0], this.logger, this.accounts);
|
|
83
|
-
expect(await this.fakeProofsAsset.methods.get_admin().simulate({
|
|
81
|
+
expect((await this.fakeProofsAsset.methods.get_admin().simulate({
|
|
84
82
|
from: this.accounts[0]
|
|
85
|
-
})).toBe(this.accounts[0].toBigInt());
|
|
83
|
+
})).result).toBe(this.accounts[0].toBigInt());
|
|
86
84
|
}
|
|
87
85
|
async setup() {
|
|
88
86
|
this.logger.info('Setting up subsystems from fresh');
|
|
@@ -102,11 +100,10 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
102
100
|
});
|
|
103
101
|
// We don't wish to mark as proven automatically, so we set the flag to false
|
|
104
102
|
this.context.watcher.setIsMarkingAsProven(false);
|
|
105
|
-
this.
|
|
103
|
+
this.simulatedProverAztecNode = this.context.proverNode;
|
|
106
104
|
({ aztecNode: this.aztecNode, deployL1ContractsValues: this.l1Contracts, cheatCodes: this.cheatCodes } = this.context);
|
|
107
105
|
this.aztecNodeAdmin = this.context.aztecNodeService;
|
|
108
106
|
const config = this.context.aztecNodeConfig;
|
|
109
|
-
const blobClient = await createBlobClientWithFileStores(config, this.logger);
|
|
110
107
|
// Configure a full prover PXE
|
|
111
108
|
let acvmConfig;
|
|
112
109
|
let bbConfig;
|
|
@@ -159,36 +156,30 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
159
156
|
this.provenAsset = asset;
|
|
160
157
|
this.provenWallet = provenWallet;
|
|
161
158
|
this.logger.info(`Full prover PXE started`);
|
|
162
|
-
// Shutdown the current, simulated prover node
|
|
159
|
+
// Shutdown the current, simulated prover node (by stopping its hosting aztec node)
|
|
163
160
|
this.logger.verbose('Shutting down simulated prover node');
|
|
164
|
-
await this.
|
|
165
|
-
// Creating temp store and archiver for fully proven prover node
|
|
166
|
-
this.logger.verbose('Starting archiver for new prover node');
|
|
167
|
-
const archiver = await createArchiver({
|
|
168
|
-
...this.context.aztecNodeConfig,
|
|
169
|
-
dataDirectory: undefined
|
|
170
|
-
}, {
|
|
171
|
-
blobClient,
|
|
172
|
-
dateProvider: this.context.dateProvider
|
|
173
|
-
}, {
|
|
174
|
-
blockUntilSync: true
|
|
175
|
-
});
|
|
161
|
+
await this.simulatedProverAztecNode.stop();
|
|
176
162
|
// The simulated prover node (now shutdown) used private key index 2
|
|
177
163
|
const proverNodePrivateKey = getPrivateKeyFromIndex(2);
|
|
164
|
+
const proverNodePrivateKeyHex = `0x${proverNodePrivateKey.toString('hex')}`;
|
|
178
165
|
const proverNodeSenderAddress = privateKeyToAddress(new Buffer32(proverNodePrivateKey).toString());
|
|
179
166
|
this.proverAddress = EthAddress.fromString(proverNodeSenderAddress);
|
|
180
167
|
this.logger.verbose(`Funding prover node at ${proverNodeSenderAddress}`);
|
|
181
168
|
await this.mintFeeJuice(proverNodeSenderAddress);
|
|
182
169
|
this.logger.verbose('Starting prover node');
|
|
183
|
-
const
|
|
184
|
-
|
|
185
|
-
|
|
170
|
+
const sponsoredFPCAddress = await getSponsoredFPCAddress();
|
|
171
|
+
const { prefilledPublicData } = await getGenesisValues(this.context.initialFundedAccounts.map((a)=>a.address).concat(sponsoredFPCAddress));
|
|
172
|
+
const proverNodeConfig = {
|
|
173
|
+
...config,
|
|
174
|
+
enableProverNode: true,
|
|
175
|
+
disableValidator: true,
|
|
186
176
|
dataDirectory: undefined,
|
|
177
|
+
txCollectionNodeRpcUrls: [],
|
|
187
178
|
proverId: this.proverAddress,
|
|
188
179
|
realProofs: this.realProofs,
|
|
189
180
|
proverAgentCount: 2,
|
|
190
|
-
|
|
191
|
-
new SecretValue(
|
|
181
|
+
proverPublisherPrivateKeys: [
|
|
182
|
+
new SecretValue(proverNodePrivateKeyHex)
|
|
192
183
|
],
|
|
193
184
|
proverNodeMaxPendingJobs: 100,
|
|
194
185
|
proverNodeMaxParallelBlocksPerEpoch: 32,
|
|
@@ -198,17 +189,19 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
198
189
|
txGatheringMaxParallelRequestsPerNode: 100,
|
|
199
190
|
txGatheringTimeoutMs: 24_000,
|
|
200
191
|
proverNodeFailedEpochStore: undefined,
|
|
201
|
-
proverNodeEpochProvingDelayMs: undefined
|
|
192
|
+
proverNodeEpochProvingDelayMs: undefined,
|
|
193
|
+
validatorPrivateKeys: new SecretValue([])
|
|
202
194
|
};
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
195
|
+
this.proverAztecNode = await AztecNodeService.createAndSync(proverNodeConfig, {
|
|
196
|
+
dateProvider: this.context.dateProvider,
|
|
197
|
+
p2pClientDeps: {
|
|
198
|
+
rpcTxProviders: [
|
|
199
|
+
this.aztecNode
|
|
200
|
+
]
|
|
201
|
+
}
|
|
208
202
|
}, {
|
|
209
203
|
prefilledPublicData
|
|
210
204
|
});
|
|
211
|
-
await this.proverNode.start();
|
|
212
205
|
this.logger.warn(`Proofs are now enabled`, {
|
|
213
206
|
realProofs: this.realProofs
|
|
214
207
|
});
|
|
@@ -235,8 +228,8 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
235
228
|
for(let i = 0; i < this.provenComponents.length; i++){
|
|
236
229
|
await this.provenComponents[i].teardown();
|
|
237
230
|
}
|
|
238
|
-
// clean up the full prover node
|
|
239
|
-
await this.
|
|
231
|
+
// clean up the full prover node (by stopping its hosting aztec node)
|
|
232
|
+
await this.proverAztecNode.stop();
|
|
240
233
|
await Barretenberg.destroySingleton();
|
|
241
234
|
await this.bbConfigCleanup?.();
|
|
242
235
|
await this.acvmConfigCleanup?.();
|
|
@@ -258,18 +251,18 @@ import { deployAccounts, getPrivateKeyFromIndex, getSponsoredFPCAddress, publicD
|
|
|
258
251
|
this.logger.info(`Minting complete`);
|
|
259
252
|
const { fakeProofsAsset, accounts: [address], tokenSim } = this;
|
|
260
253
|
tokenSim.mintPublic(address, publicAmount);
|
|
261
|
-
const publicBalance = await fakeProofsAsset.methods.balance_of_public(address).simulate({
|
|
254
|
+
const { result: publicBalance } = await fakeProofsAsset.methods.balance_of_public(address).simulate({
|
|
262
255
|
from: address
|
|
263
256
|
});
|
|
264
257
|
this.logger.verbose(`Public balance of wallet 0: ${publicBalance}`);
|
|
265
258
|
expect(publicBalance).toEqual(this.tokenSim.balanceOfPublic(address));
|
|
266
259
|
tokenSim.mintPrivate(address, publicAmount);
|
|
267
|
-
const privateBalance = await fakeProofsAsset.methods.balance_of_private(address).simulate({
|
|
260
|
+
const { result: privateBalance } = await fakeProofsAsset.methods.balance_of_private(address).simulate({
|
|
268
261
|
from: address
|
|
269
262
|
});
|
|
270
263
|
this.logger.verbose(`Private balance of wallet 0: ${privateBalance}`);
|
|
271
264
|
expect(privateBalance).toEqual(tokenSim.balanceOfPrivate(address));
|
|
272
|
-
const totalSupply = await fakeProofsAsset.methods.total_supply().simulate({
|
|
265
|
+
const { result: totalSupply } = await fakeProofsAsset.methods.total_supply().simulate({
|
|
273
266
|
from: address
|
|
274
267
|
});
|
|
275
268
|
this.logger.verbose(`Total supply: ${totalSupply}`);
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export declare const METRICS_PORT = 4318;
|
|
2
2
|
export declare const shouldCollectMetrics: () => 4318 | undefined;
|
|
3
|
+
/** Returns the boot node UDP port from environment variable or default value. */
|
|
4
|
+
export declare function getBootNodeUdpPort(): number;
|
|
5
|
+
/** Returns the anvil port from environment variable or default value. */
|
|
6
|
+
export declare function getAnvilPort(): number;
|
|
3
7
|
export declare const TEST_PEER_CHECK_INTERVAL_MS = 1000;
|
|
4
8
|
export declare const TEST_MAX_PENDING_TX_POOL_COUNT = 10000;
|
|
5
9
|
export declare const MNEMONIC = "test test test test test test test test test test test junk";
|
|
@@ -12,4 +16,4 @@ export declare const DUPLICATE_NULLIFIER_ERROR: RegExp;
|
|
|
12
16
|
export declare const NO_L1_TO_L2_MSG_ERROR: RegExp;
|
|
13
17
|
export declare const STATIC_CALL_STATE_MODIFICATION_ERROR: RegExp;
|
|
14
18
|
export declare const STATIC_CONTEXT_ASSERTION_ERROR: RegExp;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maXh0dXJlcy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFPLE1BQU0sWUFBWSxPQUFPLENBQUM7QUFFakMsZUFBTyxNQUFNLG9CQUFvQix3QkFLaEMsQ0FBQztBQUVGLGlGQUFpRjtBQUNqRix3QkFBZ0Isa0JBQWtCLElBQUksTUFBTSxDQUUzQztBQUVELHlFQUF5RTtBQUN6RSx3QkFBZ0IsWUFBWSxJQUFJLE1BQU0sQ0FFckM7QUFFRCxlQUFPLE1BQU0sMkJBQTJCLE9BQU8sQ0FBQztBQUNoRCxlQUFPLE1BQU0sOEJBQThCLFFBQVMsQ0FBQztBQUVyRCxlQUFPLE1BQU0sUUFBUSxnRUFBZ0UsQ0FBQztBQUN0RixlQUFPLE1BQU0sVUFBVSxxQkFBeUYsQ0FBQztBQUNqSCxlQUFPLE1BQU0sV0FBVyxxQkFBeUYsQ0FBQztBQUdsSCxlQUFPLE1BQU0sb0JBQW9CLHdEQUF3RCxDQUFDO0FBQzFGLGVBQU8sTUFBTSxtQkFBbUIsbURBQW1ELENBQUM7QUFDcEYsZUFBTyxNQUFNLHFCQUFxQiwrRUFBK0UsQ0FBQztBQUVsSCxlQUFPLE1BQU0seUJBQXlCLFFBQWdDLENBQUM7QUFDdkUsZUFBTyxNQUFNLHFCQUFxQixRQUN3RSxDQUFDO0FBQzNHLGVBQU8sTUFBTSxvQ0FBb0MsUUFBMEMsQ0FBQztBQUM1RixlQUFPLE1BQU0sOEJBQThCLFFBQWtFLENBQUMifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures/fixtures.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,eAAO,MAAM,oBAAoB,wBAKhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,eAAO,MAAM,QAAQ,gEAAgE,CAAC;AACtF,eAAO,MAAM,UAAU,qBAAyF,CAAC;AACjH,eAAO,MAAM,WAAW,qBAAyF,CAAC;AAGlH,eAAO,MAAM,oBAAoB,wDAAwD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,mDAAmD,CAAC;AACpF,eAAO,MAAM,qBAAqB,+EAA+E,CAAC;AAElH,eAAO,MAAM,yBAAyB,QAAgC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QACwE,CAAC;AAC3G,eAAO,MAAM,oCAAoC,QAA0C,CAAC;AAC5F,eAAO,MAAM,8BAA8B,QAAkE,CAAC"}
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures/fixtures.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,eAAO,MAAM,oBAAoB,wBAKhC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,yEAAyE;AACzE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,eAAO,MAAM,QAAQ,gEAAgE,CAAC;AACtF,eAAO,MAAM,UAAU,qBAAyF,CAAC;AACjH,eAAO,MAAM,WAAW,qBAAyF,CAAC;AAGlH,eAAO,MAAM,oBAAoB,wDAAwD,CAAC;AAC1F,eAAO,MAAM,mBAAmB,mDAAmD,CAAC;AACpF,eAAO,MAAM,qBAAqB,+EAA+E,CAAC;AAElH,eAAO,MAAM,yBAAyB,QAAgC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QACwE,CAAC;AAC3G,eAAO,MAAM,oCAAoC,QAA0C,CAAC;AAC5F,eAAO,MAAM,8BAA8B,QAAkE,CAAC"}
|
|
@@ -5,6 +5,12 @@ export const shouldCollectMetrics = ()=>{
|
|
|
5
5
|
}
|
|
6
6
|
return undefined;
|
|
7
7
|
};
|
|
8
|
+
/** Returns the boot node UDP port from environment variable or default value. */ export function getBootNodeUdpPort() {
|
|
9
|
+
return process.env.BOOT_NODE_UDP_PORT ? parseInt(process.env.BOOT_NODE_UDP_PORT, 10) : 4500;
|
|
10
|
+
}
|
|
11
|
+
/** Returns the anvil port from environment variable or default value. */ export function getAnvilPort() {
|
|
12
|
+
return process.env.ANVIL_PORT ? parseInt(process.env.ANVIL_PORT, 10) : 8545;
|
|
13
|
+
}
|
|
8
14
|
export const TEST_PEER_CHECK_INTERVAL_MS = 1000;
|
|
9
15
|
export const TEST_MAX_PENDING_TX_POOL_COUNT = 10_000; // Number of max pending TXs ~ 1.56GB
|
|
10
16
|
export const MNEMONIC = 'test test test test test test test test test test test junk';
|