@aztec/aztec.js 0.73.0 → 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dest/account/contract.js +5 -3
- package/dest/account/index.js +8 -2
- package/dest/account/interface.js +4 -3
- package/dest/account/wallet.js +3 -2
- package/dest/account_manager/deploy_account_method.js +22 -25
- package/dest/account_manager/deploy_account_sent_tx.js +16 -17
- package/dest/account_manager/index.js +67 -78
- package/dest/api/abi.js +0 -1
- package/dest/api/account.js +0 -1
- package/dest/api/addresses.js +0 -1
- package/dest/api/cheat_codes.js +25 -0
- package/dest/api/deployment.js +0 -1
- package/dest/api/entrypoint.js +0 -1
- package/dest/api/eth_address.js +0 -1
- package/dest/api/ethereum/anvil_test_watcher.js +113 -0
- package/dest/api/ethereum/chain_monitor.js +69 -0
- package/dest/api/ethereum/cheat_codes.js +142 -0
- package/dest/api/ethereum/index.js +6 -0
- package/dest/api/ethereum/l1_contracts.js +13 -0
- package/dest/api/ethereum/portal_manager.js +284 -0
- package/dest/api/fee.js +0 -1
- package/dest/api/fields.js +0 -1
- package/dest/api/interfaces/pxe.js +1 -2
- package/dest/api/log.js +1 -0
- package/dest/api/log_id.js +0 -1
- package/dest/api/tx_hash.js +0 -1
- package/dest/api/wallet.js +1 -2
- package/dest/contract/base_contract_interaction.js +75 -52
- package/dest/contract/batch_call.js +57 -39
- package/dest/contract/checker.js +29 -20
- package/dest/contract/contract.js +22 -27
- package/dest/contract/contract_base.js +21 -30
- package/dest/contract/contract_function_interaction.js +48 -48
- package/dest/contract/deploy_method.js +99 -84
- package/dest/contract/deploy_proven_tx.js +8 -11
- package/dest/contract/deploy_sent_tx.js +19 -22
- package/dest/contract/get_gas_limits.js +2 -4
- package/dest/contract/index.js +4 -6
- package/dest/contract/proven_tx.js +7 -10
- package/dest/contract/sent_tx.js +32 -34
- package/dest/contract/unsafe_contract.js +2 -10
- package/dest/deployment/broadcast_function.js +28 -26
- package/dest/deployment/contract_deployer.js +15 -14
- package/dest/deployment/deploy_instance.js +1 -3
- package/dest/deployment/index.js +0 -1
- package/dest/deployment/protocol_contracts.js +2 -5
- package/dest/deployment/register_class.js +8 -8
- package/dest/entrypoint/default_entrypoint.js +8 -5
- package/dest/entrypoint/default_multi_call_entrypoint.js +66 -23
- package/dest/entrypoint/entrypoint.js +0 -1
- package/dest/entrypoint/payload.js +73 -82
- package/dest/fee/fee_juice_payment_method.js +3 -4
- package/dest/fee/fee_juice_payment_method_with_claim.js +11 -14
- package/dest/fee/fee_payment_method.js +3 -2
- package/dest/fee/no_fee_payment_method.js +2 -4
- package/dest/fee/private_fee_payment_method.js +36 -34
- package/dest/fee/public_fee_payment_method.js +34 -31
- package/dest/index.js +8 -9
- package/dest/rpc_clients/index.js +0 -1
- package/dest/rpc_clients/node/index.js +30 -16
- package/dest/rpc_clients/pxe_client.js +5 -3
- package/dest/utils/abi_types.js +1 -2
- package/dest/utils/authwit.js +15 -15
- package/dest/utils/aztec_cheatcodes.js +62 -0
- package/dest/utils/field_compressed_string.js +2 -4
- package/dest/utils/index.js +5 -12
- package/dest/utils/node.js +4 -5
- package/dest/utils/pub_key.js +1 -3
- package/dest/utils/pxe.js +3 -5
- package/dest/wallet/account_wallet.js +118 -81
- package/dest/wallet/account_wallet_with_private_key.js +9 -15
- package/dest/wallet/base_wallet.js +7 -5
- package/dest/wallet/index.js +2 -4
- package/dest/wallet/signerless_wallet.js +4 -6
- package/package.json +14 -17
- package/src/api/account.ts +7 -1
- package/src/api/cheat_codes.ts +35 -0
- package/src/{utils → api/ethereum}/anvil_test_watcher.ts +2 -1
- package/src/{utils → api/ethereum}/cheat_codes.ts +6 -109
- package/src/api/ethereum/index.ts +15 -0
- package/src/{utils → api/ethereum}/l1_contracts.ts +1 -1
- package/src/{utils → api/ethereum}/portal_manager.ts +4 -9
- package/src/api/interfaces/pxe.ts +1 -1
- package/src/api/log.ts +1 -0
- package/src/api/wallet.ts +1 -1
- package/src/contract/contract_function_interaction.ts +1 -1
- package/src/contract/index.ts +2 -2
- package/src/entrypoint/default_multi_call_entrypoint.ts +2 -1
- package/src/entrypoint/entrypoint.ts +1 -1
- package/src/fee/fee_juice_payment_method_with_claim.ts +1 -1
- package/src/index.ts +7 -35
- package/src/utils/aztec_cheatcodes.ts +75 -0
- package/src/utils/index.ts +19 -11
- package/src/utils/node.ts +2 -0
- package/src/wallet/index.ts +1 -1
- package/dest/account/contract.d.ts +0 -33
- package/dest/account/contract.d.ts.map +0 -1
- package/dest/account/index.d.ts +0 -15
- package/dest/account/index.d.ts.map +0 -1
- package/dest/account/interface.d.ts +0 -30
- package/dest/account/interface.d.ts.map +0 -1
- package/dest/account/wallet.d.ts +0 -10
- package/dest/account/wallet.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_method.d.ts +0 -15
- package/dest/account_manager/deploy_account_method.d.ts.map +0 -1
- package/dest/account_manager/deploy_account_sent_tx.d.ts +0 -29
- package/dest/account_manager/deploy_account_sent_tx.d.ts.map +0 -1
- package/dest/account_manager/index.d.ts +0 -99
- package/dest/account_manager/index.d.ts.map +0 -1
- package/dest/api/abi.d.ts +0 -4
- package/dest/api/abi.d.ts.map +0 -1
- package/dest/api/account.d.ts +0 -4
- package/dest/api/account.d.ts.map +0 -1
- package/dest/api/addresses.d.ts +0 -3
- package/dest/api/addresses.d.ts.map +0 -1
- package/dest/api/deployment.d.ts +0 -4
- package/dest/api/deployment.d.ts.map +0 -1
- package/dest/api/entrypoint.d.ts +0 -2
- package/dest/api/entrypoint.d.ts.map +0 -1
- package/dest/api/eth_address.d.ts +0 -2
- package/dest/api/eth_address.d.ts.map +0 -1
- package/dest/api/ethereum.d.ts +0 -3
- package/dest/api/ethereum.d.ts.map +0 -1
- package/dest/api/ethereum.js +0 -3
- package/dest/api/fee.d.ts +0 -7
- package/dest/api/fee.d.ts.map +0 -1
- package/dest/api/fields.d.ts +0 -2
- package/dest/api/fields.d.ts.map +0 -1
- package/dest/api/interfaces/pxe.d.ts +0 -2
- package/dest/api/interfaces/pxe.d.ts.map +0 -1
- package/dest/api/log_id.d.ts +0 -2
- package/dest/api/log_id.d.ts.map +0 -1
- package/dest/api/tx_hash.d.ts +0 -2
- package/dest/api/tx_hash.d.ts.map +0 -1
- package/dest/api/wallet.d.ts +0 -2
- package/dest/api/wallet.d.ts.map +0 -1
- package/dest/barretenberg-threads.wasm.gz +0 -0
- package/dest/barretenberg.wasm.gz +0 -0
- package/dest/contract/base_contract_interaction.d.ts +0 -82
- package/dest/contract/base_contract_interaction.d.ts.map +0 -1
- package/dest/contract/batch_call.d.ts +0 -27
- package/dest/contract/batch_call.d.ts.map +0 -1
- package/dest/contract/checker.d.ts +0 -11
- package/dest/contract/checker.d.ts.map +0 -1
- package/dest/contract/contract.d.ts +0 -41
- package/dest/contract/contract.d.ts.map +0 -1
- package/dest/contract/contract_base.d.ts +0 -61
- package/dest/contract/contract_base.d.ts.map +0 -1
- package/dest/contract/contract_function_interaction.d.ts +0 -67
- package/dest/contract/contract_function_interaction.d.ts.map +0 -1
- package/dest/contract/deploy_method.d.ts +0 -110
- package/dest/contract/deploy_method.d.ts.map +0 -1
- package/dest/contract/deploy_proven_tx.d.ts +0 -19
- package/dest/contract/deploy_proven_tx.d.ts.map +0 -1
- package/dest/contract/deploy_sent_tx.d.ts +0 -43
- package/dest/contract/deploy_sent_tx.d.ts.map +0 -1
- package/dest/contract/get_gas_limits.d.ts +0 -18
- package/dest/contract/get_gas_limits.d.ts.map +0 -1
- package/dest/contract/index.d.ts +0 -45
- package/dest/contract/index.d.ts.map +0 -1
- package/dest/contract/proven_tx.d.ts +0 -16
- package/dest/contract/proven_tx.d.ts.map +0 -1
- package/dest/contract/sent_tx.d.ts +0 -60
- package/dest/contract/sent_tx.d.ts.map +0 -1
- package/dest/contract/unsafe_contract.d.ts +0 -15
- package/dest/contract/unsafe_contract.d.ts.map +0 -1
- package/dest/deployment/broadcast_function.d.ts +0 -24
- package/dest/deployment/broadcast_function.d.ts.map +0 -1
- package/dest/deployment/contract_deployer.d.ts +0 -27
- package/dest/deployment/contract_deployer.d.ts.map +0 -1
- package/dest/deployment/deploy_instance.d.ts +0 -10
- package/dest/deployment/deploy_instance.d.ts.map +0 -1
- package/dest/deployment/index.d.ts +0 -2
- package/dest/deployment/index.d.ts.map +0 -1
- package/dest/deployment/protocol_contracts.d.ts +0 -7
- package/dest/deployment/protocol_contracts.d.ts.map +0 -1
- package/dest/deployment/register_class.d.ts +0 -6
- package/dest/deployment/register_class.d.ts.map +0 -1
- package/dest/entrypoint/default_entrypoint.d.ts +0 -12
- package/dest/entrypoint/default_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts +0 -15
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/entrypoint.d.ts +0 -31
- package/dest/entrypoint/entrypoint.d.ts.map +0 -1
- package/dest/entrypoint/payload.d.ts +0 -125
- package/dest/entrypoint/payload.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method.d.ts +0 -14
- package/dest/fee/fee_juice_payment_method.d.ts.map +0 -1
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts +0 -17
- package/dest/fee/fee_juice_payment_method_with_claim.d.ts.map +0 -1
- package/dest/fee/fee_payment_method.d.ts +0 -22
- package/dest/fee/fee_payment_method.d.ts.map +0 -1
- package/dest/fee/no_fee_payment_method.d.ts +0 -13
- package/dest/fee/no_fee_payment_method.d.ts.map +0 -1
- package/dest/fee/private_fee_payment_method.d.ts +0 -51
- package/dest/fee/private_fee_payment_method.d.ts.map +0 -1
- package/dest/fee/public_fee_payment_method.d.ts +0 -41
- package/dest/fee/public_fee_payment_method.d.ts.map +0 -1
- package/dest/index.d.ts +0 -51
- package/dest/index.d.ts.map +0 -1
- package/dest/main.js +0 -2
- package/dest/main.js.LICENSE.txt +0 -25
- package/dest/rpc_clients/index.d.ts +0 -3
- package/dest/rpc_clients/index.d.ts.map +0 -1
- package/dest/rpc_clients/node/index.d.ts +0 -11
- package/dest/rpc_clients/node/index.d.ts.map +0 -1
- package/dest/rpc_clients/pxe_client.d.ts +0 -9
- package/dest/rpc_clients/pxe_client.d.ts.map +0 -1
- package/dest/utils/abi_types.d.ts +0 -26
- package/dest/utils/abi_types.d.ts.map +0 -1
- package/dest/utils/anvil_test_watcher.d.ts +0 -28
- package/dest/utils/anvil_test_watcher.d.ts.map +0 -1
- package/dest/utils/anvil_test_watcher.js +0 -108
- package/dest/utils/authwit.d.ts +0 -59
- package/dest/utils/authwit.d.ts.map +0 -1
- package/dest/utils/chain_monitor.d.ts +0 -21
- package/dest/utils/chain_monitor.d.ts.map +0 -1
- package/dest/utils/chain_monitor.js +0 -58
- package/dest/utils/cheat_codes.d.ts +0 -137
- package/dest/utils/cheat_codes.d.ts.map +0 -1
- package/dest/utils/cheat_codes.js +0 -225
- package/dest/utils/field_compressed_string.d.ts +0 -17
- package/dest/utils/field_compressed_string.d.ts.map +0 -1
- package/dest/utils/index.d.ts +0 -12
- package/dest/utils/index.d.ts.map +0 -1
- package/dest/utils/l1_contracts.d.ts +0 -3
- package/dest/utils/l1_contracts.d.ts.map +0 -1
- package/dest/utils/l1_contracts.js +0 -15
- package/dest/utils/node.d.ts +0 -4
- package/dest/utils/node.d.ts.map +0 -1
- package/dest/utils/portal_manager.d.ts +0 -130
- package/dest/utils/portal_manager.d.ts.map +0 -1
- package/dest/utils/portal_manager.js +0 -265
- package/dest/utils/pub_key.d.ts +0 -8
- package/dest/utils/pub_key.d.ts.map +0 -1
- package/dest/utils/pxe.d.ts +0 -4
- package/dest/utils/pxe.d.ts.map +0 -1
- package/dest/wallet/account_wallet.d.ts +0 -73
- package/dest/wallet/account_wallet.d.ts.map +0 -1
- package/dest/wallet/account_wallet_with_private_key.d.ts +0 -26
- package/dest/wallet/account_wallet_with_private_key.d.ts.map +0 -1
- package/dest/wallet/base_wallet.d.ts +0 -64
- package/dest/wallet/base_wallet.d.ts.map +0 -1
- package/dest/wallet/index.d.ts +0 -17
- package/dest/wallet/index.d.ts.map +0 -1
- package/dest/wallet/signerless_wallet.d.ts +0 -22
- package/dest/wallet/signerless_wallet.d.ts.map +0 -1
- package/src/api/ethereum.ts +0 -2
- /package/src/{utils → api/ethereum}/chain_monitor.ts +0 -0
|
@@ -1,225 +0,0 @@
|
|
|
1
|
-
import { EthAddress, Fr } from '@aztec/circuits.js';
|
|
2
|
-
import { deriveStorageSlotInMap } from '@aztec/circuits.js/hash';
|
|
3
|
-
import { EthCheatCodes } from '@aztec/ethereum/eth-cheatcodes';
|
|
4
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
5
|
-
import { RollupAbi } from '@aztec/l1-artifacts';
|
|
6
|
-
import { createWalletClient, getContract, http, publicActions, } from 'viem';
|
|
7
|
-
import { foundry } from 'viem/chains';
|
|
8
|
-
/**
|
|
9
|
-
* A class that provides utility functions for interacting with the chain.
|
|
10
|
-
*/
|
|
11
|
-
export class CheatCodes {
|
|
12
|
-
constructor(
|
|
13
|
-
/** Cheat codes for L1.*/
|
|
14
|
-
eth,
|
|
15
|
-
/** Cheat codes for Aztec L2. */
|
|
16
|
-
aztec,
|
|
17
|
-
/** Cheat codes for the Aztec Rollup contract on L1. */
|
|
18
|
-
rollup) {
|
|
19
|
-
this.eth = eth;
|
|
20
|
-
this.aztec = aztec;
|
|
21
|
-
this.rollup = rollup;
|
|
22
|
-
}
|
|
23
|
-
static async create(rpcUrl, pxe) {
|
|
24
|
-
const ethCheatCodes = new EthCheatCodes(rpcUrl);
|
|
25
|
-
const aztecCheatCodes = new AztecCheatCodes(pxe, ethCheatCodes);
|
|
26
|
-
const rollupCheatCodes = new RollupCheatCodes(ethCheatCodes, await pxe.getNodeInfo().then(n => n.l1ContractAddresses));
|
|
27
|
-
return new CheatCodes(ethCheatCodes, aztecCheatCodes, rollupCheatCodes);
|
|
28
|
-
}
|
|
29
|
-
static createRollup(rpcUrl, addresses) {
|
|
30
|
-
const ethCheatCodes = new EthCheatCodes(rpcUrl);
|
|
31
|
-
return new RollupCheatCodes(ethCheatCodes, addresses);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/** Cheat codes for the L1 rollup contract. */
|
|
35
|
-
export class RollupCheatCodes {
|
|
36
|
-
constructor(ethCheatCodes, addresses) {
|
|
37
|
-
this.ethCheatCodes = ethCheatCodes;
|
|
38
|
-
this.logger = createLogger('aztecjs:cheat_codes');
|
|
39
|
-
this.client = createWalletClient({ chain: foundry, transport: http(ethCheatCodes.rpcUrl) }).extend(publicActions);
|
|
40
|
-
this.rollup = getContract({
|
|
41
|
-
abi: RollupAbi,
|
|
42
|
-
address: addresses.rollupAddress.toString(),
|
|
43
|
-
client: this.client,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/** Returns the current slot */
|
|
47
|
-
async getSlot() {
|
|
48
|
-
const ts = BigInt((await this.client.getBlock()).timestamp);
|
|
49
|
-
return await this.rollup.read.getSlotAt([ts]);
|
|
50
|
-
}
|
|
51
|
-
/** Returns the current epoch */
|
|
52
|
-
async getEpoch() {
|
|
53
|
-
const slotNumber = await this.getSlot();
|
|
54
|
-
return await this.rollup.read.getEpochAtSlot([slotNumber]);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Returns the pending and proven chain tips
|
|
58
|
-
* @returns The pending and proven chain tips
|
|
59
|
-
*/
|
|
60
|
-
async getTips() {
|
|
61
|
-
const res = await this.rollup.read.getTips();
|
|
62
|
-
return {
|
|
63
|
-
pending: res.pendingBlockNumber,
|
|
64
|
-
proven: res.provenBlockNumber,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
/** Fetches the epoch and slot duration config from the rollup contract */
|
|
68
|
-
async getConfig() {
|
|
69
|
-
const [epochDuration, slotDuration] = await Promise.all([
|
|
70
|
-
this.rollup.read.EPOCH_DURATION(),
|
|
71
|
-
this.rollup.read.SLOT_DURATION(),
|
|
72
|
-
]);
|
|
73
|
-
return { epochDuration, slotDuration };
|
|
74
|
-
}
|
|
75
|
-
/** Warps time in L1 until the next epoch */
|
|
76
|
-
async advanceToNextEpoch() {
|
|
77
|
-
const slot = await this.getSlot();
|
|
78
|
-
const { epochDuration, slotDuration } = await this.getConfig();
|
|
79
|
-
const slotsUntilNextEpoch = epochDuration - (slot % epochDuration) + 1n;
|
|
80
|
-
const timeToNextEpoch = slotsUntilNextEpoch * slotDuration;
|
|
81
|
-
const l1Timestamp = BigInt((await this.client.getBlock()).timestamp);
|
|
82
|
-
await this.ethCheatCodes.warp(Number(l1Timestamp + timeToNextEpoch), true);
|
|
83
|
-
this.logger.warn(`Advanced to next epoch`);
|
|
84
|
-
}
|
|
85
|
-
/** Warps time in L1 until the beginning of the next slot. */
|
|
86
|
-
async advanceToNextSlot() {
|
|
87
|
-
const currentSlot = await this.getSlot();
|
|
88
|
-
const timestamp = await this.rollup.read.getTimestampForSlot([currentSlot + 1n]);
|
|
89
|
-
await this.ethCheatCodes.warp(Number(timestamp));
|
|
90
|
-
this.logger.warn(`Advanced to slot ${currentSlot + 1n}`);
|
|
91
|
-
return [timestamp, currentSlot + 1n];
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Warps time in L1 equivalent to however many slots.
|
|
95
|
-
* @param howMany - The number of slots to advance.
|
|
96
|
-
*/
|
|
97
|
-
async advanceSlots(howMany) {
|
|
98
|
-
const l1Timestamp = (await this.client.getBlock()).timestamp;
|
|
99
|
-
const slotDuration = await this.rollup.read.SLOT_DURATION();
|
|
100
|
-
const timeToWarp = BigInt(howMany) * slotDuration;
|
|
101
|
-
await this.ethCheatCodes.warp(l1Timestamp + timeToWarp, true);
|
|
102
|
-
const [slot, epoch] = await Promise.all([this.getSlot(), this.getEpoch()]);
|
|
103
|
-
this.logger.warn(`Advanced ${howMany} slots up to slot ${slot} in epoch ${epoch}`);
|
|
104
|
-
}
|
|
105
|
-
/** Returns the current proof claim (if any) */
|
|
106
|
-
async getProofClaim() {
|
|
107
|
-
// REFACTOR: This code is duplicated from l1-publisher
|
|
108
|
-
const { epochToProve, basisPointFee, bondAmount, bondProvider: bondProviderHex, proposerClaimant: proposerClaimantHex, } = await this.rollup.read.getProofClaim();
|
|
109
|
-
const bondProvider = EthAddress.fromString(bondProviderHex);
|
|
110
|
-
const proposerClaimant = EthAddress.fromString(proposerClaimantHex);
|
|
111
|
-
if (bondProvider.isZero() && proposerClaimant.isZero() && epochToProve === 0n) {
|
|
112
|
-
return undefined;
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
epochToProve,
|
|
116
|
-
basisPointFee,
|
|
117
|
-
bondAmount,
|
|
118
|
-
bondProvider,
|
|
119
|
-
proposerClaimant,
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Marks the specified block (or latest if none) as proven
|
|
124
|
-
* @param maybeBlockNumber - The block number to mark as proven (defaults to latest pending)
|
|
125
|
-
*/
|
|
126
|
-
async markAsProven(maybeBlockNumber) {
|
|
127
|
-
const blockNumber = maybeBlockNumber
|
|
128
|
-
? BigInt(maybeBlockNumber)
|
|
129
|
-
: await this.rollup.read.getTips().then(({ pendingBlockNumber }) => pendingBlockNumber);
|
|
130
|
-
await this.asOwner(async (account) => {
|
|
131
|
-
await this.rollup.write.setAssumeProvenThroughBlockNumber([blockNumber], { account, chain: this.client.chain });
|
|
132
|
-
this.logger.warn(`Marked ${blockNumber} as proven`);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Executes an action impersonated as the owner of the Rollup contract.
|
|
137
|
-
* @param action - The action to execute
|
|
138
|
-
*/
|
|
139
|
-
async asOwner(action) {
|
|
140
|
-
const owner = await this.rollup.read.owner();
|
|
141
|
-
await this.ethCheatCodes.startImpersonating(owner);
|
|
142
|
-
await action(owner, this.rollup);
|
|
143
|
-
await this.ethCheatCodes.stopImpersonating(owner);
|
|
144
|
-
}
|
|
145
|
-
/** Directly calls the L1 gas fee oracle. */
|
|
146
|
-
async updateL1GasFeeOracle() {
|
|
147
|
-
await this.asOwner(async (account, rollup) => {
|
|
148
|
-
await rollup.write.updateL1GasFeeOracle({ account, chain: this.client.chain });
|
|
149
|
-
this.logger.warn(`Updated L1 gas fee oracle`);
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* A class that provides utility functions for interacting with the aztec chain.
|
|
155
|
-
*/
|
|
156
|
-
export class AztecCheatCodes {
|
|
157
|
-
constructor(
|
|
158
|
-
/**
|
|
159
|
-
* The PXE Service to use for interacting with the chain
|
|
160
|
-
*/
|
|
161
|
-
pxe,
|
|
162
|
-
/**
|
|
163
|
-
* The eth cheat codes.
|
|
164
|
-
*/
|
|
165
|
-
eth,
|
|
166
|
-
/**
|
|
167
|
-
* The logger to use for the aztec cheatcodes
|
|
168
|
-
*/
|
|
169
|
-
logger = createLogger('aztecjs:cheat_codes')) {
|
|
170
|
-
this.pxe = pxe;
|
|
171
|
-
this.eth = eth;
|
|
172
|
-
this.logger = logger;
|
|
173
|
-
}
|
|
174
|
-
/**
|
|
175
|
-
* Computes the slot value for a given map and key.
|
|
176
|
-
* @param mapSlot - The slot of the map (specified in Aztec.nr contract)
|
|
177
|
-
* @param key - The key to lookup in the map
|
|
178
|
-
* @returns The storage slot of the value in the map
|
|
179
|
-
*/
|
|
180
|
-
computeSlotInMap(mapSlot, key) {
|
|
181
|
-
const keyFr = typeof key === 'bigint' ? new Fr(key) : key.toField();
|
|
182
|
-
return deriveStorageSlotInMap(mapSlot, keyFr);
|
|
183
|
-
}
|
|
184
|
-
/**
|
|
185
|
-
* Get the current blocknumber
|
|
186
|
-
* @returns The current block number
|
|
187
|
-
*/
|
|
188
|
-
async blockNumber() {
|
|
189
|
-
return await this.pxe.getBlockNumber();
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Get the current timestamp
|
|
193
|
-
* @returns The current timestamp
|
|
194
|
-
*/
|
|
195
|
-
async timestamp() {
|
|
196
|
-
const res = await this.pxe.getBlock(await this.blockNumber());
|
|
197
|
-
return res?.header.globalVariables.timestamp.toNumber() ?? 0;
|
|
198
|
-
}
|
|
199
|
-
/**
|
|
200
|
-
* Loads the value stored at the given slot in the public storage of the given contract.
|
|
201
|
-
* @param who - The address of the contract
|
|
202
|
-
* @param slot - The storage slot to lookup
|
|
203
|
-
* @returns The value stored at the given slot
|
|
204
|
-
*/
|
|
205
|
-
async loadPublic(who, slot) {
|
|
206
|
-
const storageValue = await this.pxe.getPublicStorageAt(who, new Fr(slot));
|
|
207
|
-
return storageValue;
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* Loads the value stored at the given slot in the private storage of the given contract.
|
|
211
|
-
* @param contract - The address of the contract
|
|
212
|
-
* @param owner - The owner for whom the notes are encrypted
|
|
213
|
-
* @param slot - The storage slot to lookup
|
|
214
|
-
* @returns The notes stored at the given slot
|
|
215
|
-
*/
|
|
216
|
-
async loadPrivate(owner, contract, slot) {
|
|
217
|
-
const extendedNotes = await this.pxe.getNotes({
|
|
218
|
-
owner,
|
|
219
|
-
contractAddress: contract,
|
|
220
|
-
storageSlot: new Fr(slot),
|
|
221
|
-
});
|
|
222
|
-
return extendedNotes.map(extendedNote => extendedNote.note);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlYXRfY29kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvY2hlYXRfY29kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFxQixVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRS9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFaEQsT0FBTyxFQUtMLGtCQUFrQixFQUNsQixXQUFXLEVBQ1gsSUFBSSxFQUNKLGFBQWEsR0FDZCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQUNyQjtJQUNFLHlCQUF5QjtJQUNsQixHQUFrQjtJQUN6QixnQ0FBZ0M7SUFDekIsS0FBc0I7SUFDN0IsdURBQXVEO0lBQ2hELE1BQXdCO1FBSnhCLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFFbEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFFdEIsV0FBTSxHQUFOLE1BQU0sQ0FBa0I7SUFDOUIsQ0FBQztJQUVKLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQWMsRUFBRSxHQUFRO1FBQzFDLE1BQU0sYUFBYSxHQUFHLElBQUksYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRSxNQUFNLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLENBQzNDLGFBQWEsRUFDYixNQUFNLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FDekQsQ0FBQztRQUNGLE9BQU8sSUFBSSxVQUFVLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxTQUFxRDtRQUN2RixNQUFNLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRjtBQUVELDhDQUE4QztBQUM5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQW9CLGFBQTRCLEVBQUUsU0FBcUQ7UUFBbkYsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFGeEMsV0FBTSxHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBR25ELElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUM7WUFDeEIsR0FBRyxFQUFFLFNBQVM7WUFDZCxPQUFPLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDM0MsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsS0FBSyxDQUFDLE9BQU87UUFDbEIsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELGdDQUFnQztJQUN6QixLQUFLLENBQUMsUUFBUTtRQUNuQixNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLE9BQU87UUFJbEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxPQUFPO1lBQ0wsT0FBTyxFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7WUFDL0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxpQkFBaUI7U0FDOUIsQ0FBQztJQUNKLENBQUM7SUFFRCwwRUFBMEU7SUFDbkUsS0FBSyxDQUFDLFNBQVM7UUFJcEIsTUFBTSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUNqQyxDQUFDLENBQUM7UUFDSCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCw0Q0FBNEM7SUFDckMsS0FBSyxDQUFDLGtCQUFrQjtRQUM3QixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQy9ELE1BQU0sbUJBQW1CLEdBQUcsYUFBYSxHQUFHLENBQUMsSUFBSSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsR0FBRyxZQUFZLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckUsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELDZEQUE2RDtJQUN0RCxLQUFLLENBQUMsaUJBQWlCO1FBQzVCLE1BQU0sV0FBVyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pDLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixXQUFXLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsU0FBUyxFQUFFLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFlO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzdELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUNsRCxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUQsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLE9BQU8scUJBQXFCLElBQUksYUFBYSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCwrQ0FBK0M7SUFDeEMsS0FBSyxDQUFDLGFBQWE7UUFDeEIsc0RBQXNEO1FBQ3RELE1BQU0sRUFDSixZQUFZLEVBQ1osYUFBYSxFQUNiLFVBQVUsRUFDVixZQUFZLEVBQUUsZUFBZSxFQUM3QixnQkFBZ0IsRUFBRSxtQkFBbUIsR0FDdEMsR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFcEUsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksWUFBWSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzlFLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPO1lBQ0wsWUFBWTtZQUNaLGFBQWE7WUFDYixVQUFVO1lBQ1YsWUFBWTtZQUNaLGdCQUFnQjtTQUNqQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxZQUFZLENBQUMsZ0JBQWtDO1FBQzFELE1BQU0sV0FBVyxHQUFHLGdCQUFnQjtZQUNsQyxDQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQzFCLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUxRixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFFO1lBQ2pDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2hILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsV0FBVyxZQUFZLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsT0FBTyxDQUNsQixNQUFvRztRQUVwRyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLE1BQU0sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsNENBQTRDO0lBQ3JDLEtBQUssQ0FBQyxvQkFBb0I7UUFDL0IsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDMUI7SUFDRTs7T0FFRztJQUNJLEdBQVE7SUFDZjs7T0FFRztJQUNJLEdBQWtCO0lBQ3pCOztPQUVHO0lBQ0ksU0FBUyxZQUFZLENBQUMscUJBQXFCLENBQUM7UUFSNUMsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUlSLFFBQUcsR0FBSCxHQUFHLENBQWU7UUFJbEIsV0FBTSxHQUFOLE1BQU0sQ0FBc0M7SUFDbEQsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0ksZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxHQUErQjtRQUMzRSxNQUFNLEtBQUssR0FBRyxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEUsT0FBTyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxHQUFHLEVBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBaUIsRUFBRSxJQUFpQjtRQUMxRCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBbUIsRUFBRSxRQUFzQixFQUFFLElBQWlCO1FBQ3JGLE1BQU0sYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7WUFDNUMsS0FBSztZQUNMLGVBQWUsRUFBRSxRQUFRO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiJ9
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The representation of a FieldCompressedString in aztec.nr
|
|
3
|
-
*/
|
|
4
|
-
interface NoirFieldCompressedString {
|
|
5
|
-
/**
|
|
6
|
-
* The field value of the string
|
|
7
|
-
*/
|
|
8
|
-
value: bigint;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* This turns
|
|
12
|
-
* @param field - The field that contains the string
|
|
13
|
-
* @returns - the string that is decoded from the field
|
|
14
|
-
*/
|
|
15
|
-
export declare const readFieldCompressedString: (field: NoirFieldCompressedString) => string;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=field_compressed_string.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field_compressed_string.d.ts","sourceRoot":"","sources":["../../src/utils/field_compressed_string.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,UAAU,yBAAyB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,UAAW,yBAAyB,KAAG,MAU5E,CAAC"}
|
package/dest/utils/index.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export * from './pub_key.js';
|
|
2
|
-
export * from './l1_contracts.js';
|
|
3
|
-
export * from './abi_types.js';
|
|
4
|
-
export * from './cheat_codes.js';
|
|
5
|
-
export * from './authwit.js';
|
|
6
|
-
export * from './pxe.js';
|
|
7
|
-
export * from './node.js';
|
|
8
|
-
export * from './anvil_test_watcher.js';
|
|
9
|
-
export * from './field_compressed_string.js';
|
|
10
|
-
export * from './portal_manager.js';
|
|
11
|
-
export * from './chain_monitor.js';
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"l1_contracts.d.ts","sourceRoot":"","sources":["../../src/utils/l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAKjF,eAAO,MAAM,sBAAsB,QAAe,MAAM,KAAG,QAAQ,mBAAmB,CAerF,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
2
|
-
import { createPXEClient } from '../rpc_clients/index.js';
|
|
3
|
-
export const getL1ContractAddresses = async (url) => {
|
|
4
|
-
const pxeClient = createPXEClient(url);
|
|
5
|
-
const response = await retryUntil(async () => {
|
|
6
|
-
try {
|
|
7
|
-
return (await pxeClient.getNodeInfo()).l1ContractAddresses;
|
|
8
|
-
}
|
|
9
|
-
catch (err) {
|
|
10
|
-
// do nothing
|
|
11
|
-
}
|
|
12
|
-
}, 'isNodeReady', 120, 1);
|
|
13
|
-
return response;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfY29udHJhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2wxX2NvbnRyYWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLEtBQUssRUFBRSxHQUFXLEVBQWdDLEVBQUU7SUFDeEYsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLE1BQU0sUUFBUSxHQUFHLE1BQU0sVUFBVSxDQUMvQixLQUFLLElBQUksRUFBRTtRQUNULElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxNQUFNLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1FBQzdELENBQUM7UUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1lBQ2IsYUFBYTtRQUNmLENBQUM7SUFDSCxDQUFDLEVBQ0QsYUFBYSxFQUNiLEdBQUcsRUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyJ9
|
package/dest/utils/node.d.ts
DELETED
package/dest/utils/node.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,eAAO,MAAM,WAAW,SAAgB,SAAS,WAAW,MAAM,kBAYjE,CAAC"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { type AztecAddress, EthAddress, Fr, type Logger, type PXE, type SiblingPath } from '@aztec/aztec.js';
|
|
2
|
-
import { TokenPortalAbi } from '@aztec/l1-artifacts';
|
|
3
|
-
import { type Account, type Chain, type GetContractReturnType, type Hex, type HttpTransport, type PublicClient, type WalletClient } from 'viem';
|
|
4
|
-
/** L1 to L2 message info to claim it on L2. */
|
|
5
|
-
export type L2Claim = {
|
|
6
|
-
/** Secret for claiming. */
|
|
7
|
-
claimSecret: Fr;
|
|
8
|
-
/** Hash of the secret for claiming. */
|
|
9
|
-
claimSecretHash: Fr;
|
|
10
|
-
/** Hash of the message. */
|
|
11
|
-
messageHash: Hex;
|
|
12
|
-
/** Leaf index in the L1 to L2 message tree. */
|
|
13
|
-
messageLeafIndex: bigint;
|
|
14
|
-
};
|
|
15
|
-
/** L1 to L2 message info that corresponds to an amount to claim. */
|
|
16
|
-
export type L2AmountClaim = L2Claim & {
|
|
17
|
-
claimAmount: bigint;
|
|
18
|
-
};
|
|
19
|
-
/** L1 to L2 message info that corresponds to an amount to claim with associated recipient. */
|
|
20
|
-
export type L2AmountClaimWithRecipient = L2AmountClaim & {
|
|
21
|
-
/** Address that will receive the newly minted notes. */ recipient: AztecAddress;
|
|
22
|
-
};
|
|
23
|
-
/** Generates a pair secret and secret hash */
|
|
24
|
-
export declare function generateClaimSecret(logger?: Logger): Promise<[Fr, Fr]>;
|
|
25
|
-
/** Helper for managing an ERC20 on L1. */
|
|
26
|
-
export declare class L1TokenManager {
|
|
27
|
-
/** Address of the ERC20 contract. */
|
|
28
|
-
readonly address: EthAddress;
|
|
29
|
-
private publicClient;
|
|
30
|
-
private walletClient;
|
|
31
|
-
private logger;
|
|
32
|
-
private contract;
|
|
33
|
-
constructor(
|
|
34
|
-
/** Address of the ERC20 contract. */
|
|
35
|
-
address: EthAddress, publicClient: PublicClient<HttpTransport, Chain>, walletClient: WalletClient<HttpTransport, Chain, Account>, logger: Logger);
|
|
36
|
-
/**
|
|
37
|
-
* Returns the balance of the given address.
|
|
38
|
-
* @param address - Address to get the balance of.
|
|
39
|
-
*/
|
|
40
|
-
getL1TokenBalance(address: Hex): Promise<bigint>;
|
|
41
|
-
/**
|
|
42
|
-
* Mints tokens for the given address. Returns once the tx has been mined.
|
|
43
|
-
* @param amount - Amount to mint.
|
|
44
|
-
* @param address - Address to mint the tokens for.
|
|
45
|
-
* @param addressName - Optional name of the address for logging.
|
|
46
|
-
*/
|
|
47
|
-
mint(amount: bigint, address: Hex, addressName?: string): Promise<void>;
|
|
48
|
-
/**
|
|
49
|
-
* Approves tokens for the given address. Returns once the tx has been mined.
|
|
50
|
-
* @param amount - Amount to approve.
|
|
51
|
-
* @param address - Address to approve the tokens for.
|
|
52
|
-
* @param addressName - Optional name of the address for logging.
|
|
53
|
-
*/
|
|
54
|
-
approve(amount: bigint, address: Hex, addressName?: string): Promise<void>;
|
|
55
|
-
}
|
|
56
|
-
/** Helper for interacting with the FeeJuicePortal on L1. */
|
|
57
|
-
export declare class L1FeeJuicePortalManager {
|
|
58
|
-
private readonly publicClient;
|
|
59
|
-
private readonly walletClient;
|
|
60
|
-
private readonly logger;
|
|
61
|
-
private readonly tokenManager;
|
|
62
|
-
private readonly contract;
|
|
63
|
-
constructor(portalAddress: EthAddress, tokenAddress: EthAddress, publicClient: PublicClient<HttpTransport, Chain>, walletClient: WalletClient<HttpTransport, Chain, Account>, logger: Logger);
|
|
64
|
-
/** Returns the associated token manager for the L1 ERC20. */
|
|
65
|
-
getTokenManager(): L1TokenManager;
|
|
66
|
-
/**
|
|
67
|
-
* Bridges fee juice from L1 to L2 publicly. Handles L1 ERC20 approvals. Returns once the tx has been mined.
|
|
68
|
-
* @param to - Address to send the tokens to on L2.
|
|
69
|
-
* @param amount - Amount of tokens to send.
|
|
70
|
-
* @param mint - Whether to mint the tokens before sending (only during testing).
|
|
71
|
-
*/
|
|
72
|
-
bridgeTokensPublic(to: AztecAddress, amount: bigint, mint?: boolean): Promise<L2AmountClaim>;
|
|
73
|
-
/**
|
|
74
|
-
* Creates a new instance
|
|
75
|
-
* @param pxe - PXE client used for retrieving the L1 contract addresses.
|
|
76
|
-
* @param publicClient - L1 public client.
|
|
77
|
-
* @param walletClient - L1 wallet client.
|
|
78
|
-
* @param logger - Logger.
|
|
79
|
-
*/
|
|
80
|
-
static new(pxe: PXE, publicClient: PublicClient<HttpTransport, Chain>, walletClient: WalletClient<HttpTransport, Chain, Account>, logger: Logger): Promise<L1FeeJuicePortalManager>;
|
|
81
|
-
}
|
|
82
|
-
/** Helper for interacting with a test TokenPortal on L1 for sending tokens to L2. */
|
|
83
|
-
export declare class L1ToL2TokenPortalManager {
|
|
84
|
-
protected publicClient: PublicClient<HttpTransport, Chain>;
|
|
85
|
-
protected walletClient: WalletClient<HttpTransport, Chain, Account>;
|
|
86
|
-
protected logger: Logger;
|
|
87
|
-
protected readonly portal: GetContractReturnType<typeof TokenPortalAbi, WalletClient<HttpTransport, Chain, Account>>;
|
|
88
|
-
protected readonly tokenManager: L1TokenManager;
|
|
89
|
-
constructor(portalAddress: EthAddress, tokenAddress: EthAddress, publicClient: PublicClient<HttpTransport, Chain>, walletClient: WalletClient<HttpTransport, Chain, Account>, logger: Logger);
|
|
90
|
-
/** Returns the token manager for the underlying L1 token. */
|
|
91
|
-
getTokenManager(): L1TokenManager;
|
|
92
|
-
/**
|
|
93
|
-
* Bridges tokens from L1 to L2. Handles token approvals. Returns once the tx has been mined.
|
|
94
|
-
* @param to - Address to send the tokens to on L2.
|
|
95
|
-
* @param amount - Amount of tokens to send.
|
|
96
|
-
* @param mint - Whether to mint the tokens before sending (only during testing).
|
|
97
|
-
*/
|
|
98
|
-
bridgeTokensPublic(to: AztecAddress, amount: bigint, mint?: boolean): Promise<L2AmountClaim>;
|
|
99
|
-
/**
|
|
100
|
-
* Bridges tokens from L1 to L2 privately. Handles token approvals. Returns once the tx has been mined.
|
|
101
|
-
* @param to - Address to send the tokens to on L2.
|
|
102
|
-
* @param amount - Amount of tokens to send.
|
|
103
|
-
* @param mint - Whether to mint the tokens before sending (only during testing).
|
|
104
|
-
*/
|
|
105
|
-
bridgeTokensPrivate(to: AztecAddress, amount: bigint, mint?: boolean): Promise<L2AmountClaimWithRecipient>;
|
|
106
|
-
private bridgeSetup;
|
|
107
|
-
}
|
|
108
|
-
/** Helper for interacting with a test TokenPortal on L1 for both withdrawing from and bridging to L2. */
|
|
109
|
-
export declare class L1TokenPortalManager extends L1ToL2TokenPortalManager {
|
|
110
|
-
private readonly outbox;
|
|
111
|
-
constructor(portalAddress: EthAddress, tokenAddress: EthAddress, outboxAddress: EthAddress, publicClient: PublicClient<HttpTransport, Chain>, walletClient: WalletClient<HttpTransport, Chain, Account>, logger: Logger);
|
|
112
|
-
/**
|
|
113
|
-
* Withdraws funds from the portal by consuming an L2 to L1 message. Returns once the tx is mined on L1.
|
|
114
|
-
* @param amount - Amount to withdraw.
|
|
115
|
-
* @param recipient - Who will receive the funds.
|
|
116
|
-
* @param blockNumber - L2 block number of the message.
|
|
117
|
-
* @param messageIndex - Index of the message.
|
|
118
|
-
* @param siblingPath - Sibling path of the message.
|
|
119
|
-
*/
|
|
120
|
-
withdrawFunds(amount: bigint, recipient: EthAddress, blockNumber: bigint, messageIndex: bigint, siblingPath: SiblingPath<number>): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Computes the L2 to L1 message leaf for the given parameters.
|
|
123
|
-
* @param amount - Amount to bridge.
|
|
124
|
-
* @param recipient - Recipient on L1.
|
|
125
|
-
* @param l2Bridge - Address of the L2 bridge.
|
|
126
|
-
* @param callerOnL1 - Caller address on L1.
|
|
127
|
-
*/
|
|
128
|
-
getL2ToL1MessageLeaf(amount: bigint, recipient: EthAddress, l2Bridge: AztecAddress, callerOnL1?: EthAddress): Fr;
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=portal_manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"portal_manager.d.ts","sourceRoot":"","sources":["../../src/utils/portal_manager.ts"],"names":[],"mappings":"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"}
|