@aztec/entrypoints 0.0.1-commit.c31f2472 → 0.0.1-commit.c52d6e7

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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWNjb3VudF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0Y7O0dBRUc7QUFDSCxvQkFBWSw4QkFBOEI7SUFDeEM7O09BRUc7SUFDSCxRQUFRLElBQUk7SUFDWjs7Ozs7T0FLRztJQUNILHFCQUFxQixJQUFJO0lBQ3pCOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsSUFBSTtDQUN6QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLCtCQUErQixHQUFHO0lBQzVDLGdEQUFnRDtJQUNoRCxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNiLDRHQUE0RztJQUM1Ryx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztDQUN6RCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gscUJBQWEsd0JBQXlCLFlBQVcsbUJBQW1COztJQUVoRSxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxJQUFJO0lBRmQsWUFDVSxPQUFPLEVBQUUsWUFBWSxFQUNyQixJQUFJLEVBQUUsbUJBQW1CLEVBQy9CO0lBRUUsd0JBQXdCLENBQzVCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FnQjdCO0lBRUssb0JBQW9CLENBQ3hCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0F1QjNCO0lBZ0NELE9BQU8sQ0FBQyxnQkFBZ0I7Q0EyRHpCIn0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudF9lbnRyeXBvaW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYWNjb3VudF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQVNwRCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0Y7O0dBRUc7QUFDSCxvQkFBWSw4QkFBOEI7SUFDeEM7O09BRUc7SUFDSCxRQUFRLElBQUk7SUFDWjs7Ozs7T0FLRztJQUNILHFCQUFxQixJQUFJO0lBQ3pCOzs7Ozs7O09BT0c7SUFDSCxvQkFBb0IsSUFBSTtDQUN6QjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxNQUFNLCtCQUErQixHQUFHO0lBQzVDLGdEQUFnRDtJQUNoRCxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDdEI7Ozs7T0FJRztJQUNILE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQztJQUNiLDRHQUE0RztJQUM1Ryx1QkFBdUIsRUFBRSw4QkFBOEIsQ0FBQztDQUN6RCxDQUFDO0FBRUY7OztHQUdHO0FBQ0gscUJBQWEsd0JBQXlCLFlBQVcsbUJBQW1COztJQUVoRSxPQUFPLENBQUMsT0FBTztJQUNmLE9BQU8sQ0FBQyxJQUFJO0lBRmQsWUFDVSxPQUFPLEVBQUUsWUFBWSxFQUNyQixJQUFJLEVBQUUsbUJBQW1CLEVBQy9CO0lBRUUsd0JBQXdCLENBQzVCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FnQjdCO0lBRUssb0JBQW9CLENBQ3hCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxFQUFFLCtCQUErQixHQUN2QyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0F1QjNCO0lBdUNELE9BQU8sQ0FBQyxnQkFBZ0I7Q0EwRHpCIn0=
@@ -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;AAEpD,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,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,gBAAgB,CAAC,CAuB3B;IAgCD,OAAO,CAAC,gBAAgB;CA2DzB"}
1
+ {"version":3,"file":"account_entrypoint.d.ts","sourceRoot":"","sources":["../src/account_entrypoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AASpD,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;CA0DzB"}
@@ -1,5 +1,6 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
2
+ import { FunctionCall, FunctionSelector, encodeArguments, getFunctionReturnType } 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,11 +58,20 @@ 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
- const entrypointCall = new FunctionCall(callData.abi.name, this.address, callData.functionSelector, callData.abi.functionType, false, callData.abi.isStatic, callData.encodedArgs, callData.abi.returnTypes);
65
+ const entrypointCall = FunctionCall.from({
66
+ name: callData.abi.name,
67
+ to: this.address,
68
+ selector: callData.functionSelector,
69
+ type: callData.abi.functionType,
70
+ hideMsgSender: false,
71
+ isStatic: callData.abi.isStatic,
72
+ args: callData.encodedArgs,
73
+ returnType: getFunctionReturnType(callData.abi)
74
+ });
65
75
  return new ExecutionPayload([
66
76
  entrypointCall
67
77
  ], [
@@ -76,9 +86,10 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
76
86
  * Builds the shared data needed for both creating a tx execution request and wrapping an execution payload.
77
87
  * This includes encoding calls, building entrypoint arguments, and creating the authwitness.
78
88
  * @param exec - The execution payload containing calls to encode
89
+ * @param chainInfo - Chain information (chainId and version) for replay protection
79
90
  * @param options - Account entrypoint options including tx nonce and fee payment method
80
91
  * @returns Encoded call data, ABI, function selector, and auth witness
81
- */ async #buildEntrypointCallData(exec, options) {
92
+ */ async #buildEntrypointCallData(exec, chainInfo, options) {
82
93
  const { calls } = exec;
83
94
  const { cancellable, txNonce, feePaymentMethodOptions } = options;
84
95
  const encodedCalls = await EncodedAppEntrypointCalls.create(calls, txNonce);
@@ -90,7 +101,9 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
90
101
  ];
91
102
  const encodedArgs = encodeArguments(abi, args);
92
103
  const functionSelector = await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters);
93
- const payloadAuthWitness = await this.auth.createAuthWit(await encodedCalls.hash());
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);
94
107
  return {
95
108
  encodedCalls,
96
109
  abi,
@@ -207,7 +220,6 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
207
220
  }
208
221
  }
209
222
  ],
210
- returnTypes: [],
211
223
  errorTypes: {}
212
224
  };
213
225
  }
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9lbnRyeXBvaW50LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZGVmYXVsdF9lbnRyeXBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBMkIsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRyxPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV0RTs7R0FFRztBQUNILHFCQUFhLGlCQUFrQixZQUFXLG1CQUFtQjtJQUNyRCx3QkFBd0IsQ0FDNUIsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsU0FBUyxHQUNuQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0EyQjdCO0lBRUssb0JBQW9CLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FnQjVGO0NBQ0YifQ==
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,CAgB5F;CACF"}
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9tdWx0aV9jYWxsX2VudHJ5cG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0X211bHRpX2NhbGxfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxxQkFBYSwwQkFBMkIsWUFBVyxtQkFBbUI7O0lBQ3hELE9BQU8sQ0FBQyxPQUFPO0lBQTNCLFlBQW9CLE9BQU8sR0FBRSxZQUEwRCxFQUFJO0lBRXJGLHdCQUF3QixDQUM1QixJQUFJLEVBQUUsZ0JBQWdCLEVBQ3RCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxTQUFTLEdBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWlCN0I7SUFFSyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQXFCNUY7SUEwQkQsT0FBTyxDQUFDLGdCQUFnQjtDQXlEekIifQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdF9tdWx0aV9jYWxsX2VudHJ5cG9pbnQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0X211bHRpX2NhbGxfZW50cnlwb2ludC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTJCLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakcsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdEU7O0dBRUc7QUFDSCxxQkFBYSwwQkFBMkIsWUFBVyxtQkFBbUI7O0lBQ3hELE9BQU8sQ0FBQyxPQUFPO0lBQTNCLFlBQW9CLE9BQU8sR0FBRSxZQUFxRCxFQUFJO0lBRWhGLHdCQUF3QixDQUM1QixJQUFJLEVBQUUsZ0JBQWdCLEVBQ3RCLFdBQVcsRUFBRSxXQUFXLEVBQ3hCLFNBQVMsRUFBRSxTQUFTLEdBQ25CLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQWlCN0I7SUFFSyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBcUJuSDtJQTBCRCxPQUFPLENBQUMsZ0JBQWdCO0NBd0R6QiJ9
@@ -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,CAqB5F;IA0BD,OAAO,CAAC,gBAAgB;CAyDzB"}
1
+ {"version":3,"file":"default_multi_call_entrypoint.d.ts","sourceRoot":"","sources":["../src/default_multi_call_entrypoint.ts"],"names":[],"mappings":"AASA,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,YAAqD,EAAI;IAEhF,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;CAwDzB"}
@@ -1,13 +1,13 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
- import { FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
2
+ import { STANDARD_MULTI_CALL_ENTRYPOINT_ADDRESS } from '@aztec/standard-contracts/multi-call-entrypoint/constants';
3
+ import { FunctionCall, FunctionSelector, encodeArguments, getFunctionReturnType } from '@aztec/stdlib/abi';
4
4
  import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
5
5
  import { EncodedAppEntrypointCalls } from './encoding.js';
6
6
  /**
7
7
  * Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
8
8
  */ export class DefaultMultiCallEntrypoint {
9
9
  address;
10
- constructor(address = ProtocolContractAddress.MultiCallEntrypoint){
10
+ constructor(address = STANDARD_MULTI_CALL_ENTRYPOINT_ADDRESS){
11
11
  this.address = address;
12
12
  }
13
13
  async createTxExecutionRequest(exec, gasSettings, chainInfo) {
@@ -30,10 +30,19 @@ 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
- const entrypointCall = new FunctionCall(callData.abi.name, this.address, callData.functionSelector, callData.abi.functionType, false, callData.abi.isStatic, callData.encodedArgs, callData.abi.returnTypes);
36
+ const entrypointCall = FunctionCall.from({
37
+ name: callData.abi.name,
38
+ to: this.address,
39
+ selector: callData.functionSelector,
40
+ type: callData.abi.functionType,
41
+ hideMsgSender: false,
42
+ isStatic: callData.abi.isStatic,
43
+ args: callData.encodedArgs,
44
+ returnType: getFunctionReturnType(callData.abi)
45
+ });
37
46
  return new ExecutionPayload([
38
47
  entrypointCall
39
48
  ], authWitnesses, capsules, [
@@ -155,7 +164,6 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
155
164
  visibility: 'public'
156
165
  }
157
166
  ],
158
- returnTypes: [],
159
167
  errorTypes: {}
160
168
  };
161
169
  }
@@ -37,7 +37,7 @@ export declare class EncodedAppEntrypointCalls implements EncodedCalls {
37
37
  /** The hashed args for the call, ready to be injected in the execution cache */
38
38
  hashedArguments: HashedValues[];
39
39
  /** The index of the generator to use for hashing */
40
- generatorIndex: number;
40
+ domainSeparator: number;
41
41
  /**
42
42
  * A nonce to inject into the payload of the transaction. When used with cancellable=true, this nonce will be
43
43
  * used to compute a nullifier that allows cancelling this transaction by submitting a new one with the same nonce
@@ -50,7 +50,7 @@ export declare class EncodedAppEntrypointCalls implements EncodedCalls {
50
50
  /** The hashed args for the call, ready to be injected in the execution cache */
51
51
  hashedArguments: HashedValues[],
52
52
  /** The index of the generator to use for hashing */
53
- generatorIndex: number,
53
+ domainSeparator: number,
54
54
  /**
55
55
  * A nonce to inject into the payload of the transaction. When used with cancellable=true, this nonce will be
56
56
  * used to compute a nullifier that allows cancelling this transaction by submitting a new one with the same nonce
@@ -85,4 +85,4 @@ export declare class EncodedAppEntrypointCalls implements EncodedCalls {
85
85
  }
86
86
  /** Encodes FunctionCalls for execution, following Noir's convention */
87
87
  export declare function encode(calls: FunctionCall[]): Promise<EncodedCalls>;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJaEQsZUFBTyxNQUFNLGFBQWEsSUFBSSxDQUFDO0FBRS9CLG9EQUFvRDtBQUNwRCxNQUFNLE1BQU0sbUJBQW1CLEdBQUc7SUFDaEMsbUNBQW1DO0lBQ25DLG9HQUFvRztJQUNwRyxTQUFTLEVBQUUsRUFBRSxDQUFDO0lBQ2QsdUNBQXVDO0lBQ3ZDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUN0QixzQ0FBc0M7SUFDdEMsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQixnREFBZ0Q7SUFDaEQsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUNuQix3R0FBd0c7SUFDeEcsZUFBZSxFQUFFLE9BQU8sQ0FBQztJQUN6QiwyQ0FBMkM7SUFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQztDQUNwQixDQUFDO0FBRUYsc0ZBQXNGO0FBQ3RGLE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIsZ0VBQWdFO0lBQ2hFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLENBQUM7SUFDNUMsZ0ZBQWdGO0lBQ2hGLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQztDQUNqQyxDQUFDO0FBRUY7Ozs7S0FJSztBQUNMLHFCQUFhLHlCQUEwQixZQUFXLFlBQVk7SUFFMUQsZ0VBQWdFO0lBQ3pELG9CQUFvQixFQUFFLG1CQUFtQixFQUFFO0lBQ2xELGdGQUFnRjtJQUN6RSxlQUFlLEVBQUUsWUFBWSxFQUFFO0lBQ3RDLG9EQUFvRDtJQUM3QyxjQUFjLEVBQUUsTUFBTTtJQUM3Qjs7OztPQUlHO0lBRUksUUFBUSxFQUFFLEVBQUU7SUFickI7SUFDRSxnRUFBZ0U7SUFDekQsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUU7SUFDbEQsZ0ZBQWdGO0lBQ3pFLGVBQWUsRUFBRSxZQUFZLEVBQUU7SUFDdEMsb0RBQW9EO0lBQzdDLGNBQWMsRUFBRSxNQUFNO0lBQzdCOzs7O09BSUc7SUFFSSxRQUFRLEVBQUUsRUFBRSxFQUNqQjtJQUdKOzs7T0FHRztJQUNILElBQUksY0FBYywwQkFFakI7SUFHRDs7O09BR0c7SUFDSCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGdCQUVIO0lBRUQsMkRBQTJEO0lBQzNELFNBQVMsQ0FBQyxxQkFBcUIsU0FTOUI7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFhLE1BQU0sQ0FDakIsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyxhQUFhLENBQUMsRUFDekUsT0FBTyxLQUFjLHNDQWF0QjtDQUNGO0FBRUQsdUVBQXVFO0FBQ3ZFLHdCQUFzQixNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0F3QnpFIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5jb2RpbmcuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9lbmNvZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJaEQsZUFBTyxNQUFNLGFBQWEsSUFBSSxDQUFDO0FBRS9CLG9EQUFvRDtBQUNwRCxNQUFNLE1BQU0sbUJBQW1CLEdBQUc7SUFDaEMsbUNBQW1DO0lBQ25DLG9HQUFvRztJQUNwRyxTQUFTLEVBQUUsRUFBRSxDQUFDO0lBQ2QsdUNBQXVDO0lBQ3ZDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztJQUN0QixzQ0FBc0M7SUFDdEMsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQixnREFBZ0Q7SUFDaEQsU0FBUyxFQUFFLE9BQU8sQ0FBQztJQUNuQix3R0FBd0c7SUFDeEcsZUFBZSxFQUFFLE9BQU8sQ0FBQztJQUN6QiwyQ0FBMkM7SUFDM0MsU0FBUyxFQUFFLE9BQU8sQ0FBQztDQUNwQixDQUFDO0FBRUYsc0ZBQXNGO0FBQ3RGLE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIsZ0VBQWdFO0lBQ2hFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLENBQUM7SUFDNUMsZ0ZBQWdGO0lBQ2hGLGVBQWUsRUFBRSxZQUFZLEVBQUUsQ0FBQztDQUNqQyxDQUFDO0FBRUY7Ozs7S0FJSztBQUNMLHFCQUFhLHlCQUEwQixZQUFXLFlBQVk7SUFFMUQsZ0VBQWdFO0lBQ3pELG9CQUFvQixFQUFFLG1CQUFtQixFQUFFO0lBQ2xELGdGQUFnRjtJQUN6RSxlQUFlLEVBQUUsWUFBWSxFQUFFO0lBQ3RDLG9EQUFvRDtJQUM3QyxlQUFlLEVBQUUsTUFBTTtJQUM5Qjs7OztPQUlHO0lBRUksUUFBUSxFQUFFLEVBQUU7SUFickI7SUFDRSxnRUFBZ0U7SUFDekQsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUU7SUFDbEQsZ0ZBQWdGO0lBQ3pFLGVBQWUsRUFBRSxZQUFZLEVBQUU7SUFDdEMsb0RBQW9EO0lBQzdDLGVBQWUsRUFBRSxNQUFNO0lBQzlCOzs7O09BSUc7SUFFSSxRQUFRLEVBQUUsRUFBRSxFQUNqQjtJQUdKOzs7T0FHRztJQUNILElBQUksY0FBYywwQkFFakI7SUFHRDs7O09BR0c7SUFDSCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGdCQUVIO0lBRUQsMkRBQTJEO0lBQzNELFNBQVMsQ0FBQyxxQkFBcUIsU0FTOUI7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFhLE1BQU0sQ0FDakIsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyxhQUFhLENBQUMsRUFDekUsT0FBTyxLQUFjLHNDQWF0QjtDQUNGO0FBRUQsdUVBQXVFO0FBQ3ZFLHdCQUFzQixNQUFNLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0F3QnpFIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,mCAAmC;IACnC,oGAAoG;IACpG,SAAS,EAAE,EAAE,CAAC;IACd,uCAAuC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,EAAE,EAAE,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,wGAAwG;IACxG,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,YAAY,GAAG;IACzB,gEAAgE;IAChE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,gFAAgF;IAChF,eAAe,EAAE,YAAY,EAAE,CAAC;CACjC,CAAC;AAEF;;;;KAIK;AACL,qBAAa,yBAA0B,YAAW,YAAY;IAE1D,gEAAgE;IACzD,oBAAoB,EAAE,mBAAmB,EAAE;IAClD,gFAAgF;IACzE,eAAe,EAAE,YAAY,EAAE;IACtC,oDAAoD;IAC7C,cAAc,EAAE,MAAM;IAC7B;;;;OAIG;IAEI,QAAQ,EAAE,EAAE;IAbrB;IACE,gEAAgE;IACzD,oBAAoB,EAAE,mBAAmB,EAAE;IAClD,gFAAgF;IACzE,eAAe,EAAE,YAAY,EAAE;IACtC,oDAAoD;IAC7C,cAAc,EAAE,MAAM;IAC7B;;;;OAIG;IAEI,QAAQ,EAAE,EAAE,EACjB;IAGJ;;;OAGG;IACH,IAAI,cAAc,0BAEjB;IAGD;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED;;;OAGG;IACH,IAAI,gBAEH;IAED,2DAA2D;IAC3D,SAAS,CAAC,qBAAqB,SAS9B;IAED;;;;;;OAMG;IACH,OAAa,MAAM,CACjB,aAAa,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,OAAO,aAAa,CAAC,EACzE,OAAO,KAAc,sCAatB;CACF;AAED,uEAAuE;AACvE,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAwBzE"}
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../src/encoding.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAgB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIhD,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,oDAAoD;AACpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,mCAAmC;IACnC,oGAAoG;IACpG,SAAS,EAAE,EAAE,CAAC;IACd,uCAAuC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IACtB,sCAAsC;IACtC,cAAc,EAAE,EAAE,CAAC;IACnB,gDAAgD;IAChD,SAAS,EAAE,OAAO,CAAC;IACnB,wGAAwG;IACxG,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,sFAAsF;AACtF,MAAM,MAAM,YAAY,GAAG;IACzB,gEAAgE;IAChE,oBAAoB,EAAE,mBAAmB,EAAE,CAAC;IAC5C,gFAAgF;IAChF,eAAe,EAAE,YAAY,EAAE,CAAC;CACjC,CAAC;AAEF;;;;KAIK;AACL,qBAAa,yBAA0B,YAAW,YAAY;IAE1D,gEAAgE;IACzD,oBAAoB,EAAE,mBAAmB,EAAE;IAClD,gFAAgF;IACzE,eAAe,EAAE,YAAY,EAAE;IACtC,oDAAoD;IAC7C,eAAe,EAAE,MAAM;IAC9B;;;;OAIG;IAEI,QAAQ,EAAE,EAAE;IAbrB;IACE,gEAAgE;IACzD,oBAAoB,EAAE,mBAAmB,EAAE;IAClD,gFAAgF;IACzE,eAAe,EAAE,YAAY,EAAE;IACtC,oDAAoD;IAC7C,eAAe,EAAE,MAAM;IAC9B;;;;OAIG;IAEI,QAAQ,EAAE,EAAE,EACjB;IAGJ;;;OAGG;IACH,IAAI,cAAc,0BAEjB;IAGD;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED;;;OAGG;IACH,IAAI,gBAEH;IAED,2DAA2D;IAC3D,SAAS,CAAC,qBAAqB,SAS9B;IAED;;;;;;OAMG;IACH,OAAa,MAAM,CACjB,aAAa,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,OAAO,aAAa,CAAC,EACzE,OAAO,KAAc,sCAatB;CACF;AAED,uEAAuE;AACvE,wBAAsB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAwBzE"}
package/dest/encoding.js CHANGED
@@ -1,11 +1,11 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { padArrayEnd } from '@aztec/foundation/collection';
3
3
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
5
5
  import { FunctionCall, FunctionType } from '@aztec/stdlib/abi';
6
6
  import { HashedValues } from '@aztec/stdlib/tx';
7
7
  // These must match the values defined in:
8
- // - noir-projects/aztec-nr/aztec/src/entrypoint/app.nr
8
+ // - noir-projects/labs/aztec-nr/aztec/src/authwit/entrypoint/app.nr
9
9
  export const APP_MAX_CALLS = 5;
10
10
  /**
11
11
  * Entrypoints derive their arguments from the calls that they'll ultimate make.
@@ -14,9 +14,9 @@ export const APP_MAX_CALLS = 5;
14
14
  * */ export class EncodedAppEntrypointCalls {
15
15
  encodedFunctionCalls;
16
16
  hashedArguments;
17
- generatorIndex;
17
+ domainSeparator;
18
18
  tx_nonce;
19
- constructor(/** Function calls in the expected format (Noir's convention) */ encodedFunctionCalls, /** The hashed args for the call, ready to be injected in the execution cache */ hashedArguments, /** The index of the generator to use for hashing */ generatorIndex, /**
19
+ constructor(/** Function calls in the expected format (Noir's convention) */ encodedFunctionCalls, /** The hashed args for the call, ready to be injected in the execution cache */ hashedArguments, /** The index of the generator to use for hashing */ domainSeparator, /**
20
20
  * A nonce to inject into the payload of the transaction. When used with cancellable=true, this nonce will be
21
21
  * used to compute a nullifier that allows cancelling this transaction by submitting a new one with the same nonce
22
22
  * but higher fee. The nullifier ensures only one transaction can succeed.
@@ -24,7 +24,7 @@ export const APP_MAX_CALLS = 5;
24
24
  tx_nonce){
25
25
  this.encodedFunctionCalls = encodedFunctionCalls;
26
26
  this.hashedArguments = hashedArguments;
27
- this.generatorIndex = generatorIndex;
27
+ this.domainSeparator = domainSeparator;
28
28
  this.tx_nonce = tx_nonce;
29
29
  }
30
30
  /* eslint-disable camelcase */ /**
@@ -46,7 +46,7 @@ export const APP_MAX_CALLS = 5;
46
46
  * Hashes the payload
47
47
  * @returns The hash of the payload
48
48
  */ hash() {
49
- return poseidon2HashWithSeparator(this.toFields(), this.generatorIndex);
49
+ return poseidon2HashWithSeparator(this.toFields(), this.domainSeparator);
50
50
  }
51
51
  /** Serializes the function calls to an array of fields. */ functionCallsToFields() {
52
52
  return this.encodedFunctionCalls.flatMap((call)=>[
@@ -70,7 +70,7 @@ export const APP_MAX_CALLS = 5;
70
70
  }
71
71
  const paddedCalls = padArrayEnd(functionCalls, FunctionCall.empty(), APP_MAX_CALLS);
72
72
  const encoded = await encode(paddedCalls);
73
- return new EncodedAppEntrypointCalls(encoded.encodedFunctionCalls, encoded.hashedArguments, GeneratorIndex.SIGNATURE_PAYLOAD, txNonce);
73
+ return new EncodedAppEntrypointCalls(encoded.encodedFunctionCalls, encoded.hashedArguments, DomainSeparator.SIGNATURE_PAYLOAD, txNonce);
74
74
  }
75
75
  }
76
76
  /** Encodes FunctionCalls for execution, following Noir's convention */ export async function encode(calls) {
@@ -17,15 +17,9 @@ export type ChainInfo = {
17
17
  * Zod schema for ChainInfo
18
18
  */
19
19
  export declare const ChainInfoSchema: z.ZodObject<{
20
- chainId: z.ZodType<Fr, any, string>;
21
- version: z.ZodType<Fr, any, string>;
22
- }, "strip", z.ZodTypeAny, {
23
- chainId: Fr;
24
- version: Fr;
25
- }, {
26
- chainId: string;
27
- version: string;
28
- }>;
20
+ chainId: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
21
+ version: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
22
+ }, z.core.$strip>;
29
23
  /**
30
24
  * Creates transaction execution requests out of a set of function calls, a fee payment method and
31
25
  * general options for the transaction
@@ -47,11 +41,12 @@ export interface EntrypointInterface {
47
41
  * of a single entrypoint call.
48
42
  *
49
43
  * @param exec - The execution payload to wrap
44
+ * @param chainInfo - Chain information (chainId and version) for replay protection
50
45
  * @param options - Implementation-specific options
51
46
  * @returns A new execution payload with a single call to this entrypoint
52
47
  * @throws Error if the payload cannot be wrapped (e.g., exceeds call limit)
53
48
  */
54
- wrapExecutionPayload(exec: ExecutionPayload, options?: any): Promise<ExecutionPayload>;
49
+ wrapExecutionPayload(exec: ExecutionPayload, chainInfo: ChainInfo, options?: any): Promise<ExecutionPayload>;
55
50
  }
56
51
  /** Creates authorization witnesses. */
57
52
  export interface AuthWitnessProvider {
@@ -62,4 +57,4 @@ export interface AuthWitnessProvider {
62
57
  */
63
58
  createAuthWit(messageHash: Fr | Buffer): Promise<AuthWitness>;
64
59
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLHNCQUFzQjtJQUN0QixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osaUNBQWlDO0lBQ2pDLE9BQU8sRUFBRSxFQUFFLENBQUM7Q0FDYixDQUFDO0FBRUY7O0dBRUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7Ozs7Ozs7O0VBRzFCLENBQUM7QUFFSDs7O0dBR0c7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDOzs7Ozs7O09BT0c7SUFDSCx3QkFBd0IsQ0FDdEIsSUFBSSxFQUFFLGdCQUFnQixFQUN0QixXQUFXLEVBQUUsV0FBVyxFQUN4QixTQUFTLEVBQUUsU0FBUyxFQUNwQixPQUFPLENBQUMsRUFBRSxHQUFHLEdBQ1osT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFL0I7Ozs7Ozs7Ozs7T0FVRztJQUNILG9CQUFvQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsRUFBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Q0FDeEY7QUFFRCx1Q0FBdUM7QUFDdkMsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQzs7OztPQUlHO0lBQ0gsYUFBYSxDQUFDLFdBQVcsRUFBRSxFQUFFLEdBQUcsTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztDQUMvRCJ9
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFN0UsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUV4Qjs7O0dBR0c7QUFDSCxNQUFNLE1BQU0sU0FBUyxHQUFHO0lBQ3RCLHNCQUFzQjtJQUN0QixPQUFPLEVBQUUsRUFBRSxDQUFDO0lBQ1osaUNBQWlDO0lBQ2pDLE9BQU8sRUFBRSxFQUFFLENBQUM7Q0FDYixDQUFDO0FBRUY7O0dBRUc7QUFDSCxlQUFPLE1BQU0sZUFBZTs7O2lCQUcxQixDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLG1CQUFtQjtJQUNsQzs7Ozs7OztPQU9HO0lBQ0gsd0JBQXdCLENBQ3RCLElBQUksRUFBRSxnQkFBZ0IsRUFDdEIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsU0FBUyxFQUFFLFNBQVMsRUFDcEIsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUNaLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRS9COzs7Ozs7Ozs7OztPQVdHO0lBQ0gsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0NBQzlHO0FBRUQsdUNBQXVDO0FBQ3ZDLE1BQU0sV0FBVyxtQkFBbUI7SUFDbEM7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxHQUFHLE1BQU0sR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7Q0FDL0QifQ==
@@ -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;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACxF;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAC/D"}
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;;;iBAG1B,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": "0.0.1-commit.c31f2472",
5
+ "version": "0.0.1-commit.c52d6e7",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  "./account": "./dest/account_entrypoint.js",
@@ -67,12 +67,13 @@
67
67
  ]
68
68
  },
69
69
  "dependencies": {
70
- "@aztec/constants": "0.0.1-commit.c31f2472",
71
- "@aztec/foundation": "0.0.1-commit.c31f2472",
72
- "@aztec/protocol-contracts": "0.0.1-commit.c31f2472",
73
- "@aztec/stdlib": "0.0.1-commit.c31f2472",
70
+ "@aztec/constants": "0.0.1-commit.c52d6e7",
71
+ "@aztec/foundation": "0.0.1-commit.c52d6e7",
72
+ "@aztec/protocol-contracts": "0.0.1-commit.c52d6e7",
73
+ "@aztec/standard-contracts": "0.0.1-commit.c52d6e7",
74
+ "@aztec/stdlib": "0.0.1-commit.c52d6e7",
74
75
  "tslib": "^2.4.0",
75
- "zod": "^3.23.8"
76
+ "zod": "^4"
76
77
  },
77
78
  "devDependencies": {
78
79
  "@jest/globals": "^30.0.0",
@@ -1,5 +1,12 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { type FunctionAbi, FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
2
+ import {
3
+ type FunctionAbi,
4
+ FunctionCall,
5
+ FunctionSelector,
6
+ encodeArguments,
7
+ getFunctionReturnType,
8
+ } from '@aztec/stdlib/abi';
9
+ import { computeOuterAuthWitHash } from '@aztec/stdlib/auth-witness';
3
10
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
11
  import type { GasSettings } from '@aztec/stdlib/gas';
5
12
  import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
@@ -66,7 +73,7 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
66
73
  options: DefaultAccountEntrypointOptions,
67
74
  ): Promise<TxExecutionRequest> {
68
75
  const { authWitnesses, capsules, extraHashedArgs } = exec;
69
- const callData = await this.#buildEntrypointCallData(exec, options);
76
+ const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
70
77
  const entrypointHashedArgs = await HashedValues.fromArgs(callData.encodedArgs);
71
78
  const txRequest = TxExecutionRequest.from({
72
79
  firstCallArgsHash: entrypointHashedArgs.hash,
@@ -84,22 +91,23 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
84
91
 
85
92
  async wrapExecutionPayload(
86
93
  exec: ExecutionPayload,
94
+ chainInfo: ChainInfo,
87
95
  options: DefaultAccountEntrypointOptions,
88
96
  ): Promise<ExecutionPayload> {
89
97
  const { authWitnesses, capsules, extraHashedArgs, feePayer } = exec;
90
- const callData = await this.#buildEntrypointCallData(exec, options);
98
+ const callData = await this.#buildEntrypointCallData(exec, chainInfo, options);
91
99
 
92
100
  // Build the entrypoint function call
93
- const entrypointCall = new FunctionCall(
94
- callData.abi.name,
95
- this.address,
96
- callData.functionSelector,
97
- callData.abi.functionType,
98
- false,
99
- callData.abi.isStatic,
100
- callData.encodedArgs,
101
- callData.abi.returnTypes,
102
- );
101
+ const entrypointCall = FunctionCall.from({
102
+ name: callData.abi.name,
103
+ to: this.address,
104
+ selector: callData.functionSelector,
105
+ type: callData.abi.functionType,
106
+ hideMsgSender: false,
107
+ isStatic: callData.abi.isStatic,
108
+ args: callData.encodedArgs,
109
+ returnType: getFunctionReturnType(callData.abi),
110
+ });
103
111
 
104
112
  return new ExecutionPayload(
105
113
  [entrypointCall],
@@ -114,10 +122,15 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
114
122
  * Builds the shared data needed for both creating a tx execution request and wrapping an execution payload.
115
123
  * This includes encoding calls, building entrypoint arguments, and creating the authwitness.
116
124
  * @param exec - The execution payload containing calls to encode
125
+ * @param chainInfo - Chain information (chainId and version) for replay protection
117
126
  * @param options - Account entrypoint options including tx nonce and fee payment method
118
127
  * @returns Encoded call data, ABI, function selector, and auth witness
119
128
  */
120
- async #buildEntrypointCallData(exec: ExecutionPayload, options: DefaultAccountEntrypointOptions) {
129
+ async #buildEntrypointCallData(
130
+ exec: ExecutionPayload,
131
+ chainInfo: ChainInfo,
132
+ options: DefaultAccountEntrypointOptions,
133
+ ) {
121
134
  const { calls } = exec;
122
135
  const { cancellable, txNonce, feePaymentMethodOptions } = options;
123
136
 
@@ -129,7 +142,9 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
129
142
 
130
143
  const functionSelector = await FunctionSelector.fromNameAndParameters(abi.name, abi.parameters);
131
144
 
132
- const payloadAuthWitness = await this.auth.createAuthWit(await encodedCalls.hash());
145
+ const payloadHash = await encodedCalls.hash();
146
+ const messageHash = await computeOuterAuthWitHash(this.address, chainInfo.chainId, chainInfo.version, payloadHash);
147
+ const payloadAuthWitness = await this.auth.createAuthWit(messageHash);
133
148
 
134
149
  return {
135
150
  encodedCalls,
@@ -195,7 +210,6 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
195
210
  { name: 'fee_payment_method', type: { kind: 'integer', sign: 'unsigned', width: 8 } },
196
211
  { name: 'cancellable', type: { kind: 'boolean' } },
197
212
  ],
198
- returnTypes: [],
199
213
  errorTypes: {},
200
214
  } as FunctionAbi;
201
215
  }
@@ -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
  }
@@ -1,6 +1,12 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
- import { ProtocolContractAddress } from '@aztec/protocol-contracts';
3
- import { type FunctionAbi, FunctionCall, FunctionSelector, encodeArguments } from '@aztec/stdlib/abi';
2
+ import { STANDARD_MULTI_CALL_ENTRYPOINT_ADDRESS } from '@aztec/standard-contracts/multi-call-entrypoint/constants';
3
+ import {
4
+ type FunctionAbi,
5
+ FunctionCall,
6
+ FunctionSelector,
7
+ encodeArguments,
8
+ getFunctionReturnType,
9
+ } from '@aztec/stdlib/abi';
4
10
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
5
11
  import type { GasSettings } from '@aztec/stdlib/gas';
6
12
  import { ExecutionPayload, HashedValues, TxContext, TxExecutionRequest } from '@aztec/stdlib/tx';
@@ -12,7 +18,7 @@ import type { ChainInfo, EntrypointInterface } from './interfaces.js';
12
18
  * Implementation for an entrypoint interface that can execute multiple function calls in a single transaction
13
19
  */
14
20
  export class DefaultMultiCallEntrypoint implements EntrypointInterface {
15
- constructor(private address: AztecAddress = ProtocolContractAddress.MultiCallEntrypoint) {}
21
+ constructor(private address: AztecAddress = STANDARD_MULTI_CALL_ENTRYPOINT_ADDRESS) {}
16
22
 
17
23
  async createTxExecutionRequest(
18
24
  exec: ExecutionPayload,
@@ -37,19 +43,19 @@ export class DefaultMultiCallEntrypoint implements EntrypointInterface {
37
43
  return Promise.resolve(txRequest);
38
44
  }
39
45
 
40
- async wrapExecutionPayload(exec: ExecutionPayload, _options?: any): Promise<ExecutionPayload> {
46
+ async wrapExecutionPayload(exec: ExecutionPayload, _chainInfo: ChainInfo, _options?: any): Promise<ExecutionPayload> {
41
47
  const { authWitnesses, capsules, extraHashedArgs } = exec;
42
48
  const callData = await this.#buildEntrypointCallData(exec);
43
- const entrypointCall = new FunctionCall(
44
- callData.abi.name,
45
- this.address,
46
- callData.functionSelector,
47
- callData.abi.functionType,
48
- false,
49
- callData.abi.isStatic,
50
- callData.encodedArgs,
51
- callData.abi.returnTypes,
52
- );
49
+ const entrypointCall = FunctionCall.from({
50
+ name: callData.abi.name,
51
+ to: this.address,
52
+ selector: callData.functionSelector,
53
+ type: callData.abi.functionType,
54
+ hideMsgSender: false,
55
+ isStatic: callData.abi.isStatic,
56
+ args: callData.encodedArgs,
57
+ returnType: getFunctionReturnType(callData.abi),
58
+ });
53
59
 
54
60
  return new ExecutionPayload(
55
61
  [entrypointCall],
@@ -137,7 +143,6 @@ export class DefaultMultiCallEntrypoint implements EntrypointInterface {
137
143
  visibility: 'public',
138
144
  },
139
145
  ],
140
- returnTypes: [],
141
146
  errorTypes: {},
142
147
  } as FunctionAbi;
143
148
  }
package/src/encoding.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { GeneratorIndex } from '@aztec/constants';
1
+ import { DomainSeparator } from '@aztec/constants';
2
2
  import { padArrayEnd } from '@aztec/foundation/collection';
3
3
  import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
4
4
  import { Fr } from '@aztec/foundation/curves/bn254';
@@ -7,7 +7,7 @@ import { FunctionCall, FunctionType } from '@aztec/stdlib/abi';
7
7
  import { HashedValues } from '@aztec/stdlib/tx';
8
8
 
9
9
  // These must match the values defined in:
10
- // - noir-projects/aztec-nr/aztec/src/entrypoint/app.nr
10
+ // - noir-projects/labs/aztec-nr/aztec/src/authwit/entrypoint/app.nr
11
11
  export const APP_MAX_CALLS = 5;
12
12
 
13
13
  /** Encoded function call for an Aztec entrypoint */
@@ -47,7 +47,7 @@ export class EncodedAppEntrypointCalls implements EncodedCalls {
47
47
  /** The hashed args for the call, ready to be injected in the execution cache */
48
48
  public hashedArguments: HashedValues[],
49
49
  /** The index of the generator to use for hashing */
50
- public generatorIndex: number,
50
+ public domainSeparator: number,
51
51
  /**
52
52
  * A nonce to inject into the payload of the transaction. When used with cancellable=true, this nonce will be
53
53
  * used to compute a nullifier that allows cancelling this transaction by submitting a new one with the same nonce
@@ -80,7 +80,7 @@ export class EncodedAppEntrypointCalls implements EncodedCalls {
80
80
  * @returns The hash of the payload
81
81
  */
82
82
  hash() {
83
- return poseidon2HashWithSeparator(this.toFields(), this.generatorIndex);
83
+ return poseidon2HashWithSeparator(this.toFields(), this.domainSeparator);
84
84
  }
85
85
 
86
86
  /** Serializes the function calls to an array of fields. */
@@ -114,7 +114,7 @@ export class EncodedAppEntrypointCalls implements EncodedCalls {
114
114
  return new EncodedAppEntrypointCalls(
115
115
  encoded.encodedFunctionCalls,
116
116
  encoded.hashedArguments,
117
- GeneratorIndex.SIGNATURE_PAYLOAD,
117
+ DomainSeparator.SIGNATURE_PAYLOAD,
118
118
  txNonce,
119
119
  );
120
120
  }
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. */