@aztec/sequencer-client 0.82.0 → 0.82.1-alpha-testnet.1

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.
@@ -36,14 +36,14 @@ export declare class SequencerPublisher {
36
36
  private metrics;
37
37
  private epochCache;
38
38
  private forwarderContract;
39
- protected governanceLog: import("@aztec/aztec.js").Logger;
39
+ protected governanceLog: import("@aztec/foundation/log").Logger;
40
40
  protected governanceProposerAddress?: EthAddress;
41
41
  private governancePayload;
42
- protected slashingLog: import("@aztec/aztec.js").Logger;
42
+ protected slashingLog: import("@aztec/foundation/log").Logger;
43
43
  protected slashingProposerAddress?: EthAddress;
44
44
  private getSlashPayload?;
45
45
  private myLastVotes;
46
- protected log: import("@aztec/aztec.js").Logger;
46
+ protected log: import("@aztec/foundation/log").Logger;
47
47
  protected ethereumSlotDuration: bigint;
48
48
  private blobSinkClient;
49
49
  static PROPOSE_GAS_GUESS: bigint;
@@ -1 +1 @@
1
- {"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequencer-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/sequencer-publisher.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/gas_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,EAAoB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExG,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;CACvE;AAED,qBAAa,cAAe,YAAW,WAAW,CAAC,EAAE,CAAC;;gBAMxC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;IAM1F,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0EtD"}
1
+ {"version":3,"file":"gas_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/gas_validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAK9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,EAAoB,KAAK,kBAAkB,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExG,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;CACvE;AAED,qBAAa,cAAe,YAAW,WAAW,CAAC,EAAE,CAAC;;gBAMxC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;IAM1F,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyEtD"}
@@ -1,6 +1,6 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
2
  import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
3
- import { getExecutionRequestsByPhase } from '@aztec/simulator/server';
3
+ import { getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
4
4
  import { FunctionSelector } from '@aztec/stdlib/abi';
5
5
  import { TxExecutionPhase } from '@aztec/stdlib/tx';
6
6
  export class GasTxValidator {
@@ -49,15 +49,13 @@ export class GasTxValidator {
49
49
  // Read current balance of the feePayer
50
50
  const initialBalance = await this.#publicDataSource.storageRead(this.#feeJuiceAddress, await computeFeePayerBalanceStorageSlot(feePayer));
51
51
  // If there is a claim in this tx that increases the fee payer balance in Fee Juice, add it to balance
52
- const setupFns = getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP);
52
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
53
53
  const increasePublicBalanceSelector = await FunctionSelector.fromSignature('_increase_public_balance((Field),u128)');
54
- const claimFunctionCall = setupFns.find((fn)=>fn.callContext.contractAddress.equals(this.#feeJuiceAddress) && fn.callContext.msgSender.equals(this.#feeJuiceAddress) && fn.args.length > 2 && // Public functions get routed through the dispatch function, whose first argument is the target function selector.
55
- fn.args[0].equals(increasePublicBalanceSelector.toField()) && fn.args[1].equals(feePayer.toField()) && !fn.callContext.isStaticCall);
56
- // The claim amount is at index 2 in the args array because:
57
- // - Index 0: Target function selector (due to dispatch routing)
58
- // - Index 1: Amount recipient
59
- // - Index 2: Amount being claimed
60
- const balance = claimFunctionCall ? initialBalance.add(claimFunctionCall.args[2]) : initialBalance;
54
+ // Arguments of the claim function call:
55
+ // - args[0]: Amount recipient.
56
+ // - args[1]: Amount being claimed.
57
+ const claimFunctionCall = setupFns.find((fn)=>fn.request.contractAddress.equals(this.#feeJuiceAddress) && fn.request.msgSender.equals(this.#feeJuiceAddress) && fn.calldata.length > 2 && fn.functionSelector.equals(increasePublicBalanceSelector) && fn.args[0].equals(feePayer.toField()) && !fn.request.isStaticCall);
58
+ const balance = claimFunctionCall ? initialBalance.add(claimFunctionCall.args[1]) : initialBalance;
61
59
  if (balance.lt(feeLimit)) {
62
60
  this.#log.warn(`Rejecting transaction due to not enough fee payer balance`, {
63
61
  feePayer,
@@ -1,6 +1,6 @@
1
1
  import type { ContractDataSource } from '@aztec/stdlib/contract';
2
2
  import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
3
- import { type PublicExecutionRequest, Tx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
3
+ import { Tx, type TxValidationResult, type TxValidator } from '@aztec/stdlib/tx';
4
4
  export declare class PhasesTxValidator implements TxValidator<Tx> {
5
5
  #private;
6
6
  private setupAllowList;
@@ -8,6 +8,6 @@ export declare class PhasesTxValidator implements TxValidator<Tx> {
8
8
  private contractsDB;
9
9
  constructor(contracts: ContractDataSource, setupAllowList: AllowedElement[], blockNumber: number);
10
10
  validateTx(tx: Tx): Promise<TxValidationResult>;
11
- isOnAllowList(publicCall: PublicExecutionRequest, allowList: AllowedElement[]): Promise<boolean>;
11
+ private isOnAllowList;
12
12
  }
13
13
  //# sourceMappingURL=phases_validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"phases_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/phases_validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EACL,KAAK,sBAAsB,EAC3B,EAAE,EAEF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,iBAAkB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAIZ,OAAO,CAAC,cAAc;IAAoB,OAAO,CAAC,WAAW;IAFxG,OAAO,CAAC,WAAW,CAAoB;gBAE3B,SAAS,EAAE,kBAAkB,EAAU,cAAc,EAAE,cAAc,EAAE,EAAU,WAAW,EAAE,MAAM;IAI1G,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkC/C,aAAa,CAAC,UAAU,EAAE,sBAAsB,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CA6CvG"}
1
+ {"version":3,"file":"phases_validator.d.ts","sourceRoot":"","sources":["../../src/tx_validator/phases_validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAEL,EAAE,EAEF,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,iBAAkB,YAAW,WAAW,CAAC,EAAE,CAAC;;IAIZ,OAAO,CAAC,cAAc;IAAoB,OAAO,CAAC,WAAW;IAFxG,OAAO,CAAC,WAAW,CAAoB;gBAE3B,SAAS,EAAE,kBAAkB,EAAU,cAAc,EAAE,cAAc,EAAE,EAAU,WAAW,EAAE,MAAM;IAI1G,UAAU,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAkCvC,aAAa;CAiD5B"}
@@ -1,5 +1,5 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
- import { PublicContractsDB, getExecutionRequestsByPhase } from '@aztec/simulator/server';
2
+ import { PublicContractsDB, getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
3
3
  import { Tx, TxExecutionPhase } from '@aztec/stdlib/tx';
4
4
  export class PhasesTxValidator {
5
5
  setupAllowList;
@@ -24,10 +24,10 @@ export class PhasesTxValidator {
24
24
  result: 'valid'
25
25
  };
26
26
  }
27
- const setupFns = getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP);
27
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
28
28
  for (const setupFn of setupFns){
29
29
  if (!await this.isOnAllowList(setupFn, this.setupAllowList)) {
30
- this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because it calls setup function not on allow list: ${setupFn.callContext.contractAddress}:${setupFn.callContext.functionSelector}`, {
30
+ this.#log.warn(`Rejecting tx ${await Tx.getHash(tx)} because it calls setup function not on allow list: ${setupFn.request.contractAddress}:${setupFn.functionSelector}`, {
31
31
  allowList: this.setupAllowList
32
32
  });
33
33
  return {
@@ -49,7 +49,8 @@ export class PhasesTxValidator {
49
49
  if (publicCall.isEmpty()) {
50
50
  return true;
51
51
  }
52
- const { contractAddress, functionSelector } = publicCall.callContext;
52
+ const contractAddress = publicCall.request.contractAddress;
53
+ const functionSelector = publicCall.functionSelector;
53
54
  // do these checks first since they don't require the contract class
54
55
  for (const entry of allowList){
55
56
  if ('address' in entry && !('selector' in entry)) {
@@ -1,23 +1,17 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
2
  import type { FunctionSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import type { Tx } from '@aztec/stdlib/tx';
4
+ import { type Tx } from '@aztec/stdlib/tx';
5
5
  export declare function patchNonRevertibleFn(tx: Tx, index: number, overrides: {
6
6
  address?: AztecAddress;
7
7
  selector: FunctionSelector;
8
8
  args?: Fr[];
9
9
  msgSender?: AztecAddress;
10
- }): Promise<{
11
- address: AztecAddress;
12
- selector: FunctionSelector;
13
- }>;
10
+ }): Promise<AztecAddress>;
14
11
  export declare function patchRevertibleFn(tx: Tx, index: number, overrides: {
15
12
  address?: AztecAddress;
16
13
  selector: FunctionSelector;
17
14
  args?: Fr[];
18
15
  msgSender?: AztecAddress;
19
- }): Promise<{
20
- address: AztecAddress;
21
- selector: FunctionSelector;
22
- }>;
16
+ }): Promise<AztecAddress>;
23
17
  //# sourceMappingURL=test_utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../src/tx_validator/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAE3C,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,YAAY,CAAA;CAAE,GACvG,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAEhE;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,YAAY,CAAA;CAAE,GACvG,OAAO,CAAC;IAAE,OAAO,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAEhE"}
1
+ {"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../src/tx_validator/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAgB,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEzD,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,YAAY,CAAA;CAAE,GACvG,OAAO,CAAC,YAAY,CAAC,CAEvB;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,MAAM,EACb,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAC;IAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,YAAY,CAAA;CAAE,GACvG,OAAO,CAAC,YAAY,CAAC,CAEvB"}
@@ -1,4 +1,4 @@
1
- import { computeVarArgsHash } from '@aztec/stdlib/hash';
1
+ import { HashedValues } from '@aztec/stdlib/tx';
2
2
  export function patchNonRevertibleFn(tx, index, overrides) {
3
3
  return patchFn('nonRevertibleAccumulatedData', tx, index, overrides);
4
4
  }
@@ -6,21 +6,17 @@ export function patchRevertibleFn(tx, index, overrides) {
6
6
  return patchFn('revertibleAccumulatedData', tx, index, overrides);
7
7
  }
8
8
  async function patchFn(where, tx, index, overrides) {
9
- const fn = tx.enqueuedPublicFunctionCalls.at(-1 * index - 1);
10
- fn.callContext.contractAddress = overrides.address ?? fn.callContext.contractAddress;
11
- fn.callContext.functionSelector = overrides.selector;
12
- fn.args = overrides.args ?? fn.args;
13
- fn.callContext.msgSender = overrides.msgSender ?? fn.callContext.msgSender;
14
- tx.enqueuedPublicFunctionCalls[index] = fn;
9
+ const calldataIndex = where === 'nonRevertibleAccumulatedData' ? index : index + tx.data.forPublic.nonRevertibleAccumulatedData.publicCallRequests.length;
10
+ const calldata = [
11
+ overrides.selector.toField(),
12
+ ...overrides.args ?? []
13
+ ];
14
+ const hashedCalldata = await HashedValues.fromCalldata(calldata);
15
+ tx.publicFunctionCalldata[calldataIndex] = hashedCalldata;
15
16
  const request = tx.data.forPublic[where].publicCallRequests[index];
16
- request.contractAddress = fn.callContext.contractAddress;
17
- request.msgSender = fn.callContext.msgSender;
18
- request.functionSelector = fn.callContext.functionSelector;
19
- request.isStaticCall = fn.callContext.isStaticCall;
20
- request.argsHash = await computeVarArgsHash(fn.args);
17
+ request.contractAddress = overrides.address ?? request.contractAddress;
18
+ request.msgSender = overrides.msgSender ?? request.msgSender;
19
+ request.calldataHash = hashedCalldata.hash;
21
20
  tx.data.forPublic[where].publicCallRequests[index] = request;
22
- return {
23
- address: fn.callContext.contractAddress,
24
- selector: fn.callContext.functionSelector
25
- };
21
+ return request.contractAddress;
26
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/sequencer-client",
3
- "version": "0.82.0",
3
+ "version": "0.82.1-alpha-testnet.1",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": "./dest/index.js",
@@ -28,36 +28,36 @@
28
28
  "test:integration:run": "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --config jest.integration.config.json"
29
29
  },
30
30
  "dependencies": {
31
- "@aztec/aztec.js": "0.82.0",
32
- "@aztec/bb-prover": "0.82.0",
33
- "@aztec/blob-lib": "0.82.0",
34
- "@aztec/blob-sink": "0.82.0",
35
- "@aztec/constants": "0.82.0",
36
- "@aztec/epoch-cache": "0.82.0",
37
- "@aztec/ethereum": "0.82.0",
38
- "@aztec/foundation": "0.82.0",
39
- "@aztec/l1-artifacts": "0.82.0",
40
- "@aztec/merkle-tree": "0.82.0",
41
- "@aztec/noir-acvm_js": "0.82.0",
42
- "@aztec/noir-contracts.js": "0.82.0",
43
- "@aztec/noir-protocol-circuits-types": "0.82.0",
44
- "@aztec/noir-types": "0.82.0",
45
- "@aztec/p2p": "0.82.0",
46
- "@aztec/protocol-contracts": "0.82.0",
47
- "@aztec/prover-client": "0.82.0",
48
- "@aztec/simulator": "0.82.0",
49
- "@aztec/stdlib": "0.82.0",
50
- "@aztec/telemetry-client": "0.82.0",
51
- "@aztec/validator-client": "0.82.0",
52
- "@aztec/world-state": "0.82.0",
31
+ "@aztec/aztec.js": "0.82.1-alpha-testnet.1",
32
+ "@aztec/bb-prover": "0.82.1-alpha-testnet.1",
33
+ "@aztec/blob-lib": "0.82.1-alpha-testnet.1",
34
+ "@aztec/blob-sink": "0.82.1-alpha-testnet.1",
35
+ "@aztec/constants": "0.82.1-alpha-testnet.1",
36
+ "@aztec/epoch-cache": "0.82.1-alpha-testnet.1",
37
+ "@aztec/ethereum": "0.82.1-alpha-testnet.1",
38
+ "@aztec/foundation": "0.82.1-alpha-testnet.1",
39
+ "@aztec/l1-artifacts": "0.82.1-alpha-testnet.1",
40
+ "@aztec/merkle-tree": "0.82.1-alpha-testnet.1",
41
+ "@aztec/noir-acvm_js": "0.82.1-alpha-testnet.1",
42
+ "@aztec/noir-contracts.js": "0.82.1-alpha-testnet.1",
43
+ "@aztec/noir-protocol-circuits-types": "0.82.1-alpha-testnet.1",
44
+ "@aztec/noir-types": "0.82.1-alpha-testnet.1",
45
+ "@aztec/p2p": "0.82.1-alpha-testnet.1",
46
+ "@aztec/protocol-contracts": "0.82.1-alpha-testnet.1",
47
+ "@aztec/prover-client": "0.82.1-alpha-testnet.1",
48
+ "@aztec/simulator": "0.82.1-alpha-testnet.1",
49
+ "@aztec/stdlib": "0.82.1-alpha-testnet.1",
50
+ "@aztec/telemetry-client": "0.82.1-alpha-testnet.1",
51
+ "@aztec/validator-client": "0.82.1-alpha-testnet.1",
52
+ "@aztec/world-state": "0.82.1-alpha-testnet.1",
53
53
  "lodash.chunk": "^4.2.0",
54
54
  "lodash.pick": "^4.4.0",
55
55
  "tslib": "^2.4.0",
56
56
  "viem": "2.23.7"
57
57
  },
58
58
  "devDependencies": {
59
- "@aztec/archiver": "0.82.0",
60
- "@aztec/kv-store": "0.82.0",
59
+ "@aztec/archiver": "0.82.1-alpha-testnet.1",
60
+ "@aztec/kv-store": "0.82.1-alpha-testnet.1",
61
61
  "@jest/globals": "^29.5.0",
62
62
  "@types/jest": "^29.5.0",
63
63
  "@types/levelup": "^5.1.2",
@@ -1,7 +1,7 @@
1
1
  import { Fr } from '@aztec/foundation/fields';
2
2
  import { createLogger } from '@aztec/foundation/log';
3
3
  import { computeFeePayerBalanceStorageSlot } from '@aztec/protocol-contracts/fee-juice';
4
- import { getExecutionRequestsByPhase } from '@aztec/simulator/server';
4
+ import { getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
5
5
  import { FunctionSelector } from '@aztec/stdlib/abi';
6
6
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
  import type { GasFees } from '@aztec/stdlib/gas';
@@ -68,26 +68,25 @@ export class GasTxValidator implements TxValidator<Tx> {
68
68
  );
69
69
 
70
70
  // If there is a claim in this tx that increases the fee payer balance in Fee Juice, add it to balance
71
- const setupFns = getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP);
71
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
72
72
  const increasePublicBalanceSelector = await FunctionSelector.fromSignature(
73
73
  '_increase_public_balance((Field),u128)',
74
74
  );
75
+
76
+ // Arguments of the claim function call:
77
+ // - args[0]: Amount recipient.
78
+ // - args[1]: Amount being claimed.
75
79
  const claimFunctionCall = setupFns.find(
76
80
  fn =>
77
- fn.callContext.contractAddress.equals(this.#feeJuiceAddress) &&
78
- fn.callContext.msgSender.equals(this.#feeJuiceAddress) &&
79
- fn.args.length > 2 &&
80
- // Public functions get routed through the dispatch function, whose first argument is the target function selector.
81
- fn.args[0].equals(increasePublicBalanceSelector.toField()) &&
82
- fn.args[1].equals(feePayer.toField()) &&
83
- !fn.callContext.isStaticCall,
81
+ fn.request.contractAddress.equals(this.#feeJuiceAddress) &&
82
+ fn.request.msgSender.equals(this.#feeJuiceAddress) &&
83
+ fn.calldata.length > 2 &&
84
+ fn.functionSelector.equals(increasePublicBalanceSelector) &&
85
+ fn.args[0].equals(feePayer.toField()) &&
86
+ !fn.request.isStaticCall,
84
87
  );
85
88
 
86
- // The claim amount is at index 2 in the args array because:
87
- // - Index 0: Target function selector (due to dispatch routing)
88
- // - Index 1: Amount recipient
89
- // - Index 2: Amount being claimed
90
- const balance = claimFunctionCall ? initialBalance.add(claimFunctionCall.args[2]) : initialBalance;
89
+ const balance = claimFunctionCall ? initialBalance.add(claimFunctionCall.args[1]) : initialBalance;
91
90
  if (balance.lt(feeLimit)) {
92
91
  this.#log.warn(`Rejecting transaction due to not enough fee payer balance`, {
93
92
  feePayer,
@@ -1,9 +1,9 @@
1
1
  import { createLogger } from '@aztec/foundation/log';
2
- import { PublicContractsDB, getExecutionRequestsByPhase } from '@aztec/simulator/server';
2
+ import { PublicContractsDB, getCallRequestsWithCalldataByPhase } from '@aztec/simulator/server';
3
3
  import type { ContractDataSource } from '@aztec/stdlib/contract';
4
4
  import type { AllowedElement } from '@aztec/stdlib/interfaces/server';
5
5
  import {
6
- type PublicExecutionRequest,
6
+ PublicCallRequestWithCalldata,
7
7
  Tx,
8
8
  TxExecutionPhase,
9
9
  type TxValidationResult,
@@ -32,13 +32,13 @@ export class PhasesTxValidator implements TxValidator<Tx> {
32
32
  return { result: 'valid' };
33
33
  }
34
34
 
35
- const setupFns = getExecutionRequestsByPhase(tx, TxExecutionPhase.SETUP);
35
+ const setupFns = getCallRequestsWithCalldataByPhase(tx, TxExecutionPhase.SETUP);
36
36
  for (const setupFn of setupFns) {
37
37
  if (!(await this.isOnAllowList(setupFn, this.setupAllowList))) {
38
38
  this.#log.warn(
39
39
  `Rejecting tx ${await Tx.getHash(tx)} because it calls setup function not on allow list: ${
40
- setupFn.callContext.contractAddress
41
- }:${setupFn.callContext.functionSelector}`,
40
+ setupFn.request.contractAddress
41
+ }:${setupFn.functionSelector}`,
42
42
  { allowList: this.setupAllowList },
43
43
  );
44
44
 
@@ -52,12 +52,16 @@ export class PhasesTxValidator implements TxValidator<Tx> {
52
52
  }
53
53
  }
54
54
 
55
- async isOnAllowList(publicCall: PublicExecutionRequest, allowList: AllowedElement[]): Promise<boolean> {
55
+ private async isOnAllowList(
56
+ publicCall: PublicCallRequestWithCalldata,
57
+ allowList: AllowedElement[],
58
+ ): Promise<boolean> {
56
59
  if (publicCall.isEmpty()) {
57
60
  return true;
58
61
  }
59
62
 
60
- const { contractAddress, functionSelector } = publicCall.callContext;
63
+ const contractAddress = publicCall.request.contractAddress;
64
+ const functionSelector = publicCall.functionSelector;
61
65
 
62
66
  // do these checks first since they don't require the contract class
63
67
  for (const entry of allowList) {
@@ -1,14 +1,13 @@
1
1
  import type { Fr } from '@aztec/foundation/fields';
2
2
  import type { FunctionSelector } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
- import { computeVarArgsHash } from '@aztec/stdlib/hash';
5
- import type { Tx } from '@aztec/stdlib/tx';
4
+ import { HashedValues, type Tx } from '@aztec/stdlib/tx';
6
5
 
7
6
  export function patchNonRevertibleFn(
8
7
  tx: Tx,
9
8
  index: number,
10
9
  overrides: { address?: AztecAddress; selector: FunctionSelector; args?: Fr[]; msgSender?: AztecAddress },
11
- ): Promise<{ address: AztecAddress; selector: FunctionSelector }> {
10
+ ): Promise<AztecAddress> {
12
11
  return patchFn('nonRevertibleAccumulatedData', tx, index, overrides);
13
12
  }
14
13
 
@@ -16,7 +15,7 @@ export function patchRevertibleFn(
16
15
  tx: Tx,
17
16
  index: number,
18
17
  overrides: { address?: AztecAddress; selector: FunctionSelector; args?: Fr[]; msgSender?: AztecAddress },
19
- ): Promise<{ address: AztecAddress; selector: FunctionSelector }> {
18
+ ): Promise<AztecAddress> {
20
19
  return patchFn('revertibleAccumulatedData', tx, index, overrides);
21
20
  }
22
21
 
@@ -25,24 +24,20 @@ async function patchFn(
25
24
  tx: Tx,
26
25
  index: number,
27
26
  overrides: { address?: AztecAddress; selector: FunctionSelector; args?: Fr[]; msgSender?: AztecAddress },
28
- ): Promise<{ address: AztecAddress; selector: FunctionSelector }> {
29
- const fn = tx.enqueuedPublicFunctionCalls.at(-1 * index - 1)!;
30
- fn.callContext.contractAddress = overrides.address ?? fn.callContext.contractAddress;
31
- fn.callContext.functionSelector = overrides.selector;
32
- fn.args = overrides.args ?? fn.args;
33
- fn.callContext.msgSender = overrides.msgSender ?? fn.callContext.msgSender;
34
- tx.enqueuedPublicFunctionCalls[index] = fn;
27
+ ): Promise<AztecAddress> {
28
+ const calldataIndex =
29
+ where === 'nonRevertibleAccumulatedData'
30
+ ? index
31
+ : index + tx.data.forPublic!.nonRevertibleAccumulatedData.publicCallRequests.length;
32
+ const calldata = [overrides.selector.toField(), ...(overrides.args ?? [])];
33
+ const hashedCalldata = await HashedValues.fromCalldata(calldata);
34
+ tx.publicFunctionCalldata[calldataIndex] = hashedCalldata;
35
35
 
36
36
  const request = tx.data.forPublic![where].publicCallRequests[index];
37
- request.contractAddress = fn.callContext.contractAddress;
38
- request.msgSender = fn.callContext.msgSender;
39
- request.functionSelector = fn.callContext.functionSelector;
40
- request.isStaticCall = fn.callContext.isStaticCall;
41
- request.argsHash = await computeVarArgsHash(fn.args);
37
+ request.contractAddress = overrides.address ?? request.contractAddress;
38
+ request.msgSender = overrides.msgSender ?? request.msgSender;
39
+ request.calldataHash = hashedCalldata.hash;
42
40
  tx.data.forPublic![where].publicCallRequests[index] = request;
43
41
 
44
- return {
45
- address: fn.callContext.contractAddress,
46
- selector: fn.callContext.functionSelector,
47
- };
42
+ return request.contractAddress;
48
43
  }