@aztec/entrypoints 4.1.0-rc.4 → 4.2.0-nightly.20260320
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/account_entrypoint.d.ts +2 -2
- package/dest/account_entrypoint.d.ts.map +1 -1
- package/dest/account_entrypoint.js +9 -5
- package/dest/default_entrypoint.d.ts +2 -2
- package/dest/default_entrypoint.d.ts.map +1 -1
- package/dest/default_entrypoint.js +1 -1
- package/dest/default_multi_call_entrypoint.d.ts +2 -2
- package/dest/default_multi_call_entrypoint.d.ts.map +1 -1
- package/dest/default_multi_call_entrypoint.js +1 -1
- package/dest/interfaces.d.ts +3 -2
- package/dest/interfaces.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/account_entrypoint.ts +13 -4
- package/src/default_entrypoint.ts +1 -1
- package/src/default_multi_call_entrypoint.ts +1 -1
- package/src/interfaces.ts +2 -1
|
@@ -53,7 +53,7 @@ export declare class DefaultAccountEntrypoint implements EntrypointInterface {
|
|
|
53
53
|
private auth;
|
|
54
54
|
constructor(address: AztecAddress, auth: AuthWitnessProvider);
|
|
55
55
|
createTxExecutionRequest(exec: ExecutionPayload, gasSettings: GasSettings, chainInfo: ChainInfo, options: DefaultAccountEntrypointOptions): Promise<TxExecutionRequest>;
|
|
56
|
-
wrapExecutionPayload(exec: ExecutionPayload, options: DefaultAccountEntrypointOptions): Promise<ExecutionPayload>;
|
|
56
|
+
wrapExecutionPayload(exec: ExecutionPayload, chainInfo: ChainInfo, options: DefaultAccountEntrypointOptions): Promise<ExecutionPayload>;
|
|
57
57
|
private getEntrypointAbi;
|
|
58
58
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWNjb3VudF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0Y7O0dBRUc7QUFDSCxvQkFBWSw4QkFBOEI7SUFDeEM7O09BRUc7SUFDSCxRQUFRLElBQUk7SUFDWjs7Ozs7T0FLRztJQUNILHFCQUFxQixJQUFJO0lBQ3pCOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsSUFBSTtDQUN6QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLCtCQUErQixHQUFHO0lBQzVDLGdEQUFnRDtJQUNoRCxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNiLDRHQUE0RztJQUM1Ryx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztDQUN6RCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gscUJBQWEsd0JBQXlCLFlBQVcsbUJBQW1COztJQUVoRSxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxJQUFJO0lBRmQsWUFDVSxPQUFPLEVBQUUsWUFBWSxFQUNyQixJQUFJLEVBQUUsbUJBQW1CLEVBQy9CO0lBRUUsd0JBQXdCLENBQzVCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FnQjdCO0lBRUssb0JBQW9CLENBQ3hCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0F1QjNCO0lBdUNELE9BQU8sQ0FBQyxnQkFBZ0I7Q0EyRHpCIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../src/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../src/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAE3F;;GAEG;AACH,oBAAY,8BAA8B;IACxC;;OAEG;IACH,QAAQ,IAAI;IACZ;;;;;OAKG;IACH,qBAAqB,IAAI;IACzB;;;;;;;OAOG;IACH,oBAAoB,IAAI;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,gDAAgD;IAChD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,4GAA4G;IAC5G,uBAAuB,EAAE,8BAA8B,CAAC;CACzD,CAAC;AAEF;;;GAGG;AACH,qBAAa,wBAAyB,YAAW,mBAAmB;;IAEhE,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IAFd,YACU,OAAO,EAAE,YAAY,EACrB,IAAI,EAAE,mBAAmB,EAC/B;IAEE,wBAAwB,CAC5B,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;IAEK,oBAAoB,CACxB,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;IAuCD,OAAO,CAAC,gBAAgB;CA2DzB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
|
|
3
|
+
import { computeOuterAuthWitHash } from '@aztec/stdlib/auth-witness';
|
|
3
4
|
import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
|
|
4
5
|
import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
5
6
|
/**
|
|
@@ -36,7 +37,7 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
|
36
37
|
}
|
|
37
38
|
async createTxExecutionRequest(exec, gasSettings, chainInfo, options) {
|
|
38
39
|
const { authWitnesses, capsules, extraHashedArgs } = exec;
|
|
39
|
-
const callData = await this.#buildEntrypointCallData(exec, options);
|
|
40
|
+
const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
|
|
40
41
|
const entrypointHashedArgs = await HashedValues.fromArgs(callData.encodedArgs);
|
|
41
42
|
const txRequest = TxExecutionRequest.from({
|
|
42
43
|
firstCallArgsHash: entrypointHashedArgs.hash,
|
|
@@ -57,9 +58,9 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
|
57
58
|
});
|
|
58
59
|
return txRequest;
|
|
59
60
|
}
|
|
60
|
-
async wrapExecutionPayload(exec, options) {
|
|
61
|
+
async wrapExecutionPayload(exec, chainInfo, options) {
|
|
61
62
|
const { authWitnesses, capsules, extraHashedArgs, feePayer } = exec;
|
|
62
|
-
const callData = await this.#buildEntrypointCallData(exec, options);
|
|
63
|
+
const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
|
|
63
64
|
// Build the entrypoint function call
|
|
64
65
|
const entrypointCall = FunctionCall.from({
|
|
65
66
|
name: callData.abi.name,
|
|
@@ -85,9 +86,10 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
|
85
86
|
* Builds the shared data needed for both creating a tx execution request and wrapping an execution payload.
|
|
86
87
|
* This includes encoding calls, building entrypoint arguments, and creating the authwitness.
|
|
87
88
|
* @param exec - The execution payload containing calls to encode
|
|
89
|
+
* @param chainInfo - Chain information (chainId and version) for replay protection
|
|
88
90
|
* @param options - Account entrypoint options including tx nonce and fee payment method
|
|
89
91
|
* @returns Encoded call data, ABI, function selector, and auth witness
|
|
90
|
-
*/ async #buildEntrypointCallData(exec, options) {
|
|
92
|
+
*/ async #buildEntrypointCallData(exec, chainInfo, options) {
|
|
91
93
|
const { calls } = exec;
|
|
92
94
|
const { cancellable, txNonce, feePaymentMethodOptions } = options;
|
|
93
95
|
const encodedCalls = await EncodedAppEntrypointCalls.create(calls, txNonce);
|
|
@@ -99,7 +101,9 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
|
99
101
|
];
|
|
100
102
|
const encodedArgs = encodeArguments(abi, args);
|
|
101
103
|
const functionSelector = await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters);
|
|
102
|
-
const
|
|
104
|
+
const payloadHash = await encodedCalls.hash();
|
|
105
|
+
const messageHash = await computeOuterAuthWitHash(this.address, chainInfo.chainId, chainInfo.version, payloadHash);
|
|
106
|
+
const payloadAuthWitness = await this.auth.createAuthWit(messageHash);
|
|
103
107
|
return {
|
|
104
108
|
encodedCalls,
|
|
105
109
|
abi,
|
|
@@ -6,6 +6,6 @@ import type { ChainInfo, EntrypointInterface } from './interfaces.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export declare class DefaultEntrypoint implements EntrypointInterface {
|
|
8
8
|
createTxExecutionRequest(exec: ExecutionPayload, gasSettings: GasSettings, chainInfo: ChainInfo): Promise<TxExecutionRequest>;
|
|
9
|
-
wrapExecutionPayload(exec: ExecutionPayload, _options?: any): Promise<ExecutionPayload>;
|
|
9
|
+
wrapExecutionPayload(exec: ExecutionPayload, _chainInfo: ChainInfo, _options?: any): Promise<ExecutionPayload>;
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9lbnRyeXBvaW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBMkIsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RTs7R0FFRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLG1CQUFtQjtJQUNyRCx3QkFBd0IsQ0FDNUIsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsU0FBUyxHQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0EyQjdCO0lBRUssb0JBQW9CLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQWdCbkg7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default_entrypoint.d.ts","sourceRoot":"","sources":["../src/default_entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IACrD,wBAAwB,CAC5B,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B;IAEK,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"default_entrypoint.d.ts","sourceRoot":"","sources":["../src/default_entrypoint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEjG,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,mBAAmB;IACrD,wBAAwB,CAC5B,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CA2B7B;IAEK,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBnH;CACF"}
|
|
@@ -23,7 +23,7 @@ import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@
|
|
|
23
23
|
...extraHashedArgs
|
|
24
24
|
], authWitnesses, capsules);
|
|
25
25
|
}
|
|
26
|
-
async wrapExecutionPayload(exec, _options) {
|
|
26
|
+
async wrapExecutionPayload(exec, _chainInfo, _options) {
|
|
27
27
|
if (exec.calls.length !== 1) {
|
|
28
28
|
throw new Error(`DefaultEntrypoint can only wrap a single call, got ${exec.calls.length}`);
|
|
29
29
|
}
|
|
@@ -10,7 +10,7 @@ export declare class DefaultMultiCallEntrypoint implements EntrypointInterface {
|
|
|
10
10
|
private address;
|
|
11
11
|
constructor(address?: AztecAddress);
|
|
12
12
|
createTxExecutionRequest(exec: ExecutionPayload, gasSettings: GasSettings, chainInfo: ChainInfo): Promise<TxExecutionRequest>;
|
|
13
|
-
wrapExecutionPayload(exec: ExecutionPayload, _options?: any): Promise<ExecutionPayload>;
|
|
13
|
+
wrapExecutionPayload(exec: ExecutionPayload, _chainInfo: ChainInfo, _options?: any): Promise<ExecutionPayload>;
|
|
14
14
|
private getEntrypointAbi;
|
|
15
15
|
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9tdWx0aV9jYWxsX2VudHJ5cG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0X211bHRpX2NhbGxfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxxQkFBYSwwQkFBMkIsWUFBVyxtQkFBbUI7O0lBQ3hELE9BQU8sQ0FBQyxPQUFPO0lBQTNCLFlBQW9CLE9BQU8sR0FBRSxZQUEwRCxFQUFJO0lBRXJGLHdCQUF3QixDQUM1QixJQUFJLEVBQUUsZ0JBQWdCLEVBQ3RCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxTQUFTLEdBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWlCN0I7SUFFSyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBcUJuSDtJQTBCRCxPQUFPLENBQUMsZ0JBQWdCO0NBeUR6QiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default_multi_call_entrypoint.d.ts","sourceRoot":"","sources":["../src/default_multi_call_entrypoint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGjG,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;;IACxD,OAAO,CAAC,OAAO;IAA3B,YAAoB,OAAO,GAAE,YAA0D,EAAI;IAErF,wBAAwB,CAC5B,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;IAEK,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"default_multi_call_entrypoint.d.ts","sourceRoot":"","sources":["../src/default_multi_call_entrypoint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA2B,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGjG,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE;;GAEG;AACH,qBAAa,0BAA2B,YAAW,mBAAmB;;IACxD,OAAO,CAAC,OAAO;IAA3B,YAAoB,OAAO,GAAE,YAA0D,EAAI;IAErF,wBAAwB,CAC5B,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B;IAEK,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAqBnH;IA0BD,OAAO,CAAC,gBAAgB;CAyDzB"}
|
|
@@ -30,7 +30,7 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
|
|
|
30
30
|
});
|
|
31
31
|
return Promise.resolve(txRequest);
|
|
32
32
|
}
|
|
33
|
-
async wrapExecutionPayload(exec, _options) {
|
|
33
|
+
async wrapExecutionPayload(exec, _chainInfo, _options) {
|
|
34
34
|
const { authWitnesses, capsules, extraHashedArgs } = exec;
|
|
35
35
|
const callData = await this.#buildEntrypointCallData(exec);
|
|
36
36
|
const entrypointCall = FunctionCall.from({
|
package/dest/interfaces.d.ts
CHANGED
|
@@ -47,11 +47,12 @@ export interface EntrypointInterface {
|
|
|
47
47
|
* of a single entrypoint call.
|
|
48
48
|
*
|
|
49
49
|
* @param exec - The execution payload to wrap
|
|
50
|
+
* @param chainInfo - Chain information (chainId and version) for replay protection
|
|
50
51
|
* @param options - Implementation-specific options
|
|
51
52
|
* @returns A new execution payload with a single call to this entrypoint
|
|
52
53
|
* @throws Error if the payload cannot be wrapped (e.g., exceeds call limit)
|
|
53
54
|
*/
|
|
54
|
-
wrapExecutionPayload(exec: ExecutionPayload, options?: any): Promise<ExecutionPayload>;
|
|
55
|
+
wrapExecutionPayload(exec: ExecutionPayload, chainInfo: ChainInfo, options?: any): Promise<ExecutionPayload>;
|
|
55
56
|
}
|
|
56
57
|
/** Creates authorization witnesses. */
|
|
57
58
|
export interface AuthWitnessProvider {
|
|
@@ -62,4 +63,4 @@ export interface AuthWitnessProvider {
|
|
|
62
63
|
*/
|
|
63
64
|
createAuthWit(messageHash: Fr | Buffer): Promise<AuthWitness>;
|
|
64
65
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLHNCQUFzQjtJQUN0QixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osaUNBQWlDO0lBQ2pDLE9BQU8sRUFBRSxFQUFFLENBQUM7Q0FDYixDQUFDO0FBRUY7O0dBRUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7O0VBRzFCLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDOzs7Ozs7O09BT0c7SUFDSCx3QkFBd0IsQ0FDdEIsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsU0FBUyxFQUNwQixPQUFPLENBQUMsRUFBRSxHQUFHLEdBQ1osT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0I7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Q0FDOUc7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQzs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUMvRCJ9
|
package/dest/interfaces.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,sBAAsB;IACtB,OAAO,EAAE,EAAE,CAAC;IACZ,iCAAiC;IACjC,OAAO,EAAE,EAAE,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,wBAAwB,CACtB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,sBAAsB;IACtB,OAAO,EAAE,EAAE,CAAC;IACZ,iCAAiC;IACjC,OAAO,EAAE,EAAE,CAAC;CACb,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;EAG1B,CAAC;AAEH;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;OAOG;IACH,wBAAwB,CACtB,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;;;;;;;;;;OAWG;IACH,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC9G;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/D"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@aztec/entrypoints",
|
|
3
3
|
"homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/entrypoints",
|
|
4
4
|
"description": "Implementation of sample contract entrypoints for the Aztec Network",
|
|
5
|
-
"version": "4.
|
|
5
|
+
"version": "4.2.0-nightly.20260320",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"exports": {
|
|
8
8
|
"./account": "./dest/account_entrypoint.js",
|
|
@@ -67,10 +67,10 @@
|
|
|
67
67
|
]
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aztec/constants": "4.
|
|
71
|
-
"@aztec/foundation": "4.
|
|
72
|
-
"@aztec/protocol-contracts": "4.
|
|
73
|
-
"@aztec/stdlib": "4.
|
|
70
|
+
"@aztec/constants": "4.2.0-nightly.20260320",
|
|
71
|
+
"@aztec/foundation": "4.2.0-nightly.20260320",
|
|
72
|
+
"@aztec/protocol-contracts": "4.2.0-nightly.20260320",
|
|
73
|
+
"@aztec/stdlib": "4.2.0-nightly.20260320",
|
|
74
74
|
"tslib": "^2.4.0",
|
|
75
75
|
"zod": "^3.23.8"
|
|
76
76
|
},
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
import { type FunctionAbi, FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
|
|
3
|
+
import { computeOuterAuthWitHash } from '@aztec/stdlib/auth-witness';
|
|
3
4
|
import type { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
4
5
|
import type { GasSettings } from '@aztec/stdlib/gas';
|
|
5
6
|
import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
|
|
@@ -66,7 +67,7 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
|
|
|
66
67
|
options: DefaultAccountEntrypointOptions,
|
|
67
68
|
): Promise<TxExecutionRequest> {
|
|
68
69
|
const { authWitnesses, capsules, extraHashedArgs } = exec;
|
|
69
|
-
const callData = await this.#buildEntrypointCallData(exec, options);
|
|
70
|
+
const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
|
|
70
71
|
const entrypointHashedArgs = await HashedValues.fromArgs(callData.encodedArgs);
|
|
71
72
|
const txRequest = TxExecutionRequest.from({
|
|
72
73
|
firstCallArgsHash: entrypointHashedArgs.hash,
|
|
@@ -84,10 +85,11 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
|
|
|
84
85
|
|
|
85
86
|
async wrapExecutionPayload(
|
|
86
87
|
exec: ExecutionPayload,
|
|
88
|
+
chainInfo: ChainInfo,
|
|
87
89
|
options: DefaultAccountEntrypointOptions,
|
|
88
90
|
): Promise<ExecutionPayload> {
|
|
89
91
|
const { authWitnesses, capsules, extraHashedArgs, feePayer } = exec;
|
|
90
|
-
const callData = await this.#buildEntrypointCallData(exec, options);
|
|
92
|
+
const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
|
|
91
93
|
|
|
92
94
|
// Build the entrypoint function call
|
|
93
95
|
const entrypointCall = FunctionCall.from({
|
|
@@ -114,10 +116,15 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
|
|
|
114
116
|
* Builds the shared data needed for both creating a tx execution request and wrapping an execution payload.
|
|
115
117
|
* This includes encoding calls, building entrypoint arguments, and creating the authwitness.
|
|
116
118
|
* @param exec - The execution payload containing calls to encode
|
|
119
|
+
* @param chainInfo - Chain information (chainId and version) for replay protection
|
|
117
120
|
* @param options - Account entrypoint options including tx nonce and fee payment method
|
|
118
121
|
* @returns Encoded call data, ABI, function selector, and auth witness
|
|
119
122
|
*/
|
|
120
|
-
async #buildEntrypointCallData(
|
|
123
|
+
async #buildEntrypointCallData(
|
|
124
|
+
exec: ExecutionPayload,
|
|
125
|
+
chainInfo: ChainInfo,
|
|
126
|
+
options: DefaultAccountEntrypointOptions,
|
|
127
|
+
) {
|
|
121
128
|
const { calls } = exec;
|
|
122
129
|
const { cancellable, txNonce, feePaymentMethodOptions } = options;
|
|
123
130
|
|
|
@@ -129,7 +136,9 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
|
|
|
129
136
|
|
|
130
137
|
const functionSelector = await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters);
|
|
131
138
|
|
|
132
|
-
const
|
|
139
|
+
const payloadHash = await encodedCalls.hash();
|
|
140
|
+
const messageHash = await computeOuterAuthWitHash(this.address, chainInfo.chainId, chainInfo.version, payloadHash);
|
|
141
|
+
const payloadAuthWitness = await this.auth.createAuthWit(messageHash);
|
|
133
142
|
|
|
134
143
|
return {
|
|
135
144
|
encodedCalls,
|
|
@@ -41,7 +41,7 @@ export class DefaultEntrypoint implements EntrypointInterface {
|
|
|
41
41
|
);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
async wrapExecutionPayload(exec: ExecutionPayload, _options?: any): Promise<ExecutionPayload> {
|
|
44
|
+
async wrapExecutionPayload(exec: ExecutionPayload, _chainInfo: ChainInfo, _options?: any): Promise<ExecutionPayload> {
|
|
45
45
|
if (exec.calls.length !== 1) {
|
|
46
46
|
throw new Error(`DefaultEntrypoint can only wrap a single call, got ${exec.calls.length}`);
|
|
47
47
|
}
|
|
@@ -37,7 +37,7 @@ export class DefaultMultiCallEntrypoint implements EntrypointInterface {
|
|
|
37
37
|
return Promise.resolve(txRequest);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
async wrapExecutionPayload(exec: ExecutionPayload, _options?: any): Promise<ExecutionPayload> {
|
|
40
|
+
async wrapExecutionPayload(exec: ExecutionPayload, _chainInfo: ChainInfo, _options?: any): Promise<ExecutionPayload> {
|
|
41
41
|
const { authWitnesses, capsules, extraHashedArgs } = exec;
|
|
42
42
|
const callData = await this.#buildEntrypointCallData(exec);
|
|
43
43
|
const entrypointCall = FunctionCall.from({
|
package/src/interfaces.ts
CHANGED
|
@@ -51,11 +51,12 @@ export interface EntrypointInterface {
|
|
|
51
51
|
* of a single entrypoint call.
|
|
52
52
|
*
|
|
53
53
|
* @param exec - The execution payload to wrap
|
|
54
|
+
* @param chainInfo - Chain information (chainId and version) for replay protection
|
|
54
55
|
* @param options - Implementation-specific options
|
|
55
56
|
* @returns A new execution payload with a single call to this entrypoint
|
|
56
57
|
* @throws Error if the payload cannot be wrapped (e.g., exceeds call limit)
|
|
57
58
|
*/
|
|
58
|
-
wrapExecutionPayload(exec: ExecutionPayload, options?: any): Promise<ExecutionPayload>;
|
|
59
|
+
wrapExecutionPayload(exec: ExecutionPayload, chainInfo: ChainInfo, options?: any): Promise<ExecutionPayload>;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
62
|
/** Creates authorization witnesses. */
|