@aztec/wallet-sdk 0.0.1-commit.fff30aa → 0.0.1-private.3d175340d2
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/base-wallet/base_wallet.d.ts +24 -5
- package/dest/base-wallet/base_wallet.d.ts.map +1 -1
- package/dest/base-wallet/base_wallet.js +55 -12
- package/dest/base-wallet/utils.d.ts +5 -3
- package/dest/base-wallet/utils.d.ts.map +1 -1
- package/dest/base-wallet/utils.js +8 -4
- package/dest/extension/handlers/background_connection_handler.d.ts +12 -2
- package/dest/extension/handlers/background_connection_handler.d.ts.map +1 -1
- package/dest/extension/handlers/background_connection_handler.js +44 -8
- package/dest/extension/handlers/content_script_connection_handler.d.ts +2 -1
- package/dest/extension/handlers/content_script_connection_handler.d.ts.map +1 -1
- package/dest/extension/handlers/content_script_connection_handler.js +19 -0
- package/dest/extension/handlers/internal_message_types.d.ts +3 -1
- package/dest/extension/handlers/internal_message_types.d.ts.map +1 -1
- package/dest/extension/handlers/internal_message_types.js +3 -1
- package/dest/extension/provider/extension_wallet.d.ts +26 -3
- package/dest/extension/provider/extension_wallet.d.ts.map +1 -1
- package/dest/extension/provider/extension_wallet.js +80 -9
- package/dest/iframe/handlers/iframe_connection_handler.d.ts +6 -2
- package/dest/iframe/handlers/iframe_connection_handler.d.ts.map +1 -1
- package/dest/iframe/handlers/iframe_connection_handler.js +18 -7
- package/dest/iframe/provider/iframe_wallet.d.ts +20 -3
- package/dest/iframe/provider/iframe_wallet.d.ts.map +1 -1
- package/dest/iframe/provider/iframe_wallet.js +79 -10
- package/dest/types.d.ts +52 -2
- package/dest/types.d.ts.map +1 -1
- package/dest/types.js +25 -0
- package/package.json +8 -8
- package/src/base-wallet/base_wallet.ts +62 -7
- package/src/base-wallet/utils.ts +9 -1
- package/src/extension/handlers/background_connection_handler.ts +42 -9
- package/src/extension/handlers/content_script_connection_handler.ts +18 -0
- package/src/extension/handlers/internal_message_types.ts +2 -0
- package/src/extension/provider/extension_wallet.ts +94 -8
- package/src/iframe/handlers/iframe_connection_handler.ts +21 -8
- package/src/iframe/provider/iframe_wallet.ts +103 -9
- package/src/types.ts +59 -0
|
@@ -12,10 +12,9 @@ import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall
|
|
|
12
12
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
13
13
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
14
14
|
import { type ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
15
|
-
import { GasSettings } from '@aztec/stdlib/gas';
|
|
15
|
+
import { GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
|
|
16
16
|
import type { AztecNode } from '@aztec/stdlib/interfaces/client';
|
|
17
|
-
import { type TxExecutionRequest, type TxProfileResult, type UtilityExecutionResult } from '@aztec/stdlib/tx';
|
|
18
|
-
import { ExecutionPayload } from '@aztec/stdlib/tx';
|
|
17
|
+
import { ExecutionPayload, type TxExecutionRequest, type TxProfileResult, type UtilityExecutionResult } from '@aztec/stdlib/tx';
|
|
19
18
|
/**
|
|
20
19
|
* Options to configure fee payment for a transaction
|
|
21
20
|
*/
|
|
@@ -31,7 +30,7 @@ export type FeeOptions = {
|
|
|
31
30
|
gasSettings: GasSettings;
|
|
32
31
|
};
|
|
33
32
|
/** Options for `simulateViaEntrypoint`. */
|
|
34
|
-
export type SimulateViaEntrypointOptions = Pick<SimulateOptions, 'from' | 'additionalScopes' | 'skipTxValidation' | 'skipFeeEnforcement'> & {
|
|
33
|
+
export type SimulateViaEntrypointOptions = Pick<SimulateOptions, 'from' | 'additionalScopes' | 'skipTxValidation' | 'skipFeeEnforcement' | 'sendMessagesAs' | 'overrides'> & {
|
|
35
34
|
/** Fee options for the entrypoint */
|
|
36
35
|
feeOptions: FeeOptions;
|
|
37
36
|
};
|
|
@@ -45,6 +44,11 @@ export type CompleteFeeOptionsConfig = {
|
|
|
45
44
|
gasSettings?: Partial<FieldsOf<GasSettings>>;
|
|
46
45
|
/** If true, returns gas settings with high gas limits for estimation. If false, uses fallback limits. */
|
|
47
46
|
forEstimation?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* Assumed network congestion level for fee prediction. Controls how aggressively the wallet
|
|
49
|
+
* estimates future fees. Defaults to Limit (worst case) when not specified.
|
|
50
|
+
*/
|
|
51
|
+
congestionEstimate?: ManaUsageEstimate;
|
|
48
52
|
};
|
|
49
53
|
/**
|
|
50
54
|
* A base class for Wallet implementations
|
|
@@ -58,6 +62,14 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
58
62
|
private nodeInfoPromise;
|
|
59
63
|
protected constructor(pxe: PXE, aztecNode: AztecNode, log?: import("@aztec/foundation/log").Logger);
|
|
60
64
|
protected scopesFrom(from: AztecAddress | NoFrom, additionalScopes?: AztecAddress[]): AztecAddress[];
|
|
65
|
+
/**
|
|
66
|
+
* Picks the sender address PXE should tag private messages with. Returns `undefined` when there is no signing
|
|
67
|
+
* account (`from === NO_FROM`) and no explicit override; in that case any private log emitted by the tx using
|
|
68
|
+
* the wallet-supplied default sender will fail the "Sender for tags is not set" assertion.
|
|
69
|
+
* @param from - Tx sender, or `NO_FROM`.
|
|
70
|
+
* @param sendMessagesAs - Explicit override.
|
|
71
|
+
*/
|
|
72
|
+
protected senderForTagsFrom(from: AztecAddress | NoFrom, sendMessagesAs?: AztecAddress): AztecAddress | undefined;
|
|
61
73
|
protected abstract getAccountFromAddress(address: AztecAddress): Promise<Account>;
|
|
62
74
|
abstract getAccounts(): Promise<Aliased<AztecAddress>[]>;
|
|
63
75
|
/**
|
|
@@ -91,8 +103,15 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
91
103
|
* @param config - Fee completion config.
|
|
92
104
|
*/
|
|
93
105
|
protected completeFeeOptions(config: CompleteFeeOptionsConfig): Promise<FeeOptions>;
|
|
106
|
+
/**
|
|
107
|
+
* Returns the worst-case min fee across predicted future slots.
|
|
108
|
+
* Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
|
|
109
|
+
* @param estimate - The mana usage estimate to use for fee prediction. Defaults to Limit for conservative estimation.
|
|
110
|
+
*/
|
|
111
|
+
protected getMinFees(estimate?: ManaUsageEstimate): Promise<GasFees>;
|
|
94
112
|
registerSender(address: AztecAddress, _alias?: string): Promise<AztecAddress>;
|
|
95
113
|
registerContract(instance: ContractInstanceWithAddress, artifact?: ContractArtifact, secretKey?: Fr): Promise<ContractInstanceWithAddress>;
|
|
114
|
+
registerContractClass(artifact: ContractArtifact): Promise<void>;
|
|
96
115
|
/**
|
|
97
116
|
* Simulates calls through the standard PXE path (account entrypoint).
|
|
98
117
|
* @param executionPayload - The execution payload to simulate.
|
|
@@ -141,4 +160,4 @@ export declare abstract class BaseWallet implements Wallet {
|
|
|
141
160
|
isContractClassPubliclyRegistered: boolean;
|
|
142
161
|
}>;
|
|
143
162
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFL0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxLQUFLLHNCQUFzQixFQUUzQixLQUFLLFVBQVUsRUFFaEIsTUFBTSwyQkFBMkIsQ0FBQztBQUNuQyxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTVELE9BQU8sRUFDTCxLQUFLLE9BQU8sRUFDWixLQUFLLGVBQWUsRUFDcEIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssYUFBYSxFQUNsQiw0QkFBNEIsRUFDNUIsS0FBSyxxQkFBcUIsRUFDMUIsS0FBSyxZQUFZLEVBQ2pCLEtBQUssa0JBQWtCLEVBQ3ZCLEtBQUssY0FBYyxFQUNuQixLQUFLLFdBQVcsRUFDaEIsS0FBSyxlQUFlLEVBQ3BCLCtCQUErQixFQUMvQixLQUFLLE1BQU0sRUFDWCxLQUFLLGtCQUFrQixFQUN4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSw4QkFBOEIsRUFBd0MsTUFBTSw0QkFBNEIsQ0FBQztBQUVsSCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxLQUFLLEVBQUUsR0FBRyxFQUFzQixNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxLQUFLLGdCQUFnQixFQUNyQixLQUFLLHVCQUF1QixFQUM1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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EACL,KAAK,sBAAsB,EAE3B,KAAK,UAAU,EAEhB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,4BAA4B,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,+BAA+B,EAC/B,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,8BAA8B,EAAwC,MAAM,4BAA4B,CAAC;AAElH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,KAAK,EAAE,GAAG,EAAsB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EACL,KAAK,2BAA2B,EAIjC,MAAM,wBAAwB,CAAC;AAEhC,OAAO,
|
|
1
|
+
{"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ import { decodeFromAbi } from '@aztec/stdlib/abi';
|
|
|
11
11
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
12
12
|
import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
|
|
13
13
|
import { SimulationError } from '@aztec/stdlib/errors';
|
|
14
|
-
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
14
|
+
import { Gas, GasFees, GasSettings, ManaUsageEstimate } from '@aztec/stdlib/gas';
|
|
15
15
|
import { computeSiloedPrivateInitializationNullifier, computeSiloedPublicInitializationNullifier } from '@aztec/stdlib/hash';
|
|
16
16
|
import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
17
17
|
import { inspect } from 'util';
|
|
@@ -46,6 +46,15 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
46
46
|
].map(AztecAddress.fromString);
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
|
+
* Picks the sender address PXE should tag private messages with. Returns `undefined` when there is no signing
|
|
50
|
+
* account (`from === NO_FROM`) and no explicit override; in that case any private log emitted by the tx using
|
|
51
|
+
* the wallet-supplied default sender will fail the "Sender for tags is not set" assertion.
|
|
52
|
+
* @param from - Tx sender, or `NO_FROM`.
|
|
53
|
+
* @param sendMessagesAs - Explicit override.
|
|
54
|
+
*/ senderForTagsFrom(from, sendMessagesAs) {
|
|
55
|
+
return sendMessagesAs ?? (from === NO_FROM ? undefined : from);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
49
58
|
* Returns the list of aliased contacts associated with the wallet.
|
|
50
59
|
* This base implementation directly returns PXE's senders, but note that in general contacts are a superset of senders.
|
|
51
60
|
* - Senders: Addresses we check during synching in case they sent us notes,
|
|
@@ -132,8 +141,8 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
132
141
|
* Completes partial user-provided fee options with wallet defaults.
|
|
133
142
|
* @param config - Fee completion config.
|
|
134
143
|
*/ async completeFeeOptions(config) {
|
|
135
|
-
const { from, feePayer, gasSettings, forEstimation } = config;
|
|
136
|
-
const maxFeesPerGas = gasSettings?.maxFeesPerGas ?? (await this.
|
|
144
|
+
const { from, feePayer, gasSettings, forEstimation, congestionEstimate } = config;
|
|
145
|
+
const maxFeesPerGas = gasSettings?.maxFeesPerGas ?? (await this.getMinFees(congestionEstimate)).mul(1 + this.minFeePadding);
|
|
137
146
|
let accountFeePaymentMethodOptions;
|
|
138
147
|
// If from is an address, we need to determine the appropriate fee payment method options for the
|
|
139
148
|
// account contract entrypoint to use
|
|
@@ -164,6 +173,26 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
164
173
|
accountFeePaymentMethodOptions
|
|
165
174
|
};
|
|
166
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* Returns the worst-case min fee across predicted future slots.
|
|
178
|
+
* Falls back to getCurrentMinFees if the node doesn't support getPredictedMinFees.
|
|
179
|
+
* @param estimate - The mana usage estimate to use for fee prediction. Defaults to Limit for conservative estimation.
|
|
180
|
+
*/ async getMinFees(estimate = ManaUsageEstimate.Limit) {
|
|
181
|
+
try {
|
|
182
|
+
const predicted = await this.aztecNode.getPredictedMinFees(estimate);
|
|
183
|
+
if (predicted.length === 0) {
|
|
184
|
+
return this.aztecNode.getCurrentMinFees();
|
|
185
|
+
}
|
|
186
|
+
return predicted.reduce((worst, fees)=>fees.feePerL2Gas > worst.feePerL2Gas ? fees : worst);
|
|
187
|
+
} catch (err) {
|
|
188
|
+
// Fallback for old nodes that don't support getPredictedMinFees.
|
|
189
|
+
// Only fall back on method-not-found errors (JSON-RPC code -32601); rethrow others.
|
|
190
|
+
if (err?.cause?.code === -32601 || err?.message?.includes('Method not found')) {
|
|
191
|
+
return this.aztecNode.getCurrentMinFees();
|
|
192
|
+
}
|
|
193
|
+
throw err;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
167
196
|
registerSender(address, _alias = '') {
|
|
168
197
|
return this.pxe.registerSender(address);
|
|
169
198
|
}
|
|
@@ -199,6 +228,9 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
199
228
|
}
|
|
200
229
|
return instance;
|
|
201
230
|
}
|
|
231
|
+
registerContractClass(artifact) {
|
|
232
|
+
return this.pxe.registerContractClass(artifact);
|
|
233
|
+
}
|
|
202
234
|
/**
|
|
203
235
|
* Simulates calls through the standard PXE path (account entrypoint).
|
|
204
236
|
* @param executionPayload - The execution payload to simulate.
|
|
@@ -209,7 +241,9 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
209
241
|
simulatePublic: true,
|
|
210
242
|
skipTxValidation: opts.skipTxValidation,
|
|
211
243
|
skipFeeEnforcement: opts.skipFeeEnforcement,
|
|
212
|
-
scopes: this.scopesFrom(opts.from, opts.additionalScopes)
|
|
244
|
+
scopes: this.scopesFrom(opts.from, opts.additionalScopes),
|
|
245
|
+
senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs),
|
|
246
|
+
overrides: opts.overrides
|
|
213
247
|
});
|
|
214
248
|
const appCallOffset = await this.computeAppCallOffset(opts.from, opts.feeOptions);
|
|
215
249
|
return TxSimulationResultWithAppOffset.fromResultAndOffset(result, appCallOffset);
|
|
@@ -238,7 +272,8 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
238
272
|
from: opts.from,
|
|
239
273
|
feePayer: executionPayload.feePayer,
|
|
240
274
|
gasSettings: opts.fee?.gasSettings,
|
|
241
|
-
forEstimation: true
|
|
275
|
+
forEstimation: true,
|
|
276
|
+
congestionEstimate: opts.fee?.congestionEstimate
|
|
242
277
|
});
|
|
243
278
|
const { optimizableCalls, remainingCalls } = extractOptimizablePublicStaticCalls(executionPayload);
|
|
244
279
|
const remainingPayload = {
|
|
@@ -252,17 +287,19 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
252
287
|
try {
|
|
253
288
|
blockHeader = await this.pxe.getSyncedBlockHeader();
|
|
254
289
|
} catch {
|
|
255
|
-
blockHeader = await this.aztecNode.
|
|
290
|
+
blockHeader = (await this.aztecNode.getBlockData('latest')).header;
|
|
256
291
|
}
|
|
257
292
|
const simulationOrigin = opts.from === NO_FROM ? AztecAddress.ZERO : opts.from;
|
|
258
293
|
const [optimizedResults, normalResult] = await Promise.all([
|
|
259
|
-
optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, simulationOrigin, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this)) : Promise.resolve([]),
|
|
294
|
+
optimizableCalls.length > 0 ? simulateViaNode(this.aztecNode, optimizableCalls, simulationOrigin, chainInfo, feeOptions.gasSettings, blockHeader, opts.skipFeeEnforcement ?? true, this.getContractName.bind(this), opts.overrides) : Promise.resolve([]),
|
|
260
295
|
remainingCalls.length > 0 ? this.simulateViaEntrypoint(remainingPayload, {
|
|
261
296
|
from: opts.from,
|
|
262
297
|
feeOptions,
|
|
263
298
|
additionalScopes: opts.additionalScopes,
|
|
264
299
|
skipTxValidation: opts.skipTxValidation,
|
|
265
|
-
skipFeeEnforcement: opts.skipFeeEnforcement ?? true
|
|
300
|
+
skipFeeEnforcement: opts.skipFeeEnforcement ?? true,
|
|
301
|
+
sendMessagesAs: opts.sendMessagesAs,
|
|
302
|
+
overrides: opts.overrides
|
|
266
303
|
}) : Promise.resolve(null)
|
|
267
304
|
]);
|
|
268
305
|
return buildMergedSimulationResult(optimizedResults, normalResult);
|
|
@@ -271,23 +308,29 @@ import { buildMergedSimulationResult, extractOptimizablePublicStaticCalls, simul
|
|
|
271
308
|
const feeOptions = await this.completeFeeOptions({
|
|
272
309
|
from: opts.from,
|
|
273
310
|
feePayer: executionPayload.feePayer,
|
|
274
|
-
gasSettings: opts.fee?.gasSettings
|
|
311
|
+
gasSettings: opts.fee?.gasSettings,
|
|
312
|
+
congestionEstimate: opts.fee?.congestionEstimate
|
|
275
313
|
});
|
|
276
314
|
const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
|
|
277
315
|
return this.pxe.profileTx(txRequest, {
|
|
278
316
|
profileMode: opts.profileMode,
|
|
279
317
|
skipProofGeneration: opts.skipProofGeneration ?? true,
|
|
280
|
-
scopes: this.scopesFrom(opts.from, opts.additionalScopes)
|
|
318
|
+
scopes: this.scopesFrom(opts.from, opts.additionalScopes),
|
|
319
|
+
senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs)
|
|
281
320
|
});
|
|
282
321
|
}
|
|
283
322
|
async sendTx(executionPayload, opts) {
|
|
284
323
|
const feeOptions = await this.completeFeeOptions({
|
|
285
324
|
from: opts.from,
|
|
286
325
|
feePayer: executionPayload.feePayer,
|
|
287
|
-
gasSettings: opts.fee?.gasSettings
|
|
326
|
+
gasSettings: opts.fee?.gasSettings,
|
|
327
|
+
congestionEstimate: opts.fee?.congestionEstimate
|
|
288
328
|
});
|
|
289
329
|
const txRequest = await this.createTxExecutionRequestFromPayloadAndFee(executionPayload, opts.from, feeOptions);
|
|
290
|
-
const provenTx = await this.pxe.proveTx(txRequest,
|
|
330
|
+
const provenTx = await this.pxe.proveTx(txRequest, {
|
|
331
|
+
scopes: this.scopesFrom(opts.from, opts.additionalScopes),
|
|
332
|
+
senderForTags: this.senderForTagsFrom(opts.from, opts.sendMessagesAs)
|
|
333
|
+
});
|
|
291
334
|
const offchainOutput = extractOffchainOutput(provenTx.getOffchainEffects(), provenTx.publicInputs.constants.anchorBlockHeader.globalVariables.timestamp);
|
|
292
335
|
const tx = await provenTx.toTx();
|
|
293
336
|
const txHash = tx.getTxHash();
|
|
@@ -5,7 +5,7 @@ import type { ContractNameResolver } from '@aztec/pxe/client/lazy';
|
|
|
5
5
|
import { type FunctionCall } from '@aztec/stdlib/abi';
|
|
6
6
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
7
|
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
8
|
-
import { type BlockHeader, type ExecutionPayload, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
8
|
+
import { type BlockHeader, type ExecutionPayload, type SimulationOverrides, TxSimulationResult } from '@aztec/stdlib/tx';
|
|
9
9
|
/**
|
|
10
10
|
* Splits an execution payload into a leading prefix of public static calls
|
|
11
11
|
* (eligible for direct node simulation) and the remaining calls.
|
|
@@ -33,9 +33,11 @@ export declare function extractOptimizablePublicStaticCalls(payload: ExecutionPa
|
|
|
33
33
|
* @param gasSettings - Gas settings for the transaction.
|
|
34
34
|
* @param blockHeader - Block header to use as anchor.
|
|
35
35
|
* @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
|
|
36
|
+
* @param getContractName - Resolver for contract names (used for debug log display).
|
|
37
|
+
* @param overrides - Optional pre-simulation overrides applied to the ephemeral fork and contract DB.
|
|
36
38
|
* @returns Array of TxSimulationResult, one per batch.
|
|
37
39
|
*/
|
|
38
|
-
export declare function simulateViaNode(node: AztecNode, publicStaticCalls: FunctionCall[], from: AztecAddress, chainInfo: ChainInfo, gasSettings: GasSettings, blockHeader: BlockHeader, skipFeeEnforcement: boolean | undefined, getContractName: ContractNameResolver): Promise<TxSimulationResult[]>;
|
|
40
|
+
export declare function simulateViaNode(node: AztecNode, publicStaticCalls: FunctionCall[], from: AztecAddress, chainInfo: ChainInfo, gasSettings: GasSettings, blockHeader: BlockHeader, skipFeeEnforcement: boolean | undefined, getContractName: ContractNameResolver, overrides?: SimulationOverrides): Promise<TxSimulationResult[]>;
|
|
39
41
|
/**
|
|
40
42
|
* Merges simulation results from the optimized (public static) and normal paths.
|
|
41
43
|
* Since optimized calls are always a leading prefix, return values are simply
|
|
@@ -47,4 +49,4 @@ export declare function simulateViaNode(node: AztecNode, publicStaticCalls: Func
|
|
|
47
49
|
* @returns A single TxSimulationResult with return values in original call order.
|
|
48
50
|
*/
|
|
49
51
|
export declare function buildMergedSimulationResult(optimizedResults: TxSimulationResult[], normalResult: TxSimulationResultWithAppOffset | null): TxSimulationResultWithAppOffset;
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV6RSxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkvRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR25FLE9BQU8sRUFBRSxLQUFLLFlBQVksRUFBb0IsTUFBTSxtQkFBbUIsQ0FBQztBQUN4RSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVFyRCxPQUFPLEVBQ0wsS0FBSyxXQUFXLEVBQ2hCLEtBQUssZ0JBQWdCLEVBS3JCLEtBQUssbUJBQW1CLEVBR3hCLGtCQUFrQixFQUNuQixNQUFNLGtCQUFrQixDQUFDO0FBRTFCOzs7Ozs7Ozs7R0FTRztBQUNILHdCQUFnQixtQ0FBbUMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEdBQUc7SUFDOUUsdUVBQXVFO0lBQ3ZFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ2pDLDJCQUEyQjtJQUMzQixjQUFjLEVBQUUsWUFBWSxFQUFFLENBQUM7Q0FDaEMsQ0FPQTtBQTBHRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFzQixlQUFlLENBQ25DLElBQUksRUFBRSxTQUFTLEVBQ2YsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEVBQ2pDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLGtCQUFrQixxQkFBZ0IsRUFDbEMsZUFBZSxFQUFFLG9CQUFvQixFQUNyQyxTQUFTLENBQUMsRUFBRSxtQkFBbUIsR0FDOUIsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0F5Qi9CO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUN6QyxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxFQUN0QyxZQUFZLEVBQUUsK0JBQStCLEdBQUcsSUFBSSxHQUNuRCwrQkFBK0IsQ0FxQmpDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base-wallet/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/base-wallet/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAI/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAGnE,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAKrB,KAAK,mBAAmB,EAGxB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAE1B;;;;;;;;;GASG;AACH,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,gBAAgB,GAAG;IAC9E,uEAAuE;IACvE,gBAAgB,EAAE,YAAY,EAAE,CAAC;IACjC,2BAA2B;IAC3B,cAAc,EAAE,YAAY,EAAE,CAAC;CAChC,CAOA;AA0GD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,YAAY,EAAE,EACjC,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,kBAAkB,qBAAgB,EAClC,eAAe,EAAE,oBAAoB,EACrC,SAAS,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyB/B;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,gBAAgB,EAAE,kBAAkB,EAAE,EACtC,YAAY,EAAE,+BAA+B,GAAG,IAAI,GACnD,+BAA+B,CAqBjC"}
|
|
@@ -35,8 +35,10 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
|
|
|
35
35
|
* @param gasSettings - Gas settings for the transaction.
|
|
36
36
|
* @param blockHeader - Block header to use as anchor.
|
|
37
37
|
* @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
|
|
38
|
+
* @param getContractName - Resolver for contract names (used for debug log display).
|
|
39
|
+
* @param overrides - Optional pre-simulation overrides applied to the ephemeral fork and contract DB.
|
|
38
40
|
* @returns TxSimulationResult with public return values.
|
|
39
|
-
*/ async function simulateBatchViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName) {
|
|
41
|
+
*/ async function simulateBatchViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName, overrides) {
|
|
40
42
|
const txContext = new TxContext(chainInfo.chainId, chainInfo.version, gasSettings);
|
|
41
43
|
const publicFunctionCalldata = [];
|
|
42
44
|
for (const call of publicStaticCalls){
|
|
@@ -75,7 +77,7 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
|
|
|
75
77
|
contractClassLogFields: [],
|
|
76
78
|
publicFunctionCalldata: publicFunctionCalldata
|
|
77
79
|
});
|
|
78
|
-
const publicOutput = await node.simulatePublicCalls(tx, skipFeeEnforcement);
|
|
80
|
+
const publicOutput = await node.simulatePublicCalls(tx, skipFeeEnforcement, overrides);
|
|
79
81
|
if (publicOutput.revertReason) {
|
|
80
82
|
throw publicOutput.revertReason;
|
|
81
83
|
}
|
|
@@ -94,15 +96,17 @@ import { HashedValues, PrivateCallExecutionResult, PrivateExecutionResult, Tx, T
|
|
|
94
96
|
* @param gasSettings - Gas settings for the transaction.
|
|
95
97
|
* @param blockHeader - Block header to use as anchor.
|
|
96
98
|
* @param skipFeeEnforcement - Whether to skip fee enforcement during simulation.
|
|
99
|
+
* @param getContractName - Resolver for contract names (used for debug log display).
|
|
100
|
+
* @param overrides - Optional pre-simulation overrides applied to the ephemeral fork and contract DB.
|
|
97
101
|
* @returns Array of TxSimulationResult, one per batch.
|
|
98
|
-
*/ export async function simulateViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement = true, getContractName) {
|
|
102
|
+
*/ export async function simulateViaNode(node, publicStaticCalls, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement = true, getContractName, overrides) {
|
|
99
103
|
const batches = [];
|
|
100
104
|
for(let i = 0; i < publicStaticCalls.length; i += MAX_ENQUEUED_CALLS_PER_CALL){
|
|
101
105
|
batches.push(publicStaticCalls.slice(i, i + MAX_ENQUEUED_CALLS_PER_CALL));
|
|
102
106
|
}
|
|
103
107
|
const results = [];
|
|
104
108
|
for (const batch of batches){
|
|
105
|
-
const result = await simulateBatchViaNode(node, batch, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName);
|
|
109
|
+
const result = await simulateBatchViaNode(node, batch, from, chainInfo, gasSettings, blockHeader, skipFeeEnforcement, getContractName, overrides);
|
|
106
110
|
results.push(result);
|
|
107
111
|
}
|
|
108
112
|
return results;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ChainInfo } from '@aztec/aztec.js/account';
|
|
2
2
|
import { type EncryptedPayload } from '../../crypto.js';
|
|
3
|
-
import { type DiscoveryRequest, type KeyExchangeRequest, type WalletInfo, type WalletMessage, type WalletResponse } from '../../types.js';
|
|
3
|
+
import { type DiscoveryRequest, type KeyExchangeRequest, type WalletInfo, type WalletMessage, type WalletResponse, type WalletSdkLogger } from '../../types.js';
|
|
4
4
|
import { type BackgroundMessage, type MessageSender } from './internal_message_types.js';
|
|
5
5
|
/**
|
|
6
6
|
* Status of a pending discovery request.
|
|
@@ -98,6 +98,8 @@ export interface BackgroundConnectionConfig {
|
|
|
98
98
|
walletVersion: string;
|
|
99
99
|
/** Optional wallet icon URL. */
|
|
100
100
|
walletIcon?: string;
|
|
101
|
+
/** Logger used for diagnostics. */
|
|
102
|
+
logger: WalletSdkLogger;
|
|
101
103
|
}
|
|
102
104
|
/**
|
|
103
105
|
* Handles wallet session flow in the extension background script.
|
|
@@ -115,6 +117,7 @@ export interface BackgroundConnectionConfig {
|
|
|
115
117
|
* walletId: 'my-wallet',
|
|
116
118
|
* walletName: 'My Wallet',
|
|
117
119
|
* walletVersion: '1.0.0',
|
|
120
|
+
* logger: console,
|
|
118
121
|
* },
|
|
119
122
|
* {
|
|
120
123
|
* sendToTab: (tabId, message) => browser.tabs.sendMessage(tabId, message),
|
|
@@ -136,9 +139,16 @@ export declare class BackgroundConnectionHandler {
|
|
|
136
139
|
private callbacks;
|
|
137
140
|
private pendingDiscoveries;
|
|
138
141
|
private activeSessions;
|
|
142
|
+
private log;
|
|
139
143
|
constructor(config: BackgroundConnectionConfig, transport: BackgroundTransport, callbacks?: BackgroundConnectionCallbacks);
|
|
140
144
|
initialize(): void;
|
|
141
145
|
private handleMessage;
|
|
146
|
+
/**
|
|
147
|
+
* Reply to a dApp PING with a PONG. Used as a liveness probe so the dApp can
|
|
148
|
+
* tell the difference between a slow request and a dead extension.
|
|
149
|
+
* @param sessionId - The session that sent the PING.
|
|
150
|
+
*/
|
|
151
|
+
private handlePing;
|
|
142
152
|
getWalletInfo(): WalletInfo;
|
|
143
153
|
handleDiscoveryRequest(request: DiscoveryRequest, tabId: number, origin: string): void;
|
|
144
154
|
approveDiscovery(requestId: string): boolean;
|
|
@@ -155,4 +165,4 @@ export declare class BackgroundConnectionHandler {
|
|
|
155
165
|
getSession(sessionId: string): ActiveSession | undefined;
|
|
156
166
|
getPendingDiscovery(requestId: string): PendingDiscovery | undefined;
|
|
157
167
|
}
|
|
158
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZF9jb25uZWN0aW9uX2hhbmRsZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHRlbnNpb24vaGFuZGxlcnMvYmFja2dyb3VuZF9jb25uZWN0aW9uX2hhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBT3RCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLEtBQUssa0JBQWtCLEVBRXZCLEtBQUssVUFBVSxFQUNmLEtBQUssYUFBYSxFQUVsQixLQUFLLGNBQWMsRUFDbkIsS0FBSyxlQUFlLEVBQ3JCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUNMLEtBQUssaUJBQWlCLEVBSXRCLEtBQUssYUFBYSxFQUNuQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDOztHQUVHO0FBQ0gsTUFBTSxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcsVUFBVSxHQUFHLFVBQVUsQ0FBQztBQUVsRTs7R0FFRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsaUNBQWlDO0lBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIsOEJBQThCO0lBQzlCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCxpQ0FBaUM7SUFDakMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2pCLHlDQUF5QztJQUN6QyxNQUFNLEVBQUUsTUFBTSxDQUFDO0lBQ2YsMkJBQTJCO0lBQzNCLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckIsc0JBQXNCO0lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUM7SUFDZCx5QkFBeUI7SUFDekIsU0FBUyxFQUFFLE1BQU0sQ0FBQztJQUNsQixzQkFBc0I7SUFDdEIsTUFBTSxFQUFFLGVBQWUsQ0FBQztDQUN6QjtBQUVEOzs7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"background_connection_handler.d.ts","sourceRoot":"","sources":["../../../src/extension/handlers/background_connection_handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,EACL,KAAK,gBAAgB,EAOtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EAEvB,KAAK,UAAU,EACf,KAAK,aAAa,EAElB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"background_connection_handler.d.ts","sourceRoot":"","sources":["../../../src/extension/handlers/background_connection_handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
17
17
|
* walletId: 'my-wallet',
|
|
18
18
|
* walletName: 'My Wallet',
|
|
19
19
|
* walletVersion: '1.0.0',
|
|
20
|
+
* logger: console,
|
|
20
21
|
* },
|
|
21
22
|
* {
|
|
22
23
|
* sendToTab: (tabId, message) => browser.tabs.sendMessage(tabId, message),
|
|
@@ -37,6 +38,7 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
37
38
|
callbacks;
|
|
38
39
|
pendingDiscoveries;
|
|
39
40
|
activeSessions;
|
|
41
|
+
log;
|
|
40
42
|
constructor(config, transport, callbacks = {}){
|
|
41
43
|
this.config = config;
|
|
42
44
|
this.transport = transport;
|
|
@@ -60,8 +62,11 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
60
62
|
break;
|
|
61
63
|
case InternalMessageType.KEY_EXCHANGE_REQUEST:
|
|
62
64
|
if (sessionId) {
|
|
63
|
-
this.handleKeyExchangeRequest(sessionId, content).catch(()=>{
|
|
64
|
-
|
|
65
|
+
this.handleKeyExchangeRequest(sessionId, content).catch((err)=>{
|
|
66
|
+
this.log.warn('Key exchange failed — session will not be established', {
|
|
67
|
+
sessionId,
|
|
68
|
+
err
|
|
69
|
+
});
|
|
65
70
|
});
|
|
66
71
|
}
|
|
67
72
|
break;
|
|
@@ -75,13 +80,34 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
75
80
|
void this.handleEncryptedMessage(sessionId, content);
|
|
76
81
|
}
|
|
77
82
|
break;
|
|
83
|
+
case InternalMessageType.PING:
|
|
84
|
+
if (sessionId) {
|
|
85
|
+
this.handlePing(sessionId);
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
78
88
|
}
|
|
79
89
|
};
|
|
90
|
+
this.log = config.logger;
|
|
80
91
|
}
|
|
81
92
|
initialize() {
|
|
82
93
|
this.transport.addContentListener(this.handleMessage);
|
|
83
94
|
}
|
|
84
95
|
handleMessage;
|
|
96
|
+
/**
|
|
97
|
+
* Reply to a dApp PING with a PONG. Used as a liveness probe so the dApp can
|
|
98
|
+
* tell the difference between a slow request and a dead extension.
|
|
99
|
+
* @param sessionId - The session that sent the PING.
|
|
100
|
+
*/ handlePing(sessionId) {
|
|
101
|
+
const session = this.activeSessions.get(sessionId);
|
|
102
|
+
if (!session) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.transport.sendToTab(session.tabId, {
|
|
106
|
+
origin: MessageOrigin.BACKGROUND,
|
|
107
|
+
type: InternalMessageType.PONG,
|
|
108
|
+
sessionId
|
|
109
|
+
});
|
|
110
|
+
}
|
|
85
111
|
getWalletInfo() {
|
|
86
112
|
return {
|
|
87
113
|
id: this.config.walletId,
|
|
@@ -164,8 +190,11 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
164
190
|
content: response
|
|
165
191
|
});
|
|
166
192
|
this.callbacks.onSessionEstablished?.(session);
|
|
167
|
-
} catch
|
|
168
|
-
|
|
193
|
+
} catch (err) {
|
|
194
|
+
this.log.warn('Key exchange failed — session will not be established', {
|
|
195
|
+
sessionId,
|
|
196
|
+
err
|
|
197
|
+
});
|
|
169
198
|
}
|
|
170
199
|
}
|
|
171
200
|
async handleEncryptedMessage(sessionId, encrypted) {
|
|
@@ -176,8 +205,11 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
176
205
|
try {
|
|
177
206
|
const message = await decrypt(session.sharedKey, encrypted);
|
|
178
207
|
this.callbacks.onWalletMessage?.(session, message);
|
|
179
|
-
} catch
|
|
180
|
-
|
|
208
|
+
} catch (err) {
|
|
209
|
+
this.log.warn('Failed to decrypt incoming wallet message', {
|
|
210
|
+
sessionId,
|
|
211
|
+
err
|
|
212
|
+
});
|
|
181
213
|
}
|
|
182
214
|
}
|
|
183
215
|
async sendResponse(sessionId, response) {
|
|
@@ -193,8 +225,12 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
193
225
|
sessionId,
|
|
194
226
|
content: encrypted
|
|
195
227
|
});
|
|
196
|
-
} catch
|
|
197
|
-
|
|
228
|
+
} catch (err) {
|
|
229
|
+
this.log.error('Failed to encrypt wallet response — response will not be sent', {
|
|
230
|
+
sessionId,
|
|
231
|
+
messageId: response.messageId,
|
|
232
|
+
err
|
|
233
|
+
});
|
|
198
234
|
}
|
|
199
235
|
}
|
|
200
236
|
terminateSession(sessionId) {
|
|
@@ -44,6 +44,7 @@ export declare class ContentScriptConnectionHandler {
|
|
|
44
44
|
constructor(transport: ContentScriptTransport);
|
|
45
45
|
start(): void;
|
|
46
46
|
private handleBackgroundMessage;
|
|
47
|
+
private handlePong;
|
|
47
48
|
private handleDiscoveryRequest;
|
|
48
49
|
private handleDiscoveryApproved;
|
|
49
50
|
private handleKeyExchangeResponse;
|
|
@@ -53,4 +54,4 @@ export declare class ContentScriptConnectionHandler {
|
|
|
53
54
|
closeAllConnections(): void;
|
|
54
55
|
getConnectionCount(): number;
|
|
55
56
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudF9zY3JpcHRfY29ubmVjdGlvbl9oYW5kbGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZXh0ZW5zaW9uL2hhbmRsZXJzL2NvbnRlbnRfc2NyaXB0X2Nvbm5lY3Rpb25faGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsS0FBSyxpQkFBaUIsRUFDdEIsS0FBSyxvQkFBb0IsRUFHMUIsTUFBTSw2QkFBNkIsQ0FBQztBQW9DckM7O0dBRUc7QUFDSCxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDOzs7T0FHRztJQUNILGdCQUFnQixFQUFFLENBQUMsT0FBTyxFQUFFLG9CQUFvQixLQUFLLElBQUksQ0FBQztJQUUxRDs7O09BR0c7SUFDSCxxQkFBcUIsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsS0FBSyxJQUFJLEtBQUssSUFBSSxDQUFDO0NBQ2hGO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQUNILHFCQUFhLDhCQUE4QjtJQUs3QixPQUFPLENBQUMsU0FBUztJQUo3QixPQUFPLENBQUMsS0FBSyxDQUFxQztJQUNsRCxPQUFPLENBQUMsU0FBUyxDQUFTO0lBQzFCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBZ0Q7SUFFMUUsWUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFJO0lBRXpELEtBQUssSUFBSSxJQUFJLENBOEJaO0lBRUQsT0FBTyxDQUFDLHVCQUF1QixDQXdCN0I7SUFFRixPQUFPLENBQUMsVUFBVTtJQVFsQixPQUFPLENBQUMsc0JBQXNCO0lBUTlCLE9BQU8sQ0FBQyx1QkFBdUI7SUF3RC9CLE9BQU8sQ0FBQyx5QkFBeUI7SUFRakMsT0FBTyxDQUFDLG9CQUFvQjtJQVE1QixPQUFPLENBQUMseUJBQXlCO0lBVWpDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxHQUFHLElBQUksQ0FNdkM7SUFFRCxtQkFBbUIsSUFBSSxJQUFJLENBSzFCO0lBRUQsa0JBQWtCLElBQUksTUFBTSxDQUUzQjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content_script_connection_handler.d.ts","sourceRoot":"","sources":["../../../src/extension/handlers/content_script_connection_handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,6BAA6B,CAAC;AAoCrC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAE1D;;;OAGG;IACH,qBAAqB,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,KAAK,IAAI,CAAC;CAChF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,8BAA8B;IAK7B,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAgD;IAE1E,YAAoB,SAAS,EAAE,sBAAsB,EAAI;IAEzD,KAAK,IAAI,IAAI,CA8BZ;IAED,OAAO,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"content_script_connection_handler.d.ts","sourceRoot":"","sources":["../../../src/extension/handlers/content_script_connection_handler.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,6BAA6B,CAAC;AAoCrC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAE1D;;;OAGG;IACH,qBAAqB,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,KAAK,IAAI,CAAC;CAChF;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,8BAA8B;IAK7B,OAAO,CAAC,SAAS;IAJ7B,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,kBAAkB,CAAgD;IAE1E,YAAoB,SAAS,EAAE,sBAAsB,EAAI;IAEzD,KAAK,IAAI,IAAI,CA8BZ;IAED,OAAO,CAAC,uBAAuB,CAwB7B;IAEF,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,yBAAyB;IAUjC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAMvC;IAED,mBAAmB,IAAI,IAAI,CAK1B;IAED,kBAAkB,IAAI,MAAM,CAE3B;CACF"}
|
|
@@ -49,6 +49,9 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
49
49
|
case InternalMessageType.SESSION_DISCONNECTED:
|
|
50
50
|
this.handleSessionDisconnected(sessionId);
|
|
51
51
|
break;
|
|
52
|
+
case InternalMessageType.PONG:
|
|
53
|
+
this.handlePong(sessionId);
|
|
54
|
+
break;
|
|
52
55
|
}
|
|
53
56
|
};
|
|
54
57
|
}
|
|
@@ -78,6 +81,15 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
78
81
|
this.listening = true;
|
|
79
82
|
}
|
|
80
83
|
handleBackgroundMessage;
|
|
84
|
+
handlePong(sessionId) {
|
|
85
|
+
const connection = this.ports.get(sessionId);
|
|
86
|
+
if (!connection) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
connection.port.postMessage({
|
|
90
|
+
type: WalletMessageType.PONG
|
|
91
|
+
});
|
|
92
|
+
}
|
|
81
93
|
handleDiscoveryRequest(request) {
|
|
82
94
|
this.transport.sendToBackground({
|
|
83
95
|
origin: MessageOrigin.CONTENT_SCRIPT,
|
|
@@ -110,6 +122,13 @@ import { InternalMessageType, MessageOrigin } from './internal_message_types.js'
|
|
|
110
122
|
content: data
|
|
111
123
|
});
|
|
112
124
|
break;
|
|
125
|
+
case WalletMessageType.PING:
|
|
126
|
+
this.transport.sendToBackground({
|
|
127
|
+
origin: MessageOrigin.CONTENT_SCRIPT,
|
|
128
|
+
type: InternalMessageType.PING,
|
|
129
|
+
sessionId
|
|
130
|
+
});
|
|
131
|
+
break;
|
|
113
132
|
default:
|
|
114
133
|
this.transport.sendToBackground({
|
|
115
134
|
origin: MessageOrigin.CONTENT_SCRIPT,
|