@aztec/protocol-contracts 0.0.1-commit.5476d83 → 0.0.1-commit.5914bae

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.
Files changed (83) hide show
  1. package/artifacts/AuthRegistry.json +895 -1710
  2. package/artifacts/ContractClassRegistry.json +804 -5417
  3. package/artifacts/ContractInstanceRegistry.json +983 -1659
  4. package/artifacts/FeeJuice.json +1626 -2287
  5. package/artifacts/MultiCallEntrypoint.json +1158 -1133
  6. package/artifacts/PublicChecks.json +980 -0
  7. package/dest/auth-registry/index.d.ts +1 -1
  8. package/dest/auth-registry/index.d.ts.map +1 -1
  9. package/dest/auth-registry/index.js +3 -3
  10. package/dest/auth-registry/lazy.js +1 -1
  11. package/dest/class-registry/contract_class_published_event.d.ts +7 -4
  12. package/dest/class-registry/contract_class_published_event.d.ts.map +1 -1
  13. package/dest/class-registry/contract_class_published_event.js +10 -14
  14. package/dest/class-registry/index.d.ts +1 -1
  15. package/dest/class-registry/index.d.ts.map +1 -1
  16. package/dest/class-registry/index.js +3 -3
  17. package/dest/class-registry/lazy.js +1 -1
  18. package/dest/class-registry/private_function_broadcasted_event.d.ts +6 -2
  19. package/dest/class-registry/private_function_broadcasted_event.d.ts.map +1 -1
  20. package/dest/class-registry/utility_function_broadcasted_event.d.ts +5 -2
  21. package/dest/class-registry/utility_function_broadcasted_event.d.ts.map +1 -1
  22. package/dest/class-registry/utility_function_broadcasted_event.js +1 -1
  23. package/dest/fee-juice/index.d.ts +2 -2
  24. package/dest/fee-juice/index.d.ts.map +1 -1
  25. package/dest/fee-juice/index.js +3 -3
  26. package/dest/fee-juice/lazy.js +1 -1
  27. package/dest/instance-registry/contract_instance_published_event.d.ts +2 -2
  28. package/dest/instance-registry/contract_instance_published_event.d.ts.map +1 -1
  29. package/dest/instance-registry/contract_instance_published_event.js +1 -1
  30. package/dest/instance-registry/contract_instance_updated_event.d.ts +2 -2
  31. package/dest/instance-registry/contract_instance_updated_event.d.ts.map +1 -1
  32. package/dest/instance-registry/index.d.ts +1 -1
  33. package/dest/instance-registry/index.d.ts.map +1 -1
  34. package/dest/instance-registry/index.js +3 -3
  35. package/dest/instance-registry/lazy.js +1 -1
  36. package/dest/make_protocol_contract.d.ts +4 -4
  37. package/dest/make_protocol_contract.d.ts.map +1 -1
  38. package/dest/make_protocol_contract.js +28 -14
  39. package/dest/multi-call-entrypoint/index.d.ts +1 -1
  40. package/dest/multi-call-entrypoint/index.d.ts.map +1 -1
  41. package/dest/multi-call-entrypoint/index.js +3 -3
  42. package/dest/multi-call-entrypoint/lazy.js +1 -1
  43. package/dest/protocol_contract_data.d.ts +16 -4
  44. package/dest/protocol_contract_data.d.ts.map +1 -1
  45. package/dest/protocol_contract_data.js +104 -18
  46. package/dest/provider/bundle.js +3 -3
  47. package/dest/provider/lazy.js +3 -3
  48. package/dest/public-checks/index.d.ts +5 -0
  49. package/dest/public-checks/index.d.ts.map +1 -0
  50. package/dest/public-checks/index.js +13 -0
  51. package/dest/public-checks/lazy.d.ts +6 -0
  52. package/dest/public-checks/lazy.d.ts.map +1 -0
  53. package/dest/{router → public-checks}/lazy.js +6 -6
  54. package/dest/scripts/generate_data.js +74 -25
  55. package/package.json +9 -9
  56. package/src/auth-registry/index.ts +3 -3
  57. package/src/auth-registry/lazy.ts +1 -1
  58. package/src/class-registry/contract_class_published_event.ts +12 -21
  59. package/src/class-registry/index.ts +3 -3
  60. package/src/class-registry/lazy.ts +1 -1
  61. package/src/class-registry/private_function_broadcasted_event.ts +1 -1
  62. package/src/class-registry/utility_function_broadcasted_event.ts +1 -1
  63. package/src/fee-juice/index.ts +4 -4
  64. package/src/fee-juice/lazy.ts +1 -1
  65. package/src/instance-registry/contract_instance_published_event.ts +1 -1
  66. package/src/instance-registry/contract_instance_updated_event.ts +1 -1
  67. package/src/instance-registry/index.ts +3 -3
  68. package/src/instance-registry/lazy.ts +1 -1
  69. package/src/make_protocol_contract.ts +37 -15
  70. package/src/multi-call-entrypoint/index.ts +3 -3
  71. package/src/multi-call-entrypoint/lazy.ts +1 -1
  72. package/src/protocol_contract_data.ts +81 -18
  73. package/src/provider/bundle.ts +3 -3
  74. package/src/provider/lazy.ts +3 -3
  75. package/src/{router → public-checks}/index.ts +5 -5
  76. package/src/{router → public-checks}/lazy.ts +7 -7
  77. package/artifacts/Router.json +0 -959
  78. package/dest/router/index.d.ts +0 -5
  79. package/dest/router/index.d.ts.map +0 -1
  80. package/dest/router/index.js +0 -13
  81. package/dest/router/lazy.d.ts +0 -6
  82. package/dest/router/lazy.d.ts.map +0 -1
  83. /package/artifacts/{Router.d.json.ts → PublicChecks.d.json.ts} +0 -0
@@ -1,4 +1,4 @@
1
- import type { Fr } from '@aztec/foundation/fields';
1
+ import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { loadContractArtifact } from '@aztec/stdlib/abi';
3
3
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import { computePublicDataTreeLeafSlot, deriveStorageSlotInMap } from '@aztec/stdlib/hash';
@@ -14,11 +14,11 @@ export const FeeJuiceArtifact = loadContractArtifact(FeeJuiceJson as NoirCompile
14
14
  let protocolContract: ProtocolContract;
15
15
 
16
16
  /** Returns the canonical deployment of the contract. */
17
- export async function getCanonicalFeeJuice(): Promise<ProtocolContract> {
17
+ export function getCanonicalFeeJuice(): Promise<ProtocolContract> {
18
18
  if (!protocolContract) {
19
- protocolContract = await makeProtocolContract('FeeJuice', FeeJuiceArtifact);
19
+ protocolContract = makeProtocolContract('FeeJuice', FeeJuiceArtifact);
20
20
  }
21
- return protocolContract;
21
+ return Promise.resolve(protocolContract);
22
22
  }
23
23
 
24
24
  /**
@@ -23,7 +23,7 @@ export async function getFeeJuiceArtifact(): Promise<ContractArtifact> {
23
23
  export async function getCanonicalFeeJuice(): Promise<ProtocolContract> {
24
24
  if (!protocolContract) {
25
25
  const feeJuiceArtifact = await getFeeJuiceArtifact();
26
- protocolContract = await makeProtocolContract('FeeJuice', feeJuiceArtifact);
26
+ protocolContract = makeProtocolContract('FeeJuice', feeJuiceArtifact);
27
27
  }
28
28
  return protocolContract;
29
29
  }
@@ -1,4 +1,4 @@
1
- import { Fr } from '@aztec/foundation/fields';
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { BufferReader } from '@aztec/foundation/serialize';
3
3
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
4
  import type { ContractInstanceWithAddress } from '@aztec/stdlib/contract';
@@ -1,5 +1,5 @@
1
1
  import { CONTRACT_INSTANCE_UPDATED_MAGIC_VALUE } from '@aztec/constants';
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
3
  import { FieldReader } from '@aztec/foundation/serialize';
4
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
5
  import type { ContractInstanceUpdateWithAddress } from '@aztec/stdlib/contract';
@@ -15,9 +15,9 @@ export const ContractInstanceRegistryArtifact = loadContractArtifact(
15
15
  let protocolContract: ProtocolContract;
16
16
 
17
17
  /** Returns the canonical deployment of the contract. */
18
- export async function getCanonicalInstanceRegistry(): Promise<ProtocolContract> {
18
+ export function getCanonicalInstanceRegistry(): Promise<ProtocolContract> {
19
19
  if (!protocolContract) {
20
- protocolContract = await makeProtocolContract('ContractInstanceRegistry', ContractInstanceRegistryArtifact);
20
+ protocolContract = makeProtocolContract('ContractInstanceRegistry', ContractInstanceRegistryArtifact);
21
21
  }
22
- return protocolContract;
22
+ return Promise.resolve(protocolContract);
23
23
  }
@@ -26,7 +26,7 @@ export async function getContractInstanceRegistryArtifact(): Promise<ContractArt
26
26
  export async function getCanonicalInstanceRegistry(): Promise<ProtocolContract> {
27
27
  if (!protocolContract) {
28
28
  const contractInstanceRegistryArtifact = await getContractInstanceRegistryArtifact();
29
- protocolContract = await makeProtocolContract('ContractInstanceRegistry', contractInstanceRegistryArtifact);
29
+ protocolContract = makeProtocolContract('ContractInstanceRegistry', contractInstanceRegistryArtifact);
30
30
  }
31
31
  return protocolContract;
32
32
  }
@@ -1,26 +1,48 @@
1
1
  import type { ContractArtifact } from '@aztec/stdlib/abi';
2
- import { getContractClassFromArtifact, getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
2
+ import { PublicKeys } from '@aztec/stdlib/keys';
3
3
 
4
4
  import type { ProtocolContract } from './protocol_contract.js';
5
- import { ProtocolContractAddress, type ProtocolContractName, ProtocolContractSalt } from './protocol_contract_data.js';
5
+ import {
6
+ ProtocolContractAddress,
7
+ ProtocolContractClassId,
8
+ ProtocolContractClassIdPreimage,
9
+ ProtocolContractInitializationHash,
10
+ type ProtocolContractName,
11
+ ProtocolContractPrivateFunctions,
12
+ ProtocolContractSalt,
13
+ } from './protocol_contract_data.js';
6
14
 
7
15
  /**
8
- * Returns the canonical deployment given its name and artifact.
9
- * To be used internally within the protocol-contracts package.
16
+ * Reconstructs a ProtocolContract from precomputed data without performing any hash computations.
17
+ * Internal to the protocol-contracts package — not part of the public API.
10
18
  */
11
- export async function makeProtocolContract(
12
- name: ProtocolContractName,
13
- artifact: ContractArtifact,
14
- ): Promise<ProtocolContract> {
19
+ export function makeProtocolContract(name: ProtocolContractName, artifact: ContractArtifact): ProtocolContract {
15
20
  const address = ProtocolContractAddress[name];
16
21
  const salt = ProtocolContractSalt[name];
17
- // TODO(@spalladino): This computes the contract class from the artifact twice.
18
- const contractClass = await getContractClassFromArtifact(artifact);
19
- const instance = await getContractInstanceFromInstantiationParams(artifact, { salt });
20
- return {
21
- instance: { ...instance, address },
22
- contractClass,
23
- artifact,
22
+ const classId = ProtocolContractClassId[name];
23
+ const { artifactHash, privateFunctionsRoot, publicBytecodeCommitment } = ProtocolContractClassIdPreimage[name];
24
+ const initializationHash = ProtocolContractInitializationHash[name];
25
+
26
+ const contractClass = {
27
+ id: classId,
28
+ version: 1 as const,
29
+ artifactHash,
30
+ privateFunctionsRoot,
31
+ publicBytecodeCommitment,
32
+ packedBytecode: artifact.functions.find(f => f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0),
33
+ privateFunctions: ProtocolContractPrivateFunctions[name],
34
+ };
35
+
36
+ const instance = {
37
+ version: 1 as const,
38
+ currentContractClassId: classId,
39
+ originalContractClassId: classId,
40
+ initializationHash,
41
+ publicKeys: PublicKeys.default(),
42
+ salt,
43
+ deployer: address,
24
44
  address,
25
45
  };
46
+
47
+ return { instance, contractClass, artifact, address };
26
48
  }
@@ -10,9 +10,9 @@ export const MultiCallEntrypointArtifact = loadContractArtifact(MultiCallEntrypo
10
10
  let protocolContract: ProtocolContract;
11
11
 
12
12
  /** Returns the canonical deployment of the contract. */
13
- export async function getCanonicalMultiCallEntrypoint(): Promise<ProtocolContract> {
13
+ export function getCanonicalMultiCallEntrypoint(): Promise<ProtocolContract> {
14
14
  if (!protocolContract) {
15
- protocolContract = await makeProtocolContract('MultiCallEntrypoint', MultiCallEntrypointArtifact);
15
+ protocolContract = makeProtocolContract('MultiCallEntrypoint', MultiCallEntrypointArtifact);
16
16
  }
17
- return protocolContract;
17
+ return Promise.resolve(protocolContract);
18
18
  }
@@ -23,7 +23,7 @@ export async function getMultiCallEntrypointArtifact(): Promise<ContractArtifact
23
23
  export async function getCanonicalMultiCallEntrypoint(): Promise<ProtocolContract> {
24
24
  if (!protocolContract) {
25
25
  const multiCallEntrypointArtifact = await getMultiCallEntrypointArtifact();
26
- protocolContract = await makeProtocolContract('MultiCallEntrypoint', multiCallEntrypointArtifact);
26
+ protocolContract = makeProtocolContract('MultiCallEntrypoint', multiCallEntrypointArtifact);
27
27
  }
28
28
  return protocolContract;
29
29
  }
@@ -1,6 +1,7 @@
1
1
 
2
2
  // GENERATED FILE - DO NOT EDIT. RUN `yarn generate` or `yarn generate:data`
3
- import { Fr } from '@aztec/foundation/fields';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
+ import { FunctionSelector } from '@aztec/stdlib/abi';
4
5
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
5
6
  import { ProtocolContracts } from '@aztec/stdlib/tx';
6
7
 
@@ -11,7 +12,7 @@
11
12
  'ContractClassRegistry',
12
13
  'MultiCallEntrypoint',
13
14
  'FeeJuice',
14
- 'Router'
15
+ 'PublicChecks'
15
16
  ] as const;
16
17
 
17
18
  export type ProtocolContractName = typeof protocolContractNames[number];
@@ -24,7 +25,7 @@ ContractInstanceRegistry: new Fr(1),
24
25
  ContractClassRegistry: new Fr(1),
25
26
  MultiCallEntrypoint: new Fr(1),
26
27
  FeeJuice: new Fr(1),
27
- Router: new Fr(1)
28
+ PublicChecks: new Fr(1)
28
29
  };
29
30
 
30
31
 
@@ -35,29 +36,91 @@ ContractInstanceRegistry: AztecAddress.fromBigInt(2n),
35
36
  ContractClassRegistry: AztecAddress.fromBigInt(3n),
36
37
  MultiCallEntrypoint: AztecAddress.fromBigInt(4n),
37
38
  FeeJuice: AztecAddress.fromBigInt(5n),
38
- Router: AztecAddress.fromBigInt(6n)
39
+ PublicChecks: AztecAddress.fromBigInt(6n)
39
40
  };
40
41
 
41
42
 
42
43
 
43
44
  export const ProtocolContractDerivedAddress = {
44
- AuthRegistry: AztecAddress.fromString('0x1dc64374e96b37a36d94b737a049efb4686f45f628457f5d6d74f5d45817944b'),
45
- ContractInstanceRegistry: AztecAddress.fromString('0x24b7c46308ae93c05e3bac8201935effd50b61504954eef96d7b0384f27ee80c'),
46
- ContractClassRegistry: AztecAddress.fromString('0x2f6b4852b69e0381596da99b3aad9b8d493312f47e1c0e3523928e010e1f9df2'),
47
- MultiCallEntrypoint: AztecAddress.fromString('0x1c93c2cb51b87faa1ee26b5f933a8136642cec5cdf95216bdd9aa4873d4b38ff'),
48
- FeeJuice: AztecAddress.fromString('0x2223ff211abddd65cb27b3fd9ef6cbcdfed867b1b5c2421f87624c6fe86c39ff'),
49
- Router: AztecAddress.fromString('0x090dc318c793abc5ee9a560dcf9f0ba54c73902086dd7258cd48da8c79ef201a')
45
+ AuthRegistry: AztecAddress.fromString('0x139f8eb6d6e7e7a7c0322c3b7558687a7e24201f11bf2c4cb2fe56c18d363695'),
46
+ ContractInstanceRegistry: AztecAddress.fromString('0x1254246c88aca5a66fa66f3aa78c408a698ebca3b713120497c7555dfc718592'),
47
+ ContractClassRegistry: AztecAddress.fromString('0x14d670efa326a07b99777b01fb706427ca776095246569150f2a3f17a7d4dc66'),
48
+ MultiCallEntrypoint: AztecAddress.fromString('0x230d0b47ba6d5ed99afb89d584f32ff33438b64f51000f252a140cf995781628'),
49
+ FeeJuice: AztecAddress.fromString('0x204913186c0dd70015d05bf9100a12e31ccb7cc2527aacdfae0c19ad6439fcf4'),
50
+ PublicChecks: AztecAddress.fromString('0x1198142fd84a58c0ab22d5fde371ce527042db49487e05206a326ad154952ac8')
51
+ };
52
+
53
+
54
+
55
+ export const ProtocolContractClassId: Record<ProtocolContractName, Fr> = {
56
+ AuthRegistry: Fr.fromString('0x17ad10e1b5dba2877b9a973449c03d5227f2c719c0eb1989427c10c1d83867a5'),
57
+ ContractInstanceRegistry: Fr.fromString('0x187c710b0d69b2da7a6f0663c15093a5d595c04e77762c249aa9b654bc12158c'),
58
+ ContractClassRegistry: Fr.fromString('0x013466b8a65dea98ad80c119cf236a0acf53acfede687769410cfd57876b8242'),
59
+ MultiCallEntrypoint: Fr.fromString('0x1acd7ab8bf186c16eafc9c4fe9049f35df27e172bb2d8319a2a22ddd0006966d'),
60
+ FeeJuice: Fr.fromString('0x16b2d5ef5044c11126a16ccdb3778082eb423375977da9458d493fdf84505e81'),
61
+ PublicChecks: Fr.fromString('0x03f2ebaef8d692422185e35d8fe35d0bb7289702cf023b525c022d77fc6b5ed5')
62
+ };
63
+
64
+ export const ProtocolContractClassIdPreimage: Record<ProtocolContractName, { artifactHash: Fr; privateFunctionsRoot: Fr; publicBytecodeCommitment: Fr }> = {
65
+ AuthRegistry: {
66
+ artifactHash: Fr.fromString('0x029f3b5582e9e2f9cddb4f887fa67c06d8dbe9aef604aa7de91a6f5328bf477c'),
67
+ privateFunctionsRoot: Fr.fromString('0x0826df9bf86cf460935b2bd024edcb5a58532fcf0392abbdb33f5f2150753756'),
68
+ publicBytecodeCommitment: Fr.fromString('0x22db1f0a70bfefaf90371c7728e558cf60507b718e99ed276ed3143bec615f6f'),
69
+ },
70
+ ContractInstanceRegistry: {
71
+ artifactHash: Fr.fromString('0x18601566bacdca7a5a40528f221b04ee7b74f382e6cd34fbdf69d31c50d5ee88'),
72
+ privateFunctionsRoot: Fr.fromString('0x136a6705c7ad1d47f65cb881a56909d4c78d3fa8944f5b103734cd91e654ed63'),
73
+ publicBytecodeCommitment: Fr.fromString('0x01c573f470ba9a17d362c7dd5a28931c39432f9ce527555049c71432f895ad6c'),
74
+ },
75
+ ContractClassRegistry: {
76
+ artifactHash: Fr.fromString('0x232d868db8a4d1e0f013efa4bfe5c39d96e11f16a62e3e73abbbafc3028fc410'),
77
+ privateFunctionsRoot: Fr.fromString('0x2ac3bf890a7d534a768079aa86889caa1a86373c8e6fc2db48215b11bbb79106'),
78
+ publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
79
+ },
80
+ MultiCallEntrypoint: {
81
+ artifactHash: Fr.fromString('0x0d30526b6b786cf887d7e44ba59d2e9561d5791b0e3c78c681d0499ae45b225a'),
82
+ privateFunctionsRoot: Fr.fromString('0x266505ecb7c02ce6e227227c0b6bdb44713c8ecd43164ee7bb00b8fb340e8b03'),
83
+ publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
84
+ },
85
+ FeeJuice: {
86
+ artifactHash: Fr.fromString('0x2eb476f12cce5207be118047fb7f603378b78aa619d6539a4d9eec4700ea2507'),
87
+ privateFunctionsRoot: Fr.fromString('0x0abef3cfc6ae314886c841b42dc33d3eed255ad3dee7773daabf05b229573759'),
88
+ publicBytecodeCommitment: Fr.fromString('0x2a144b28b36efa21b7488467aba7e06b33e016d00bfe083a7bfa06ad6ff5aa2f'),
89
+ },
90
+ PublicChecks: {
91
+ artifactHash: Fr.fromString('0x228ea8af66ff150f40a4b01b64115d12777b2f7fd3a4bfc0d97d38a91f139ef6'),
92
+ privateFunctionsRoot: Fr.fromString('0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1'),
93
+ publicBytecodeCommitment: Fr.fromString('0x2d0834fc9468fd2092091852543a2fbd7b6b313c7e5e4defe8730c8065366a03'),
94
+ }
95
+ };
96
+
97
+ export const ProtocolContractInitializationHash: Record<ProtocolContractName, Fr> = {
98
+ AuthRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
99
+ ContractInstanceRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
100
+ ContractClassRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
101
+ MultiCallEntrypoint: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
102
+ FeeJuice: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
103
+ PublicChecks: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
104
+ };
105
+
106
+ export const ProtocolContractPrivateFunctions: Record<ProtocolContractName, { selector: FunctionSelector; vkHash: Fr }[]> = {
107
+ AuthRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000079a3d418')), vkHash: Fr.fromString('0x019c553854290b9b547841e45bf45e344d4a2d4f6702fee430ec5897ce7d3b78') }],
108
+ ContractInstanceRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000016ec12aa')), vkHash: Fr.fromString('0x262f7a90ecf055779001b67dad01a3add1e549f6c27931f0e71e463ce2142b57') }],
109
+ ContractClassRegistry: [{ selector: FunctionSelector.fromField(Fr.fromString('0x000000000000000000000000000000000000000000000000000000006934ed0d')), vkHash: Fr.fromString('0x1163f31e191528254c877fce0c7f62dd738f5552bbd2dda97512fe4777377f5b') }],
110
+ MultiCallEntrypoint: [{ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000f04908a9')), vkHash: Fr.fromString('0x21732ab3cecf633e4c31a030df62c93e35a005b89941fdab568d2818c1355192') }],
111
+ FeeJuice: [{ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000cbe67243')), vkHash: Fr.fromString('0x2ad6083b4595f8076c014e5152191013167ab1b5a31ad0cbb06490054c7c59ae') }, { selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000e8d374b6')), vkHash: Fr.fromString('0x05aaffffdf797625ff24575d939339303775c5db77fb6bdcecbf955f726fd071') }],
112
+ PublicChecks: []
50
113
  };
51
114
 
52
115
 
53
116
 
54
117
  export const ProtocolContractsList = new ProtocolContracts([
55
- AztecAddress.fromString('0x1dc64374e96b37a36d94b737a049efb4686f45f628457f5d6d74f5d45817944b'),
56
- AztecAddress.fromString('0x24b7c46308ae93c05e3bac8201935effd50b61504954eef96d7b0384f27ee80c'),
57
- AztecAddress.fromString('0x2f6b4852b69e0381596da99b3aad9b8d493312f47e1c0e3523928e010e1f9df2'),
58
- AztecAddress.fromString('0x1c93c2cb51b87faa1ee26b5f933a8136642cec5cdf95216bdd9aa4873d4b38ff'),
59
- AztecAddress.fromString('0x2223ff211abddd65cb27b3fd9ef6cbcdfed867b1b5c2421f87624c6fe86c39ff'),
60
- AztecAddress.fromString('0x090dc318c793abc5ee9a560dcf9f0ba54c73902086dd7258cd48da8c79ef201a'),
118
+ AztecAddress.fromString('0x139f8eb6d6e7e7a7c0322c3b7558687a7e24201f11bf2c4cb2fe56c18d363695'),
119
+ AztecAddress.fromString('0x1254246c88aca5a66fa66f3aa78c408a698ebca3b713120497c7555dfc718592'),
120
+ AztecAddress.fromString('0x14d670efa326a07b99777b01fb706427ca776095246569150f2a3f17a7d4dc66'),
121
+ AztecAddress.fromString('0x230d0b47ba6d5ed99afb89d584f32ff33438b64f51000f252a140cf995781628'),
122
+ AztecAddress.fromString('0x204913186c0dd70015d05bf9100a12e31ccb7cc2527aacdfae0c19ad6439fcf4'),
123
+ AztecAddress.fromString('0x1198142fd84a58c0ab22d5fde371ce527042db49487e05206a326ad154952ac8'),
61
124
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
62
125
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
63
126
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
@@ -65,10 +128,10 @@ AztecAddress.fromString('0x00000000000000000000000000000000000000000000000000000
65
128
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
66
129
  ]);
67
130
 
68
- export const protocolContractsHash = Fr.fromString('0x12f22ad1b89f09c9a684cb5f36820a7d678527270547e489536c586d3c1756a4');
131
+ export const protocolContractsHash = Fr.fromString('0x2672340d9a0107a7b81e6d10d25b854debe613f3272e8738e8df0ca2ff297141');
69
132
 
70
133
 
71
134
 
72
- export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('0x28da3fc471387d4e20b646b77abc8cdfc02a339a7507285a73d84f9b97b13486');
135
+ export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('0x1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a8');
73
136
 
74
137
 
@@ -8,7 +8,7 @@ import { makeProtocolContract } from '../make_protocol_contract.js';
8
8
  import { MultiCallEntrypointArtifact } from '../multi-call-entrypoint/index.js';
9
9
  import type { ProtocolContract } from '../protocol_contract.js';
10
10
  import type { ProtocolContractName } from '../protocol_contract_data.js';
11
- import { RouterArtifact } from '../router/index.js';
11
+ import { PublicChecksArtifact } from '../public-checks/index.js';
12
12
  import type { ProtocolContractsProvider } from './protocol_contracts_provider.js';
13
13
 
14
14
  export const ProtocolContractArtifact: Record<ProtocolContractName, ContractArtifact> = {
@@ -17,11 +17,11 @@ export const ProtocolContractArtifact: Record<ProtocolContractName, ContractArti
17
17
  ContractClassRegistry: ContractClassRegistryArtifact,
18
18
  MultiCallEntrypoint: MultiCallEntrypointArtifact,
19
19
  FeeJuice: FeeJuiceArtifact,
20
- Router: RouterArtifact,
20
+ PublicChecks: PublicChecksArtifact,
21
21
  };
22
22
 
23
23
  export class BundledProtocolContractsProvider implements ProtocolContractsProvider {
24
24
  getProtocolContractArtifact(name: ProtocolContractName): Promise<ProtocolContract> {
25
- return makeProtocolContract(name, ProtocolContractArtifact[name]);
25
+ return Promise.resolve(makeProtocolContract(name, ProtocolContractArtifact[name]));
26
26
  }
27
27
  }
@@ -5,7 +5,7 @@ import { getCanonicalInstanceRegistry } from '../instance-registry/lazy.js';
5
5
  import { getCanonicalMultiCallEntrypoint } from '../multi-call-entrypoint/lazy.js';
6
6
  import type { ProtocolContract } from '../protocol_contract.js';
7
7
  import type { ProtocolContractName } from '../protocol_contract_data.js';
8
- import { getCanonicalRouter } from '../router/lazy.js';
8
+ import { getCanonicalPublicChecks } from '../public-checks/lazy.js';
9
9
  import type { ProtocolContractsProvider } from './protocol_contracts_provider.js';
10
10
 
11
11
  export class LazyProtocolContractsProvider implements ProtocolContractsProvider {
@@ -21,8 +21,8 @@ export class LazyProtocolContractsProvider implements ProtocolContractsProvider
21
21
  return getCanonicalMultiCallEntrypoint();
22
22
  case 'FeeJuice':
23
23
  return getCanonicalFeeJuice();
24
- case 'Router':
25
- return getCanonicalRouter();
24
+ case 'PublicChecks':
25
+ return getCanonicalPublicChecks();
26
26
  default:
27
27
  throw new Error(`Unknown protocol contract name: ${name}`);
28
28
  }
@@ -1,18 +1,18 @@
1
1
  import { loadContractArtifact } from '@aztec/stdlib/abi';
2
2
  import type { NoirCompiledContract } from '@aztec/stdlib/noir';
3
3
 
4
- import RouterJson from '../../artifacts/Router.json' with { type: 'json' };
4
+ import PublicChecksJson from '../../artifacts/PublicChecks.json' with { type: 'json' };
5
5
  import { makeProtocolContract } from '../make_protocol_contract.js';
6
6
  import type { ProtocolContract } from '../protocol_contract.js';
7
7
 
8
- export const RouterArtifact = loadContractArtifact(RouterJson as NoirCompiledContract);
8
+ export const PublicChecksArtifact = loadContractArtifact(PublicChecksJson as NoirCompiledContract);
9
9
 
10
10
  let protocolContract: ProtocolContract;
11
11
 
12
12
  /** Returns the canonical deployment of the contract. */
13
- export async function getCanonicalRouter(): Promise<ProtocolContract> {
13
+ export function getCanonicalPublicChecks(): Promise<ProtocolContract> {
14
14
  if (!protocolContract) {
15
- protocolContract = await makeProtocolContract('Router', RouterArtifact);
15
+ protocolContract = makeProtocolContract('PublicChecks', PublicChecksArtifact);
16
16
  }
17
- return protocolContract;
17
+ return Promise.resolve(protocolContract);
18
18
  }
@@ -6,24 +6,24 @@ import type { ProtocolContract } from '../protocol_contract.js';
6
6
  let protocolContract: ProtocolContract;
7
7
  let protocolContractArtifact: ContractArtifact;
8
8
 
9
- export async function getRouterArtifact(): Promise<ContractArtifact> {
9
+ export async function getPublicChecksArtifact(): Promise<ContractArtifact> {
10
10
  if (!protocolContractArtifact) {
11
11
  // Cannot assert this import as it's incompatible with bundlers like vite
12
12
  // https://github.com/vitejs/vite/issues/19095#issuecomment-2566074352
13
13
  // Even if now supported by al major browsers, the MIME type is replaced with
14
14
  // "text/javascript"
15
15
  // In the meantime, this lazy import is INCOMPATIBLE WITH NODEJS
16
- const { default: routerJson } = await import('../../artifacts/Router.json');
17
- protocolContractArtifact = loadContractArtifact(routerJson);
16
+ const { default: publicChecksJson } = await import('../../artifacts/PublicChecks.json');
17
+ protocolContractArtifact = loadContractArtifact(publicChecksJson);
18
18
  }
19
19
  return protocolContractArtifact;
20
20
  }
21
21
 
22
- /** Returns the canonical deployment of the auth registry. */
23
- export async function getCanonicalRouter(): Promise<ProtocolContract> {
22
+ /** Returns the canonical deployment of the public checks contract. */
23
+ export async function getCanonicalPublicChecks(): Promise<ProtocolContract> {
24
24
  if (!protocolContract) {
25
- const routerArtifact = await getRouterArtifact();
26
- protocolContract = await makeProtocolContract('Router', routerArtifact);
25
+ const publicChecksArtifact = await getPublicChecksArtifact();
26
+ protocolContract = makeProtocolContract('PublicChecks', publicChecksArtifact);
27
27
  }
28
28
  return protocolContract;
29
29
  }