@aztec/end-to-end 3.0.0-nightly.20250908 → 3.0.0-nightly.20250911
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/bench/client_flows/client_flows_benchmark.d.ts +14 -12
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +35 -39
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +6 -4
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +3 -6
- 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 +38 -38
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +4 -5
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts.map +1 -1
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.js +16 -20
- package/dest/e2e_deploy_contract/deploy_test.d.ts +2 -2
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +4 -7
- package/dest/e2e_fees/bridging_race.notest.js +10 -8
- package/dest/e2e_fees/fees_test.d.ts +3 -4
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +26 -21
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +2 -2
- 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/p2p_network.d.ts +3 -2
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +6 -7
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +7 -9
- package/dest/e2e_token_contract/token_contract_test.d.ts +2 -4
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +13 -16
- package/dest/fixtures/e2e_prover_test.d.ts +4 -3
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +22 -29
- package/dest/fixtures/snapshot_manager.d.ts +6 -4
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +22 -12
- package/dest/fixtures/token_utils.d.ts +3 -3
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +8 -10
- package/dest/fixtures/utils.d.ts +7 -7
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +29 -25
- package/dest/shared/cross_chain_test_harness.d.ts +6 -6
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +5 -6
- package/dest/shared/gas_portal_test_harness.d.ts +1 -1
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/submit-transactions.d.ts +3 -3
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +4 -5
- package/dest/shared/uniswap_l1_l2.d.ts +6 -4
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +18 -21
- package/dest/simulators/lending_simulator.js +1 -1
- package/dest/spartan/setup_test_wallets.d.ts +12 -10
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +54 -50
- package/package.json +37 -36
- package/src/bench/client_flows/client_flows_benchmark.ts +41 -52
- package/src/bench/utils.ts +6 -6
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +39 -50
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +15 -33
- package/src/e2e_deploy_contract/deploy_test.ts +6 -14
- package/src/e2e_fees/bridging_race.notest.ts +12 -9
- package/src/e2e_fees/fees_test.ts +30 -30
- package/src/e2e_nested_contract/nested_contract_test.ts +6 -8
- package/src/e2e_p2p/p2p_network.ts +10 -10
- package/src/e2e_p2p/shared.ts +7 -16
- package/src/e2e_token_contract/token_contract_test.ts +14 -17
- package/src/fixtures/e2e_prover_test.ts +26 -60
- package/src/fixtures/snapshot_manager.ts +32 -24
- package/src/fixtures/token_utils.ts +7 -15
- package/src/fixtures/utils.ts +37 -41
- package/src/shared/cross_chain_test_harness.ts +5 -7
- package/src/shared/gas_portal_test_harness.ts +1 -1
- package/src/shared/submit-transactions.ts +7 -8
- package/src/shared/uniswap_l1_l2.ts +40 -36
- package/src/simulators/lending_simulator.ts +1 -1
- package/src/spartan/setup_test_wallets.ts +82 -73
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { getSchnorrWallet } from '@aztec/accounts/schnorr';
|
|
2
1
|
import { createLogger } from '@aztec/aztec.js';
|
|
3
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
4
3
|
import { InvalidAccountContract } from '@aztec/noir-test-contracts.js/InvalidAccount';
|
|
@@ -17,11 +16,9 @@ export class TokenContractTest {
|
|
|
17
16
|
tokenSim;
|
|
18
17
|
node;
|
|
19
18
|
badAccount;
|
|
20
|
-
|
|
19
|
+
wallet;
|
|
21
20
|
adminAddress;
|
|
22
|
-
account1;
|
|
23
21
|
account1Address;
|
|
24
|
-
account2;
|
|
25
22
|
account2Address;
|
|
26
23
|
constructor(testName){
|
|
27
24
|
this.logger = createLogger(`e2e:e2e_token_contract:${testName}`);
|
|
@@ -36,27 +33,27 @@ export class TokenContractTest {
|
|
|
36
33
|
*/ async applyBaseSnapshots() {
|
|
37
34
|
// Adding a timeout of 2 minutes in here such that it is propagated to the underlying tests
|
|
38
35
|
jest.setTimeout(120_000);
|
|
39
|
-
await this.snapshotManager.snapshot('3_accounts', deployAccounts(3, this.logger),
|
|
36
|
+
await this.snapshotManager.snapshot('3_accounts', deployAccounts(3, this.logger), ({ deployedAccounts }, { wallet, aztecNode })=>{
|
|
40
37
|
this.node = aztecNode;
|
|
41
|
-
|
|
42
|
-
[this.
|
|
43
|
-
|
|
38
|
+
this.wallet = wallet;
|
|
39
|
+
[this.adminAddress, this.account1Address, this.account2Address] = deployedAccounts.map((acc)=>acc.address);
|
|
40
|
+
return Promise.resolve();
|
|
44
41
|
});
|
|
45
42
|
await this.snapshotManager.snapshot('e2e_token_contract', async ()=>{
|
|
46
43
|
// Create the token contract state.
|
|
47
44
|
// Move this account thing to addAccounts above?
|
|
48
45
|
this.logger.verbose(`Public deploy accounts...`);
|
|
49
|
-
await publicDeployAccounts(this.
|
|
46
|
+
await publicDeployAccounts(this.wallet, [
|
|
50
47
|
this.adminAddress,
|
|
51
48
|
this.account1Address
|
|
52
49
|
]);
|
|
53
50
|
this.logger.verbose(`Deploying TokenContract...`);
|
|
54
|
-
const asset = await TokenContract.deploy(this.
|
|
51
|
+
const asset = await TokenContract.deploy(this.wallet, this.adminAddress, TokenContractTest.TOKEN_NAME, TokenContractTest.TOKEN_SYMBOL, TokenContractTest.TOKEN_DECIMALS).send({
|
|
55
52
|
from: this.adminAddress
|
|
56
53
|
}).deployed();
|
|
57
54
|
this.logger.verbose(`Token deployed to ${asset.address}`);
|
|
58
55
|
this.logger.verbose(`Deploying bad account...`);
|
|
59
|
-
this.badAccount = await InvalidAccountContract.deploy(this.
|
|
56
|
+
this.badAccount = await InvalidAccountContract.deploy(this.wallet).send({
|
|
60
57
|
from: this.adminAddress
|
|
61
58
|
}).deployed();
|
|
62
59
|
this.logger.verbose(`Deployed to ${this.badAccount.address}.`);
|
|
@@ -66,13 +63,13 @@ export class TokenContractTest {
|
|
|
66
63
|
};
|
|
67
64
|
}, async ({ tokenContractAddress, badAccountAddress })=>{
|
|
68
65
|
// Restore the token contract state.
|
|
69
|
-
this.asset = await TokenContract.at(tokenContractAddress, this.
|
|
66
|
+
this.asset = await TokenContract.at(tokenContractAddress, this.wallet);
|
|
70
67
|
this.logger.verbose(`Token contract address: ${this.asset.address}`);
|
|
71
|
-
this.tokenSim = new TokenSimulator(this.asset, this.
|
|
68
|
+
this.tokenSim = new TokenSimulator(this.asset, this.wallet, this.adminAddress, this.logger, [
|
|
72
69
|
this.adminAddress,
|
|
73
70
|
this.account1Address
|
|
74
71
|
]);
|
|
75
|
-
this.badAccount = await InvalidAccountContract.at(badAccountAddress, this.
|
|
72
|
+
this.badAccount = await InvalidAccountContract.at(badAccountAddress, this.wallet);
|
|
76
73
|
this.logger.verbose(`Bad account address: ${this.badAccount.address}`);
|
|
77
74
|
expect(await this.asset.methods.get_admin().simulate({
|
|
78
75
|
from: this.adminAddress
|
|
@@ -92,14 +89,14 @@ export class TokenContractTest {
|
|
|
92
89
|
}
|
|
93
90
|
async applyMintSnapshot() {
|
|
94
91
|
await this.snapshotManager.snapshot('mint', async ()=>{
|
|
95
|
-
const { asset,
|
|
92
|
+
const { asset, adminAddress } = this;
|
|
96
93
|
const amount = 10000n;
|
|
97
94
|
this.logger.verbose(`Minting ${amount} publicly...`);
|
|
98
95
|
await asset.methods.mint_to_public(adminAddress, amount).send({
|
|
99
96
|
from: adminAddress
|
|
100
97
|
}).wait();
|
|
101
98
|
this.logger.verbose(`Minting ${amount} privately...`);
|
|
102
|
-
await mintTokensToPrivate(asset, adminAddress,
|
|
99
|
+
await mintTokensToPrivate(asset, adminAddress, adminAddress, amount);
|
|
103
100
|
this.logger.verbose(`Minting complete.`);
|
|
104
101
|
return {
|
|
105
102
|
amount
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { InitialAccountData } from '@aztec/accounts/testing';
|
|
2
|
-
import {
|
|
2
|
+
import { AztecAddress, type AztecNode, EthAddress, type Logger } from '@aztec/aztec.js';
|
|
3
3
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
4
4
|
import { type ClientProtocolCircuitVerifier } from '@aztec/bb-prover';
|
|
5
5
|
import type { BlobSinkServer } from '@aztec/blob-sink/server';
|
|
@@ -7,6 +7,7 @@ import type { DeployL1ContractsReturnType } from '@aztec/ethereum';
|
|
|
7
7
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
8
8
|
import type { PXEService } from '@aztec/pxe/server';
|
|
9
9
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
10
|
+
import { TestWallet } from '@aztec/test-wallet';
|
|
10
11
|
import { TokenSimulator } from '../simulators/token_simulator.js';
|
|
11
12
|
import { type SubsystemsContext } from './snapshot_manager.js';
|
|
12
13
|
/**
|
|
@@ -23,9 +24,9 @@ export declare class FullProverTest {
|
|
|
23
24
|
static TOKEN_DECIMALS: bigint;
|
|
24
25
|
private snapshotManager;
|
|
25
26
|
logger: Logger;
|
|
27
|
+
wallet: TestWallet;
|
|
28
|
+
accounts: AztecAddress[];
|
|
26
29
|
deployedAccounts: InitialAccountData[];
|
|
27
|
-
wallets: AccountWalletWithSecretKey[];
|
|
28
|
-
accounts: CompleteAddress[];
|
|
29
30
|
fakeProofsAsset: TokenContract;
|
|
30
31
|
tokenSim: TokenSimulator;
|
|
31
32
|
aztecNode: AztecNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"e2e_prover_test.d.ts","sourceRoot":"","sources":["../../src/fixtures/e2e_prover_test.ts"],"names":[],"mappings":"
|
|
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,KAAK,SAAS,EAAE,UAAU,EAAE,KAAK,MAAM,EAA0B,MAAM,iBAAiB,CAAC;AAChH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAEL,KAAK,6BAA6B,EAGnC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAInE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAMhD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGlE,OAAO,EAEL,KAAK,iBAAiB,EAIvB,MAAM,uBAAuB,CAAC;AAU/B;;;;;GAKG;AAEH,qBAAa,cAAc;IA6BvB,OAAO,CAAC,sBAAsB;IAE9B,OAAO,CAAC,UAAU;IA9BpB,MAAM,CAAC,UAAU,SAAU;IAC3B,MAAM,CAAC,YAAY,SAAS;IAC5B,MAAM,CAAC,cAAc,SAAO;IAC5B,OAAO,CAAC,eAAe,CAAmB;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAG,UAAU,CAAC;IACpB,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,gBAAgB,EAAG,kBAAkB,EAAE,CAAC;IACxC,eAAe,EAAG,aAAa,CAAC;IAChC,QAAQ,EAAG,cAAc,CAAC;IAC1B,SAAS,EAAG,SAAS,CAAC;IACtB,cAAc,EAAG,cAAc,CAAC;IAChC,GAAG,EAAG,UAAU,CAAC;IACjB,UAAU,EAAG,UAAU,CAAC;IACxB,QAAQ,EAAG,cAAc,CAAC;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAC,CAAsB;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAsB;IAChD,oBAAoB,CAAC,EAAE,6BAA6B,CAAC;IACrD,YAAY,EAAE,aAAa,EAAE,CAAM;IACnC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,mBAAmB,CAAc;IAClC,WAAW,EAAG,2BAA2B,CAAC;IAC1C,aAAa,EAAG,UAAU,CAAC;gBAGhC,QAAQ,EAAE,MAAM,EACR,sBAAsB,EAAE,MAAM,EACtC,QAAQ,EAAE,UAAU,EACZ,UAAU,UAAO;IAa3B;;;;OAIG;IACG,kBAAkB;IAsDlB,KAAK;YAgJG,YAAY;IAS1B,QAAQ,GAAI,CAAC,EACX,MAAM,MAAM,EACZ,OAAO,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,UAAS,CAAC,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAA2B,KAChG,OAAO,CAAC,IAAI,CAAC,CAAwD;IAElE,QAAQ;IAeR,iBAAiB;CA8CxB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SchnorrAccountContractArtifact, getSchnorrAccount, getSchnorrWalletWithSecretKey } from '@aztec/accounts/schnorr';
|
|
2
1
|
import { createArchiver } from '@aztec/archiver';
|
|
3
2
|
import { EthAddress, createLogger } from '@aztec/aztec.js';
|
|
4
3
|
import { BBCircuitVerifier, QueuedIVCVerifier, TestCircuitVerifier } from '@aztec/bb-prover';
|
|
@@ -8,6 +7,7 @@ import { SecretValue } from '@aztec/foundation/config';
|
|
|
8
7
|
import { FeeAssetHandlerAbi } from '@aztec/l1-artifacts';
|
|
9
8
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
10
9
|
import { createProverNode } from '@aztec/prover-node';
|
|
10
|
+
import { TestWallet } from '@aztec/test-wallet';
|
|
11
11
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
12
12
|
import { getContract } from 'viem';
|
|
13
13
|
import { privateKeyToAddress } from 'viem/accounts';
|
|
@@ -30,9 +30,9 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
30
30
|
static TOKEN_DECIMALS = 18n;
|
|
31
31
|
snapshotManager;
|
|
32
32
|
logger;
|
|
33
|
-
|
|
34
|
-
wallets;
|
|
33
|
+
wallet;
|
|
35
34
|
accounts;
|
|
35
|
+
deployedAccounts;
|
|
36
36
|
fakeProofsAsset;
|
|
37
37
|
tokenSim;
|
|
38
38
|
aztecNode;
|
|
@@ -53,8 +53,6 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
53
53
|
constructor(testName, minNumberOfTxsPerBlock, coinbase, realProofs = true){
|
|
54
54
|
this.minNumberOfTxsPerBlock = minNumberOfTxsPerBlock;
|
|
55
55
|
this.realProofs = realProofs;
|
|
56
|
-
this.deployedAccounts = [];
|
|
57
|
-
this.wallets = [];
|
|
58
56
|
this.accounts = [];
|
|
59
57
|
this.provenComponents = [];
|
|
60
58
|
this.provenAssets = [];
|
|
@@ -73,20 +71,20 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
73
71
|
* 1. Add 2 accounts.
|
|
74
72
|
* 2. Publicly deploy accounts, deploy token contract
|
|
75
73
|
*/ async applyBaseSnapshots() {
|
|
76
|
-
await this.snapshotManager.snapshot('2_accounts', deployAccounts(2, this.logger),
|
|
74
|
+
await this.snapshotManager.snapshot('2_accounts', deployAccounts(2, this.logger), ({ deployedAccounts }, { wallet })=>{
|
|
77
75
|
this.deployedAccounts = deployedAccounts;
|
|
78
|
-
this.
|
|
79
|
-
this.
|
|
80
|
-
|
|
76
|
+
this.accounts = deployedAccounts.map((a)=>a.address);
|
|
77
|
+
this.wallet = wallet;
|
|
78
|
+
return Promise.resolve();
|
|
81
79
|
});
|
|
82
80
|
await this.snapshotManager.snapshot('client_prover_integration', async ()=>{
|
|
83
81
|
// Create the token contract state.
|
|
84
82
|
// Move this account thing to addAccounts above?
|
|
85
83
|
this.logger.verbose(`Public deploy accounts...`);
|
|
86
|
-
await publicDeployAccounts(this.
|
|
84
|
+
await publicDeployAccounts(this.wallet, this.accounts.slice(0, 2));
|
|
87
85
|
this.logger.verbose(`Deploying TokenContract...`);
|
|
88
|
-
const asset = await TokenContract.deploy(this.
|
|
89
|
-
from: this.
|
|
86
|
+
const asset = await TokenContract.deploy(this.wallet, this.accounts[0], FullProverTest.TOKEN_NAME, FullProverTest.TOKEN_SYMBOL, FullProverTest.TOKEN_DECIMALS).send({
|
|
87
|
+
from: this.accounts[0]
|
|
90
88
|
}).deployed();
|
|
91
89
|
this.logger.verbose(`Token deployed to ${asset.address}`);
|
|
92
90
|
return {
|
|
@@ -94,12 +92,12 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
94
92
|
};
|
|
95
93
|
}, async ({ tokenContractAddress })=>{
|
|
96
94
|
// Restore the token contract state.
|
|
97
|
-
this.fakeProofsAsset = await TokenContract.at(tokenContractAddress, this.
|
|
95
|
+
this.fakeProofsAsset = await TokenContract.at(tokenContractAddress, this.wallet);
|
|
98
96
|
this.logger.verbose(`Token contract address: ${this.fakeProofsAsset.address}`);
|
|
99
|
-
this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.
|
|
97
|
+
this.tokenSim = new TokenSimulator(this.fakeProofsAsset, this.wallet, this.accounts[0], this.logger, this.accounts);
|
|
100
98
|
expect(await this.fakeProofsAsset.methods.get_admin().simulate({
|
|
101
|
-
from: this.accounts[0]
|
|
102
|
-
})).toBe(this.accounts[0].
|
|
99
|
+
from: this.accounts[0]
|
|
100
|
+
})).toBe(this.accounts[0].toBigInt());
|
|
103
101
|
});
|
|
104
102
|
}
|
|
105
103
|
async setup() {
|
|
@@ -155,16 +153,11 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
155
153
|
}, undefined, true);
|
|
156
154
|
this.logger.debug(`Contract address ${this.fakeProofsAsset.address}`);
|
|
157
155
|
await result.pxe.registerContract(this.fakeProofsAsset);
|
|
156
|
+
const provenWallet = new TestWallet(result.pxe);
|
|
158
157
|
for(let i = 0; i < 2; i++){
|
|
159
|
-
await
|
|
160
|
-
await this.
|
|
158
|
+
await provenWallet.createSchnorrAccount(this.deployedAccounts[i].secret, this.deployedAccounts[i].salt);
|
|
159
|
+
await this.wallet.createSchnorrAccount(this.deployedAccounts[i].secret, this.deployedAccounts[i].salt);
|
|
161
160
|
}
|
|
162
|
-
const account = await getSchnorrAccount(result.pxe, this.deployedAccounts[0].secret, this.deployedAccounts[0].signingKey, this.deployedAccounts[0].salt);
|
|
163
|
-
await result.pxe.registerContract({
|
|
164
|
-
instance: account.getInstance(),
|
|
165
|
-
artifact: SchnorrAccountContractArtifact
|
|
166
|
-
});
|
|
167
|
-
const provenWallet = await account.getWallet();
|
|
168
161
|
const asset = await TokenContract.at(this.fakeProofsAsset.address, provenWallet);
|
|
169
162
|
this.provenComponents.push({
|
|
170
163
|
pxe: result.pxe,
|
|
@@ -259,19 +252,19 @@ const { E2E_DATA_PATH: dataPath } = process.env;
|
|
|
259
252
|
const privateAmount = 10000n;
|
|
260
253
|
const publicAmount = 10000n;
|
|
261
254
|
this.logger.verbose(`Minting ${privateAmount + publicAmount} publicly...`);
|
|
262
|
-
await asset.methods.mint_to_public(accounts[0]
|
|
263
|
-
from: accounts[0]
|
|
255
|
+
await asset.methods.mint_to_public(accounts[0], privateAmount + publicAmount).send({
|
|
256
|
+
from: accounts[0]
|
|
264
257
|
}).wait();
|
|
265
258
|
this.logger.verbose(`Transferring ${privateAmount} to private...`);
|
|
266
|
-
await asset.methods.transfer_to_private(accounts[0]
|
|
267
|
-
from: accounts[0]
|
|
259
|
+
await asset.methods.transfer_to_private(accounts[0], privateAmount).send({
|
|
260
|
+
from: accounts[0]
|
|
268
261
|
}).wait();
|
|
269
262
|
this.logger.verbose(`Minting complete.`);
|
|
270
263
|
return {
|
|
271
264
|
amount: publicAmount
|
|
272
265
|
};
|
|
273
266
|
}, async ({ amount })=>{
|
|
274
|
-
const { fakeProofsAsset: asset, accounts: [
|
|
267
|
+
const { fakeProofsAsset: asset, accounts: [address], tokenSim } = this;
|
|
275
268
|
tokenSim.mintPublic(address, amount);
|
|
276
269
|
const publicBalance = await asset.methods.balance_of_public(address).simulate({
|
|
277
270
|
from: address
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import { type AztecNodeConfig, AztecNodeService } from '@aztec/aztec-node';
|
|
3
|
-
import { type AztecAddress, type AztecNode, type
|
|
3
|
+
import { type AztecAddress, type AztecNode, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
|
|
4
4
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import { type BlobSinkServer } from '@aztec/blob-sink/server';
|
|
6
6
|
import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType } from '@aztec/ethereum';
|
|
@@ -8,6 +8,7 @@ import { TestDateProvider } from '@aztec/foundation/timer';
|
|
|
8
8
|
import type { ProverNode } from '@aztec/prover-node';
|
|
9
9
|
import { type PXEService } from '@aztec/pxe/server';
|
|
10
10
|
import type { SequencerClient } from '@aztec/sequencer-client';
|
|
11
|
+
import { TestWallet } from '@aztec/test-wallet';
|
|
11
12
|
import type { Anvil } from '@viem/anvil';
|
|
12
13
|
import { type SetupOptions } from './utils.js';
|
|
13
14
|
export type SubsystemsContext = {
|
|
@@ -17,6 +18,7 @@ export type SubsystemsContext = {
|
|
|
17
18
|
aztecNode: AztecNodeService;
|
|
18
19
|
aztecNodeConfig: AztecNodeConfig;
|
|
19
20
|
pxe: PXEService;
|
|
21
|
+
wallet: TestWallet;
|
|
20
22
|
deployL1ContractsValues: DeployL1ContractsReturnType;
|
|
21
23
|
proverNode?: ProverNode;
|
|
22
24
|
watcher: AnvilTestWatcher;
|
|
@@ -73,8 +75,8 @@ declare class SnapshotManager implements ISnapshotManager {
|
|
|
73
75
|
* Snapshot 'apply' helper function to add accounts.
|
|
74
76
|
* The 'restore' function is not provided, as it must be a closure within the test context to capture the results.
|
|
75
77
|
*/
|
|
76
|
-
export declare const deployAccounts: (numberOfAccounts: number, logger: Logger
|
|
77
|
-
|
|
78
|
+
export declare const deployAccounts: (numberOfAccounts: number, logger: Logger) => ({ wallet, initialFundedAccounts }: {
|
|
79
|
+
wallet: TestWallet;
|
|
78
80
|
initialFundedAccounts: InitialAccountData[];
|
|
79
81
|
}) => Promise<{
|
|
80
82
|
deployedAccounts: InitialAccountData[];
|
|
@@ -87,6 +89,6 @@ export declare const deployAccounts: (numberOfAccounts: number, logger: Logger,
|
|
|
87
89
|
* @param waitUntilProven - Whether to wait for the tx to be proven.
|
|
88
90
|
* @param pxeOrNode - PXE or AztecNode to wait for proven.
|
|
89
91
|
*/
|
|
90
|
-
export declare function publicDeployAccounts(
|
|
92
|
+
export declare function publicDeployAccounts(wallet: Wallet, accountsToDeploy: AztecAddress[], waitUntilProven?: boolean, pxeOrNode?: PXE | AztecNode): Promise<void>;
|
|
91
93
|
export {};
|
|
92
94
|
//# sourceMappingURL=snapshot_manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,
|
|
1
|
+
{"version":3,"file":"snapshot_manager.d.ts","sourceRoot":"","sources":["../../src/fixtures/snapshot_manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { SchnorrAccountContractArtifact } from '@aztec/accounts/schnorr';
|
|
2
|
-
import {
|
|
2
|
+
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
3
3
|
import { AztecNodeService, getConfigEnvVars } from '@aztec/aztec-node';
|
|
4
|
-
import { BatchCall,
|
|
4
|
+
import { BatchCall, EthAddress, getContractClassFromArtifact, waitForProven } from '@aztec/aztec.js';
|
|
5
5
|
import { publishContractClass, publishInstance } from '@aztec/aztec.js/deployment';
|
|
6
6
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
7
7
|
import { createBlobSinkServer } from '@aztec/blob-sink/server';
|
|
@@ -17,6 +17,7 @@ import { TestDateProvider } from '@aztec/foundation/timer';
|
|
|
17
17
|
import { createPXEService, getPXEServiceConfig } from '@aztec/pxe/server';
|
|
18
18
|
import { tryStop } from '@aztec/stdlib/interfaces/server';
|
|
19
19
|
import { getConfigEnvVars as getTelemetryConfig, initTelemetryClient } from '@aztec/telemetry-client';
|
|
20
|
+
import { TestWallet } from '@aztec/test-wallet';
|
|
20
21
|
import { getGenesisValues } from '@aztec/world-state/testing';
|
|
21
22
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
22
23
|
import { copySync, removeSync } from 'fs-extra/esm';
|
|
@@ -328,6 +329,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
328
329
|
// Only enable proving if specifically requested.
|
|
329
330
|
pxeConfig.proverEnabled = !!opts.realProofs;
|
|
330
331
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
332
|
+
const wallet = new TestWallet(pxe);
|
|
331
333
|
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
|
|
332
334
|
if (statePath) {
|
|
333
335
|
writeFileSync(`${statePath}/aztec_node_config.json`, JSON.stringify(aztecNodeConfig, resolver));
|
|
@@ -338,6 +340,7 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
338
340
|
anvil,
|
|
339
341
|
aztecNode,
|
|
340
342
|
pxe,
|
|
343
|
+
wallet,
|
|
341
344
|
sequencer: aztecNode.getSequencer(),
|
|
342
345
|
acvmConfig,
|
|
343
346
|
bbConfig,
|
|
@@ -423,12 +426,14 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
423
426
|
const pxeConfig = getPXEServiceConfig();
|
|
424
427
|
pxeConfig.dataDirectory = statePath;
|
|
425
428
|
const pxe = await createPXEService(aztecNode, pxeConfig);
|
|
429
|
+
const wallet = new TestWallet(pxe);
|
|
426
430
|
const cheatCodes = await CheatCodes.create(aztecNodeConfig.l1RpcUrls, pxe);
|
|
427
431
|
return {
|
|
428
432
|
aztecNodeConfig,
|
|
429
433
|
anvil,
|
|
430
434
|
aztecNode,
|
|
431
435
|
pxe,
|
|
436
|
+
wallet,
|
|
432
437
|
sequencer: aztecNode.getSequencer(),
|
|
433
438
|
acvmConfig,
|
|
434
439
|
bbConfig,
|
|
@@ -449,13 +454,19 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
449
454
|
/**
|
|
450
455
|
* Snapshot 'apply' helper function to add accounts.
|
|
451
456
|
* The 'restore' function is not provided, as it must be a closure within the test context to capture the results.
|
|
452
|
-
*/ export const deployAccounts = (numberOfAccounts, logger
|
|
457
|
+
*/ export const deployAccounts = (numberOfAccounts, logger)=>async ({ wallet, initialFundedAccounts })=>{
|
|
453
458
|
if (initialFundedAccounts.length < numberOfAccounts) {
|
|
454
459
|
throw new Error(`Cannot deploy more than ${initialFundedAccounts.length} initial accounts.`);
|
|
455
460
|
}
|
|
456
461
|
logger.verbose('Deploying accounts funded with fee juice...');
|
|
457
462
|
const deployedAccounts = initialFundedAccounts.slice(0, numberOfAccounts);
|
|
458
|
-
|
|
463
|
+
// Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
|
|
464
|
+
for(let i = 0; i < deployedAccounts.length; i++){
|
|
465
|
+
const accountManager = await wallet.createSchnorrAccount(deployedAccounts[i].secret, deployedAccounts[i].salt, deployedAccounts[i].signingKey);
|
|
466
|
+
await accountManager.deploy({
|
|
467
|
+
skipClassPublication: i !== 0
|
|
468
|
+
}).wait();
|
|
469
|
+
}
|
|
459
470
|
return {
|
|
460
471
|
deployedAccounts
|
|
461
472
|
};
|
|
@@ -467,20 +478,19 @@ export function createSnapshotManager(testName, dataPath, config = {}, deployL1C
|
|
|
467
478
|
* @param accountsToDeploy - Which accounts to publicly deploy.
|
|
468
479
|
* @param waitUntilProven - Whether to wait for the tx to be proven.
|
|
469
480
|
* @param pxeOrNode - PXE or AztecNode to wait for proven.
|
|
470
|
-
*/ export async function publicDeployAccounts(
|
|
471
|
-
const
|
|
472
|
-
const instances = (await Promise.all(accountAddressesToDeploy.map((account)=>sender.getContractMetadata(account)))).map((metadata)=>metadata.contractInstance);
|
|
481
|
+
*/ export async function publicDeployAccounts(wallet, accountsToDeploy, waitUntilProven = false, pxeOrNode) {
|
|
482
|
+
const instances = (await Promise.all(accountsToDeploy.map((account)=>wallet.getContractMetadata(account)))).map((metadata)=>metadata.contractInstance);
|
|
473
483
|
const contractClass = await getContractClassFromArtifact(SchnorrAccountContractArtifact);
|
|
474
|
-
const alreadyRegistered = (await
|
|
484
|
+
const alreadyRegistered = (await wallet.getContractClassMetadata(contractClass.id)).isContractClassPubliclyRegistered;
|
|
475
485
|
const calls = await Promise.all([
|
|
476
486
|
...!alreadyRegistered ? [
|
|
477
|
-
publishContractClass(
|
|
487
|
+
publishContractClass(wallet, SchnorrAccountContractArtifact)
|
|
478
488
|
] : [],
|
|
479
|
-
...instances.map((instance)=>publishInstance(
|
|
489
|
+
...instances.map((instance)=>publishInstance(wallet, instance))
|
|
480
490
|
]);
|
|
481
|
-
const batch = new BatchCall(
|
|
491
|
+
const batch = new BatchCall(wallet, calls);
|
|
482
492
|
const txReceipt = await batch.send({
|
|
483
|
-
from:
|
|
493
|
+
from: accountsToDeploy[0]
|
|
484
494
|
}).wait();
|
|
485
495
|
if (waitUntilProven) {
|
|
486
496
|
if (!pxeOrNode) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type AztecAddress, type Logger, type Wallet } from '@aztec/aztec.js';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
|
-
export declare function deployToken(
|
|
4
|
-
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress,
|
|
3
|
+
export declare function deployToken(wallet: Wallet, admin: AztecAddress, initialAdminBalance: bigint, logger: Logger): Promise<TokenContract>;
|
|
4
|
+
export declare function mintTokensToPrivate(token: TokenContract, minter: AztecAddress, recipient: AztecAddress, amount: bigint): Promise<void>;
|
|
5
5
|
export declare function expectTokenBalance(wallet: Wallet, token: TokenContract, owner: AztecAddress, expectedBalance: bigint, logger: Logger): Promise<void>;
|
|
6
|
-
export declare function mintNotes(
|
|
6
|
+
export declare function mintNotes(wallet: Wallet, minter: AztecAddress, recipient: AztecAddress, asset: TokenContract, noteAmounts: bigint[]): Promise<bigint>;
|
|
7
7
|
//# sourceMappingURL=token_utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,
|
|
1
|
+
{"version":3,"file":"token_utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/token_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAa,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,0BAajH;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,MAAM,EAAE,MAAM,iBAGf;AAGD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,YAAY,EACnB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,iBAOf;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,YAAY,EACvB,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EAAE,GACpB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
import { BatchCall } from '@aztec/aztec.js';
|
|
2
2
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
3
|
// docs:start:token_utils
|
|
4
|
-
export async function deployToken(
|
|
4
|
+
export async function deployToken(wallet, admin, initialAdminBalance, logger) {
|
|
5
5
|
logger.info(`Deploying Token contract...`);
|
|
6
|
-
const contract = await TokenContract.deploy(
|
|
7
|
-
from:
|
|
6
|
+
const contract = await TokenContract.deploy(wallet, admin, 'TokenName', 'TokenSymbol', 18).send({
|
|
7
|
+
from: admin
|
|
8
8
|
}).deployed();
|
|
9
9
|
if (initialAdminBalance > 0n) {
|
|
10
|
-
|
|
11
|
-
await mintTokensToPrivate(contract, deployerAddress, adminWallet, deployerAddress, initialAdminBalance);
|
|
10
|
+
await mintTokensToPrivate(contract, admin, admin, initialAdminBalance);
|
|
12
11
|
}
|
|
13
12
|
logger.info('L2 contract deployed');
|
|
14
13
|
return contract;
|
|
15
14
|
}
|
|
16
|
-
export async function mintTokensToPrivate(token, minter,
|
|
17
|
-
|
|
18
|
-
await tokenAsMinter.methods.mint_to_private(recipient, amount).send({
|
|
15
|
+
export async function mintTokensToPrivate(token, minter, recipient, amount) {
|
|
16
|
+
await token.methods.mint_to_private(recipient, amount).send({
|
|
19
17
|
from: minter
|
|
20
18
|
}).wait();
|
|
21
19
|
}
|
|
@@ -29,14 +27,14 @@ export async function expectTokenBalance(wallet, token, owner, expectedBalance,
|
|
|
29
27
|
logger.info(`Account ${owner} balance: ${balance}`);
|
|
30
28
|
expect(balance).toBe(expectedBalance);
|
|
31
29
|
}
|
|
32
|
-
export async function mintNotes(
|
|
30
|
+
export async function mintNotes(wallet, minter, recipient, asset, noteAmounts) {
|
|
33
31
|
// We can only mint 4 notes at a time, since that's the maximum number of calls our entrypoints allow
|
|
34
32
|
// TODO(#13024): mint as many notes as possible in a single tx
|
|
35
33
|
const notesPerIteration = 4;
|
|
36
34
|
for(let mintedNotes = 0; mintedNotes < noteAmounts.length; mintedNotes += notesPerIteration){
|
|
37
35
|
const toMint = noteAmounts.slice(mintedNotes, mintedNotes + notesPerIteration);
|
|
38
36
|
const actions = toMint.map((amt)=>asset.methods.mint_to_private(recipient, amt));
|
|
39
|
-
await new BatchCall(
|
|
37
|
+
await new BatchCall(wallet, actions).send({
|
|
40
38
|
from: minter
|
|
41
39
|
}).wait();
|
|
42
40
|
}
|
package/dest/fixtures/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import { type AztecNodeConfig } from '@aztec/aztec-node';
|
|
3
|
-
import {
|
|
3
|
+
import { AztecAddress, type AztecNode, type ContractMethod, type Logger, type PXE, type Wallet } from '@aztec/aztec.js';
|
|
4
4
|
import { AnvilTestWatcher, CheatCodes } from '@aztec/aztec/testing';
|
|
5
5
|
import { type BlobSinkServer } from '@aztec/blob-sink/server';
|
|
6
6
|
import { type DeployL1ContractsArgs, type DeployL1ContractsReturnType, type Operator } from '@aztec/ethereum';
|
|
@@ -17,6 +17,7 @@ import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
|
17
17
|
import type { AztecNodeAdmin } from '@aztec/stdlib/interfaces/client';
|
|
18
18
|
import type { PublicDataTreeLeaf } from '@aztec/stdlib/trees';
|
|
19
19
|
import { type TelemetryClient, type TelemetryClientConfig } from '@aztec/telemetry-client';
|
|
20
|
+
import { TestWallet } from '@aztec/test-wallet';
|
|
20
21
|
import { type Chain, type HDAccount, type PrivateKeyAccount } from 'viem';
|
|
21
22
|
export { deployAndInitializeTokenAndBridgeContracts } from '../shared/cross_chain_test_harness.js';
|
|
22
23
|
export { startAnvil };
|
|
@@ -113,10 +114,9 @@ export type EndToEndContext = {
|
|
|
113
114
|
config: AztecNodeConfig;
|
|
114
115
|
/** The data for the initial funded accounts. */
|
|
115
116
|
initialFundedAccounts: InitialAccountData[];
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
/** The accounts to be used. */
|
|
117
|
+
/** The wallet to be used. */
|
|
118
|
+
wallet: TestWallet;
|
|
119
|
+
/** The wallets to be used. */
|
|
120
120
|
accounts: AztecAddress[];
|
|
121
121
|
/** Logger instance named as the current test. */
|
|
122
122
|
logger: Logger;
|
|
@@ -152,7 +152,7 @@ export declare function setup(numberOfAccounts?: number, opts?: SetupOptions, px
|
|
|
152
152
|
* @param sender - Wallet to send the deployment tx.
|
|
153
153
|
* @param accountsToDeploy - Which accounts to publicly deploy.
|
|
154
154
|
*/
|
|
155
|
-
export declare function ensureAccountContractsPublished(
|
|
155
|
+
export declare function ensureAccountContractsPublished(wallet: Wallet, accountsToDeploy: AztecAddress[]): Promise<void>;
|
|
156
156
|
/**
|
|
157
157
|
* Sets the timestamp of the next block.
|
|
158
158
|
* @param rpcUrl - rpc url of the blockchain instance to connect to
|
|
@@ -190,7 +190,7 @@ export declare function setupSponsoredFPC(pxe: PXE): Promise<ContractInstanceWit
|
|
|
190
190
|
* Registers the SponsoredFPC in this PXE instance
|
|
191
191
|
* @param pxe - The pxe client
|
|
192
192
|
*/
|
|
193
|
-
export declare function registerSponsoredFPC(pxe: PXE): Promise<void>;
|
|
193
|
+
export declare function registerSponsoredFPC(pxe: PXE | Wallet): Promise<void>;
|
|
194
194
|
export declare function waitForProvenChain(node: AztecNode, targetBlock?: number, timeoutSec?: number, intervalSec?: number): Promise<void>;
|
|
195
195
|
export declare function createAndSyncProverNode(proverNodePrivateKey: `0x${string}`, aztecNodeConfig: AztecNodeConfig, proverNodeConfig: Partial<ProverNodeConfig> & Pick<DataStoreConfig, 'dataDirectory'>, aztecNode: AztecNode | undefined, prefilledPublicData?: PublicDataTreeLeaf[], proverNodeDeps?: ProverNodeDeps): Promise<ProverNode>;
|
|
196
196
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/fixtures/utils.ts"],"names":[],"mappings":"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"}
|