@aztec/aztec.js 0.0.1-commit.d6f2b3f94 → 0.0.1-commit.db765a8
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/api/abi.d.ts +2 -2
- package/dest/api/abi.d.ts.map +1 -1
- package/dest/api/contract.d.ts +3 -3
- package/dest/api/contract.d.ts.map +1 -1
- package/dest/api/contract.js +1 -1
- package/dest/api/wallet.d.ts +2 -2
- package/dest/api/wallet.d.ts.map +1 -1
- package/dest/contract/base_contract_interaction.d.ts +3 -3
- package/dest/contract/base_contract_interaction.d.ts.map +1 -1
- package/dest/contract/batch_call.d.ts +3 -3
- package/dest/contract/batch_call.d.ts.map +1 -1
- package/dest/contract/batch_call.js +17 -8
- package/dest/contract/contract_function_interaction.d.ts +5 -5
- package/dest/contract/contract_function_interaction.d.ts.map +1 -1
- package/dest/contract/contract_function_interaction.js +102 -13
- package/dest/contract/deploy_method.d.ts +37 -12
- package/dest/contract/deploy_method.d.ts.map +1 -1
- package/dest/contract/deploy_method.js +42 -21
- package/dest/contract/get_gas_limits.js +3 -3
- package/dest/contract/interaction_options.d.ts +62 -21
- package/dest/contract/interaction_options.d.ts.map +1 -1
- package/dest/contract/interaction_options.js +33 -0
- package/dest/contract/protocol_contracts/auth-registry.d.ts +10 -1
- package/dest/contract/protocol_contracts/auth-registry.d.ts.map +1 -1
- package/dest/contract/protocol_contracts/auth-registry.js +506 -59
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts +1 -1
- package/dest/contract/protocol_contracts/contract-class-registry.d.ts.map +1 -1
- package/dest/contract/protocol_contracts/contract-class-registry.js +12 -0
- package/dest/contract/protocol_contracts/fee-juice.d.ts +1 -1
- package/dest/contract/protocol_contracts/fee-juice.d.ts.map +1 -1
- package/dest/contract/protocol_contracts/fee-juice.js +8 -0
- package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts +1 -1
- package/dest/contract/protocol_contracts/multi-call-entrypoint.d.ts.map +1 -1
- package/dest/contract/protocol_contracts/multi-call-entrypoint.js +17 -1
- package/dest/contract/protocol_contracts/public-checks.d.ts +1 -1
- package/dest/contract/protocol_contracts/public-checks.d.ts.map +1 -1
- package/dest/contract/protocol_contracts/public-checks.js +17 -1
- package/dest/utils/abi_types.d.ts +6 -1
- package/dest/utils/abi_types.d.ts.map +1 -1
- package/dest/utils/abi_types.js +1 -1
- package/dest/utils/authwit.d.ts +5 -5
- package/dest/utils/authwit.d.ts.map +1 -1
- package/dest/utils/authwit.js +10 -6
- package/dest/wallet/capabilities.d.ts +13 -5
- package/dest/wallet/capabilities.d.ts.map +1 -1
- package/dest/wallet/deploy_account_method.d.ts +15 -4
- package/dest/wallet/deploy_account_method.d.ts.map +1 -1
- package/dest/wallet/deploy_account_method.js +26 -0
- package/dest/wallet/wallet.d.ts +163 -16
- package/dest/wallet/wallet.d.ts.map +1 -1
- package/dest/wallet/wallet.js +33 -7
- package/package.json +10 -10
- package/src/api/abi.ts +1 -0
- package/src/api/contract.ts +8 -1
- package/src/api/wallet.ts +1 -0
- package/src/contract/base_contract_interaction.ts +3 -2
- package/src/contract/batch_call.ts +17 -14
- package/src/contract/contract_function_interaction.ts +101 -20
- package/src/contract/deploy_method.ts +77 -32
- package/src/contract/get_gas_limits.ts +3 -3
- package/src/contract/interaction_options.ts +96 -23
- package/src/contract/protocol_contracts/auth-registry.ts +239 -37
- package/src/contract/protocol_contracts/contract-class-registry.ts +3 -0
- package/src/contract/protocol_contracts/fee-juice.ts +2 -0
- package/src/contract/protocol_contracts/multi-call-entrypoint.ts +5 -1
- package/src/contract/protocol_contracts/public-checks.ts +5 -1
- package/src/utils/abi_types.ts +7 -0
- package/src/utils/authwit.ts +20 -22
- package/src/wallet/capabilities.ts +13 -4
- package/src/wallet/deploy_account_method.ts +39 -2
- package/src/wallet/wallet.ts +46 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,gBAAgB,EAAoB,KAAK,gBAAgB,EAAkB,MAAM,mBAAmB,CAAC;AACnH,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;AAChC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,KAAK,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"deploy_method.d.ts","sourceRoot":"","sources":["../../src/contract/deploy_method.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,14 +2,13 @@ import { Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import { getInitializer } from '@aztec/stdlib/abi';
|
|
3
3
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
4
|
import { computePartialAddress, getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
|
|
5
|
-
import {
|
|
6
|
-
import { mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
5
|
+
import { ExecutionPayload, mergeExecutionPayloads } from '@aztec/stdlib/tx';
|
|
7
6
|
import { publishContractClass } from '../deployment/publish_class.js';
|
|
8
7
|
import { publishInstance } from '../deployment/publish_instance.js';
|
|
9
8
|
import { BaseContractInteraction } from './base_contract_interaction.js';
|
|
10
9
|
import { ContractFunctionInteraction } from './contract_function_interaction.js';
|
|
11
10
|
import { getGasLimits } from './get_gas_limits.js';
|
|
12
|
-
import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './interaction_options.js';
|
|
11
|
+
import { NO_WAIT, extractOffchainOutput, toProfileOptions, toSendOptions, toSimulateOptions } from './interaction_options.js';
|
|
13
12
|
/**
|
|
14
13
|
* Contract interaction for deployment.
|
|
15
14
|
* Handles class publication, instance publication, and initialization of the contract.
|
|
@@ -24,28 +23,35 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
24
23
|
artifact;
|
|
25
24
|
postDeployCtor;
|
|
26
25
|
args;
|
|
26
|
+
extraHashedArgs;
|
|
27
27
|
/** The contract instance to be deployed. */ instance;
|
|
28
28
|
/** Constructor function to call. */ constructorArtifact;
|
|
29
|
-
constructor(publicKeys, wallet, artifact, postDeployCtor, args = [], constructorNameOrArtifact, authWitnesses = [], capsules = []){
|
|
30
|
-
super(wallet, authWitnesses, capsules), this.publicKeys = publicKeys, this.artifact = artifact, this.postDeployCtor = postDeployCtor, this.args = args, this.instance = undefined;
|
|
29
|
+
constructor(publicKeys, wallet, artifact, postDeployCtor, args = [], constructorNameOrArtifact, authWitnesses = [], capsules = [], extraHashedArgs = []){
|
|
30
|
+
super(wallet, authWitnesses, capsules), this.publicKeys = publicKeys, this.artifact = artifact, this.postDeployCtor = postDeployCtor, this.args = args, this.extraHashedArgs = extraHashedArgs, this.instance = undefined;
|
|
31
31
|
this.constructorArtifact = getInitializer(artifact, constructorNameOrArtifact);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Returns the execution payload that allows this operation to happen on chain.
|
|
35
35
|
* @param options - Configuration options.
|
|
36
36
|
* @returns The execution payload for this operation
|
|
37
|
-
*/ async request(options) {
|
|
37
|
+
*/ async request(options = {}) {
|
|
38
38
|
const publication = await this.getPublicationExecutionPayload(options);
|
|
39
39
|
if (!options?.skipRegistration) {
|
|
40
40
|
await this.wallet.registerContract(await this.getInstance(options), this.artifact);
|
|
41
41
|
}
|
|
42
|
+
const { authWitnesses, capsules } = options;
|
|
43
|
+
// Propagates the included authwitnesses, capsules, and extraHashedArgs
|
|
44
|
+
// potentially baked into the interaction
|
|
45
|
+
const initialExecutionPayload = new ExecutionPayload([], this.authWitnesses.concat(authWitnesses ?? []), this.capsules.concat(capsules ?? []), this.extraHashedArgs);
|
|
42
46
|
const initialization = await this.getInitializationExecutionPayload(options);
|
|
43
47
|
const feeExecutionPayload = options?.fee?.paymentMethod ? await options.fee.paymentMethod.getExecutionPayload() : undefined;
|
|
44
48
|
const finalExecutionPayload = feeExecutionPayload ? mergeExecutionPayloads([
|
|
49
|
+
initialExecutionPayload,
|
|
45
50
|
feeExecutionPayload,
|
|
46
51
|
publication,
|
|
47
52
|
initialization
|
|
48
53
|
]) : mergeExecutionPayloads([
|
|
54
|
+
initialExecutionPayload,
|
|
49
55
|
publication,
|
|
50
56
|
initialization
|
|
51
57
|
]);
|
|
@@ -73,6 +79,18 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
73
79
|
};
|
|
74
80
|
}
|
|
75
81
|
/**
|
|
82
|
+
* Converts deploy simulation options into wallet-level simulate options.
|
|
83
|
+
* @param options - The deploy simulation options to convert.
|
|
84
|
+
*/ convertDeployOptionsToSimulateOptions(options) {
|
|
85
|
+
return toSimulateOptions(options);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Converts deploy profile options into wallet-level profile options.
|
|
89
|
+
* @param options - The deploy profile options to convert.
|
|
90
|
+
*/ convertDeployOptionsToProfileOptions(options) {
|
|
91
|
+
return toProfileOptions(options);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
76
94
|
* Adds this contract to the wallet and returns the Contract object.
|
|
77
95
|
* @param options - Deployment options.
|
|
78
96
|
*/ async register(options) {
|
|
@@ -136,11 +154,11 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
136
154
|
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
137
155
|
const sendOptions = this.convertDeployOptionsToSendOptions(options);
|
|
138
156
|
if (options.wait === NO_WAIT) {
|
|
139
|
-
const
|
|
140
|
-
this.log.debug(`Sent deployment tx ${txHash.hash} of ${this.artifact.name} contract`);
|
|
141
|
-
return
|
|
157
|
+
const result = await this.wallet.sendTx(executionPayload, sendOptions);
|
|
158
|
+
this.log.debug(`Sent deployment tx ${result.txHash.hash} of ${this.artifact.name} contract`);
|
|
159
|
+
return result;
|
|
142
160
|
}
|
|
143
|
-
const receipt = await this.wallet.sendTx(executionPayload, sendOptions);
|
|
161
|
+
const { receipt, ...offchainOutput } = await this.wallet.sendTx(executionPayload, sendOptions);
|
|
144
162
|
this.log.debug(`Deployed ${this.artifact.name} contract in tx ${receipt.txHash}`);
|
|
145
163
|
// Attach contract instance
|
|
146
164
|
const instance = await this.getInstance(options);
|
|
@@ -148,12 +166,19 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
148
166
|
// Return full receipt if requested, otherwise just the contract
|
|
149
167
|
if (options.wait && typeof options.wait === 'object' && options.wait.returnReceipt) {
|
|
150
168
|
return {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
169
|
+
receipt: {
|
|
170
|
+
...receipt,
|
|
171
|
+
contract,
|
|
172
|
+
instance
|
|
173
|
+
},
|
|
174
|
+
...offchainOutput
|
|
154
175
|
};
|
|
155
176
|
}
|
|
156
|
-
return
|
|
177
|
+
return {
|
|
178
|
+
contract,
|
|
179
|
+
receipt,
|
|
180
|
+
...offchainOutput
|
|
181
|
+
};
|
|
157
182
|
}
|
|
158
183
|
/**
|
|
159
184
|
* Builds the contract instance and returns it.
|
|
@@ -180,12 +205,12 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
180
205
|
* estimations (if requested via options), execution statistics and emitted offchain effects
|
|
181
206
|
*/ async simulate(options) {
|
|
182
207
|
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
183
|
-
const simulatedTx = await this.wallet.simulateTx(executionPayload,
|
|
208
|
+
const simulatedTx = await this.wallet.simulateTx(executionPayload, this.convertDeployOptionsToSimulateOptions(options));
|
|
184
209
|
const { gasLimits, teardownGasLimits } = getGasLimits(simulatedTx, options.fee?.estimatedGasPadding);
|
|
185
210
|
this.log.verbose(`Estimated gas limits for tx: DA=${gasLimits.daGas} L2=${gasLimits.l2Gas} teardownDA=${teardownGasLimits.daGas} teardownL2=${teardownGasLimits.l2Gas}`);
|
|
186
211
|
return {
|
|
187
212
|
stats: simulatedTx.stats,
|
|
188
|
-
|
|
213
|
+
...extractOffchainOutput(simulatedTx.offchainEffects),
|
|
189
214
|
result: undefined,
|
|
190
215
|
estimatedGas: {
|
|
191
216
|
gasLimits,
|
|
@@ -200,11 +225,7 @@ import { NO_WAIT, toProfileOptions, toSendOptions, toSimulateOptions } from './i
|
|
|
200
225
|
* @returns An object containing the function return value and profile result.
|
|
201
226
|
*/ async profile(options) {
|
|
202
227
|
const executionPayload = await this.request(this.convertDeployOptionsToRequestOptions(options));
|
|
203
|
-
return await this.wallet.profileTx(executionPayload,
|
|
204
|
-
...toProfileOptions(options),
|
|
205
|
-
profileMode: options.profileMode,
|
|
206
|
-
skipProofGeneration: options.skipProofGeneration
|
|
207
|
-
});
|
|
228
|
+
return await this.wallet.profileTx(executionPayload, this.convertDeployOptionsToProfileOptions(options));
|
|
208
229
|
}
|
|
209
230
|
/** Return this deployment address. */ get address() {
|
|
210
231
|
return this.instance?.address;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
2
2
|
/**
|
|
3
3
|
* Returns suggested total and teardown gas limits for a simulated tx.
|
|
4
4
|
* @param pad - Percentage to pad the suggested gas limits by, (as decimal, e.g., 0.10 for 10%).
|
|
@@ -6,8 +6,8 @@ import { AVM_MAX_PROCESSABLE_L2_GAS } from '@aztec/constants';
|
|
|
6
6
|
// Total gas does not use the teardown gas limit, but the actual total gas used by the tx.
|
|
7
7
|
const gasLimits = simulationResult.gasUsed.totalGas.mul(1 + pad);
|
|
8
8
|
const teardownGasLimits = simulationResult.gasUsed.teardownGas.mul(1 + pad);
|
|
9
|
-
if (gasLimits.l2Gas >
|
|
10
|
-
throw new Error('Transaction consumes more gas than the
|
|
9
|
+
if (gasLimits.l2Gas > MAX_PROCESSABLE_L2_GAS) {
|
|
10
|
+
throw new Error('Transaction consumes more l2 gas than the maximum processable gas');
|
|
11
11
|
}
|
|
12
12
|
return {
|
|
13
13
|
gasLimits,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
1
2
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
2
3
|
import type { AuthWitness } from '@aztec/stdlib/auth-witness';
|
|
3
|
-
import
|
|
4
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
5
|
-
import type
|
|
6
|
+
import { type Capsule, type OffchainEffect, type SimulationStats, type TxHash, type TxReceipt } from '@aztec/stdlib/tx';
|
|
6
7
|
import type { FeePaymentMethod } from '../fee/fee_payment_method.js';
|
|
7
8
|
import type { ProfileOptions, SendOptions, SimulateOptions } from '../wallet/index.js';
|
|
8
9
|
import type { WaitOpts } from './wait_opts.js';
|
|
@@ -71,6 +72,13 @@ export type SendInteractionOptionsWithoutWait = RequestInteractionOptions & {
|
|
|
71
72
|
from: AztecAddress;
|
|
72
73
|
/** The fee options for the transaction. */
|
|
73
74
|
fee?: InteractionFeeOptions;
|
|
75
|
+
/**
|
|
76
|
+
* Additional addresses whose private state and keys should be accessible during execution,
|
|
77
|
+
* beyond the sender's. Required when the transaction needs to access private state or keys
|
|
78
|
+
* belonging to an address other than `from`, e.g. withdrawing from an escrow that holds
|
|
79
|
+
* its own private notes.
|
|
80
|
+
*/
|
|
81
|
+
additionalScopes?: AztecAddress[];
|
|
74
82
|
};
|
|
75
83
|
/**
|
|
76
84
|
* Represents options for calling a (constrained) function in a contract.
|
|
@@ -96,8 +104,8 @@ export type SimulateInteractionOptions = Omit<SendInteractionOptions, 'fee'> & {
|
|
|
96
104
|
skipTxValidation?: boolean;
|
|
97
105
|
/** Whether to ensure the fee payer is not empty and has enough balance to pay for the fee. */
|
|
98
106
|
skipFeeEnforcement?: boolean;
|
|
99
|
-
/** Whether to include metadata such as
|
|
100
|
-
* the simulation result,
|
|
107
|
+
/** Whether to include metadata such as performance statistics (e.g. timing information of the different circuits and oracles) and gas estimation
|
|
108
|
+
* in the simulation result, in addition to the return value and offchain effects */
|
|
101
109
|
includeMetadata?: boolean;
|
|
102
110
|
};
|
|
103
111
|
/**
|
|
@@ -109,28 +117,61 @@ export type ProfileInteractionOptions = SimulateInteractionOptions & {
|
|
|
109
117
|
/** Whether to generate a Chonk proof or not */
|
|
110
118
|
skipProofGeneration?: boolean;
|
|
111
119
|
};
|
|
120
|
+
/** A message emitted during execution or proving, to be delivered offchain. */
|
|
121
|
+
export type OffchainMessage = {
|
|
122
|
+
/** The intended recipient of the message. */
|
|
123
|
+
recipient: AztecAddress;
|
|
124
|
+
/** The message payload (typically encrypted). */
|
|
125
|
+
payload: Fr[];
|
|
126
|
+
/** The contract that emitted the message. */
|
|
127
|
+
contractAddress: AztecAddress;
|
|
128
|
+
};
|
|
129
|
+
/** Groups all unproven outputs from private execution that are returned to the client. */
|
|
130
|
+
export type OffchainOutput = {
|
|
131
|
+
/** Raw offchain effects emitted during execution. */
|
|
132
|
+
offchainEffects: OffchainEffect[];
|
|
133
|
+
/** Messages emitted during execution, to be delivered offchain. */
|
|
134
|
+
offchainMessages: OffchainMessage[];
|
|
135
|
+
};
|
|
112
136
|
/**
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* it will provide extra information.
|
|
137
|
+
* Splits an array of offchain effects into decoded offchain messages and remaining effects.
|
|
138
|
+
* Effects whose data starts with `OFFCHAIN_MESSAGE_IDENTIFIER` are parsed as messages and removed
|
|
139
|
+
* from the effects array.
|
|
117
140
|
*/
|
|
118
|
-
export
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
141
|
+
export declare function extractOffchainOutput(effects: OffchainEffect[]): OffchainOutput;
|
|
142
|
+
/**
|
|
143
|
+
* Returns an empty `OffchainOutput` (no effects, no messages).
|
|
144
|
+
*/
|
|
145
|
+
export declare function emptyOffchainOutput(): OffchainOutput;
|
|
146
|
+
/**
|
|
147
|
+
* Represents the result of a simulation.
|
|
148
|
+
* Always includes the return value and offchain output.
|
|
149
|
+
* When `includeMetadata` or `fee.estimateGas` is set, also includes stats and gas estimation.
|
|
150
|
+
*/
|
|
151
|
+
export type SimulationResult = {
|
|
152
|
+
/** Return value of the function */
|
|
124
153
|
result: any;
|
|
125
|
-
/**
|
|
126
|
-
|
|
127
|
-
|
|
154
|
+
/** Additional stats about the simulation. Present when `includeMetadata` is set. */
|
|
155
|
+
stats?: SimulationStats;
|
|
156
|
+
/** Gas estimation results. Present when `includeMetadata` or `fee.estimateGas` is set. */
|
|
157
|
+
estimatedGas?: Pick<GasSettings, 'gasLimits' | 'teardownGasLimits'>;
|
|
158
|
+
} & OffchainOutput;
|
|
159
|
+
/** Result of sendTx when not waiting for mining. */
|
|
160
|
+
export type TxSendResultImmediate = {
|
|
161
|
+
/** The hash of the sent transaction. */
|
|
162
|
+
txHash: TxHash;
|
|
163
|
+
} & OffchainOutput;
|
|
164
|
+
/** Result of sendTx when waiting for mining. */
|
|
165
|
+
export type TxSendResultMined<TReturn = TxReceipt> = {
|
|
166
|
+
/** The transaction receipt. */
|
|
167
|
+
receipt: TReturn;
|
|
168
|
+
} & OffchainOutput;
|
|
128
169
|
/**
|
|
129
170
|
* Represents the result type of sending a transaction.
|
|
130
|
-
* If `wait` is NO_WAIT, returns
|
|
131
|
-
*
|
|
171
|
+
* If `wait` is NO_WAIT, returns TxSendResultImmediate.
|
|
172
|
+
* Otherwise returns TxSendResultMined.
|
|
132
173
|
*/
|
|
133
|
-
export type SendReturn<T extends InteractionWaitOptions, TReturn = TxReceipt> = T extends NoWait ?
|
|
174
|
+
export type SendReturn<T extends InteractionWaitOptions, TReturn = TxReceipt> = T extends NoWait ? TxSendResultImmediate : TxSendResultMined<TReturn>;
|
|
134
175
|
/**
|
|
135
176
|
* Transforms and cleans up the higher level SendInteractionOptions defined by the interaction into
|
|
136
177
|
* SendOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
@@ -148,4 +189,4 @@ export declare function toSimulateOptions(options: SimulateInteractionOptions):
|
|
|
148
189
|
* ProfileOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
149
190
|
*/
|
|
150
191
|
export declare function toProfileOptions(options: ProfileInteractionOptions): ProfileOptions;
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJhY3Rpb25fb3B0aW9ucy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2ludGVyYWN0aW9uX29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxLQUFLLE9BQU8sRUFFWixLQUFLLGNBQWMsRUFDbkIsS0FBSyxlQUFlLEVBQ3BCLEtBQUssTUFBTSxFQUNYLEtBQUssU0FBUyxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRSxPQUFPLEtBQUssRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZGLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxNQUFNLG9CQUFvQixHQUFHO0lBQ2pDLGtIQUFrSDtJQUNsSCxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEIscUhBQXFIO0lBQ3JILG1CQUFtQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQzlCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sc0JBQXNCLEdBQUc7SUFDbkMscURBQXFEO0lBQ3JELGFBQWEsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0NBQ2xDLENBQUM7QUFFRjs7O0dBR0c7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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction_options.d.ts","sourceRoot":"","sources":["../../src/contract/interaction_options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"interaction_options.d.ts","sourceRoot":"","sources":["../../src/contract/interaction_options.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,40 @@
|
|
|
1
|
+
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
2
|
+
import { OFFCHAIN_MESSAGE_IDENTIFIER } from '@aztec/stdlib/tx';
|
|
1
3
|
/**
|
|
2
4
|
* Constant for explicitly not waiting for transaction confirmation.
|
|
3
5
|
* We use this instead of false to avoid confusion with falsy checks.
|
|
4
6
|
*/ export const NO_WAIT = 'NO_WAIT';
|
|
7
|
+
/**
|
|
8
|
+
* Splits an array of offchain effects into decoded offchain messages and remaining effects.
|
|
9
|
+
* Effects whose data starts with `OFFCHAIN_MESSAGE_IDENTIFIER` are parsed as messages and removed
|
|
10
|
+
* from the effects array.
|
|
11
|
+
*/ export function extractOffchainOutput(effects) {
|
|
12
|
+
const offchainEffects = [];
|
|
13
|
+
const offchainMessages = [];
|
|
14
|
+
for (const effect of effects){
|
|
15
|
+
if (effect.data.length >= 2 && effect.data[0].equals(OFFCHAIN_MESSAGE_IDENTIFIER)) {
|
|
16
|
+
offchainMessages.push({
|
|
17
|
+
recipient: AztecAddress.fromField(effect.data[1]),
|
|
18
|
+
payload: effect.data.slice(2),
|
|
19
|
+
contractAddress: effect.contractAddress
|
|
20
|
+
});
|
|
21
|
+
} else {
|
|
22
|
+
offchainEffects.push(effect);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
offchainEffects,
|
|
27
|
+
offchainMessages
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Returns an empty `OffchainOutput` (no effects, no messages).
|
|
32
|
+
*/ export function emptyOffchainOutput() {
|
|
33
|
+
return {
|
|
34
|
+
offchainEffects: [],
|
|
35
|
+
offchainMessages: []
|
|
36
|
+
};
|
|
37
|
+
}
|
|
5
38
|
/**
|
|
6
39
|
* Transforms and cleans up the higher level SendInteractionOptions defined by the interaction into
|
|
7
40
|
* SendOptions, which are the ones that can be serialized and forwarded to the wallet
|
|
@@ -12,6 +12,13 @@ export declare class AuthRegistryContract extends ContractBase {
|
|
|
12
12
|
is_consumable: ((on_behalf_of: AztecAddressLike, message_hash: FieldLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
13
13
|
/** is_reject_all(on_behalf_of: struct) */
|
|
14
14
|
is_reject_all: ((on_behalf_of: AztecAddressLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
15
|
+
/** process_message(message_ciphertext: struct, message_context: struct) */
|
|
16
|
+
process_message: ((message_ciphertext: FieldLike[], message_context: {
|
|
17
|
+
tx_hash: FieldLike;
|
|
18
|
+
unique_note_hashes_in_tx: FieldLike[];
|
|
19
|
+
first_nullifier_in_tx: FieldLike;
|
|
20
|
+
recipient: AztecAddressLike;
|
|
21
|
+
}) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
15
22
|
/** public_dispatch(selector: field) */
|
|
16
23
|
public_dispatch: ((selector: FieldLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
17
24
|
/** set_authorized(message_hash: field, authorize: boolean) */
|
|
@@ -20,8 +27,10 @@ export declare class AuthRegistryContract extends ContractBase {
|
|
|
20
27
|
set_authorized_private: ((approver: AztecAddressLike, message_hash: FieldLike, authorize: boolean) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
21
28
|
/** set_reject_all(reject: boolean) */
|
|
22
29
|
set_reject_all: ((reject: boolean) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
30
|
+
/** sync_state() */
|
|
31
|
+
sync_state: (() => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
23
32
|
/** utility_is_consumable(on_behalf_of: struct, message_hash: field) */
|
|
24
33
|
utility_is_consumable: ((on_behalf_of: AztecAddressLike, message_hash: FieldLike) => ContractFunctionInteraction) & Pick<ContractMethod, 'selector'>;
|
|
25
34
|
};
|
|
26
35
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1yZWdpc3RyeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0L3Byb3RvY29sX2NvbnRyYWN0cy9hdXRoLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxFQUNWLGdCQUFnQixFQUVoQixTQUFTLEVBR1YsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUE4ZGxGLHFCQUFhLG9CQUFxQixTQUFRLFlBQVk7SUFDcEQsT0FBTyxlQUVOO0lBRUQsT0FBYyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxvQkFBb0IsQ0FFckQ7SUFFYyxPQUFPLEVBQUU7UUFDdEIsdURBQXVEO1FBQ3ZELE9BQU8sRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxTQUFTLEtBQUssMkJBQTJCLENBQUMsR0FDL0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVuQywrREFBK0Q7UUFDL0QsYUFBYSxFQUFFLENBQUMsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFNBQVMsS0FBSywyQkFBMkIsQ0FBQyxHQUN2RyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLDBDQUEwQztRQUMxQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsS0FBSywyQkFBMkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFcEgsMkVBQTJFO1FBQzNFLGVBQWUsRUFBRSxDQUFDLENBQ2hCLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxFQUMvQixlQUFlLEVBQUU7WUFDZixPQUFPLEVBQUUsU0FBUyxDQUFDO1lBQ25CLHdCQUF3QixFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQ3RDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQztZQUNqQyxTQUFTLEVBQUUsZ0JBQWdCLENBQUM7U0FDN0IsS0FDRSwyQkFBMkIsQ0FBQyxHQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLHVDQUF1QztRQUN2QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLEtBQUssMkJBQTJCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTNHLDhEQUE4RDtRQUM5RCxjQUFjLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE9BQU8sS0FBSywyQkFBMkIsQ0FBQyxHQUM1RixJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLHdGQUF3RjtRQUN4RixzQkFBc0IsRUFBRSxDQUFDLENBQ3ZCLFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsWUFBWSxFQUFFLFNBQVMsRUFDdkIsU0FBUyxFQUFFLE9BQU8sS0FDZiwyQkFBMkIsQ0FBQyxHQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRW5DLHNDQUFzQztRQUN0QyxjQUFjLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxPQUFPLEtBQUssMkJBQTJCLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXRHLG1CQUFtQjtRQUNuQixVQUFVLEVBQUUsQ0FBQyxNQUFNLDJCQUEyQixDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUVuRix1RUFBdUU7UUFDdkUscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsU0FBUyxLQUFLLDJCQUEyQixDQUFDLEdBQy9HLElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLENBQUM7S0FDcEMsQ0FBQztDQUNIIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-registry.d.ts","sourceRoot":"","sources":["../../../src/contract/protocol_contracts/auth-registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-registry.d.ts","sourceRoot":"","sources":["../../../src/contract/protocol_contracts/auth-registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,gBAAgB,EAEhB,SAAS,EAGV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AA8dlF,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,OAAO,eAEN;IAED,OAAc,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,CAErD;IAEc,OAAO,EAAE;QACtB,uDAAuD;QACvD,OAAO,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,KAAK,2BAA2B,CAAC,GAC/F,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnC,+DAA+D;QAC/D,aAAa,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,KAAK,2BAA2B,CAAC,GACvG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnC,0CAA0C;QAC1C,aAAa,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,KAAK,2BAA2B,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEpH,2EAA2E;QAC3E,eAAe,EAAE,CAAC,CAChB,kBAAkB,EAAE,SAAS,EAAE,EAC/B,eAAe,EAAE;YACf,OAAO,EAAE,SAAS,CAAC;YACnB,wBAAwB,EAAE,SAAS,EAAE,CAAC;YACtC,qBAAqB,EAAE,SAAS,CAAC;YACjC,SAAS,EAAE,gBAAgB,CAAC;SAC7B,KACE,2BAA2B,CAAC,GAC/B,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnC,uCAAuC;QACvC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,KAAK,2BAA2B,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAE3G,8DAA8D;QAC9D,cAAc,EAAE,CAAC,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,KAAK,2BAA2B,CAAC,GAC5F,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnC,wFAAwF;QACxF,sBAAsB,EAAE,CAAC,CACvB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,SAAS,EACvB,SAAS,EAAE,OAAO,KACf,2BAA2B,CAAC,GAC/B,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnC,sCAAsC;QACtC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,2BAA2B,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEtG,mBAAmB;QACnB,UAAU,EAAE,CAAC,MAAM,2BAA2B,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEnF,uEAAuE;QACvE,qBAAqB,EAAE,CAAC,CAAC,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,KAAK,2BAA2B,CAAC,GAC/G,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;KACpC,CAAC;CACH"}
|