@aztec/entrypoints 0.0.1-commit.993d52e → 0.0.1-commit.9a89641

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,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,
@@ -69,7 +70,7 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
69
70
  hideMsgSender: false,
70
71
  isStatic: callData.abi.isStatic,
71
72
  args: callData.encodedArgs,
72
- returnTypes: callData.abi.returnTypes
73
+ returnType: getFunctionReturnType(callData.abi)
73
74
  });
74
75
  return new ExecutionPayload([
75
76
  entrypointCall
@@ -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 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);
103
107
  return {
104
108
  encodedCalls,
105
109
  abi,
@@ -216,7 +220,6 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
216
220
  }
217
221
  }
218
222
  ],
219
- returnTypes: [],
220
223
  errorTypes: {}
221
224
  };
222
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,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({
@@ -41,7 +41,7 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
41
41
  hideMsgSender: false,
42
42
  isStatic: callData.abi.isStatic,
43
43
  args: callData.encodedArgs,
44
- returnTypes: callData.abi.returnTypes
44
+ returnType: getFunctionReturnType(callData.abi)
45
45
  });
46
46
  return new ExecutionPayload([
47
47
  entrypointCall
@@ -164,7 +164,6 @@ import { EncodedAppEntrypointCalls } from './encoding.js';
164
164
  visibility: 'public'
165
165
  }
166
166
  ],
167
- returnTypes: [],
168
167
  errorTypes: {}
169
168
  };
170
169
  }
package/dest/encoding.js CHANGED
@@ -5,7 +5,7 @@ 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.
@@ -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.993d52e",
5
+ "version": "0.0.1-commit.9a89641",
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.993d52e",
71
- "@aztec/foundation": "0.0.1-commit.993d52e",
72
- "@aztec/protocol-contracts": "0.0.1-commit.993d52e",
73
- "@aztec/stdlib": "0.0.1-commit.993d52e",
70
+ "@aztec/constants": "0.0.1-commit.9a89641",
71
+ "@aztec/foundation": "0.0.1-commit.9a89641",
72
+ "@aztec/protocol-contracts": "0.0.1-commit.9a89641",
73
+ "@aztec/standard-contracts": "0.0.1-commit.9a89641",
74
+ "@aztec/stdlib": "0.0.1-commit.9a89641",
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,10 +91,11 @@ 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
101
  const entrypointCall = FunctionCall.from({
@@ -98,7 +106,7 @@ export class DefaultAccountEntrypoint implements EntrypointInterface {
98
106
  hideMsgSender: false,
99
107
  isStatic: callData.abi.isStatic,
100
108
  args: callData.encodedArgs,
101
- returnTypes: callData.abi.returnTypes,
109
+ returnType: getFunctionReturnType(callData.abi),
102
110
  });
103
111
 
104
112
  return new ExecutionPayload(
@@ -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,7 +43,7 @@ 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
49
  const entrypointCall = FunctionCall.from({
@@ -48,7 +54,7 @@ export class DefaultMultiCallEntrypoint implements EntrypointInterface {
48
54
  hideMsgSender: false,
49
55
  isStatic: callData.abi.isStatic,
50
56
  args: callData.encodedArgs,
51
- returnTypes: callData.abi.returnTypes,
57
+ returnType: getFunctionReturnType(callData.abi),
52
58
  });
53
59
 
54
60
  return new ExecutionPayload(
@@ -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
@@ -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 */
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. */