@aztec/end-to-end 3.0.0-canary.a9708bd → 3.0.0-devnet.20251212
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/benchmark.d.ts +4 -3
- package/dest/bench/client_flows/benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/benchmark.js +2 -2
- package/dest/bench/client_flows/client_flows_benchmark.d.ts +25 -14
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +111 -90
- package/dest/bench/client_flows/config.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.d.ts +1 -1
- package/dest/bench/client_flows/data_extractor.js +8 -30
- package/dest/bench/utils.d.ts +4 -13
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +10 -34
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +8 -8
- 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 +42 -42
- package/dest/e2e_cross_chain_messaging/cross_chain_messaging_test.d.ts +12 -9
- 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 +35 -35
- package/dest/e2e_deploy_contract/deploy_test.d.ts +12 -6
- package/dest/e2e_deploy_contract/deploy_test.d.ts.map +1 -1
- package/dest/e2e_deploy_contract/deploy_test.js +9 -18
- package/dest/e2e_epochs/epochs_test.d.ts +19 -12
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +30 -22
- package/dest/e2e_fees/bridging_race.notest.d.ts +1 -1
- package/dest/e2e_fees/bridging_race.notest.js +14 -11
- package/dest/e2e_fees/fees_test.d.ts +10 -8
- package/dest/e2e_fees/fees_test.d.ts.map +1 -1
- package/dest/e2e_fees/fees_test.js +35 -38
- package/dest/e2e_l1_publisher/write_json.d.ts +4 -2
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- package/dest/e2e_l1_publisher/write_json.js +9 -8
- package/dest/e2e_multi_validator/utils.d.ts +2 -2
- package/dest/e2e_multi_validator/utils.d.ts.map +1 -1
- package/dest/e2e_multi_validator/utils.js +4 -10
- package/dest/e2e_nested_contract/nested_contract_test.d.ts +7 -4
- package/dest/e2e_nested_contract/nested_contract_test.d.ts.map +1 -1
- package/dest/e2e_nested_contract/nested_contract_test.js +11 -12
- package/dest/e2e_p2p/inactivity_slash_test.d.ts +31 -0
- package/dest/e2e_p2p/inactivity_slash_test.d.ts.map +1 -0
- package/dest/e2e_p2p/inactivity_slash_test.js +139 -0
- package/dest/e2e_p2p/p2p_network.d.ts +238 -17
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +46 -19
- package/dest/e2e_p2p/shared.d.ts +16 -17
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +56 -55
- package/dest/e2e_token_contract/token_contract_test.d.ts +6 -5
- package/dest/e2e_token_contract/token_contract_test.d.ts.map +1 -1
- package/dest/e2e_token_contract/token_contract_test.js +14 -17
- package/dest/fixtures/e2e_prover_test.d.ts +12 -8
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +53 -58
- package/dest/fixtures/fixtures.d.ts +1 -1
- package/dest/fixtures/fixtures.d.ts.map +1 -1
- package/dest/fixtures/fixtures.js +1 -1
- package/dest/fixtures/get_acvm_config.d.ts +2 -2
- package/dest/fixtures/get_acvm_config.d.ts.map +1 -1
- package/dest/fixtures/get_acvm_config.js +1 -1
- package/dest/fixtures/get_bb_config.d.ts +2 -2
- package/dest/fixtures/get_bb_config.d.ts.map +1 -1
- package/dest/fixtures/get_bb_config.js +2 -2
- package/dest/fixtures/index.d.ts +1 -1
- package/dest/fixtures/l1_to_l2_messaging.d.ts +4 -3
- package/dest/fixtures/l1_to_l2_messaging.d.ts.map +1 -1
- package/dest/fixtures/l1_to_l2_messaging.js +2 -2
- package/dest/fixtures/logging.d.ts +1 -1
- package/dest/fixtures/setup_l1_contracts.d.ts +476 -5
- package/dest/fixtures/setup_l1_contracts.d.ts.map +1 -1
- package/dest/fixtures/setup_l1_contracts.js +3 -3
- package/dest/fixtures/setup_p2p_test.d.ts +12 -11
- package/dest/fixtures/setup_p2p_test.d.ts.map +1 -1
- package/dest/fixtures/setup_p2p_test.js +50 -24
- package/dest/fixtures/snapshot_manager.d.ts +13 -10
- package/dest/fixtures/snapshot_manager.d.ts.map +1 -1
- package/dest/fixtures/snapshot_manager.js +66 -51
- package/dest/fixtures/token_utils.d.ts +10 -5
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +17 -18
- package/dest/fixtures/utils.d.ts +479 -35
- package/dest/fixtures/utils.d.ts.map +1 -1
- package/dest/fixtures/utils.js +106 -125
- package/dest/fixtures/web3signer.d.ts +5 -0
- package/dest/fixtures/web3signer.d.ts.map +1 -0
- package/dest/fixtures/web3signer.js +53 -0
- package/dest/fixtures/with_telemetry_utils.d.ts +2 -2
- package/dest/fixtures/with_telemetry_utils.d.ts.map +1 -1
- package/dest/fixtures/with_telemetry_utils.js +2 -2
- package/dest/index.d.ts +1 -1
- package/dest/quality_of_service/alert_checker.d.ts +2 -2
- package/dest/quality_of_service/alert_checker.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.d.ts +20 -23
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +14 -16
- package/dest/shared/gas_portal_test_harness.d.ts +10 -17
- package/dest/shared/gas_portal_test_harness.d.ts.map +1 -1
- package/dest/shared/gas_portal_test_harness.js +11 -8
- package/dest/shared/index.d.ts +1 -1
- package/dest/shared/jest_setup.d.ts +1 -1
- package/dest/shared/jest_setup.js +1 -1
- package/dest/shared/submit-transactions.d.ts +6 -4
- package/dest/shared/submit-transactions.d.ts.map +1 -1
- package/dest/shared/submit-transactions.js +8 -7
- package/dest/shared/uniswap_l1_l2.d.ts +12 -8
- package/dest/shared/uniswap_l1_l2.d.ts.map +1 -1
- package/dest/shared/uniswap_l1_l2.js +44 -58
- package/dest/simulators/index.d.ts +1 -1
- package/dest/simulators/lending_simulator.d.ts +4 -7
- package/dest/simulators/lending_simulator.d.ts.map +1 -1
- package/dest/simulators/lending_simulator.js +8 -5
- package/dest/simulators/token_simulator.d.ts +4 -2
- 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 +22 -14
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +144 -86
- package/dest/spartan/tx_metrics.d.ts +39 -0
- package/dest/spartan/tx_metrics.d.ts.map +1 -0
- package/dest/spartan/tx_metrics.js +95 -0
- package/dest/spartan/utils.d.ts +92 -17
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +386 -63
- package/package.json +43 -40
- package/src/bench/client_flows/benchmark.ts +8 -8
- package/src/bench/client_flows/client_flows_benchmark.ts +141 -114
- package/src/bench/client_flows/data_extractor.ts +9 -31
- package/src/bench/utils.ts +9 -37
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +46 -63
- package/src/e2e_cross_chain_messaging/cross_chain_messaging_test.ts +38 -51
- package/src/e2e_deploy_contract/deploy_test.ts +18 -36
- package/src/e2e_epochs/epochs_test.ts +41 -35
- package/src/e2e_fees/bridging_race.notest.ts +16 -11
- package/src/e2e_fees/fees_test.ts +42 -47
- package/src/e2e_l1_publisher/write_json.ts +12 -9
- package/src/e2e_multi_validator/utils.ts +5 -11
- package/src/e2e_nested_contract/nested_contract_test.ts +15 -13
- package/src/e2e_p2p/inactivity_slash_test.ts +184 -0
- package/src/e2e_p2p/p2p_network.ts +124 -82
- package/src/e2e_p2p/shared.ts +66 -58
- package/src/e2e_token_contract/token_contract_test.ts +17 -17
- package/src/fixtures/e2e_prover_test.ts +60 -97
- package/src/fixtures/fixtures.ts +1 -2
- package/src/fixtures/get_acvm_config.ts +2 -2
- package/src/fixtures/get_bb_config.ts +3 -2
- package/src/fixtures/l1_to_l2_messaging.ts +4 -2
- package/src/fixtures/setup_l1_contracts.ts +5 -4
- package/src/fixtures/setup_p2p_test.ts +79 -32
- package/src/fixtures/snapshot_manager.ts +87 -82
- package/src/fixtures/token_utils.ts +16 -24
- package/src/fixtures/utils.ts +142 -172
- package/src/fixtures/web3signer.ts +63 -0
- package/src/fixtures/with_telemetry_utils.ts +2 -2
- package/src/guides/up_quick_start.sh +3 -11
- package/src/quality_of_service/alert_checker.ts +1 -1
- package/src/shared/cross_chain_test_harness.ts +23 -31
- package/src/shared/gas_portal_test_harness.ts +14 -21
- package/src/shared/jest_setup.ts +1 -1
- package/src/shared/submit-transactions.ts +12 -8
- package/src/shared/uniswap_l1_l2.ts +77 -86
- package/src/simulators/lending_simulator.ts +9 -6
- package/src/simulators/token_simulator.ts +5 -2
- package/src/spartan/DEVELOP.md +15 -3
- package/src/spartan/setup_test_wallets.ts +171 -127
- package/src/spartan/tx_metrics.ts +130 -0
- package/src/spartan/utils.ts +463 -64
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import { AztecAddress, EthAddress
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { AztecAddress, EthAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { computeAuthWitMessageHash } from '@aztec/aztec.js/authorization';
|
|
3
|
+
import { generateClaimSecret } from '@aztec/aztec.js/ethereum';
|
|
4
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
5
|
+
import { RollupContract } from '@aztec/ethereum/contracts';
|
|
6
|
+
import { deployL1Contract } from '@aztec/ethereum/deploy-l1-contracts';
|
|
7
|
+
import { extractEvent } from '@aztec/ethereum/utils';
|
|
8
|
+
import { sha256ToField } from '@aztec/foundation/crypto/sha256';
|
|
4
9
|
import { InboxAbi, UniswapPortalAbi, UniswapPortalBytecode } from '@aztec/l1-artifacts';
|
|
5
10
|
import { UniswapContract } from '@aztec/noir-contracts.js/Uniswap';
|
|
6
11
|
import { computeL2ToL1MessageHash } from '@aztec/stdlib/hash';
|
|
@@ -15,24 +20,19 @@ import { CrossChainTestHarness } from './cross_chain_test_harness.js';
|
|
|
15
20
|
// To start an actual fork, use the command:
|
|
16
21
|
// anvil --fork-url https://mainnet.infura.io/v3/9928b52099854248b3a096be07a6b23c --fork-block-number 17514288 --chain-id 31337
|
|
17
22
|
// For CI, this is configured in `run_tests.sh` and `docker-compose-images.yml`
|
|
18
|
-
// docs:start:uniswap_l1_l2_test_setup_const
|
|
19
23
|
const TIMEOUT = 360_000;
|
|
20
|
-
// docs:end:uniswap_l1_l2_test_setup_const
|
|
21
24
|
export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 17514288)=>{
|
|
22
|
-
// docs:start:uniswap_l1_l2_test_beforeAll
|
|
23
25
|
describe('uniswap_trade_on_l1_from_l2', ()=>{
|
|
24
26
|
jest.setTimeout(TIMEOUT);
|
|
25
27
|
const WETH9_ADDRESS = EthAddress.fromString('0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2');
|
|
26
28
|
const DAI_ADDRESS = EthAddress.fromString('0x6B175474E89094C44Da98b954EedeAC495271d0F');
|
|
27
29
|
let aztecNode;
|
|
28
|
-
let pxe;
|
|
29
30
|
let logger;
|
|
30
31
|
let l1Client;
|
|
31
|
-
let
|
|
32
|
+
let wallet;
|
|
32
33
|
let ownerAddress;
|
|
33
34
|
let ownerEthAddress;
|
|
34
35
|
// does transactions on behalf of owner on Aztec:
|
|
35
|
-
let sponsorWallet;
|
|
36
36
|
let sponsorAddress;
|
|
37
37
|
let daiCrossChainHarness;
|
|
38
38
|
let wethCrossChainHarness;
|
|
@@ -47,23 +47,21 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
47
47
|
let cheatCodes;
|
|
48
48
|
let version;
|
|
49
49
|
beforeAll(async ()=>{
|
|
50
|
-
({ aztecNode,
|
|
50
|
+
({ aztecNode, logger, l1Client, wallet, ownerAddress, sponsorAddress, deployL1ContractsValues, cheatCodes } = await setup());
|
|
51
51
|
if (Number(await l1Client.getBlockNumber()) < expectedForkBlockNumber) {
|
|
52
52
|
throw new Error('This test must be run on a fork of mainnet with the expected fork block');
|
|
53
53
|
}
|
|
54
54
|
rollup = new RollupContract(deployL1ContractsValues.l1Client, deployL1ContractsValues.l1ContractAddresses.rollupAddress);
|
|
55
55
|
version = Number(await rollup.getVersion());
|
|
56
|
-
ownerAddress = ownerWallet.getAddress();
|
|
57
|
-
sponsorAddress = sponsorWallet.getAddress();
|
|
58
56
|
ownerEthAddress = EthAddress.fromString((await l1Client.getAddresses())[0]);
|
|
59
|
-
await ensureAccountContractsPublished(
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
await ensureAccountContractsPublished(wallet, [
|
|
58
|
+
ownerAddress,
|
|
59
|
+
sponsorAddress
|
|
62
60
|
]);
|
|
63
61
|
logger.info('Deploying DAI Portal, initializing and deploying l2 contract...');
|
|
64
|
-
daiCrossChainHarness = await CrossChainTestHarness.new(aztecNode,
|
|
62
|
+
daiCrossChainHarness = await CrossChainTestHarness.new(aztecNode, deployL1ContractsValues.l1Client, wallet, ownerAddress, logger, DAI_ADDRESS);
|
|
65
63
|
logger.info('Deploying WETH Portal, initializing and deploying l2 contract...');
|
|
66
|
-
wethCrossChainHarness = await CrossChainTestHarness.new(aztecNode,
|
|
64
|
+
wethCrossChainHarness = await CrossChainTestHarness.new(aztecNode, l1Client, wallet, ownerAddress, logger, WETH9_ADDRESS);
|
|
67
65
|
logger.info('Deploy Uniswap portal on L1 and L2...');
|
|
68
66
|
uniswapPortalAddress = await deployL1Contract(l1Client, UniswapPortalAbi, UniswapPortalBytecode).then(({ address })=>address);
|
|
69
67
|
uniswapPortal = getContract({
|
|
@@ -72,10 +70,10 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
72
70
|
client: l1Client
|
|
73
71
|
});
|
|
74
72
|
// deploy l2 uniswap contract and attach to portal
|
|
75
|
-
uniswapL2Contract = await UniswapContract.deploy(
|
|
73
|
+
uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
|
|
76
74
|
from: ownerAddress
|
|
77
75
|
}).deployed();
|
|
78
|
-
const registryAddress = (await
|
|
76
|
+
const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
|
|
79
77
|
await uniswapPortal.write.initialize([
|
|
80
78
|
registryAddress.toString(),
|
|
81
79
|
uniswapL2Contract.address.toString()
|
|
@@ -92,7 +90,6 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
92
90
|
const wethBalance = await wethCrossChainHarness.getL1BalanceOf(ownerEthAddress);
|
|
93
91
|
expect(wethBalance).toBe(parseEther('1000'));
|
|
94
92
|
});
|
|
95
|
-
// docs:end:uniswap_l1_l2_test_beforeAll
|
|
96
93
|
afterAll(async ()=>{
|
|
97
94
|
await cleanup();
|
|
98
95
|
});
|
|
@@ -115,7 +112,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
115
112
|
// 3. Owner gives uniswap approval to transfer the funds to public to self on its behalf
|
|
116
113
|
logger.info('Approving uniswap to transfer funds to public to self on my behalf');
|
|
117
114
|
const nonceForWETHTransferToPublicApproval = new Fr(1n);
|
|
118
|
-
const transferToPublicAuhtwit = await
|
|
115
|
+
const transferToPublicAuhtwit = await wallet.createAuthWit(ownerAddress, {
|
|
119
116
|
caller: uniswapL2Contract.address,
|
|
120
117
|
action: wethCrossChainHarness.l2Token.methods.transfer_to_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferToPublicApproval)
|
|
121
118
|
});
|
|
@@ -164,7 +161,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
164
161
|
// ensure that uniswap contract didn't eat the funds.
|
|
165
162
|
await wethCrossChainHarness.expectPublicBalanceOnL2(uniswapL2Contract.address, 0n);
|
|
166
163
|
// Since the outbox is only consumable when the block is proven, we need to set the block to be proven
|
|
167
|
-
await cheatCodes.rollup.markAsProven(await rollup.
|
|
164
|
+
await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
|
|
168
165
|
// 5. Consume L2 to L1 message by calling uniswapPortal.swap_private()
|
|
169
166
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|
|
170
167
|
const daiL1BalanceOfPortalBeforeSwap = await daiCrossChainHarness.getL1BalanceOf(daiCrossChainHarness.tokenPortalAddress);
|
|
@@ -175,12 +172,12 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
175
172
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
176
173
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
177
174
|
const withdrawMessageMetadata = {
|
|
178
|
-
|
|
175
|
+
_checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
|
|
179
176
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
180
177
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
181
178
|
};
|
|
182
179
|
const swapPrivateMessageMetadata = {
|
|
183
|
-
|
|
180
|
+
_checkpointNumber: BigInt(l2UniswapInteractionReceipt.blockNumber),
|
|
184
181
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
185
182
|
_path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
186
183
|
};
|
|
@@ -362,14 +359,14 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
362
359
|
// withdrawLeaf,
|
|
363
360
|
// );
|
|
364
361
|
// const withdrawMessageMetadata = {
|
|
365
|
-
//
|
|
362
|
+
// _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
|
|
366
363
|
// _leafIndex: BigInt(withdrawL2MessageIndex),
|
|
367
364
|
// _path: withdrawSiblingPath
|
|
368
365
|
// .toBufferArray()
|
|
369
366
|
// .map((buf: Buffer) => `0x${buf.toString('hex')}`) as readonly `0x${string}`[],
|
|
370
367
|
// };
|
|
371
368
|
// const swapPrivateMessageMetadata = {
|
|
372
|
-
//
|
|
369
|
+
// _checkpointNumber: BigInt(uniswapL2Interaction.blockNumber!),
|
|
373
370
|
// _leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
374
371
|
// _path: swapPrivateSiblingPath
|
|
375
372
|
// .toBufferArray()
|
|
@@ -442,11 +439,8 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
442
439
|
const nonceForWETHTransferToPublicApproval = new Fr(2n);
|
|
443
440
|
const expectedMessageHash = await computeAuthWitMessageHash({
|
|
444
441
|
caller: uniswapL2Contract.address,
|
|
445
|
-
|
|
446
|
-
},
|
|
447
|
-
chainId: ownerWallet.getChainId(),
|
|
448
|
-
version: ownerWallet.getVersion()
|
|
449
|
-
});
|
|
442
|
+
call: await wethCrossChainHarness.l2Token.methods.transfer_to_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferToPublicApproval).getFunctionCall()
|
|
443
|
+
}, await wallet.getChainInfo());
|
|
450
444
|
await expect(uniswapL2Contract.methods.swap_private(wethCrossChainHarness.l2Token.address, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferToPublicApproval, uniswapFeeTier, minimumOutputAmount, Fr.random(), ownerEthAddress).simulate({
|
|
451
445
|
from: ownerAddress
|
|
452
446
|
})).rejects.toThrow(`Unknown auth witness for message hash ${expectedMessageHash.toString()}`);
|
|
@@ -458,18 +452,18 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
458
452
|
// 2. owner gives uniswap approval to transfer the funds to public:
|
|
459
453
|
logger.info('Approving uniswap to transfer funds to public to self on my behalf');
|
|
460
454
|
const nonceForWETHTransferToPublicApproval = new Fr(3n);
|
|
461
|
-
const transferToPublicAuthwith = await
|
|
455
|
+
const transferToPublicAuthwith = await wallet.createAuthWit(ownerAddress, {
|
|
462
456
|
caller: uniswapL2Contract.address,
|
|
463
457
|
action: wethCrossChainHarness.l2Token.methods.transfer_to_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferToPublicApproval)
|
|
464
458
|
});
|
|
465
459
|
// 3. Swap but send the wrong token address
|
|
466
460
|
logger.info('Swap but send the wrong token address');
|
|
467
|
-
await expect(uniswapL2Contract.methods.swap_private(wethCrossChainHarness.l2Token.address, daiCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferToPublicApproval, uniswapFeeTier, minimumOutputAmount, Fr.random(), ownerEthAddress).
|
|
461
|
+
await expect(uniswapL2Contract.methods.swap_private(wethCrossChainHarness.l2Token.address, daiCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferToPublicApproval, uniswapFeeTier, minimumOutputAmount, Fr.random(), ownerEthAddress).send({
|
|
468
462
|
from: ownerAddress,
|
|
469
463
|
authWitnesses: [
|
|
470
464
|
transferToPublicAuthwith
|
|
471
465
|
]
|
|
472
|
-
})).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
|
|
466
|
+
}).wait()).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
|
|
473
467
|
});
|
|
474
468
|
// edge cases for public flow:
|
|
475
469
|
it("I don't need approval to call swap_public if I'm swapping on my own behalf", async ()=>{
|
|
@@ -477,13 +471,11 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
477
471
|
await wethCrossChainHarness.mintTokensPublicOnL2(wethAmountToBridge);
|
|
478
472
|
// 2. Give approval to uniswap to transfer funds to itself
|
|
479
473
|
const nonceForWETHTransferApproval = new Fr(2n);
|
|
480
|
-
const validateActionInteraction = await
|
|
474
|
+
const validateActionInteraction = await wallet.setPublicAuthWit(ownerAddress, {
|
|
481
475
|
caller: uniswapL2Contract.address,
|
|
482
476
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
483
477
|
}, true);
|
|
484
|
-
await validateActionInteraction.send(
|
|
485
|
-
from: ownerAddress
|
|
486
|
-
}).wait();
|
|
478
|
+
await validateActionInteraction.send().wait();
|
|
487
479
|
// No approval to call `swap` but should work even without it:
|
|
488
480
|
const [_, secretHashForDepositingSwappedDai] = await generateClaimSecret();
|
|
489
481
|
await uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferApproval, uniswapFeeTier, minimumOutputAmount, ownerAddress, secretHashForDepositingSwappedDai, ownerEthAddress, Fr.ZERO).send({
|
|
@@ -498,14 +490,12 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
498
490
|
const nonceForWETHTransferApproval = new Fr(3n);
|
|
499
491
|
const nonceForSwap = new Fr(3n);
|
|
500
492
|
const secretHashForDepositingSwappedDai = new Fr(4n);
|
|
501
|
-
const action = uniswapL2Contract.
|
|
502
|
-
const validateActionInteraction = await
|
|
493
|
+
const action = uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferApproval, uniswapFeeTier, minimumOutputAmount, ownerAddress, secretHashForDepositingSwappedDai, ownerEthAddress, nonceForSwap);
|
|
494
|
+
const validateActionInteraction = await wallet.setPublicAuthWit(ownerAddress, {
|
|
503
495
|
caller: approvedUser,
|
|
504
496
|
action
|
|
505
497
|
}, true);
|
|
506
|
-
await validateActionInteraction.send(
|
|
507
|
-
from: ownerAddress
|
|
508
|
-
}).wait();
|
|
498
|
+
await validateActionInteraction.send().wait();
|
|
509
499
|
await expect(action.simulate({
|
|
510
500
|
from: sponsorAddress
|
|
511
501
|
})).rejects.toThrow(/unauthorized/);
|
|
@@ -513,13 +503,11 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
513
503
|
it("uniswap can't pull funds without transfer approval", async ()=>{
|
|
514
504
|
// swap should fail since no transfer approval to uniswap:
|
|
515
505
|
const nonceForWETHTransferApproval = new Fr(4n);
|
|
516
|
-
const validateActionInteraction = await
|
|
506
|
+
const validateActionInteraction = await wallet.setPublicAuthWit(ownerAddress, {
|
|
517
507
|
caller: uniswapL2Contract.address,
|
|
518
508
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
519
509
|
}, true);
|
|
520
|
-
await validateActionInteraction.send(
|
|
521
|
-
from: ownerAddress
|
|
522
|
-
}).wait();
|
|
510
|
+
await validateActionInteraction.send().wait();
|
|
523
511
|
await expect(uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, new Fr(420), uniswapFeeTier, minimumOutputAmount, ownerAddress, Fr.random(), ownerEthAddress, Fr.ZERO).simulate({
|
|
524
512
|
from: ownerAddress
|
|
525
513
|
})).rejects.toThrow(/unauthorized/);
|
|
@@ -532,7 +520,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
532
520
|
// Owner gives uniswap approval to transfer the funds to public to self on its behalf
|
|
533
521
|
logger.info('Approving uniswap to transfer the funds to public to self on my behalf');
|
|
534
522
|
const nonceForWETHTransferToPublicApproval = new Fr(4n);
|
|
535
|
-
const transferToPublicAuhtwit = await
|
|
523
|
+
const transferToPublicAuhtwit = await wallet.createAuthWit(ownerAddress, {
|
|
536
524
|
caller: uniswapL2Contract.address,
|
|
537
525
|
action: wethCrossChainHarness.l2Token.methods.transfer_to_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferToPublicApproval)
|
|
538
526
|
});
|
|
@@ -583,19 +571,19 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
583
571
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
584
572
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
585
573
|
const withdrawMessageMetadata = {
|
|
586
|
-
|
|
574
|
+
_checkpointNumber: BigInt(withdrawReceipt.blockNumber),
|
|
587
575
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
588
576
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
589
577
|
};
|
|
590
578
|
const swapPrivateMessageMetadata = {
|
|
591
|
-
|
|
579
|
+
_checkpointNumber: BigInt(withdrawReceipt.blockNumber),
|
|
592
580
|
_leafIndex: BigInt(swapPrivateL2MessageIndex),
|
|
593
581
|
_path: swapPrivateSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
594
582
|
};
|
|
595
583
|
// ensure that user's funds were burnt
|
|
596
584
|
await wethCrossChainHarness.expectPrivateBalanceOnL2(ownerAddress, wethL2BalanceBeforeSwap - wethAmountToBridge);
|
|
597
585
|
// Since the outbox is only consumable when the block is proven, we need to set the block to be proven
|
|
598
|
-
await cheatCodes.rollup.markAsProven(await rollup.
|
|
586
|
+
await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
|
|
599
587
|
// On L1 call swap_public!
|
|
600
588
|
logger.info('call swap_public on L1');
|
|
601
589
|
const swapArgs = [
|
|
@@ -621,13 +609,11 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
621
609
|
await wethCrossChainHarness.mintTokensPublicOnL2(wethAmountToBridge);
|
|
622
610
|
// Owner gives uniswap approval to transfer funds on its behalf
|
|
623
611
|
const nonceForWETHTransferApproval = new Fr(5n);
|
|
624
|
-
const validateActionInteraction = await
|
|
612
|
+
const validateActionInteraction = await wallet.setPublicAuthWit(ownerAddress, {
|
|
625
613
|
caller: uniswapL2Contract.address,
|
|
626
614
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
627
615
|
}, true);
|
|
628
|
-
await validateActionInteraction.send(
|
|
629
|
-
from: ownerAddress
|
|
630
|
-
}).wait();
|
|
616
|
+
await validateActionInteraction.send().wait();
|
|
631
617
|
// Call swap_public on L2
|
|
632
618
|
const secretHashForDepositingSwappedDai = Fr.random();
|
|
633
619
|
const withdrawReceipt = await uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferApproval, uniswapFeeTier, minimumOutputAmount, ownerAddress, secretHashForDepositingSwappedDai, ownerEthAddress, Fr.ZERO).send({
|
|
@@ -671,19 +657,19 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
671
657
|
const withdrawL2MessageIndex = withdrawResult.leafIndex;
|
|
672
658
|
const withdrawSiblingPath = withdrawResult.siblingPath;
|
|
673
659
|
const withdrawMessageMetadata = {
|
|
674
|
-
|
|
660
|
+
_checkpointNumber: BigInt(withdrawReceipt.blockNumber),
|
|
675
661
|
_leafIndex: BigInt(withdrawL2MessageIndex),
|
|
676
662
|
_path: withdrawSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
677
663
|
};
|
|
678
664
|
const swapPublicMessageMetadata = {
|
|
679
|
-
|
|
665
|
+
_checkpointNumber: BigInt(withdrawReceipt.blockNumber),
|
|
680
666
|
_leafIndex: BigInt(swapPublicL2MessageIndex),
|
|
681
667
|
_path: swapPublicSiblingPath.toBufferArray().map((buf)=>`0x${buf.toString('hex')}`)
|
|
682
668
|
};
|
|
683
669
|
// check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
|
|
684
670
|
await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
|
|
685
671
|
// Since the outbox is only consumable when the block is proven, we need to set the block to be proven
|
|
686
|
-
await cheatCodes.rollup.markAsProven(await rollup.
|
|
672
|
+
await cheatCodes.rollup.markAsProven(await rollup.getCheckpointNumber());
|
|
687
673
|
// Call swap_private on L1
|
|
688
674
|
logger.info('Execute withdraw and swap on the uniswapPortal!');
|
|
689
675
|
const swapArgs = [
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './lending_simulator.js';
|
|
2
2
|
export * from './token_simulator.js';
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxzQkFBc0IsQ0FBQyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { AztecAddress
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
2
3
|
import { CheatCodes } from '@aztec/aztec/testing';
|
|
3
|
-
import type { RollupContract } from '@aztec/ethereum';
|
|
4
|
+
import type { RollupContract } from '@aztec/ethereum/contracts';
|
|
4
5
|
import type { TestDateProvider } from '@aztec/foundation/timer';
|
|
5
6
|
import type { LendingContract } from '@aztec/noir-contracts.js/Lending';
|
|
6
7
|
import type { TokenSimulator } from './token_simulator.js';
|
|
@@ -27,13 +28,9 @@ export declare class LendingSimulator {
|
|
|
27
28
|
private account;
|
|
28
29
|
private rate;
|
|
29
30
|
private ethereumSlotDuration;
|
|
30
|
-
/** the rollup contract */
|
|
31
31
|
rollup: RollupContract;
|
|
32
|
-
/** the lending contract */
|
|
33
32
|
lendingContract: LendingContract;
|
|
34
|
-
/** the collateral asset used in the lending contract */
|
|
35
33
|
collateralAsset: TokenSimulator;
|
|
36
|
-
/** the stable-coin borrowed in the lending contract */
|
|
37
34
|
stableCoin: TokenSimulator;
|
|
38
35
|
/** interest rate accumulator */
|
|
39
36
|
accumulator: bigint;
|
|
@@ -65,4 +62,4 @@ export declare class LendingSimulator {
|
|
|
65
62
|
mintStableCoinOutsideLoan(recipient: AztecAddress, amount: bigint, priv?: boolean): void;
|
|
66
63
|
check(): Promise<void>;
|
|
67
64
|
}
|
|
68
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZGluZ19zaW11bGF0b3IuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaW11bGF0b3JzL2xlbmRpbmdfc2ltdWxhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2hFLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFeEUsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFM0Q7O0dBRUc7QUFDSCxxQkFBYSxjQUFjO0lBQ3pCLHlDQUF5QztJQUN6QyxTQUFnQixPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQ3RDLDJDQUEyQztJQUMzQyxTQUFnQixNQUFNLEVBQUUsRUFBRSxDQUFDO0lBRTNCLFlBQVksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUc1QztJQUVEOzs7T0FHRztJQUNJLEdBQUcsZ0JBRVQ7Q0FDRjtBQWdDRDs7R0FFRztBQUNILHFCQUFhLGdCQUFnQjtJQVl6QixPQUFPLENBQUMsRUFBRTtJQUNWLE9BQU8sQ0FBQyxPQUFPO0lBQ2YsT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsb0JBQW9CO0lBRXJCLE1BQU0sRUFBRSxjQUFjO0lBRXRCLGVBQWUsRUFBRSxlQUFlO0lBRWhDLGVBQWUsRUFBRSxjQUFjO0lBRS9CLFVBQVUsRUFBRSxjQUFjO0lBdEJuQyxnQ0FBZ0M7SUFDekIsV0FBVyxFQUFFLE1BQU0sQ0FBTTtJQUNoQyxvQ0FBb0M7SUFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBSztJQUV4QixPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUMvQyxPQUFPLENBQUMsVUFBVSxDQUE2QjtJQUMvQyxPQUFPLENBQUMsUUFBUSxDQUFjO0lBQzlCLE9BQU8sQ0FBQyxhQUFhLENBQWM7SUFFbkMsWUFDVSxFQUFFLEVBQUUsVUFBVSxFQUNkLE9BQU8sRUFBRSxjQUFjLEVBQ3ZCLElBQUksRUFBRSxNQUFNLEVBQ1osb0JBQW9CLEVBQUUsTUFBTTtJQUNwQywwQkFBMEI7SUFDbkIsTUFBTSxFQUFFLGNBQWM7SUFDN0IsMkJBQTJCO0lBQ3BCLGVBQWUsRUFBRSxlQUFlO0lBQ3ZDLHdEQUF3RDtJQUNqRCxlQUFlLEVBQUUsY0FBYztJQUN0Qyx1REFBdUQ7SUFDaEQsVUFBVSxFQUFFLGNBQWMsRUFDL0I7SUFFRSxPQUFPLGtCQUlaO0lBRUssYUFBYSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLEVBQUUsZ0JBQWdCLGlCQWtCaEU7SUFFRCxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBR2hFO0lBRUQsYUFBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUcvRDtJQUVELE9BQU8sQ0FBQyxPQUFPO0lBS2YsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUkxRDtJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFPeEQ7SUFFRCxZQUFZLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBRzlEO0lBRUQsV0FBVyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUc3RDtJQUVELE9BQU8sQ0FBQyxLQUFLO0lBUWIseUJBQXlCLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksVUFBUSxRQU85RTtJQUVLLEtBQUssa0JBeUJWO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lending_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/lending_simulator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"lending_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/lending_simulator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;GAEG;AACH,qBAAa,cAAc;IACzB,yCAAyC;IACzC,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,2CAA2C;IAC3C,SAAgB,MAAM,EAAE,EAAE,CAAC;IAE3B,YAAY,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,EAG5C;IAED;;;OAGG;IACI,GAAG,gBAET;CACF;AAgCD;;GAEG;AACH,qBAAa,gBAAgB;IAYzB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,oBAAoB;IAErB,MAAM,EAAE,cAAc;IAEtB,eAAe,EAAE,eAAe;IAEhC,eAAe,EAAE,cAAc;IAE/B,UAAU,EAAE,cAAc;IAtBnC,gCAAgC;IACzB,WAAW,EAAE,MAAM,CAAM;IAChC,oCAAoC;IAC7B,IAAI,EAAE,MAAM,CAAK;IAExB,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAc;IAEnC,YACU,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,MAAM,EACZ,oBAAoB,EAAE,MAAM;IACpC,0BAA0B;IACnB,MAAM,EAAE,cAAc;IAC7B,2BAA2B;IACpB,eAAe,EAAE,eAAe;IACvC,wDAAwD;IACjD,eAAe,EAAE,cAAc;IACtC,uDAAuD;IAChD,UAAU,EAAE,cAAc,EAC/B;IAEE,OAAO,kBAIZ;IAEK,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,gBAAgB,iBAkBhE;IAED,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAGhE;IAED,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG/D;IAED,OAAO,CAAC,OAAO;IAKf,QAAQ,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAI1D;IAED,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOxD;IAED,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG9D;IAED,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAG7D;IAED,OAAO,CAAC,KAAK;IAQb,yBAAyB,CAAC,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,UAAQ,QAO9E;IAEK,KAAK,kBAyBV;CACF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// Convenience struct to hold an account's address and secret that can easily be passed around.
|
|
2
|
-
import { AztecAddress
|
|
3
|
-
import {
|
|
2
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
+
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
|
+
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
|
+
import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
|
|
4
6
|
/**
|
|
5
7
|
* Contains utilities to compute the "key" for private holdings in the public state.
|
|
6
8
|
*/ export class LendingAccount {
|
|
@@ -84,7 +86,8 @@ const computeMultiplier = (rate, dt)=>{
|
|
|
84
86
|
return;
|
|
85
87
|
}
|
|
86
88
|
const slot = await this.rollup.getSlotAt(BigInt(await this.cc.eth.timestamp()));
|
|
87
|
-
const
|
|
89
|
+
const targetSlot = SlotNumber(slot + diff);
|
|
90
|
+
const ts = Number(await this.rollup.getTimestampForSlot(targetSlot));
|
|
88
91
|
const timeDiff = ts - this.time;
|
|
89
92
|
this.time = ts;
|
|
90
93
|
// Mine ethereum blocks such that the next block will be in a new slot
|
|
@@ -92,7 +95,7 @@ const computeMultiplier = (rate, dt)=>{
|
|
|
92
95
|
if (dateProvider) {
|
|
93
96
|
dateProvider.setTime(this.time * 1000);
|
|
94
97
|
}
|
|
95
|
-
await this.cc.rollup.markAsProven(await this.rollup.
|
|
98
|
+
await this.cc.rollup.markAsProven(await this.rollup.getCheckpointNumber());
|
|
96
99
|
this.accumulator = muldivDown(this.accumulator, computeMultiplier(this.rate, BigInt(timeDiff)), BASE);
|
|
97
100
|
}
|
|
98
101
|
depositPrivate(from, onBehalfOf, amount) {
|
|
@@ -160,7 +163,7 @@ const computeMultiplier = (rate, dt)=>{
|
|
|
160
163
|
AztecAddress.fromField(await this.account.key())
|
|
161
164
|
]){
|
|
162
165
|
const privatePos = await this.lendingContract.methods.get_position(key).simulate({
|
|
163
|
-
from:
|
|
166
|
+
from: this.account.address
|
|
164
167
|
});
|
|
165
168
|
expect(new Fr(privatePos['collateral'])).toEqual(this.collateral[key.toString()] ?? Fr.ZERO);
|
|
166
169
|
expect(new Fr(privatePos['static_debt'])).toEqual(this.staticDebt[key.toString()] ?? Fr.ZERO);
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import type { Logger } from '@aztec/aztec.js/log';
|
|
3
|
+
import type { Wallet } from '@aztec/aztec.js/wallet';
|
|
2
4
|
import type { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
3
5
|
export declare class TokenSimulator {
|
|
4
6
|
protected token: TokenContract;
|
|
@@ -27,4 +29,4 @@ export declare class TokenSimulator {
|
|
|
27
29
|
checkPrivate(): Promise<void>;
|
|
28
30
|
check(): Promise<void>;
|
|
29
31
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5fc2ltdWxhdG9yLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9ycy90b2tlbl9zaW11bGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFOUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJcEUscUJBQWEsY0FBYztJQVF2QixTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWE7SUFDOUIsU0FBUyxDQUFDLGFBQWEsRUFBRSxNQUFNO0lBQy9CLFNBQVMsQ0FBQyxjQUFjLEVBQUUsWUFBWTtJQUN0QyxTQUFTLENBQUMsTUFBTSxFQUFFLE1BQU07SUFDeEIsU0FBUyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUU7SUFYcEMsT0FBTyxDQUFDLGVBQWUsQ0FBa0M7SUFDekQsT0FBTyxDQUFDLGFBQWEsQ0FBa0M7SUFDaEQsV0FBVyxFQUFFLE1BQU0sQ0FBTTtJQUVoQyxPQUFPLENBQUMsY0FBYyxDQUFrQztJQUV4RCxZQUNZLEtBQUssRUFBRSxhQUFhLEVBQ3BCLGFBQWEsRUFBRSxNQUFNLEVBQ3JCLGNBQWMsRUFBRSxZQUFZLEVBQzVCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsUUFBUSxFQUFFLFlBQVksRUFBRSxFQUNoQztJQUVHLFVBQVUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxRQUV0QztJQUVNLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFFN0Q7SUFFTSxXQUFXLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUdsRDtJQUVNLFVBQVUsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBSWpEO0lBRU0sY0FBYyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQU96RTtJQUVNLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFPMUU7SUFFTSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFNNUU7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFNM0U7SUFFTSxXQUFXLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxRQU1wRDtJQUVNLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLFFBTW5EO0lBRU0sZUFBZSxDQUFDLE9BQU8sRUFBRSxZQUFZLFVBRTNDO0lBRU0sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksVUFFNUM7SUFFSyxXQUFXLGtCQWtCaEI7SUFFSyxZQUFZLGtCQW9DakI7SUFFWSxLQUFLLGtCQUdqQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"token_simulator.d.ts","sourceRoot":"","sources":["../../src/simulators/token_simulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAIpE,qBAAa,cAAc;IAQvB,SAAS,CAAC,KAAK,EAAE,aAAa;IAC9B,SAAS,CAAC,aAAa,EAAE,MAAM;IAC/B,SAAS,CAAC,cAAc,EAAE,YAAY;IACtC,SAAS,CAAC,MAAM,EAAE,MAAM;IACxB,SAAS,CAAC,QAAQ,EAAE,YAAY,EAAE;IAXpC,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,aAAa,CAAkC;IAChD,WAAW,EAAE,MAAM,CAAM;IAEhC,OAAO,CAAC,cAAc,CAAkC;IAExD,YACY,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,YAAY,EAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,EAAE,EAChC;IAEG,UAAU,CAAC,OAAO,EAAE,YAAY,QAEtC;IAEM,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAE7D;IAEM,WAAW,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAGlD;IAEM,UAAU,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAIjD;IAEM,cAAc,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAOzE;IAEM,eAAe,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAO1E;IAEM,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM5E;IAEM,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAM3E;IAEM,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMpD;IAEM,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAMnD;IAEM,eAAe,CAAC,OAAO,EAAE,YAAY,UAE3C;IAEM,gBAAgB,CAAC,OAAO,EAAE,YAAY,UAE5C;IAEK,WAAW,kBAkBhB;IAEK,YAAY,kBAoCjB;IAEY,KAAK,kBAGjB;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BatchCall } from '@aztec/aztec.js';
|
|
1
|
+
import { BatchCall } from '@aztec/aztec.js/contracts';
|
|
2
2
|
import chunk from 'lodash.chunk';
|
|
3
3
|
export class TokenSimulator {
|
|
4
4
|
token;
|
|
@@ -88,7 +88,7 @@ export class TokenSimulator {
|
|
|
88
88
|
this.token.methods.total_supply(),
|
|
89
89
|
...this.accounts.map((address)=>this.token.methods.balance_of_public(address))
|
|
90
90
|
];
|
|
91
|
-
const results = (await Promise.all(chunk(calls,
|
|
91
|
+
const results = (await Promise.all(chunk(calls, 5).map((batch)=>new BatchCall(this.defaultWallet, batch).simulate({
|
|
92
92
|
from: this.defaultAddress
|
|
93
93
|
})))).flat();
|
|
94
94
|
expect(results[0]).toEqual(this.totalSupply);
|
|
@@ -1,27 +1,35 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
2
|
+
import { type FeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
3
|
+
import { type AztecNode } from '@aztec/aztec.js/node';
|
|
2
4
|
import type { Logger } from '@aztec/foundation/log';
|
|
3
5
|
import { TokenContract } from '@aztec/noir-contracts.js/Token';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
import { TestWallet } from '@aztec/test-wallet/server';
|
|
7
|
+
export interface TestAccounts {
|
|
8
|
+
aztecNode: AztecNode;
|
|
9
|
+
wallet: TestWallet;
|
|
10
|
+
accounts: AztecAddress[];
|
|
11
|
+
tokenContract: TokenContract;
|
|
8
12
|
tokenAdminAddress: AztecAddress;
|
|
9
13
|
tokenName: string;
|
|
10
|
-
recipientWallet: AccountWalletWithSecretKey;
|
|
11
14
|
recipientAddress: AztecAddress;
|
|
12
15
|
tokenAddress: AztecAddress;
|
|
13
16
|
}
|
|
14
|
-
export
|
|
15
|
-
export declare function
|
|
16
|
-
export declare function
|
|
17
|
-
export declare function
|
|
18
|
-
|
|
17
|
+
export type TestAccountsWithoutTokens = Omit<TestAccounts, 'tokenAddress' | 'tokenContract' | 'tokenName' | 'tokenAdminAddress'>;
|
|
18
|
+
export declare function setupTestAccountsWithTokens(nodeUrl: string, mintAmount: bigint, logger: Logger): Promise<TestAccounts>;
|
|
19
|
+
export declare function deploySponsoredTestAccountsWithTokens(wallet: TestWallet, aztecNode: AztecNode, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccounts>;
|
|
20
|
+
export declare function deploySponsoredTestAccounts(wallet: TestWallet, aztecNode: AztecNode, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccountsWithoutTokens>;
|
|
21
|
+
export declare function deployTestAccountsWithTokens(nodeUrl: string, l1RpcUrls: string[], mnemonicOrPrivateKey: string, mintAmount: bigint, logger: Logger, numberOfFundedWallets?: number): Promise<TestAccounts>;
|
|
22
|
+
export declare function performTransfers({ wallet, testAccounts, rounds, transferAmount, logger, feePaymentMethod }: {
|
|
23
|
+
wallet: TestWallet;
|
|
24
|
+
testAccounts: TestAccounts;
|
|
19
25
|
rounds: number;
|
|
20
26
|
transferAmount: bigint;
|
|
21
27
|
logger: Logger;
|
|
28
|
+
feePaymentMethod?: FeePaymentMethod;
|
|
22
29
|
}): Promise<void>;
|
|
23
|
-
export declare function
|
|
24
|
-
|
|
30
|
+
export declare function createWalletAndAztecNodeClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<{
|
|
31
|
+
wallet: TestWallet;
|
|
32
|
+
aztecNode: AztecNode;
|
|
25
33
|
cleanup: () => Promise<void>;
|
|
26
34
|
}>;
|
|
27
|
-
//# sourceMappingURL=
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUk3RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0QsT0FBTyxFQUFFLFVBQVUsRUFBaUUsTUFBTSwyQkFBMkIsQ0FBQztBQU10SCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBdUN2QjtBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0F3QnBDO0FBRUQsd0JBQXNCLDRCQUE0QixDQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixVQUFVLEVBQUUsTUFBTSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLHFCQUFxQixTQUFJLEdBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0ErQ3ZCO0FBNkVELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxFQUNOLGdCQUFnQixFQUNqQixFQUFFO0lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ3JDLGlCQXFCQTtBQUVELHdCQUFzQiw4QkFBOEIsQ0FDbEQsT0FBTyxFQUFFLE1BQU0sRUFDZixhQUFhLEVBQUUsT0FBTyxFQUN0QixNQUFNLEVBQUUsTUFBTSxHQUNiLE9BQU8sQ0FBQztJQUFFLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFBQyxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQUMsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO0NBQUUsQ0FBQyxDQXFCckYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"setup_test_wallets.d.ts","sourceRoot":"","sources":["../../src/spartan/setup_test_wallets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,EAAE,KAAK,gBAAgB,EAA6B,MAAM,qBAAqB,CAAC;AAEvF,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,sBAAsB,CAAC;AAI7E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,OAAO,EAAE,UAAU,EAAiE,MAAM,2BAA2B,CAAC;AAMtH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,iBAAiB,EAAE,YAAY,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,YAAY,CAAC;IAC/B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,YAAY,EACZ,cAAc,GAAG,eAAe,GAAG,WAAW,GAAG,mBAAmB,CACrE,CAAC;AAMF,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,CAAC,CAyBvB;AAED,wBAAsB,qCAAqC,CACzD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,yBAAyB,CAAC,CAwBpC;AAED,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EAAE,EACnB,oBAAoB,EAAE,MAAM,EAC5B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,qBAAqB,SAAI,GACxB,OAAO,CAAC,YAAY,CAAC,CA+CvB;AA6ED,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EACN,YAAY,EACZ,MAAM,EACN,cAAc,EACd,MAAM,EACN,gBAAgB,EACjB,EAAE;IACD,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,iBAqBA;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC,CAqBrF"}
|