@aztec/aztec.js 0.40.1 → 0.42.0
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/account/index.d.ts +2 -2
- package/dest/account/index.d.ts.map +1 -1
- package/dest/account/interface.d.ts +16 -1
- package/dest/account/interface.d.ts.map +1 -1
- package/dest/account/interface.js +1 -1
- package/dest/account/wallet.d.ts +2 -2
- package/dest/account/wallet.d.ts.map +1 -1
- package/dest/account_manager/deploy_account_method.d.ts.map +1 -1
- package/dest/account_manager/deploy_account_method.js +8 -5
- package/dest/account_manager/index.d.ts +1 -1
- package/dest/account_manager/index.d.ts.map +1 -1
- package/dest/account_manager/index.js +2 -1
- package/dest/api/abi.d.ts +2 -2
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/abi.js +1 -1
- package/dest/api/fee.d.ts +2 -0
- package/dest/api/fee.d.ts.map +1 -1
- package/dest/api/fee.js +3 -1
- package/dest/contract/base_contract_interaction.d.ts +7 -6
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.js +20 -9
- package/dest/contract/batch_call.d.ts +11 -0
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +50 -2
- package/dest/contract/contract_function_interaction.d.ts +2 -7
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +22 -36
- package/dest/contract/deploy_method.d.ts +5 -1
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +22 -6
- package/dest/contract/get_gas_limits.d.ts +1 -1
- package/dest/contract/get_gas_limits.d.ts.map +1 -1
- package/dest/contract/get_gas_limits.js +5 -3
- package/dest/contract/sent_tx.js +2 -2
- package/dest/entrypoint/default_entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/default_entrypoint.js +6 -2
- package/dest/entrypoint/default_multi_call_entrypoint.d.ts.map +1 -1
- package/dest/entrypoint/default_multi_call_entrypoint.js +7 -5
- package/dest/entrypoint/payload.d.ts +26 -9
- package/dest/entrypoint/payload.d.ts.map +1 -1
- package/dest/entrypoint/payload.js +51 -28
- package/dest/fee/fee_payment_method.d.ts +6 -7
- package/dest/fee/fee_payment_method.d.ts.map +1 -1
- package/dest/fee/native_fee_payment_method.d.ts +5 -25
- package/dest/fee/native_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/native_fee_payment_method.js +9 -45
- package/dest/fee/native_fee_payment_method_with_claim.d.ts +17 -0
- package/dest/fee/native_fee_payment_method_with_claim.d.ts.map +1 -0
- package/dest/fee/native_fee_payment_method_with_claim.js +32 -0
- package/dest/fee/no_fee_payment_method.d.ts +13 -0
- package/dest/fee/no_fee_payment_method.d.ts.map +1 -0
- package/dest/fee/no_fee_payment_method.js +17 -0
- package/dest/fee/private_fee_payment_method.d.ts +1 -5
- package/dest/fee/private_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/private_fee_payment_method.js +15 -12
- package/dest/fee/public_fee_payment_method.d.ts +1 -5
- package/dest/fee/public_fee_payment_method.d.ts.map +1 -1
- package/dest/fee/public_fee_payment_method.js +15 -12
- package/dest/index.d.ts +11 -12
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +10 -11
- package/dest/rpc_clients/pxe_client.js +3 -3
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +2 -6
- package/dest/utils/cheat_codes.js +3 -3
- package/dest/wallet/account_wallet.d.ts +12 -1
- package/dest/wallet/account_wallet.d.ts.map +1 -1
- package/dest/wallet/account_wallet.js +58 -4
- package/dest/wallet/base_wallet.d.ts +10 -3
- package/dest/wallet/base_wallet.d.ts.map +1 -1
- package/dest/wallet/base_wallet.js +12 -3
- package/dest/wallet/create_recipient.d.ts.map +1 -1
- package/dest/wallet/create_recipient.js +3 -1
- package/dest/wallet/signerless_wallet.d.ts +2 -1
- package/dest/wallet/signerless_wallet.d.ts.map +1 -1
- package/dest/wallet/signerless_wallet.js +9 -6
- package/package.json +7 -7
- package/src/account/index.ts +2 -2
- package/src/account/interface.ts +17 -1
- package/src/account/wallet.ts +2 -2
- package/src/account_manager/deploy_account_method.ts +11 -3
- package/src/account_manager/index.ts +5 -1
- package/src/api/abi.ts +2 -2
- package/src/api/fee.ts +2 -0
- package/src/contract/base_contract_interaction.ts +32 -8
- package/src/contract/batch_call.ts +77 -1
- package/src/contract/contract_function_interaction.ts +31 -34
- package/src/contract/deploy_method.ts +23 -6
- package/src/contract/get_gas_limits.ts +4 -3
- package/src/contract/sent_tx.ts +1 -1
- package/src/entrypoint/default_entrypoint.ts +7 -1
- package/src/entrypoint/default_multi_call_entrypoint.ts +6 -4
- package/src/entrypoint/payload.ts +61 -25
- package/src/fee/fee_payment_method.ts +6 -8
- package/src/fee/native_fee_payment_method.ts +8 -46
- package/src/fee/native_fee_payment_method_with_claim.ts +33 -0
- package/src/fee/no_fee_payment_method.ts +23 -0
- package/src/fee/private_fee_payment_method.ts +15 -14
- package/src/fee/public_fee_payment_method.ts +15 -18
- package/src/index.ts +34 -32
- package/src/rpc_clients/pxe_client.ts +2 -2
- package/src/utils/authwit.ts +1 -5
- package/src/utils/cheat_codes.ts +3 -3
- package/src/wallet/account_wallet.ts +65 -3
- package/src/wallet/base_wallet.ts +21 -3
- package/src/wallet/create_recipient.ts +2 -0
- package/src/wallet/signerless_wallet.ts +10 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fr } from '@aztec/circuits.js';
|
|
1
|
+
import { AztecAddress, CANONICAL_KEY_REGISTRY_ADDRESS, Fq, Fr, derivePublicKeyFromSecretKey } from '@aztec/circuits.js';
|
|
2
2
|
import { FunctionType } from '@aztec/foundation/abi';
|
|
3
3
|
import { ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
4
4
|
import { computeAuthWitMessageHash } from '../utils/authwit.js';
|
|
@@ -87,6 +87,23 @@ export class AccountWallet extends BaseWallet {
|
|
|
87
87
|
const [isValidInPrivate, isValidInPublic] = (await interaction.simulate());
|
|
88
88
|
return { isValidInPrivate, isValidInPublic };
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Rotates the account master nullifier key pair.
|
|
92
|
+
* @param newNskM - The new master nullifier secret key we want to use.
|
|
93
|
+
* @remarks - This function also calls the canonical key registry with the account's new derived master nullifier public key.
|
|
94
|
+
* We are doing it this way to avoid user error, in the case that a user rotates their keys in the key registry,
|
|
95
|
+
* but fails to do so in the key store. This leads to unspendable notes.
|
|
96
|
+
*
|
|
97
|
+
* This does not hinder our ability to spend notes tied to a previous master nullifier public key, provided we have the master nullifier secret key for it.
|
|
98
|
+
*/
|
|
99
|
+
async rotateNullifierKeys(newNskM = Fq.random()) {
|
|
100
|
+
// We rotate our secret key in the keystore first, because if the subsequent interaction fails, there are no bad side-effects.
|
|
101
|
+
// If vice versa (the key registry is called first), but the call to the PXE fails, we will end up in a situation with unspendable notes, as we have not committed our
|
|
102
|
+
// nullifier secret key to our wallet.
|
|
103
|
+
await this.pxe.rotateNskM(this.getAddress(), newNskM);
|
|
104
|
+
const interaction = new ContractFunctionInteraction(this, AztecAddress.fromBigInt(CANONICAL_KEY_REGISTRY_ADDRESS), this.getRotateNpkMAbi(), [this.getAddress(), derivePublicKeyFromSecretKey(newNskM), Fr.ZERO]);
|
|
105
|
+
await interaction.send().wait();
|
|
106
|
+
}
|
|
90
107
|
/**
|
|
91
108
|
* Returns a function interaction to cancel a message hash as authorized in this account.
|
|
92
109
|
* @param messageHashOrIntent - The message or the caller and action to authorize/revoke
|
|
@@ -109,8 +126,9 @@ export class AccountWallet extends BaseWallet {
|
|
|
109
126
|
return {
|
|
110
127
|
name: 'approve_public_authwit',
|
|
111
128
|
isInitializer: false,
|
|
112
|
-
functionType: FunctionType.
|
|
129
|
+
functionType: FunctionType.PUBLIC,
|
|
113
130
|
isInternal: true,
|
|
131
|
+
isStatic: false,
|
|
114
132
|
parameters: [
|
|
115
133
|
{
|
|
116
134
|
name: 'message_hash',
|
|
@@ -125,8 +143,9 @@ export class AccountWallet extends BaseWallet {
|
|
|
125
143
|
return {
|
|
126
144
|
name: 'cancel_authwit',
|
|
127
145
|
isInitializer: false,
|
|
128
|
-
functionType: FunctionType.
|
|
146
|
+
functionType: FunctionType.PRIVATE,
|
|
129
147
|
isInternal: true,
|
|
148
|
+
isStatic: false,
|
|
130
149
|
parameters: [
|
|
131
150
|
{
|
|
132
151
|
name: 'message_hash',
|
|
@@ -143,6 +162,7 @@ export class AccountWallet extends BaseWallet {
|
|
|
143
162
|
isInitializer: false,
|
|
144
163
|
functionType: FunctionType.UNCONSTRAINED,
|
|
145
164
|
isInternal: false,
|
|
165
|
+
isStatic: false,
|
|
146
166
|
parameters: [
|
|
147
167
|
{
|
|
148
168
|
name: 'myself',
|
|
@@ -168,5 +188,39 @@ export class AccountWallet extends BaseWallet {
|
|
|
168
188
|
returnTypes: [{ kind: 'array', length: 2, type: { kind: 'boolean' } }],
|
|
169
189
|
};
|
|
170
190
|
}
|
|
191
|
+
getRotateNpkMAbi() {
|
|
192
|
+
return {
|
|
193
|
+
name: 'rotate_npk_m',
|
|
194
|
+
isInitializer: false,
|
|
195
|
+
functionType: FunctionType.PUBLIC,
|
|
196
|
+
isInternal: false,
|
|
197
|
+
isStatic: false,
|
|
198
|
+
parameters: [
|
|
199
|
+
{
|
|
200
|
+
name: 'address',
|
|
201
|
+
type: {
|
|
202
|
+
fields: [{ name: 'inner', type: { kind: 'field' } }],
|
|
203
|
+
kind: 'struct',
|
|
204
|
+
path: 'authwit::aztec::protocol_types::address::aztec_address::AztecAddress',
|
|
205
|
+
},
|
|
206
|
+
visibility: 'private',
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
name: 'new_npk_m',
|
|
210
|
+
type: {
|
|
211
|
+
fields: [
|
|
212
|
+
{ name: 'x', type: { kind: 'field' } },
|
|
213
|
+
{ name: 'y', type: { kind: 'field' } },
|
|
214
|
+
],
|
|
215
|
+
kind: 'struct',
|
|
216
|
+
path: 'authwit::aztec::protocol_types::grumpkin_point::GrumpkinPoint',
|
|
217
|
+
},
|
|
218
|
+
visibility: 'private',
|
|
219
|
+
},
|
|
220
|
+
{ name: 'nonce', type: { kind: 'field' }, visibility: 'private' },
|
|
221
|
+
],
|
|
222
|
+
returnTypes: [],
|
|
223
|
+
};
|
|
224
|
+
}
|
|
171
225
|
}
|
|
172
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2FjY291bnRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsOEJBQThCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hILE9BQU8sRUFBaUQsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFM0YsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGFBQWMsU0FBUSxVQUFVO0lBQzNDLFlBQVksR0FBUSxFQUFZLE9BQXlCO1FBQ3ZELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURtQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtJQUV6RCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsSUFBMEI7UUFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsYUFBYSxDQUNqQixtQkFZSztRQUVMLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENB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
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import { type AuthWitness, type ExtendedNote, type FunctionCall, type GetUnencryptedLogsResponse, type L2Block, type LogFilter, type NoteFilter, type PXE, type SimulatedTx, type SyncStatus, type Tx, type TxEffect, type TxExecutionRequest, type TxHash, type TxReceipt } from '@aztec/circuit-types';
|
|
3
|
-
import { type
|
|
2
|
+
import { type AuthWitness, type ExtendedNote, type FunctionCall, type GetUnencryptedLogsResponse, type L2Block, type LogFilter, type NoteFilter, type PXE, type PXEInfo, type SimulatedTx, type SyncStatus, type Tx, type TxEffect, type TxExecutionRequest, type TxHash, type TxReceipt } from '@aztec/circuit-types';
|
|
3
|
+
import { type NoteProcessorStats } from '@aztec/circuit-types/stats';
|
|
4
|
+
import { type AztecAddress, type CompleteAddress, type Fq, type Fr, type PartialAddress } from '@aztec/circuits.js';
|
|
4
5
|
import { type ContractArtifact } from '@aztec/foundation/abi';
|
|
5
6
|
import { type ContractClassWithId, type ContractInstanceWithAddress } from '@aztec/types/contracts';
|
|
6
7
|
import { type NodeInfo } from '@aztec/types/interfaces';
|
|
@@ -27,11 +28,13 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
27
28
|
/** The version to approve */
|
|
28
29
|
version?: Fr;
|
|
29
30
|
}): Promise<AuthWitness>;
|
|
31
|
+
abstract rotateNullifierKeys(newNskM: Fq): Promise<void>;
|
|
30
32
|
getAddress(): AztecAddress;
|
|
31
33
|
getContractInstance(address: AztecAddress): Promise<ContractInstanceWithAddress | undefined>;
|
|
32
34
|
getContractClass(id: Fr): Promise<ContractClassWithId | undefined>;
|
|
33
35
|
addCapsule(capsule: Fr[]): Promise<void>;
|
|
34
36
|
registerAccount(secretKey: Fr, partialAddress: PartialAddress): Promise<CompleteAddress>;
|
|
37
|
+
rotateNskM(address: AztecAddress, secretKey: Fq): Promise<void>;
|
|
35
38
|
registerRecipient(account: CompleteAddress): Promise<void>;
|
|
36
39
|
getRegisteredAccounts(): Promise<CompleteAddress[]>;
|
|
37
40
|
getRegisteredAccount(address: AztecAddress): Promise<CompleteAddress | undefined>;
|
|
@@ -53,16 +56,20 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
53
56
|
getPublicStorageAt(contract: AztecAddress, storageSlot: Fr): Promise<any>;
|
|
54
57
|
addNote(note: ExtendedNote): Promise<void>;
|
|
55
58
|
getBlock(number: number): Promise<L2Block | undefined>;
|
|
56
|
-
|
|
59
|
+
simulateUnconstrained(functionName: string, args: any[], to: AztecAddress, from?: AztecAddress | undefined): Promise<any>;
|
|
57
60
|
getUnencryptedLogs(filter: LogFilter): Promise<GetUnencryptedLogsResponse>;
|
|
58
61
|
getBlockNumber(): Promise<number>;
|
|
59
62
|
getNodeInfo(): Promise<NodeInfo>;
|
|
60
63
|
isGlobalStateSynchronized(): Promise<boolean>;
|
|
61
64
|
isAccountStateSynchronized(account: AztecAddress): Promise<boolean>;
|
|
62
65
|
getSyncStatus(): Promise<SyncStatus>;
|
|
66
|
+
getSyncStats(): Promise<{
|
|
67
|
+
[key: string]: NoteProcessorStats;
|
|
68
|
+
}>;
|
|
63
69
|
addAuthWitness(authWitness: AuthWitness): Promise<void>;
|
|
64
70
|
getAuthWitness(messageHash: Fr): Promise<Fr[] | undefined>;
|
|
65
71
|
isContractClassPubliclyRegistered(id: Fr): Promise<boolean>;
|
|
66
72
|
isContractPubliclyDeployed(address: AztecAddress): Promise<boolean>;
|
|
73
|
+
getPXEInfo(): Promise<PXEInfo>;
|
|
67
74
|
}
|
|
68
75
|
//# sourceMappingURL=base_wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAC/B,KAAK,OAAO,EACZ,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,EAAE,EACP,KAAK,QAAQ,EACb,KAAK,kBAAkB,EACvB,KAAK,MAAM,EACX,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/base_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,9 @@ export class BaseWallet {
|
|
|
20
20
|
registerAccount(secretKey, partialAddress) {
|
|
21
21
|
return this.pxe.registerAccount(secretKey, partialAddress);
|
|
22
22
|
}
|
|
23
|
+
rotateNskM(address, secretKey) {
|
|
24
|
+
return this.pxe.rotateNskM(address, secretKey);
|
|
25
|
+
}
|
|
23
26
|
registerRecipient(account) {
|
|
24
27
|
return this.pxe.registerRecipient(account);
|
|
25
28
|
}
|
|
@@ -75,8 +78,8 @@ export class BaseWallet {
|
|
|
75
78
|
getBlock(number) {
|
|
76
79
|
return this.pxe.getBlock(number);
|
|
77
80
|
}
|
|
78
|
-
|
|
79
|
-
return this.pxe.
|
|
81
|
+
simulateUnconstrained(functionName, args, to, from) {
|
|
82
|
+
return this.pxe.simulateUnconstrained(functionName, args, to, from);
|
|
80
83
|
}
|
|
81
84
|
getUnencryptedLogs(filter) {
|
|
82
85
|
return this.pxe.getUnencryptedLogs(filter);
|
|
@@ -96,6 +99,9 @@ export class BaseWallet {
|
|
|
96
99
|
getSyncStatus() {
|
|
97
100
|
return this.pxe.getSyncStatus();
|
|
98
101
|
}
|
|
102
|
+
getSyncStats() {
|
|
103
|
+
return this.pxe.getSyncStats();
|
|
104
|
+
}
|
|
99
105
|
addAuthWitness(authWitness) {
|
|
100
106
|
return this.pxe.addAuthWitness(authWitness);
|
|
101
107
|
}
|
|
@@ -108,5 +114,8 @@ export class BaseWallet {
|
|
|
108
114
|
isContractPubliclyDeployed(address) {
|
|
109
115
|
return this.pxe.isContractPubliclyDeployed(address);
|
|
110
116
|
}
|
|
117
|
+
getPXEInfo() {
|
|
118
|
+
return this.pxe.getPXEInfo();
|
|
119
|
+
}
|
|
111
120
|
}
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L2Jhc2Vfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRCQTs7R0FFRztBQUNILE1BQU0sT0FBZ0IsVUFBVTtJQUM5QixZQUErQixHQUFRO1FBQVIsUUFBRyxHQUFILEdBQUcsQ0FBSztJQUFHLENBQUM7SUE0QjNDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsT0FBcUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxFQUFNO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQWEsRUFBRSxjQUE4QjtRQUMzRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsVUFBVSxDQUFDLE9BQXFCLEVBQUUsU0FBYTtRQUM3QyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsT0FBd0I7UUFDeEMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLHFC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create_recipient.d.ts","sourceRoot":"","sources":["../../src/wallet/create_recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"create_recipient.d.ts","sourceRoot":"","sources":["../../src/wallet/create_recipient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAMxE"}
|
|
@@ -6,7 +6,9 @@ import { CompleteAddress } from '@aztec/circuits.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export async function createRecipient(pxe) {
|
|
8
8
|
const completeAddress = CompleteAddress.random();
|
|
9
|
+
// docs:start:register-recipient
|
|
9
10
|
await pxe.registerRecipient(completeAddress);
|
|
11
|
+
// docs:end:register-recipient
|
|
10
12
|
return completeAddress;
|
|
11
13
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlX3JlY2lwaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93YWxsZXQvY3JlYXRlX3JlY2lwaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZUFBZSxDQUFDLEdBQVE7SUFDNUMsTUFBTSxlQUFlLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pELGdDQUFnQztJQUNoQyxNQUFNLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM3Qyw4QkFBOEI7SUFDOUIsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQyJ9
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AuthWitness, type PXE, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
|
-
import { type CompleteAddress, type Fr } from '@aztec/circuits.js';
|
|
2
|
+
import { type CompleteAddress, type Fq, type Fr } from '@aztec/circuits.js';
|
|
3
3
|
import { type EntrypointInterface, type ExecutionRequestInit } from '../entrypoint/entrypoint.js';
|
|
4
4
|
import { BaseWallet } from './base_wallet.js';
|
|
5
5
|
/**
|
|
@@ -14,5 +14,6 @@ export declare class SignerlessWallet extends BaseWallet {
|
|
|
14
14
|
getPublicKeysHash(): Fr;
|
|
15
15
|
getCompleteAddress(): CompleteAddress;
|
|
16
16
|
createAuthWit(_messageHash: Fr): Promise<AuthWitness>;
|
|
17
|
+
rotateNullifierKeys(_newNskM: Fq): Promise<void>;
|
|
17
18
|
}
|
|
18
19
|
//# sourceMappingURL=signerless_wallet.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signerless_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/signerless_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"signerless_wallet.d.ts","sourceRoot":"","sources":["../../src/wallet/signerless_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,KAAK,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,UAAU;IACxB,OAAO,CAAC,UAAU,CAAC;gBAA7B,GAAG,EAAE,GAAG,EAAU,UAAU,CAAC,iCAAqB;IAIxD,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAU5F,UAAU,IAAI,EAAE;IAIhB,UAAU,IAAI,EAAE;IAIhB,iBAAiB,IAAI,EAAE;IAIvB,kBAAkB,IAAI,eAAe;IAIrC,aAAa,CAAC,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrD,mBAAmB,CAAC,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -17,19 +17,22 @@ export class SignerlessWallet extends BaseWallet {
|
|
|
17
17
|
return entrypoint.createTxExecutionRequest(execution);
|
|
18
18
|
}
|
|
19
19
|
getChainId() {
|
|
20
|
-
throw new Error('Method not implemented.');
|
|
20
|
+
throw new Error('SignerlessWallet: Method getChainId not implemented.');
|
|
21
21
|
}
|
|
22
22
|
getVersion() {
|
|
23
|
-
throw new Error('Method not implemented.');
|
|
23
|
+
throw new Error('SignerlessWallet: Method getVersion not implemented.');
|
|
24
24
|
}
|
|
25
25
|
getPublicKeysHash() {
|
|
26
|
-
throw new Error('Method not implemented.');
|
|
26
|
+
throw new Error('SignerlessWallet: Method getPublicKeysHash not implemented.');
|
|
27
27
|
}
|
|
28
28
|
getCompleteAddress() {
|
|
29
|
-
throw new Error('Method not implemented.');
|
|
29
|
+
throw new Error('SignerlessWallet: Method getCompleteAddress not implemented.');
|
|
30
30
|
}
|
|
31
31
|
createAuthWit(_messageHash) {
|
|
32
|
-
throw new Error('Method not implemented.');
|
|
32
|
+
throw new Error('SignerlessWallet: Method createAuthWit not implemented.');
|
|
33
|
+
}
|
|
34
|
+
rotateNullifierKeys(_newNskM) {
|
|
35
|
+
throw new Error('SignerlessWallet: Method rotateNullifierKeys not implemented.');
|
|
33
36
|
}
|
|
34
37
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVybGVzc193YWxsZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2FsbGV0L3NpZ25lcmxlc3Nfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5Qzs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQzlDLFlBQVksR0FBUSxFQUFVLFVBQWdDO1FBQzVELEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURpQixlQUFVLEdBQVYsVUFBVSxDQUFzQjtJQUU5RCxDQUFDO0lBRUQsS0FBSyxDQUFDLHdCQUF3QixDQUFDLFNBQStCO1FBQzVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDakMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xFLFVBQVUsR0FBRyxJQUFJLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFVBQVU7UUFDUixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsNkRBQTZELENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsYUFBYSxDQUFDLFlBQWdCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsbUJBQW1CLENBQUMsUUFBWTtRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLCtEQUErRCxDQUFDLENBQUM7SUFDbkYsQ0FBQztDQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/aztec.js",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/aztec.js",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.42.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": "./dest/index.js",
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
]
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@aztec/circuit-types": "0.
|
|
69
|
-
"@aztec/circuits.js": "0.
|
|
70
|
-
"@aztec/ethereum": "0.
|
|
71
|
-
"@aztec/foundation": "0.
|
|
72
|
-
"@aztec/protocol-contracts": "0.
|
|
73
|
-
"@aztec/types": "0.
|
|
68
|
+
"@aztec/circuit-types": "0.42.0",
|
|
69
|
+
"@aztec/circuits.js": "0.42.0",
|
|
70
|
+
"@aztec/ethereum": "0.42.0",
|
|
71
|
+
"@aztec/foundation": "0.42.0",
|
|
72
|
+
"@aztec/protocol-contracts": "0.42.0",
|
|
73
|
+
"@aztec/types": "0.42.0",
|
|
74
74
|
"tslib": "^2.4.0"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/src/account/index.ts
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { type Fr } from '@aztec/circuits.js';
|
|
10
10
|
|
|
11
|
-
export { AccountContract } from './contract.js';
|
|
12
|
-
export { AccountInterface, AuthWitnessProvider } from './interface.js';
|
|
11
|
+
export { type AccountContract } from './contract.js';
|
|
12
|
+
export { type AccountInterface, type AuthWitnessProvider } from './interface.js';
|
|
13
13
|
export * from './wallet.js';
|
|
14
14
|
|
|
15
15
|
/** A contract deployment salt. */
|
package/src/account/interface.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type AuthWitness, type CompleteAddress, type FunctionCall } from '@aztec/circuit-types';
|
|
2
2
|
import { type AztecAddress } from '@aztec/circuits.js';
|
|
3
|
-
import { type Fr } from '@aztec/foundation/fields';
|
|
3
|
+
import { type Fq, type Fr } from '@aztec/foundation/fields';
|
|
4
4
|
|
|
5
5
|
import { type ContractFunctionInteraction } from '../contract/contract_function_interaction.js';
|
|
6
6
|
import { type EntrypointInterface } from '../entrypoint/entrypoint.js';
|
|
@@ -51,4 +51,20 @@ export interface AccountInterface extends AuthWitnessProvider, EntrypointInterfa
|
|
|
51
51
|
/** Returns the rollup version for this account */
|
|
52
52
|
getVersion(): Fr;
|
|
53
53
|
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Handler for interfacing with an account's ability to rotate its keys.
|
|
57
|
+
*/
|
|
58
|
+
export interface AccountKeyRotationInterface {
|
|
59
|
+
/**
|
|
60
|
+
* Rotates the account master nullifier key pair.
|
|
61
|
+
* @param newNskM - The new master nullifier secret key we want to use.
|
|
62
|
+
* @remarks - This function also calls the canonical key registry with the account's new derived master nullifier public key.
|
|
63
|
+
* We are doing it this way to avoid user error, in the case that a user rotates their keys in the key registry,
|
|
64
|
+
* but fails to do so in the key store. This leads to unspendable notes.
|
|
65
|
+
*
|
|
66
|
+
* This does not hinder our ability to spend notes tied to a previous master nullifier public key, provided we have the master nullifier secret key for it.
|
|
67
|
+
*/
|
|
68
|
+
rotateNullifierKeys(newNskM: Fq): Promise<void>;
|
|
69
|
+
}
|
|
54
70
|
// docs:end:account-interface
|
package/src/account/wallet.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type PXE } from '@aztec/circuit-types';
|
|
2
2
|
|
|
3
|
-
import { type AccountInterface } from './interface.js';
|
|
3
|
+
import { type AccountInterface, type AccountKeyRotationInterface } from './interface.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* The wallet interface.
|
|
7
7
|
*/
|
|
8
|
-
export type Wallet = AccountInterface & PXE;
|
|
8
|
+
export type Wallet = AccountInterface & PXE & AccountKeyRotationInterface;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type Fr
|
|
1
|
+
import { type Fr } from '@aztec/circuits.js';
|
|
2
2
|
import {
|
|
3
3
|
type ContractArtifact,
|
|
4
4
|
type FunctionArtifact,
|
|
5
|
+
FunctionSelector,
|
|
5
6
|
encodeArguments,
|
|
6
7
|
getFunctionArtifact,
|
|
7
8
|
} from '@aztec/foundation/abi';
|
|
@@ -51,12 +52,19 @@ export class DeployAccountMethod extends DeployMethod {
|
|
|
51
52
|
if (options.fee && this.#feePaymentArtifact) {
|
|
52
53
|
const { address } = this.getInstance();
|
|
53
54
|
const emptyAppPayload = EntrypointPayload.fromAppExecution([]);
|
|
54
|
-
const feePayload = await EntrypointPayload.fromFeeOptions(options?.fee);
|
|
55
|
+
const feePayload = await EntrypointPayload.fromFeeOptions(address, options?.fee);
|
|
55
56
|
|
|
56
57
|
exec.calls.push({
|
|
58
|
+
name: this.#feePaymentArtifact.name,
|
|
57
59
|
to: address,
|
|
58
60
|
args: encodeArguments(this.#feePaymentArtifact, [emptyAppPayload, feePayload]),
|
|
59
|
-
|
|
61
|
+
selector: FunctionSelector.fromNameAndParameters(
|
|
62
|
+
this.#feePaymentArtifact.name,
|
|
63
|
+
this.#feePaymentArtifact.parameters,
|
|
64
|
+
),
|
|
65
|
+
type: this.#feePaymentArtifact.functionType,
|
|
66
|
+
isStatic: this.#feePaymentArtifact.isStatic,
|
|
67
|
+
returnTypes: this.#feePaymentArtifact.returnTypes,
|
|
60
68
|
});
|
|
61
69
|
|
|
62
70
|
exec.authWitnesses ??= [];
|
|
@@ -17,7 +17,10 @@ import { DeployAccountSentTx } from './deploy_account_sent_tx.js';
|
|
|
17
17
|
/**
|
|
18
18
|
* Options to deploy an account contract.
|
|
19
19
|
*/
|
|
20
|
-
export type DeployAccountOptions = Pick<
|
|
20
|
+
export type DeployAccountOptions = Pick<
|
|
21
|
+
DeployOptions,
|
|
22
|
+
'fee' | 'skipClassRegistration' | 'skipPublicDeployment' | 'estimateGas'
|
|
23
|
+
>;
|
|
21
24
|
|
|
22
25
|
/**
|
|
23
26
|
* Manages a user account. Provides methods for calculating the account's address, deploying the account contract,
|
|
@@ -163,6 +166,7 @@ export class AccountManager {
|
|
|
163
166
|
skipInitialization: false,
|
|
164
167
|
universalDeploy: true,
|
|
165
168
|
fee: opts?.fee,
|
|
169
|
+
estimateGas: opts?.estimateGas,
|
|
166
170
|
}),
|
|
167
171
|
)
|
|
168
172
|
.then(tx => tx.getTxHash());
|
package/src/api/abi.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ContractArtifact, FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
1
|
+
export { type ContractArtifact, type FunctionArtifact, FunctionSelector } from '@aztec/foundation/abi';
|
|
2
2
|
export { loadContractArtifact, contractArtifactToBuffer, contractArtifactFromBuffer } from '@aztec/types/abi';
|
|
3
|
-
export { NoirCompiledContract } from '@aztec/types/noir';
|
|
3
|
+
export { type NoirCompiledContract } from '@aztec/types/noir';
|
package/src/api/fee.ts
CHANGED
|
@@ -2,3 +2,5 @@ export type { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
|
2
2
|
export { NativeFeePaymentMethod } from '../fee/native_fee_payment_method.js';
|
|
3
3
|
export { PrivateFeePaymentMethod } from '../fee/private_fee_payment_method.js';
|
|
4
4
|
export { PublicFeePaymentMethod } from '../fee/public_fee_payment_method.js';
|
|
5
|
+
export { NativeFeePaymentMethodWithClaim } from '../fee/native_fee_payment_method_with_claim.js';
|
|
6
|
+
export { NoFeePaymentMethod } from '../fee/no_fee_payment_method.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Tx, type TxExecutionRequest } from '@aztec/circuit-types';
|
|
2
2
|
import { GasSettings } from '@aztec/circuits.js';
|
|
3
|
+
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
4
|
|
|
4
5
|
import { type Wallet } from '../account/wallet.js';
|
|
5
6
|
import { type ExecutionRequestInit, type FeeOptions } from '../entrypoint/entrypoint.js';
|
|
@@ -27,6 +28,8 @@ export abstract class BaseContractInteraction {
|
|
|
27
28
|
protected tx?: Tx;
|
|
28
29
|
protected txRequest?: TxExecutionRequest;
|
|
29
30
|
|
|
31
|
+
protected log = createDebugLogger('aztec:js:contract_interaction');
|
|
32
|
+
|
|
30
33
|
constructor(protected wallet: Wallet) {}
|
|
31
34
|
|
|
32
35
|
/**
|
|
@@ -66,14 +69,28 @@ export abstract class BaseContractInteraction {
|
|
|
66
69
|
}
|
|
67
70
|
|
|
68
71
|
/**
|
|
69
|
-
* Estimates gas for a given tx request and returns
|
|
70
|
-
* @param
|
|
71
|
-
* @returns Gas
|
|
72
|
+
* Estimates gas for a given tx request and returns gas limits for it.
|
|
73
|
+
* @param opts - Options.
|
|
74
|
+
* @returns Gas limits.
|
|
72
75
|
*/
|
|
73
|
-
|
|
76
|
+
public async estimateGas(
|
|
77
|
+
opts?: Omit<SendMethodOptions, 'estimateGas' | 'skipPublicSimulation'>,
|
|
78
|
+
): Promise<Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>> {
|
|
79
|
+
// REFACTOR: both `this.txRequest = undefined` below are horrible, we should not be caching stuff that doesn't need to be.
|
|
80
|
+
// This also hints at a weird interface for create/request/estimate/send etc.
|
|
81
|
+
|
|
82
|
+
// Ensure we don't accidentally use a version of tx request that has estimateGas set to true, leading to an infinite loop.
|
|
83
|
+
this.txRequest = undefined;
|
|
84
|
+
const txRequest = await this.create({ ...opts, estimateGas: false });
|
|
85
|
+
// Ensure we don't accidentally cache a version of tx request that has estimateGas forcefully set to false.
|
|
86
|
+
this.txRequest = undefined;
|
|
87
|
+
|
|
74
88
|
const simulationResult = await this.wallet.simulateTx(txRequest, true);
|
|
75
|
-
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
76
|
-
|
|
89
|
+
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
90
|
+
simulationResult,
|
|
91
|
+
(opts?.fee?.gasSettings ?? GasSettings.default()).teardownGasLimits,
|
|
92
|
+
);
|
|
93
|
+
return { gasLimits, teardownGasLimits };
|
|
77
94
|
}
|
|
78
95
|
|
|
79
96
|
/**
|
|
@@ -81,11 +98,18 @@ export abstract class BaseContractInteraction {
|
|
|
81
98
|
* @param request - Request to execute for this interaction.
|
|
82
99
|
* @returns Fee options for the actual transaction.
|
|
83
100
|
*/
|
|
84
|
-
protected async
|
|
101
|
+
protected async getFeeOptionsFromEstimatedGas(request: ExecutionRequestInit) {
|
|
85
102
|
const fee = request.fee;
|
|
86
103
|
if (fee) {
|
|
87
104
|
const txRequest = await this.wallet.createTxExecutionRequest(request);
|
|
88
|
-
const
|
|
105
|
+
const simulationResult = await this.wallet.simulateTx(txRequest, true);
|
|
106
|
+
const { totalGas: gasLimits, teardownGas: teardownGasLimits } = getGasLimits(
|
|
107
|
+
simulationResult,
|
|
108
|
+
fee.gasSettings.teardownGasLimits,
|
|
109
|
+
);
|
|
110
|
+
this.log.debug(
|
|
111
|
+
`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`,
|
|
112
|
+
);
|
|
89
113
|
const gasSettings = GasSettings.default({ ...fee.gasSettings, gasLimits, teardownGasLimits });
|
|
90
114
|
return { ...fee, gasSettings };
|
|
91
115
|
}
|