@aztec/wallets 0.0.1-commit.9ee6fcc6 → 0.0.1-commit.9ef841308
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/embedded/embedded_wallet.d.ts +1 -1
- package/dest/embedded/embedded_wallet.d.ts.map +1 -1
- package/dest/embedded/embedded_wallet.js +21 -26
- package/dest/testing.d.ts +1 -1
- package/dest/testing.d.ts.map +1 -1
- package/dest/testing.js +2 -2
- package/package.json +10 -10
- package/src/embedded/embedded_wallet.ts +28 -31
- package/src/testing.ts +2 -1
|
@@ -53,4 +53,4 @@ export declare class EmbeddedWallet extends BaseWallet {
|
|
|
53
53
|
setEstimatedGasPadding(value?: number): void;
|
|
54
54
|
stop(): Promise<void>;
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZWRfd2FsbGV0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZW1iZWRkZWQvZW1iZWRkZWRfd2FsbGV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE9BQU8sRUFBVyxNQUFNLHlCQUF5QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxLQUFLLHNCQUFzQixFQUFFLEtBQUssVUFBVSxFQUFnQixNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sS0FBSyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RSxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0QsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFakUsT0FBTyxFQUNMLGdCQUFnQixFQUdoQixLQUFLLGtCQUFrQixFQUd4QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTlGLE9BQU8sS0FBSyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEYsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVELE1BQU0sTUFBTSxxQkFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"embedded_wallet.d.ts","sourceRoot":"","sources":["../../src/embedded/embedded_wallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
2
2
|
import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
|
|
3
3
|
import { getGasLimits } from '@aztec/aztec.js/contracts';
|
|
4
4
|
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
5
|
+
import { DefaultEntrypoint } from '@aztec/entrypoints/default';
|
|
5
6
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
6
|
-
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
7
|
import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
8
8
|
import { GasSettings } from '@aztec/stdlib/gas';
|
|
9
9
|
import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
@@ -18,9 +18,6 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
18
18
|
super(pxe, aztecNode, log), this.walletDB = walletDB, this.accountContracts = accountContracts, this.estimatedGasPadding = DEFAULT_ESTIMATED_GAS_PADDING;
|
|
19
19
|
}
|
|
20
20
|
async getAccountFromAddress(address) {
|
|
21
|
-
if (address.equals(AztecAddress.ZERO)) {
|
|
22
|
-
return new SignerlessAccount();
|
|
23
|
-
}
|
|
24
21
|
const { secretKey, salt, signingKey, type } = await this.walletDB.retrieveAccount(address);
|
|
25
22
|
const accountManager = await this.createAccountInternal(type, secretKey, salt, signingKey);
|
|
26
23
|
const account = await accountManager.getAccount();
|
|
@@ -64,7 +61,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
64
61
|
const authWitnesses = await Promise.all(offchainEffects.map(async (effect)=>{
|
|
65
62
|
try {
|
|
66
63
|
const authRequest = await CallAuthorizationRequest.fromFields(effect.data);
|
|
67
|
-
return this.createAuthWit(
|
|
64
|
+
return this.createAuthWit(authRequest.onBehalfOf, {
|
|
68
65
|
consumer: effect.contractAddress,
|
|
69
66
|
innerHash: authRequest.innerHash
|
|
70
67
|
});
|
|
@@ -100,11 +97,19 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
100
97
|
* private kernel circuit execution.
|
|
101
98
|
*/ async simulateViaEntrypoint(executionPayload, opts) {
|
|
102
99
|
const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
|
|
100
|
+
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
101
|
+
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
102
|
+
feeExecutionPayload,
|
|
103
|
+
executionPayload
|
|
104
|
+
]) : executionPayload;
|
|
105
|
+
const chainInfo = await this.getChainInfo();
|
|
103
106
|
let overrides;
|
|
104
|
-
let
|
|
105
|
-
if (
|
|
107
|
+
let txRequest;
|
|
108
|
+
if (from === NO_FROM) {
|
|
109
|
+
const entrypoint = new DefaultEntrypoint();
|
|
110
|
+
txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
|
|
111
|
+
} else {
|
|
106
112
|
const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
|
|
107
|
-
fromAccount = account;
|
|
108
113
|
overrides = {
|
|
109
114
|
contracts: {
|
|
110
115
|
[from.toString()]: {
|
|
@@ -113,21 +118,14 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
113
118
|
}
|
|
114
119
|
}
|
|
115
120
|
};
|
|
116
|
-
|
|
117
|
-
|
|
121
|
+
const executionOptions = {
|
|
122
|
+
txNonce: Fr.random(),
|
|
123
|
+
cancellable: this.cancellableTransactions,
|
|
124
|
+
// If from is an address, feeOptions include the way the account contract should handle the fee payment
|
|
125
|
+
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
|
|
126
|
+
};
|
|
127
|
+
txRequest = await account.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
|
|
118
128
|
}
|
|
119
|
-
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
120
|
-
const executionOptions = {
|
|
121
|
-
txNonce: Fr.random(),
|
|
122
|
-
cancellable: this.cancellableTransactions,
|
|
123
|
-
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions
|
|
124
|
-
};
|
|
125
|
-
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
126
|
-
feeExecutionPayload,
|
|
127
|
-
executionPayload
|
|
128
|
-
]) : executionPayload;
|
|
129
|
-
const chainInfo = await this.getChainInfo();
|
|
130
|
-
const txRequest = await fromAccount.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo, executionOptions);
|
|
131
129
|
return this.pxe.simulateTx(txRequest, {
|
|
132
130
|
simulatePublic: true,
|
|
133
131
|
skipFeeEnforcement,
|
|
@@ -138,9 +136,6 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
138
136
|
}
|
|
139
137
|
async getFakeAccountDataFor(address) {
|
|
140
138
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
141
|
-
if (originalAccount instanceof SignerlessAccount) {
|
|
142
|
-
throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
|
|
143
|
-
}
|
|
144
139
|
const originalAddress = originalAccount.getCompleteAddress();
|
|
145
140
|
const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
|
|
146
141
|
if (!contractInstance) {
|
package/dest/testing.d.ts
CHANGED
|
@@ -9,4 +9,4 @@ interface WalletWithSchnorrAccounts {
|
|
|
9
9
|
export declare function deployFundedSchnorrAccounts(wallet: WalletWithSchnorrAccounts, accountsData: InitialAccountData[], waitOptions?: WaitOpts): Promise<AccountManager[]>;
|
|
10
10
|
export declare function registerInitialLocalNetworkAccountsInWallet(wallet: WalletWithSchnorrAccounts): Promise<AztecAddress[]>;
|
|
11
11
|
export {};
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3RpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdsRSxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNELFVBQVUseUJBQXlCO0lBQ2pDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztDQUN0RztBQUVELHdCQUFzQiwyQkFBMkIsQ0FDL0MsTUFBTSxFQUFFLHlCQUF5QixFQUNqQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsRUFDbEMsV0FBVyxDQUFDLEVBQUUsUUFBUSw2QkFnQnZCO0FBRUQsd0JBQXNCLDJDQUEyQyxDQUMvRCxNQUFNLEVBQUUseUJBQXlCLEdBQ2hDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQU96QiJ9
|
package/dest/testing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,UAAU,yBAAyB;IACjC,oBAAoB,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACtG;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,EACjC,YAAY,EAAE,kBAAkB,EAAE,EAClC,WAAW,CAAC,EAAE,QAAQ,6BAgBvB;AAED,wBAAsB,2CAA2C,CAC/D,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB"}
|
package/dest/testing.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing/lazy';
|
|
2
|
-
import {
|
|
2
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
3
3
|
export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOptions) {
|
|
4
4
|
const accountManagers = [];
|
|
5
5
|
// Serial due to https://github.com/AztecProtocol/aztec-packages/issues/12045
|
|
@@ -8,7 +8,7 @@ export async function deployFundedSchnorrAccounts(wallet, accountsData, waitOpti
|
|
|
8
8
|
const accountManager = await wallet.createSchnorrAccount(secret, salt, signingKey);
|
|
9
9
|
const deployMethod = await accountManager.getDeployMethod();
|
|
10
10
|
await deployMethod.send({
|
|
11
|
-
from:
|
|
11
|
+
from: NO_FROM,
|
|
12
12
|
skipClassPublication: i !== 0,
|
|
13
13
|
wait: waitOptions
|
|
14
14
|
});
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/wallets",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/wallets",
|
|
4
|
-
"version": "0.0.1-commit.
|
|
4
|
+
"version": "0.0.1-commit.9ef841308",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./embedded": {
|
|
@@ -27,15 +27,15 @@
|
|
|
27
27
|
"../package.common.json"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@aztec/accounts": "0.0.1-commit.
|
|
31
|
-
"@aztec/aztec.js": "0.0.1-commit.
|
|
32
|
-
"@aztec/entrypoints": "0.0.1-commit.
|
|
33
|
-
"@aztec/foundation": "0.0.1-commit.
|
|
34
|
-
"@aztec/kv-store": "0.0.1-commit.
|
|
35
|
-
"@aztec/protocol-contracts": "0.0.1-commit.
|
|
36
|
-
"@aztec/pxe": "0.0.1-commit.
|
|
37
|
-
"@aztec/stdlib": "0.0.1-commit.
|
|
38
|
-
"@aztec/wallet-sdk": "0.0.1-commit.
|
|
30
|
+
"@aztec/accounts": "0.0.1-commit.9ef841308",
|
|
31
|
+
"@aztec/aztec.js": "0.0.1-commit.9ef841308",
|
|
32
|
+
"@aztec/entrypoints": "0.0.1-commit.9ef841308",
|
|
33
|
+
"@aztec/foundation": "0.0.1-commit.9ef841308",
|
|
34
|
+
"@aztec/kv-store": "0.0.1-commit.9ef841308",
|
|
35
|
+
"@aztec/protocol-contracts": "0.0.1-commit.9ef841308",
|
|
36
|
+
"@aztec/pxe": "0.0.1-commit.9ef841308",
|
|
37
|
+
"@aztec/stdlib": "0.0.1-commit.9ef841308",
|
|
38
|
+
"@aztec/wallet-sdk": "0.0.1-commit.9ef841308"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@jest/globals": "^30.0.0",
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type Account,
|
|
1
|
+
import { type Account, NO_FROM } from '@aztec/aztec.js/account';
|
|
2
2
|
import { CallAuthorizationRequest } from '@aztec/aztec.js/authorization';
|
|
3
3
|
import { type InteractionWaitOptions, type SendReturn, getGasLimits } from '@aztec/aztec.js/contracts';
|
|
4
4
|
import type { Aliased, SendOptions } from '@aztec/aztec.js/wallet';
|
|
5
5
|
import { AccountManager } from '@aztec/aztec.js/wallet';
|
|
6
6
|
import type { DefaultAccountEntrypointOptions } from '@aztec/entrypoints/account';
|
|
7
|
+
import { DefaultEntrypoint } from '@aztec/entrypoints/default';
|
|
7
8
|
import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
8
9
|
import type { Logger } from '@aztec/foundation/log';
|
|
9
10
|
import type { PXEConfig, PXECreationOptions } from '@aztec/pxe/client/lazy';
|
|
@@ -16,6 +17,7 @@ import { deriveSigningKey } from '@aztec/stdlib/keys';
|
|
|
16
17
|
import {
|
|
17
18
|
ExecutionPayload,
|
|
18
19
|
SimulationOverrides,
|
|
20
|
+
type TxExecutionRequest,
|
|
19
21
|
type TxSimulationResult,
|
|
20
22
|
collectOffchainEffects,
|
|
21
23
|
mergeExecutionPayloads,
|
|
@@ -52,10 +54,6 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
protected async getAccountFromAddress(address: AztecAddress): Promise<Account> {
|
|
55
|
-
if (address.equals(AztecAddress.ZERO)) {
|
|
56
|
-
return new SignerlessAccount();
|
|
57
|
-
}
|
|
58
|
-
|
|
59
57
|
const { secretKey, salt, signingKey, type } = await this.walletDB.retrieveAccount(address);
|
|
60
58
|
const accountManager = await this.createAccountInternal(type, secretKey, salt, signingKey);
|
|
61
59
|
const account = await accountManager.getAccount();
|
|
@@ -116,7 +114,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
116
114
|
offchainEffects.map(async effect => {
|
|
117
115
|
try {
|
|
118
116
|
const authRequest = await CallAuthorizationRequest.fromFields(effect.data);
|
|
119
|
-
return this.createAuthWit(
|
|
117
|
+
return this.createAuthWit(authRequest.onBehalfOf, {
|
|
120
118
|
consumer: effect.contractAddress,
|
|
121
119
|
innerHash: authRequest.innerHash,
|
|
122
120
|
});
|
|
@@ -158,34 +156,36 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
158
156
|
): Promise<TxSimulationResult> {
|
|
159
157
|
const { from, feeOptions, scopes, skipTxValidation, skipFeeEnforcement } = opts;
|
|
160
158
|
|
|
159
|
+
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
160
|
+
const finalExecutionPayload = feeExecutionPayload
|
|
161
|
+
? mergeExecutionPayloads([feeExecutionPayload, executionPayload])
|
|
162
|
+
: executionPayload;
|
|
163
|
+
const chainInfo = await this.getChainInfo();
|
|
164
|
+
|
|
161
165
|
let overrides: SimulationOverrides | undefined;
|
|
162
|
-
let
|
|
163
|
-
if (
|
|
166
|
+
let txRequest: TxExecutionRequest;
|
|
167
|
+
if (from === NO_FROM) {
|
|
168
|
+
const entrypoint = new DefaultEntrypoint();
|
|
169
|
+
txRequest = await entrypoint.createTxExecutionRequest(finalExecutionPayload, feeOptions.gasSettings, chainInfo);
|
|
170
|
+
} else {
|
|
164
171
|
const { account, instance, artifact } = await this.getFakeAccountDataFor(from);
|
|
165
|
-
fromAccount = account;
|
|
166
172
|
overrides = {
|
|
167
173
|
contracts: { [from.toString()]: { instance, artifact } },
|
|
168
174
|
};
|
|
169
|
-
|
|
170
|
-
|
|
175
|
+
const executionOptions: DefaultAccountEntrypointOptions = {
|
|
176
|
+
txNonce: Fr.random(),
|
|
177
|
+
cancellable: this.cancellableTransactions,
|
|
178
|
+
// If from is an address, feeOptions include the way the account contract should handle the fee payment
|
|
179
|
+
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions!,
|
|
180
|
+
};
|
|
181
|
+
txRequest = await account.createTxExecutionRequest(
|
|
182
|
+
finalExecutionPayload,
|
|
183
|
+
feeOptions.gasSettings,
|
|
184
|
+
chainInfo,
|
|
185
|
+
executionOptions,
|
|
186
|
+
);
|
|
171
187
|
}
|
|
172
188
|
|
|
173
|
-
const feeExecutionPayload = await feeOptions.walletFeePaymentMethod?.getExecutionPayload();
|
|
174
|
-
const executionOptions: DefaultAccountEntrypointOptions = {
|
|
175
|
-
txNonce: Fr.random(),
|
|
176
|
-
cancellable: this.cancellableTransactions,
|
|
177
|
-
feePaymentMethodOptions: feeOptions.accountFeePaymentMethodOptions,
|
|
178
|
-
};
|
|
179
|
-
const finalExecutionPayload = feeExecutionPayload
|
|
180
|
-
? mergeExecutionPayloads([feeExecutionPayload, executionPayload])
|
|
181
|
-
: executionPayload;
|
|
182
|
-
const chainInfo = await this.getChainInfo();
|
|
183
|
-
const txRequest = await fromAccount.createTxExecutionRequest(
|
|
184
|
-
finalExecutionPayload,
|
|
185
|
-
feeOptions.gasSettings,
|
|
186
|
-
chainInfo,
|
|
187
|
-
executionOptions,
|
|
188
|
-
);
|
|
189
189
|
return this.pxe.simulateTx(txRequest, {
|
|
190
190
|
simulatePublic: true,
|
|
191
191
|
skipFeeEnforcement,
|
|
@@ -197,10 +197,7 @@ export class EmbeddedWallet extends BaseWallet {
|
|
|
197
197
|
|
|
198
198
|
private async getFakeAccountDataFor(address: AztecAddress) {
|
|
199
199
|
const originalAccount = await this.getAccountFromAddress(address);
|
|
200
|
-
|
|
201
|
-
throw new Error(`Cannot create fake account data for SignerlessAccount at address: ${address}`);
|
|
202
|
-
}
|
|
203
|
-
const originalAddress = (originalAccount as Account).getCompleteAddress();
|
|
200
|
+
const originalAddress = originalAccount.getCompleteAddress();
|
|
204
201
|
const contractInstance = await this.pxe.getContractInstance(originalAddress.address);
|
|
205
202
|
if (!contractInstance) {
|
|
206
203
|
throw new Error(`No contract instance found for address: ${originalAddress.address}`);
|
package/src/testing.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { InitialAccountData } from '@aztec/accounts/testing';
|
|
2
2
|
import { getInitialTestAccountsData } from '@aztec/accounts/testing/lazy';
|
|
3
|
+
import { NO_FROM } from '@aztec/aztec.js/account';
|
|
3
4
|
import type { WaitOpts } from '@aztec/aztec.js/contracts';
|
|
4
5
|
import type { AccountManager } from '@aztec/aztec.js/wallet';
|
|
5
6
|
import type { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
@@ -21,7 +22,7 @@ export async function deployFundedSchnorrAccounts(
|
|
|
21
22
|
const accountManager = await wallet.createSchnorrAccount(secret, salt, signingKey);
|
|
22
23
|
const deployMethod = await accountManager.getDeployMethod();
|
|
23
24
|
await deployMethod.send({
|
|
24
|
-
from:
|
|
25
|
+
from: NO_FROM,
|
|
25
26
|
skipClassPublication: i !== 0,
|
|
26
27
|
wait: waitOptions,
|
|
27
28
|
});
|