@aztec/end-to-end 0.0.1-commit.d1f2d6c → 0.0.1-commit.d431d1c
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 +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.d.ts.map +1 -1
- package/dest/bench/client_flows/client_flows_benchmark.js +13 -28
- package/dest/bench/utils.d.ts +4 -5
- package/dest/bench/utils.d.ts.map +1 -1
- package/dest/bench/utils.js +7 -9
- package/dest/e2e_blacklist_token_contract/blacklist_token_contract_test.d.ts +1 -1
- 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 +8 -7
- package/dest/e2e_epochs/epochs_test.d.ts +1 -1
- package/dest/e2e_epochs/epochs_test.d.ts.map +1 -1
- package/dest/e2e_epochs/epochs_test.js +0 -3
- package/dest/e2e_fees/bridging_race.notest.js +1 -1
- 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 +6 -6
- package/dest/e2e_l1_publisher/write_json.d.ts +3 -3
- package/dest/e2e_l1_publisher/write_json.d.ts.map +1 -1
- 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 +2 -2
- package/dest/e2e_p2p/p2p_network.d.ts +1 -1
- package/dest/e2e_p2p/p2p_network.d.ts.map +1 -1
- package/dest/e2e_p2p/p2p_network.js +1 -4
- package/dest/e2e_p2p/shared.d.ts +6 -6
- package/dest/e2e_p2p/shared.d.ts.map +1 -1
- package/dest/e2e_p2p/shared.js +14 -7
- 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 +3 -3
- package/dest/fixtures/e2e_prover_test.d.ts +1 -1
- package/dest/fixtures/e2e_prover_test.d.ts.map +1 -1
- package/dest/fixtures/e2e_prover_test.js +4 -7
- package/dest/fixtures/setup.d.ts +1 -1
- package/dest/fixtures/setup.d.ts.map +1 -1
- package/dest/fixtures/setup.js +5 -5
- package/dest/fixtures/token_utils.d.ts +1 -1
- package/dest/fixtures/token_utils.d.ts.map +1 -1
- package/dest/fixtures/token_utils.js +4 -7
- package/dest/shared/cross_chain_test_harness.d.ts +4 -3
- package/dest/shared/cross_chain_test_harness.d.ts.map +1 -1
- package/dest/shared/cross_chain_test_harness.js +11 -11
- package/dest/shared/gas_portal_test_harness.js +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 +11 -9
- 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 +12 -12
- package/dest/simulators/lending_simulator.js +2 -2
- package/dest/spartan/setup_test_wallets.d.ts +1 -1
- package/dest/spartan/setup_test_wallets.d.ts.map +1 -1
- package/dest/spartan/setup_test_wallets.js +34 -61
- package/dest/spartan/tx_metrics.d.ts +2 -4
- package/dest/spartan/tx_metrics.d.ts.map +1 -1
- package/dest/spartan/tx_metrics.js +4 -28
- package/dest/spartan/utils.d.ts +260 -2
- package/dest/spartan/utils.d.ts.map +1 -1
- package/dest/spartan/utils.js +942 -1
- package/package.json +39 -39
- package/src/bench/client_flows/client_flows_benchmark.ts +24 -11
- package/src/bench/utils.ts +7 -9
- package/src/e2e_blacklist_token_contract/blacklist_token_contract_test.ts +12 -9
- package/src/e2e_epochs/epochs_test.ts +24 -29
- package/src/e2e_fees/bridging_race.notest.ts +4 -1
- package/src/e2e_fees/fees_test.ts +14 -10
- package/src/e2e_l1_publisher/write_json.ts +2 -2
- package/src/e2e_nested_contract/nested_contract_test.ts +4 -2
- package/src/e2e_p2p/p2p_network.ts +9 -14
- package/src/e2e_p2p/shared.ts +20 -10
- package/src/e2e_token_contract/token_contract_test.ts +5 -3
- package/src/fixtures/e2e_prover_test.ts +8 -3
- package/src/fixtures/setup.ts +12 -8
- package/src/fixtures/token_utils.ts +5 -6
- package/src/shared/cross_chain_test_harness.ts +27 -13
- package/src/shared/gas_portal_test_harness.ts +1 -1
- package/src/shared/submit-transactions.ts +15 -9
- package/src/shared/uniswap_l1_l2.ts +19 -12
- package/src/simulators/lending_simulator.ts +2 -2
- package/src/spartan/setup_test_wallets.ts +24 -72
- package/src/spartan/tx_metrics.ts +7 -26
- package/src/spartan/utils.ts +1246 -1
- package/dest/spartan/utils/bot.d.ts +0 -27
- package/dest/spartan/utils/bot.d.ts.map +0 -1
- package/dest/spartan/utils/bot.js +0 -141
- package/dest/spartan/utils/chaos.d.ts +0 -79
- package/dest/spartan/utils/chaos.d.ts.map +0 -1
- package/dest/spartan/utils/chaos.js +0 -142
- package/dest/spartan/utils/clients.d.ts +0 -39
- package/dest/spartan/utils/clients.d.ts.map +0 -1
- package/dest/spartan/utils/clients.js +0 -90
- package/dest/spartan/utils/config.d.ts +0 -36
- package/dest/spartan/utils/config.d.ts.map +0 -1
- package/dest/spartan/utils/config.js +0 -20
- package/dest/spartan/utils/health.d.ts +0 -63
- package/dest/spartan/utils/health.d.ts.map +0 -1
- package/dest/spartan/utils/health.js +0 -202
- package/dest/spartan/utils/helm.d.ts +0 -15
- package/dest/spartan/utils/helm.d.ts.map +0 -1
- package/dest/spartan/utils/helm.js +0 -47
- package/dest/spartan/utils/index.d.ts +0 -9
- package/dest/spartan/utils/index.d.ts.map +0 -1
- package/dest/spartan/utils/index.js +0 -18
- package/dest/spartan/utils/k8s.d.ts +0 -98
- package/dest/spartan/utils/k8s.d.ts.map +0 -1
- package/dest/spartan/utils/k8s.js +0 -257
- package/dest/spartan/utils/nodes.d.ts +0 -31
- package/dest/spartan/utils/nodes.d.ts.map +0 -1
- package/dest/spartan/utils/nodes.js +0 -290
- package/dest/spartan/utils/scripts.d.ts +0 -16
- package/dest/spartan/utils/scripts.d.ts.map +0 -1
- package/dest/spartan/utils/scripts.js +0 -66
- package/src/spartan/utils/bot.ts +0 -185
- package/src/spartan/utils/chaos.ts +0 -253
- package/src/spartan/utils/clients.ts +0 -100
- package/src/spartan/utils/config.ts +0 -26
- package/src/spartan/utils/health.ts +0 -255
- package/src/spartan/utils/helm.ts +0 -84
- package/src/spartan/utils/index.ts +0 -62
- package/src/spartan/utils/k8s.ts +0 -375
- package/src/spartan/utils/nodes.ts +0 -323
- package/src/spartan/utils/scripts.ts +0 -63
|
@@ -77,7 +77,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
77
77
|
// deploy l2 uniswap contract and attach to portal
|
|
78
78
|
uniswapL2Contract = await UniswapContract.deploy(wallet, uniswapPortalAddress).send({
|
|
79
79
|
from: ownerAddress
|
|
80
|
-
});
|
|
80
|
+
}).deployed();
|
|
81
81
|
const registryAddress = (await aztecNode.getNodeInfo()).l1ContractAddresses.registryAddress;
|
|
82
82
|
await uniswapPortal.write.initialize([
|
|
83
83
|
registryAddress.toString(),
|
|
@@ -129,7 +129,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
129
129
|
authWitnesses: [
|
|
130
130
|
transferToPublicAuhtwit
|
|
131
131
|
]
|
|
132
|
-
});
|
|
132
|
+
}).wait();
|
|
133
133
|
const swapPrivateFunction = 'swap_private(address,uint256,uint24,address,uint256,bytes32,address)';
|
|
134
134
|
const swapPrivateContent = sha256ToField([
|
|
135
135
|
Buffer.from(toFunctionSelector(swapPrivateFunction).substring(2), 'hex'),
|
|
@@ -314,9 +314,9 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
314
314
|
// ownerEthAddress,
|
|
315
315
|
// nonceForSwap,
|
|
316
316
|
// );
|
|
317
|
-
// await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send();
|
|
317
|
+
// await ownerWallet.setPublicAuthWit({ caller: sponsorAddress, action }, true).send().wait();
|
|
318
318
|
// // 4.2 Call swap_public from user2 on behalf of owner
|
|
319
|
-
// const uniswapL2Interaction = await action.send();
|
|
319
|
+
// const uniswapL2Interaction = await action.send().wait();
|
|
320
320
|
// const swapPublicContent = sha256ToField([
|
|
321
321
|
// Buffer.from(
|
|
322
322
|
// toFunctionSelector('swap_public(address,uint256,uint24,address,uint256,bytes32,bytes32,address)').substring(
|
|
@@ -473,7 +473,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
473
473
|
authWitnesses: [
|
|
474
474
|
transferToPublicAuthwith
|
|
475
475
|
]
|
|
476
|
-
})).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
|
|
476
|
+
}).wait()).rejects.toThrow('Assertion failed: input_asset address is not the same as seen in the bridge contract');
|
|
477
477
|
});
|
|
478
478
|
// edge cases for public flow:
|
|
479
479
|
it("I don't need approval to call swap_public if I'm swapping on my own behalf", async ()=>{
|
|
@@ -485,12 +485,12 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
485
485
|
caller: uniswapL2Contract.address,
|
|
486
486
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
487
487
|
}, true);
|
|
488
|
-
await validateActionInteraction.send();
|
|
488
|
+
await validateActionInteraction.send().wait();
|
|
489
489
|
// No approval to call `swap` but should work even without it:
|
|
490
490
|
const [_, secretHashForDepositingSwappedDai] = await generateClaimSecret();
|
|
491
491
|
await uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferApproval, uniswapFeeTier, minimumOutputAmount, ownerAddress, secretHashForDepositingSwappedDai, ownerEthAddress, Fr.ZERO).send({
|
|
492
492
|
from: ownerAddress
|
|
493
|
-
});
|
|
493
|
+
}).wait();
|
|
494
494
|
// check weth balance of owner on L2 (we first bridged `wethAmountToBridge` into L2 and now withdrew it!)
|
|
495
495
|
await wethCrossChainHarness.expectPublicBalanceOnL2(ownerAddress, 0n);
|
|
496
496
|
});
|
|
@@ -505,7 +505,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
505
505
|
caller: approvedUser,
|
|
506
506
|
action
|
|
507
507
|
}, true);
|
|
508
|
-
await validateActionInteraction.send();
|
|
508
|
+
await validateActionInteraction.send().wait();
|
|
509
509
|
await expect(action.simulate({
|
|
510
510
|
from: sponsorAddress
|
|
511
511
|
})).rejects.toThrow(/unauthorized/);
|
|
@@ -517,7 +517,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
517
517
|
caller: uniswapL2Contract.address,
|
|
518
518
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
519
519
|
}, true);
|
|
520
|
-
await validateActionInteraction.send();
|
|
520
|
+
await validateActionInteraction.send().wait();
|
|
521
521
|
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({
|
|
522
522
|
from: ownerAddress
|
|
523
523
|
})).rejects.toThrow(/unauthorized/);
|
|
@@ -543,7 +543,7 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
543
543
|
authWitnesses: [
|
|
544
544
|
transferToPublicAuhtwit
|
|
545
545
|
]
|
|
546
|
-
});
|
|
546
|
+
}).wait();
|
|
547
547
|
const swapPrivateContent = sha256ToField([
|
|
548
548
|
Buffer.from(toFunctionSelector('swap_private(address,uint256,uint24,address,uint256,bytes32,address)').substring(2), 'hex'),
|
|
549
549
|
wethCrossChainHarness.tokenPortalAddress.toBuffer32(),
|
|
@@ -627,12 +627,12 @@ export const uniswapL1L2TestSuite = (setup, cleanup, expectedForkBlockNumber = 1
|
|
|
627
627
|
caller: uniswapL2Contract.address,
|
|
628
628
|
action: wethCrossChainHarness.l2Token.methods.transfer_in_public(ownerAddress, uniswapL2Contract.address, wethAmountToBridge, nonceForWETHTransferApproval)
|
|
629
629
|
}, true);
|
|
630
|
-
await validateActionInteraction.send();
|
|
630
|
+
await validateActionInteraction.send().wait();
|
|
631
631
|
// Call swap_public on L2
|
|
632
632
|
const secretHashForDepositingSwappedDai = Fr.random();
|
|
633
633
|
const withdrawReceipt = await uniswapL2Contract.methods.swap_public(ownerAddress, wethCrossChainHarness.l2Bridge.address, wethAmountToBridge, daiCrossChainHarness.l2Bridge.address, nonceForWETHTransferApproval, uniswapFeeTier, minimumOutputAmount, ownerAddress, secretHashForDepositingSwappedDai, ownerEthAddress, Fr.ZERO).send({
|
|
634
634
|
from: ownerAddress
|
|
635
|
-
});
|
|
635
|
+
}).wait();
|
|
636
636
|
const swapPublicContent = sha256ToField([
|
|
637
637
|
Buffer.from(toFunctionSelector('swap_public(address,uint256,uint24,address,uint256,bytes32,bytes32,address)').substring(2), 'hex'),
|
|
638
638
|
wethCrossChainHarness.tokenPortalAddress.toBuffer32(),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
3
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
4
4
|
import { SlotNumber } from '@aztec/foundation/branded-types';
|
|
5
|
-
import {
|
|
5
|
+
import { pedersenHash } from '@aztec/foundation/crypto/pedersen';
|
|
6
6
|
/**
|
|
7
7
|
* Contains utilities to compute the "key" for private holdings in the public state.
|
|
8
8
|
*/ export class LendingAccount {
|
|
@@ -16,7 +16,7 @@ import { poseidon2Hash } from '@aztec/foundation/crypto/poseidon';
|
|
|
16
16
|
* Computes the key for the private holdings of this account.
|
|
17
17
|
* @returns Key in public space
|
|
18
18
|
*/ key() {
|
|
19
|
-
return
|
|
19
|
+
return pedersenHash([
|
|
20
20
|
this.address,
|
|
21
21
|
this.secret
|
|
22
22
|
]);
|
|
@@ -33,4 +33,4 @@ export type WalletWrapper = {
|
|
|
33
33
|
cleanup: () => Promise<void>;
|
|
34
34
|
};
|
|
35
35
|
export declare function createWalletAndAztecNodeClient(nodeUrl: string, proverEnabled: boolean, logger: Logger): Promise<WalletWrapper>;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBfdGVzdF93YWxsZXRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3BhcnRhbi9zZXR1cF90ZXN0X3dhbGxldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUE2QixNQUFNLHFCQUFxQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLFNBQVMsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUk3RSxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFL0QsT0FBTyxFQUFFLFVBQVUsRUFBaUUsTUFBTSwyQkFBMkIsQ0FBQztBQU10SCxNQUFNLFdBQVcsWUFBWTtJQUMzQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE1BQU0sRUFBRSxVQUFVLENBQUM7SUFDbkIsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pCLGFBQWEsRUFBRSxhQUFhLENBQUM7SUFDN0IsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDO0lBQy9CLFlBQVksRUFBRSxZQUFZLENBQUM7Q0FDNUI7QUFFRCxNQUFNLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUMxQyxZQUFZLEVBQ1osY0FBYyxHQUFHLGVBQWUsR0FBRyxXQUFXLEdBQUcsbUJBQW1CLENBQ3JFLENBQUM7QUFNRix3QkFBc0IsMkJBQTJCLENBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQ2YsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sR0FDYixPQUFPLENBQUMsWUFBWSxDQUFDLENBeUJ2QjtBQUVELHdCQUFzQixxQ0FBcUMsQ0FDekQsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsVUFBVSxFQUFFLE1BQU0sRUFDbEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMsWUFBWSxDQUFDLENBdUN2QjtBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLFVBQVUsRUFDbEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsTUFBTSxFQUFFLE1BQU0sRUFDZCxxQkFBcUIsU0FBSSxHQUN4QixPQUFPLENBQUMseUJBQXlCLENBQUMsQ0F3QnBDO0FBRUQsd0JBQXNCLDRCQUE0QixDQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUNmLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFDbkIsb0JBQW9CLEVBQUUsTUFBTSxFQUM1QixVQUFVLEVBQUUsTUFBTSxFQUNsQixNQUFNLEVBQUUsTUFBTSxFQUNkLHFCQUFxQixTQUFJLEdBQ3hCLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0ErQ3ZCO0FBNkVELHdCQUFzQixnQkFBZ0IsQ0FBQyxFQUNyQyxNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixjQUFjLEVBQ2QsTUFBTSxFQUNOLGdCQUFnQixFQUNqQixFQUFFO0lBQ0QsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixZQUFZLEVBQUUsWUFBWSxDQUFDO0lBQzNCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixjQUFjLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ3JDLGlCQXFCQTtBQUVELE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsTUFBTSxFQUFFLFVBQVUsQ0FBQztJQUNuQixTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztDQUM5QixDQUFDO0FBRUYsd0JBQXNCLDhCQUE4QixDQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUNmLGFBQWEsRUFBRSxPQUFPLEVBQ3RCLE1BQU0sRUFBRSxNQUFNLEdBQ2IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQXFCeEIifQ==
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,OAAO,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,CAAC,CAqBxB"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { generateSchnorrAccounts } from '@aztec/accounts/testing';
|
|
2
2
|
import { AztecAddress } from '@aztec/aztec.js/addresses';
|
|
3
|
-
import { NO_WAIT } from '@aztec/aztec.js/contracts';
|
|
4
3
|
import { L1FeeJuicePortalManager } from '@aztec/aztec.js/ethereum';
|
|
5
4
|
import { FeeJuicePaymentMethodWithClaim } from '@aztec/aztec.js/fee';
|
|
6
5
|
import { SponsoredFeePaymentMethod } from '@aztec/aztec.js/fee';
|
|
7
6
|
import { Fr } from '@aztec/aztec.js/fields';
|
|
8
|
-
import { createAztecNodeClient
|
|
7
|
+
import { createAztecNodeClient } from '@aztec/aztec.js/node';
|
|
9
8
|
import { createEthereumChain } from '@aztec/ethereum/chain';
|
|
10
9
|
import { createExtendedL1Client } from '@aztec/ethereum/client';
|
|
11
10
|
import { retryUntil } from '@aztec/foundation/retry';
|
|
@@ -47,10 +46,9 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
47
46
|
from: AztecAddress.ZERO,
|
|
48
47
|
fee: {
|
|
49
48
|
paymentMethod
|
|
50
|
-
},
|
|
51
|
-
wait: {
|
|
52
|
-
timeout: 2400
|
|
53
49
|
}
|
|
50
|
+
}).wait({
|
|
51
|
+
timeout: 2400
|
|
54
52
|
});
|
|
55
53
|
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
56
54
|
const deployMethod = await a.getDeployMethod();
|
|
@@ -58,10 +56,9 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
58
56
|
from: AztecAddress.ZERO,
|
|
59
57
|
fee: {
|
|
60
58
|
paymentMethod
|
|
61
|
-
},
|
|
62
|
-
wait: {
|
|
63
|
-
timeout: 2400
|
|
64
59
|
}
|
|
60
|
+
}).wait({
|
|
61
|
+
timeout: 2400
|
|
65
62
|
}); // increase timeout on purpose in order to account for two empty epochs
|
|
66
63
|
logger.info(`Account deployed at ${a.address}`);
|
|
67
64
|
}));
|
|
@@ -79,52 +76,33 @@ export async function deploySponsoredTestAccountsWithTokens(wallet, aztecNode, m
|
|
|
79
76
|
recipientAddress: recipientAccount.address
|
|
80
77
|
};
|
|
81
78
|
}
|
|
82
|
-
async function deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, accountLabel) {
|
|
83
|
-
const deployMethod = await account.getDeployMethod();
|
|
84
|
-
let txHash;
|
|
85
|
-
try {
|
|
86
|
-
txHash = await deployMethod.send({
|
|
87
|
-
from: AztecAddress.ZERO,
|
|
88
|
-
fee: {
|
|
89
|
-
paymentMethod
|
|
90
|
-
},
|
|
91
|
-
wait: NO_WAIT
|
|
92
|
-
});
|
|
93
|
-
await waitForTx(aztecNode, txHash, {
|
|
94
|
-
timeout: 2400
|
|
95
|
-
});
|
|
96
|
-
logger.info(`${accountLabel} deployed at ${account.address}`);
|
|
97
|
-
} catch (error) {
|
|
98
|
-
const blockNumber = await aztecNode.getBlockNumber();
|
|
99
|
-
let receipt;
|
|
100
|
-
try {
|
|
101
|
-
receipt = await aztecNode.getTxReceipt(txHash);
|
|
102
|
-
} catch {
|
|
103
|
-
receipt = 'unavailable';
|
|
104
|
-
}
|
|
105
|
-
logger.error(`${accountLabel} deployment failed`, {
|
|
106
|
-
txHash: txHash.toString(),
|
|
107
|
-
receipt: JSON.stringify(receipt),
|
|
108
|
-
currentBlockNumber: blockNumber,
|
|
109
|
-
error: String(error)
|
|
110
|
-
});
|
|
111
|
-
throw error;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async function deployAccountsInBatches(accounts, paymentMethod, aztecNode, logger, labelPrefix, batchSize = 2) {
|
|
115
|
-
for(let i = 0; i < accounts.length; i += batchSize){
|
|
116
|
-
const batch = accounts.slice(i, i + batchSize);
|
|
117
|
-
await Promise.all(batch.map((account, idx)=>deployAccountWithDiagnostics(account, paymentMethod, aztecNode, logger, `${labelPrefix}${i + idx + 1}`)));
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
79
|
export async function deploySponsoredTestAccounts(wallet, aztecNode, logger, numberOfFundedWallets = 1) {
|
|
121
80
|
const [recipient, ...funded] = await generateSchnorrAccounts(numberOfFundedWallets + 1);
|
|
122
81
|
const recipientAccount = await wallet.createSchnorrAccount(recipient.secret, recipient.salt);
|
|
123
82
|
const fundedAccounts = await Promise.all(funded.map((a)=>wallet.createSchnorrAccount(a.secret, a.salt)));
|
|
124
83
|
await registerSponsoredFPC(wallet);
|
|
125
84
|
const paymentMethod = new SponsoredFeePaymentMethod(await getSponsoredFPCAddress());
|
|
126
|
-
|
|
127
|
-
await
|
|
85
|
+
const recipientDeployMethod = await recipientAccount.getDeployMethod();
|
|
86
|
+
await recipientDeployMethod.send({
|
|
87
|
+
from: AztecAddress.ZERO,
|
|
88
|
+
fee: {
|
|
89
|
+
paymentMethod
|
|
90
|
+
}
|
|
91
|
+
}).wait({
|
|
92
|
+
timeout: 2400
|
|
93
|
+
});
|
|
94
|
+
await Promise.all(fundedAccounts.map(async (a)=>{
|
|
95
|
+
const deployMethod = await a.getDeployMethod();
|
|
96
|
+
await deployMethod.send({
|
|
97
|
+
from: AztecAddress.ZERO,
|
|
98
|
+
fee: {
|
|
99
|
+
paymentMethod
|
|
100
|
+
}
|
|
101
|
+
}).wait({
|
|
102
|
+
timeout: 2400
|
|
103
|
+
}); // increase timeout on purpose in order to account for two empty epochs
|
|
104
|
+
logger.info(`Account deployed at ${a.address}`);
|
|
105
|
+
}));
|
|
128
106
|
return {
|
|
129
107
|
aztecNode,
|
|
130
108
|
wallet,
|
|
@@ -151,7 +129,7 @@ export async function deployTestAccountsWithTokens(nodeUrl, l1RpcUrls, mnemonicO
|
|
|
151
129
|
fee: {
|
|
152
130
|
paymentMethod
|
|
153
131
|
}
|
|
154
|
-
});
|
|
132
|
+
}).wait();
|
|
155
133
|
logger.info(`Account deployed at ${a.address}`);
|
|
156
134
|
}));
|
|
157
135
|
const tokenAdmin = fundedAccounts[0];
|
|
@@ -197,15 +175,13 @@ async function advanceL2Block(aztecNode, nodeAdmin) {
|
|
|
197
175
|
}
|
|
198
176
|
async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMethod, logger) {
|
|
199
177
|
logger.verbose(`Deploying TokenContract...`);
|
|
200
|
-
const
|
|
178
|
+
const tokenContract = await TokenContract.deploy(wallet, admin, TOKEN_NAME, TOKEN_SYMBOL, TOKEN_DECIMALS).send({
|
|
201
179
|
from: admin,
|
|
202
180
|
fee: {
|
|
203
181
|
paymentMethod
|
|
204
|
-
},
|
|
205
|
-
wait: {
|
|
206
|
-
timeout: 600,
|
|
207
|
-
returnReceipt: true
|
|
208
182
|
}
|
|
183
|
+
}).deployed({
|
|
184
|
+
timeout: 600
|
|
209
185
|
});
|
|
210
186
|
const tokenAddress = tokenContract.address;
|
|
211
187
|
logger.verbose(`Minting ${mintAmount} public assets to the ${accounts.length} accounts...`);
|
|
@@ -213,10 +189,9 @@ async function deployTokenAndMint(wallet, accounts, admin, mintAmount, paymentMe
|
|
|
213
189
|
from: admin,
|
|
214
190
|
fee: {
|
|
215
191
|
paymentMethod
|
|
216
|
-
},
|
|
217
|
-
wait: {
|
|
218
|
-
timeout: 600
|
|
219
192
|
}
|
|
193
|
+
}).wait({
|
|
194
|
+
timeout: 600
|
|
220
195
|
})));
|
|
221
196
|
logger.verbose(`Minting complete.`);
|
|
222
197
|
return tokenAddress;
|
|
@@ -236,10 +211,8 @@ export async function performTransfers({ wallet, testAccounts, rounds, transferA
|
|
|
236
211
|
});
|
|
237
212
|
});
|
|
238
213
|
const provenTxs = await Promise.all(txs);
|
|
239
|
-
await Promise.all(provenTxs.map((t)=>t.send({
|
|
240
|
-
|
|
241
|
-
timeout: 600
|
|
242
|
-
}
|
|
214
|
+
await Promise.all(provenTxs.map((t)=>t.send().wait({
|
|
215
|
+
timeout: 600
|
|
243
216
|
})));
|
|
244
217
|
logger.info(`Completed round ${i + 1} / ${rounds}`);
|
|
245
218
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type { AztecNode } from '@aztec/aztec.js/node';
|
|
2
|
-
import type { Logger } from '@aztec/foundation/log';
|
|
3
2
|
import type { TopicType } from '@aztec/stdlib/p2p';
|
|
4
3
|
import { Tx, type TxReceipt } from '@aztec/stdlib/tx';
|
|
5
4
|
export type TxInclusionData = {
|
|
@@ -15,7 +14,6 @@ export type TxInclusionData = {
|
|
|
15
14
|
};
|
|
16
15
|
export declare class TxInclusionMetrics {
|
|
17
16
|
private aztecNode;
|
|
18
|
-
private logger?;
|
|
19
17
|
private data;
|
|
20
18
|
private groups;
|
|
21
19
|
private blocks;
|
|
@@ -25,7 +23,7 @@ export declare class TxInclusionMetrics {
|
|
|
25
23
|
private reqRespStats;
|
|
26
24
|
private peerStats;
|
|
27
25
|
private mempoolMinedDelay;
|
|
28
|
-
constructor(aztecNode: AztecNode
|
|
26
|
+
constructor(aztecNode: AztecNode);
|
|
29
27
|
recordSentTx(tx: Tx, group: string): void;
|
|
30
28
|
recordMinedTx(txReceipt: TxReceipt): Promise<void>;
|
|
31
29
|
inclusionTimeInSeconds(group: string): {
|
|
@@ -51,4 +49,4 @@ export declare class TxInclusionMetrics {
|
|
|
51
49
|
extra?: string;
|
|
52
50
|
}>;
|
|
53
51
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfbWV0cmljcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NwYXJ0YW4vdHhfbWV0cmljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV0RCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEtBQUssU0FBUyxFQUFZLE1BQU0sa0JBQWtCLENBQUM7QUFJaEUsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QixNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsTUFBTSxFQUFFLE1BQU0sQ0FBQztJQUNmLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsVUFBVSxFQUFFLE1BQU0sQ0FBQztJQUNuQixXQUFXLEVBQUUsTUFBTSxDQUFDO0lBQ3BCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYscUJBQWEsa0JBQWtCO0lBZWpCLE9BQU8sQ0FBQyxTQUFTO0lBZDdCLE9BQU8sQ0FBQyxJQUFJLENBQXNDO0lBQ2xELE9BQU8sQ0FBQyxNQUFNLENBQXFCO0lBQ25DLE9BQU8sQ0FBQyxNQUFNLENBQXNEO0lBRXBFLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBZ0U7SUFFL0YsT0FBTyxDQUFDLGtCQUFrQixDQUEyQztJQUNyRSxPQUFPLENBQUMsaUJBQWlCLENBQXlFO0lBQ2xHLE9BQU8sQ0FBQyxZQUFZLENBQXVFO0lBQzNGLE9BQU8sQ0FBQyxTQUFTLENBQWlHO0lBQ2xILE9BQU8sQ0FBQyxpQkFBaUIsQ0FFWDtJQUVkLFlBQW9CLFNBQVMsRUFBRSxTQUFTLEVBQUk7SUFFNUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBZ0J4QztJQUVLLGFBQWEsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FvQnZEO0lBRU0sc0JBQXNCLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRztRQUM1QyxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUNkLEdBQUcsRUFBRSxNQUFNLENBQUM7UUFDWixJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ2IsR0FBRyxFQUFFLE1BQU0sQ0FBQztRQUNaLE1BQU0sRUFBRSxNQUFNLENBQUM7UUFDZixHQUFHLEVBQUUsTUFBTSxDQUFDO0tBQ2IsQ0ErQkE7SUFFTSxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sR0FBRyxJQUFJLENBRWxGO0lBRU0sd0JBQXdCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FFOUQ7SUFFTSx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBRTNGO0lBRU0sa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUVwRjtJQUVNLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUUzRztJQUVNLHVCQUF1QixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLEdBQUcsSUFBSSxDQUVqSDtJQUVELDJCQUEyQixJQUFJLEtBQUssQ0FBQztRQUFFLElBQUksRUFBRSxNQUFNLENBQUM7UUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQztRQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQTtLQUFFLENBQUMsQ0F3RmxIO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_metrics.d.ts","sourceRoot":"","sources":["../../src/spartan/tx_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,KAAK,SAAS,EAAY,MAAM,kBAAkB,CAAC;AAIhE,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qBAAa,kBAAkB;IAejB,OAAO,CAAC,SAAS;IAd7B,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAsD;IAEpE,OAAO,CAAC,uBAAuB,CAAgE;IAE/F,OAAO,CAAC,kBAAkB,CAA2C;IACrE,OAAO,CAAC,iBAAiB,CAAyE;IAClG,OAAO,CAAC,YAAY,CAAuE;IAC3F,OAAO,CAAC,SAAS,CAAiG;IAClH,OAAO,CAAC,iBAAiB,CAEX;IAEd,YAAoB,SAAS,EAAE,SAAS,EAAI;IAE5C,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAgBxC;IAEK,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvD;IAEM,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG;QAC5C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;KACb,CA+BA;IAEM,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAElF;IAEM,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAE9D;IAEM,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAE3F;IAEM,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAEpF;IAEM,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAE3G;IAEM,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAEjH;IAED,2BAA2B,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAwFlH;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { TxStatus } from '@aztec/stdlib/tx';
|
|
1
2
|
import { createHistogram } from 'perf_hooks';
|
|
2
3
|
export class TxInclusionMetrics {
|
|
3
4
|
aztecNode;
|
|
4
|
-
logger;
|
|
5
5
|
data;
|
|
6
6
|
groups;
|
|
7
7
|
blocks;
|
|
@@ -11,9 +11,8 @@ export class TxInclusionMetrics {
|
|
|
11
11
|
reqRespStats;
|
|
12
12
|
peerStats;
|
|
13
13
|
mempoolMinedDelay;
|
|
14
|
-
constructor(aztecNode
|
|
14
|
+
constructor(aztecNode){
|
|
15
15
|
this.aztecNode = aztecNode;
|
|
16
|
-
this.logger = logger;
|
|
17
16
|
this.data = new Map();
|
|
18
17
|
this.groups = new Set();
|
|
19
18
|
this.blocks = new Map();
|
|
@@ -22,12 +21,6 @@ export class TxInclusionMetrics {
|
|
|
22
21
|
recordSentTx(tx, group) {
|
|
23
22
|
const txHash = tx.getTxHash().toString();
|
|
24
23
|
const priorityFees = tx.getGasSettings().maxPriorityFeesPerGas;
|
|
25
|
-
if (this.data.has(txHash)) {
|
|
26
|
-
this.logger?.debug(`Overwriting tx inclusion data for ${txHash}`, {
|
|
27
|
-
txHash,
|
|
28
|
-
group
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
24
|
this.data.set(txHash, {
|
|
32
25
|
txHash,
|
|
33
26
|
sentAt: Math.trunc(Date.now() / 1000),
|
|
@@ -42,13 +35,8 @@ export class TxInclusionMetrics {
|
|
|
42
35
|
this.groups.add(group);
|
|
43
36
|
}
|
|
44
37
|
async recordMinedTx(txReceipt) {
|
|
45
|
-
const { txHash, blockNumber } = txReceipt;
|
|
46
|
-
if (
|
|
47
|
-
this.logger?.debug('Skipping mined tx record due to receipt status', {
|
|
48
|
-
txHash: txHash.toString(),
|
|
49
|
-
status: txReceipt.status,
|
|
50
|
-
blockNumber
|
|
51
|
-
});
|
|
38
|
+
const { status, txHash, blockNumber } = txReceipt;
|
|
39
|
+
if (status !== TxStatus.SUCCESS || !blockNumber) {
|
|
52
40
|
return;
|
|
53
41
|
}
|
|
54
42
|
if (!this.blocks.has(blockNumber)) {
|
|
@@ -56,21 +44,9 @@ export class TxInclusionMetrics {
|
|
|
56
44
|
}
|
|
57
45
|
const block = await this.blocks.get(blockNumber);
|
|
58
46
|
if (!block) {
|
|
59
|
-
this.logger?.warn('Failed to load block for mined tx receipt', {
|
|
60
|
-
txHash: txHash.toString(),
|
|
61
|
-
blockNumber
|
|
62
|
-
});
|
|
63
47
|
return;
|
|
64
48
|
}
|
|
65
49
|
const data = this.data.get(txHash.toString());
|
|
66
|
-
if (!data) {
|
|
67
|
-
const message = `Missing sent tx record for mined tx ${txHash.toString()}`;
|
|
68
|
-
this.logger?.warn(message, {
|
|
69
|
-
txHash: txHash.toString(),
|
|
70
|
-
blockNumber
|
|
71
|
-
});
|
|
72
|
-
throw new Error(message);
|
|
73
|
-
}
|
|
74
50
|
data.blocknumber = blockNumber;
|
|
75
51
|
data.minedAt = Number(block.header.globalVariables.timestamp);
|
|
76
52
|
data.attestedAt = -1;
|