@aztec/protocol-contracts 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97

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 (99) hide show
  1. package/artifacts/ContractClassRegistry.json +3526 -7781
  2. package/artifacts/ContractInstanceRegistry.json +3885 -2340
  3. package/artifacts/FeeJuice.json +5162 -3067
  4. package/dest/class-registry/contract_class_published_event.d.ts +8 -4
  5. package/dest/class-registry/contract_class_published_event.d.ts.map +1 -1
  6. package/dest/class-registry/contract_class_published_event.js +14 -17
  7. package/dest/class-registry/index.d.ts +1 -3
  8. package/dest/class-registry/index.d.ts.map +1 -1
  9. package/dest/class-registry/index.js +3 -5
  10. package/dest/class-registry/lazy.d.ts +1 -3
  11. package/dest/class-registry/lazy.d.ts.map +1 -1
  12. package/dest/class-registry/lazy.js +1 -3
  13. package/dest/fee-juice/index.d.ts +2 -2
  14. package/dest/fee-juice/index.d.ts.map +1 -1
  15. package/dest/fee-juice/index.js +3 -3
  16. package/dest/fee-juice/lazy.d.ts +1 -1
  17. package/dest/fee-juice/lazy.js +1 -1
  18. package/dest/index.d.ts +1 -1
  19. package/dest/instance-registry/contract_instance_published_event.d.ts +5 -3
  20. package/dest/instance-registry/contract_instance_published_event.d.ts.map +1 -1
  21. package/dest/instance-registry/contract_instance_published_event.js +11 -4
  22. package/dest/instance-registry/contract_instance_updated_event.d.ts +2 -2
  23. package/dest/instance-registry/contract_instance_updated_event.d.ts.map +1 -1
  24. package/dest/instance-registry/index.d.ts +1 -1
  25. package/dest/instance-registry/index.d.ts.map +1 -1
  26. package/dest/instance-registry/index.js +3 -3
  27. package/dest/instance-registry/lazy.d.ts +1 -1
  28. package/dest/instance-registry/lazy.js +1 -1
  29. package/dest/make_protocol_contract.d.ts +4 -4
  30. package/dest/make_protocol_contract.d.ts.map +1 -1
  31. package/dest/make_protocol_contract.js +30 -14
  32. package/dest/protocol_contract.d.ts +1 -1
  33. package/dest/protocol_contract_data.d.ts +15 -6
  34. package/dest/protocol_contract_data.d.ts.map +1 -1
  35. package/dest/protocol_contract_data.js +68 -28
  36. package/dest/provider/bundle.d.ts +1 -1
  37. package/dest/provider/bundle.d.ts.map +1 -1
  38. package/dest/provider/bundle.js +2 -8
  39. package/dest/provider/lazy.d.ts +1 -1
  40. package/dest/provider/lazy.d.ts.map +1 -1
  41. package/dest/provider/lazy.js +0 -9
  42. package/dest/provider/protocol_contracts_provider.d.ts +1 -1
  43. package/dest/scripts/generate_data.js +75 -28
  44. package/dest/tests/fixtures.d.ts +1 -3
  45. package/dest/tests/fixtures.d.ts.map +1 -1
  46. package/dest/tests/fixtures.js +0 -10
  47. package/package.json +9 -8
  48. package/src/class-registry/contract_class_published_event.ts +18 -23
  49. package/src/class-registry/index.ts +3 -5
  50. package/src/class-registry/lazy.ts +1 -3
  51. package/src/fee-juice/index.ts +4 -4
  52. package/src/fee-juice/lazy.ts +1 -1
  53. package/src/instance-registry/contract_instance_published_event.ts +12 -2
  54. package/src/instance-registry/contract_instance_updated_event.ts +1 -1
  55. package/src/instance-registry/index.ts +3 -3
  56. package/src/instance-registry/lazy.ts +1 -1
  57. package/src/make_protocol_contract.ts +39 -15
  58. package/src/protocol_contract_data.ts +58 -31
  59. package/src/provider/bundle.ts +1 -7
  60. package/src/provider/lazy.ts +0 -9
  61. package/src/tests/fixtures.ts +0 -12
  62. package/artifacts/AuthRegistry.d.json.ts +0 -5
  63. package/artifacts/AuthRegistry.json +0 -3521
  64. package/artifacts/MultiCallEntrypoint.d.json.ts +0 -5
  65. package/artifacts/MultiCallEntrypoint.json +0 -2691
  66. package/artifacts/Router.d.json.ts +0 -5
  67. package/artifacts/Router.json +0 -976
  68. package/dest/auth-registry/index.d.ts +0 -6
  69. package/dest/auth-registry/index.d.ts.map +0 -1
  70. package/dest/auth-registry/index.js +0 -13
  71. package/dest/auth-registry/lazy.d.ts +0 -6
  72. package/dest/auth-registry/lazy.d.ts.map +0 -1
  73. package/dest/auth-registry/lazy.js +0 -23
  74. package/dest/class-registry/private_function_broadcasted_event.d.ts +0 -44
  75. package/dest/class-registry/private_function_broadcasted_event.d.ts.map +0 -1
  76. package/dest/class-registry/private_function_broadcasted_event.js +0 -85
  77. package/dest/class-registry/utility_function_broadcasted_event.d.ts +0 -38
  78. package/dest/class-registry/utility_function_broadcasted_event.d.ts.map +0 -1
  79. package/dest/class-registry/utility_function_broadcasted_event.js +0 -81
  80. package/dest/multi-call-entrypoint/index.d.ts +0 -5
  81. package/dest/multi-call-entrypoint/index.d.ts.map +0 -1
  82. package/dest/multi-call-entrypoint/index.js +0 -13
  83. package/dest/multi-call-entrypoint/lazy.d.ts +0 -6
  84. package/dest/multi-call-entrypoint/lazy.d.ts.map +0 -1
  85. package/dest/multi-call-entrypoint/lazy.js +0 -23
  86. package/dest/router/index.d.ts +0 -5
  87. package/dest/router/index.d.ts.map +0 -1
  88. package/dest/router/index.js +0 -13
  89. package/dest/router/lazy.d.ts +0 -6
  90. package/dest/router/lazy.d.ts.map +0 -1
  91. package/dest/router/lazy.js +0 -23
  92. package/src/auth-registry/index.ts +0 -18
  93. package/src/auth-registry/lazy.ts +0 -29
  94. package/src/class-registry/private_function_broadcasted_event.ts +0 -109
  95. package/src/class-registry/utility_function_broadcasted_event.ts +0 -103
  96. package/src/multi-call-entrypoint/index.ts +0 -18
  97. package/src/multi-call-entrypoint/lazy.ts +0 -29
  98. package/src/router/index.ts +0 -18
  99. package/src/router/lazy.ts +0 -29
@@ -1,51 +1,91 @@
1
1
  // GENERATED FILE - DO NOT EDIT. RUN `yarn generate` or `yarn generate:data`
2
- import { Fr } from '@aztec/foundation/fields';
2
+ import { Fr } from '@aztec/foundation/curves/bn254';
3
+ import { FunctionSelector } from '@aztec/stdlib/abi';
3
4
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
4
5
  import { ProtocolContracts } from '@aztec/stdlib/tx';
5
6
  export const protocolContractNames = [
6
- 'AuthRegistry',
7
7
  'ContractInstanceRegistry',
8
8
  'ContractClassRegistry',
9
- 'MultiCallEntrypoint',
10
- 'FeeJuice',
11
- 'Router'
9
+ 'FeeJuice'
12
10
  ];
13
11
  export const ProtocolContractSalt = {
14
- AuthRegistry: new Fr(1),
15
12
  ContractInstanceRegistry: new Fr(1),
16
13
  ContractClassRegistry: new Fr(1),
17
- MultiCallEntrypoint: new Fr(1),
18
- FeeJuice: new Fr(1),
19
- Router: new Fr(1)
14
+ FeeJuice: new Fr(1)
20
15
  };
21
16
  export const ProtocolContractAddress = {
22
- AuthRegistry: AztecAddress.fromBigInt(1n),
23
17
  ContractInstanceRegistry: AztecAddress.fromBigInt(2n),
24
- ContractClassRegistry: AztecAddress.fromBigInt(3n),
25
- MultiCallEntrypoint: AztecAddress.fromBigInt(4n),
26
- FeeJuice: AztecAddress.fromBigInt(5n),
27
- Router: AztecAddress.fromBigInt(6n)
18
+ ContractClassRegistry: AztecAddress.fromBigInt(1n),
19
+ FeeJuice: AztecAddress.fromBigInt(3n)
28
20
  };
29
21
  export const ProtocolContractDerivedAddress = {
30
- AuthRegistry: AztecAddress.fromString('0x2e35b6e1a89ac2f901f3513f505249b9a485513ac7dd57f29f1183c0862473f2'),
31
- ContractInstanceRegistry: AztecAddress.fromString('0x136eade704b136bae7c5282cf8f4e1ccc51835db840123034cfefbad76215c91'),
32
- ContractClassRegistry: AztecAddress.fromString('0x2b9543f587c4d7976627ed8dfe0345f9e2efa846f618dea97372c1be7240994b'),
33
- MultiCallEntrypoint: AztecAddress.fromString('0x191a929597d30fafe8d5708533b89bd4022c8d3194c8fcf37d04ac51a2f804eb'),
34
- FeeJuice: AztecAddress.fromString('0x2f3ffae9d3b40e8f162fc2dabbd8dba5deaf112191dfa7be263a55073e16d082'),
35
- Router: AztecAddress.fromString('0x00943dfa60dc08d7fb79f30220fdab942c0ba3364e45b69777015613983bab58')
22
+ ContractInstanceRegistry: AztecAddress.fromString('0x290f7bf7cea0eb4c440a06dc8bcf825865479348c9ebf8f540b10ad10fd32c44'),
23
+ ContractClassRegistry: AztecAddress.fromString('0x20b16259faa0a096d687572fc76221263f1cad4a4b726ef49e2cd7b7ce7c7465'),
24
+ FeeJuice: AztecAddress.fromString('0x0fa3ba3e01e6646cd2adade41018dbfff04e59c444760e33bf773ec43d683019')
25
+ };
26
+ export const ProtocolContractClassId = {
27
+ ContractInstanceRegistry: Fr.fromString('0x123597d7f3c460a3e91bfb92e729fcd048d4f50a88b7c25e694cf75827062e3f'),
28
+ ContractClassRegistry: Fr.fromString('0x243b6ce1af8f520d531b26ce5081fa29c0870ce8d5949c5304a6705b07947a2e'),
29
+ FeeJuice: Fr.fromString('0x1f65e3db036c48ac8f8635b156880ed17e9437ed8904a0c0554f0d6251bf0997')
30
+ };
31
+ export const ProtocolContractClassIdPreimage = {
32
+ ContractInstanceRegistry: {
33
+ artifactHash: Fr.fromString('0x0cb37c0b0ec8670b88b472fca5858f8cb112a41ba2aad664903ac1a3bed468b3'),
34
+ privateFunctionsRoot: Fr.fromString('0x0239b0f293384aad456e2e27901eb97cd9073322a28d14b0ac7816a5297b2812'),
35
+ publicBytecodeCommitment: Fr.fromString('0x2c79b6699098244e947caca071a31799c20aa20e7124910a2b7c918fe817d65e')
36
+ },
37
+ ContractClassRegistry: {
38
+ artifactHash: Fr.fromString('0x1e252471ee2b770fba961d03289344f1798336d9a94e1d8f137397754708de0e'),
39
+ privateFunctionsRoot: Fr.fromString('0x0672f623ec0753ab9fbb02a9a241df81b9bcc0dbed8628d8cab8790e0cb0c03d'),
40
+ publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e')
41
+ },
42
+ FeeJuice: {
43
+ artifactHash: Fr.fromString('0x1243f24c1d3e8b42c900aa95d3a12448d84f8b5da3fe047f8ac8a46e67bb10b7'),
44
+ privateFunctionsRoot: Fr.fromString('0x247aaafc67f6bf5b06736649181a477dac9f18d3468969b14669708c3dabb275'),
45
+ publicBytecodeCommitment: Fr.fromString('0x1d4b1a8f71b8250d4fb65f8e16a4604e9165648279f47d80e024ce2684c4bdfb')
46
+ }
47
+ };
48
+ export const ProtocolContractInitializationHash = {
49
+ ContractInstanceRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
50
+ ContractClassRegistry: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
51
+ FeeJuice: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
52
+ };
53
+ export const ProtocolContractPrivateFunctions = {
54
+ ContractInstanceRegistry: [
55
+ {
56
+ selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000077cff62f')),
57
+ vkHash: Fr.fromString('0x08a57d0b4d164c6c8d92da9c3bfe57a4ac1a639ab0a2a0ccb60bbb6bcd37f245')
58
+ }
59
+ ],
60
+ ContractClassRegistry: [
61
+ {
62
+ selector: FunctionSelector.fromField(Fr.fromString('0x000000000000000000000000000000000000000000000000000000006934ed0d')),
63
+ vkHash: Fr.fromString('0x1531ed0e20d6d05f1aeb06f746c8c4b8f467174836d6edf915b0c45099b393ed')
64
+ }
65
+ ],
66
+ FeeJuice: [
67
+ {
68
+ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000cbe67243')),
69
+ vkHash: Fr.fromString('0x2dbad42bf59fe7ea908485dea59573b4d7fb8ddefb6a0f73bbcce79aa27d545c')
70
+ },
71
+ {
72
+ selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000e8d374b6')),
73
+ vkHash: Fr.fromString('0x2e9880e15fb0c9a5494faef915861144769e94aded54c737819ee75918fbda51')
74
+ }
75
+ ]
36
76
  };
37
77
  export const ProtocolContractsList = new ProtocolContracts([
38
- AztecAddress.fromString('0x2e35b6e1a89ac2f901f3513f505249b9a485513ac7dd57f29f1183c0862473f2'),
39
- AztecAddress.fromString('0x136eade704b136bae7c5282cf8f4e1ccc51835db840123034cfefbad76215c91'),
40
- AztecAddress.fromString('0x2b9543f587c4d7976627ed8dfe0345f9e2efa846f618dea97372c1be7240994b'),
41
- AztecAddress.fromString('0x191a929597d30fafe8d5708533b89bd4022c8d3194c8fcf37d04ac51a2f804eb'),
42
- AztecAddress.fromString('0x2f3ffae9d3b40e8f162fc2dabbd8dba5deaf112191dfa7be263a55073e16d082'),
43
- AztecAddress.fromString('0x00943dfa60dc08d7fb79f30220fdab942c0ba3364e45b69777015613983bab58'),
78
+ AztecAddress.fromString('0x20b16259faa0a096d687572fc76221263f1cad4a4b726ef49e2cd7b7ce7c7465'),
79
+ AztecAddress.fromString('0x290f7bf7cea0eb4c440a06dc8bcf825865479348c9ebf8f540b10ad10fd32c44'),
80
+ AztecAddress.fromString('0x0fa3ba3e01e6646cd2adade41018dbfff04e59c444760e33bf773ec43d683019'),
81
+ AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
82
+ AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
83
+ AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
44
84
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
45
85
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
46
86
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
47
87
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
48
88
  AztecAddress.fromString('0x0000000000000000000000000000000000000000000000000000000000000000')
49
89
  ]);
50
- export const protocolContractsHash = Fr.fromString('0x1114ed602f51159e3e07a19f1b0ad7acbd7dee60fbf342ea0e46d9013f744679');
51
- export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('0x28da3fc471387d4e20b646b77abc8cdfc02a339a7507285a73d84f9b97b13486');
90
+ export const protocolContractsHash = Fr.fromString('0x04194c6dd98d175d07d300b253a9967f5c46782d0e9c3c88473f79ca8b8b16d6');
91
+ export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('0x1a7e1badb79abdd38c684b3c8306ffe7ecb33c69e3380d9855730aaaa83a21a8');
@@ -6,4 +6,4 @@ export declare const ProtocolContractArtifact: Record<ProtocolContractName, Cont
6
6
  export declare class BundledProtocolContractsProvider implements ProtocolContractsProvider {
7
7
  getProtocolContractArtifact(name: ProtocolContractName): Promise<ProtocolContract>;
8
8
  }
9
- //# sourceMappingURL=bundle.d.ts.map
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXIvYnVuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFNMUQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbEYsZUFBTyxNQUFNLHdCQUF3QixFQUFFLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRSxnQkFBZ0IsQ0FJbkYsQ0FBQztBQUVGLHFCQUFhLGdDQUFpQyxZQUFXLHlCQUF5QjtJQUNoRiwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBRWpGO0NBQ0YifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/provider/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAOnF,CAAC;AAEF,qBAAa,gCAAiC,YAAW,yBAAyB;IAChF,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAGnF"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/provider/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAM1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,oBAAoB,EAAE,gBAAgB,CAInF,CAAC;AAEF,qBAAa,gCAAiC,YAAW,yBAAyB;IAChF,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEjF;CACF"}
@@ -1,20 +1,14 @@
1
- import { AuthRegistryArtifact } from '../auth-registry/index.js';
2
1
  import { ContractClassRegistryArtifact } from '../class-registry/index.js';
3
2
  import { FeeJuiceArtifact } from '../fee-juice/index.js';
4
3
  import { ContractInstanceRegistryArtifact } from '../instance-registry/index.js';
5
4
  import { makeProtocolContract } from '../make_protocol_contract.js';
6
- import { MultiCallEntrypointArtifact } from '../multi-call-entrypoint/index.js';
7
- import { RouterArtifact } from '../router/index.js';
8
5
  export const ProtocolContractArtifact = {
9
- AuthRegistry: AuthRegistryArtifact,
10
6
  ContractInstanceRegistry: ContractInstanceRegistryArtifact,
11
7
  ContractClassRegistry: ContractClassRegistryArtifact,
12
- MultiCallEntrypoint: MultiCallEntrypointArtifact,
13
- FeeJuice: FeeJuiceArtifact,
14
- Router: RouterArtifact
8
+ FeeJuice: FeeJuiceArtifact
15
9
  };
16
10
  export class BundledProtocolContractsProvider {
17
11
  getProtocolContractArtifact(name) {
18
- return makeProtocolContract(name, ProtocolContractArtifact[name]);
12
+ return Promise.resolve(makeProtocolContract(name, ProtocolContractArtifact[name]));
19
13
  }
20
14
  }
@@ -4,4 +4,4 @@ import type { ProtocolContractsProvider } from './protocol_contracts_provider.js
4
4
  export declare class LazyProtocolContractsProvider implements ProtocolContractsProvider {
5
5
  getProtocolContractArtifact(name: ProtocolContractName): Promise<ProtocolContract>;
6
6
  }
7
- //# sourceMappingURL=lazy.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb3ZpZGVyL2xhenkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbEYscUJBQWEsNkJBQThCLFlBQVcseUJBQXlCO0lBQzdFLDJCQUEyQixDQUFDLElBQUksRUFBRSxvQkFBb0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FXakY7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/provider/lazy.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,qBAAa,6BAA8B,YAAW,yBAAyB;IAC7E,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAkBnF"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/provider/lazy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAElF,qBAAa,6BAA8B,YAAW,yBAAyB;IAC7E,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWjF;CACF"}
@@ -1,24 +1,15 @@
1
- import { getCanonicalAuthRegistry } from '../auth-registry/lazy.js';
2
1
  import { getCanonicalClassRegistry } from '../class-registry/lazy.js';
3
2
  import { getCanonicalFeeJuice } from '../fee-juice/lazy.js';
4
3
  import { getCanonicalInstanceRegistry } from '../instance-registry/lazy.js';
5
- import { getCanonicalMultiCallEntrypoint } from '../multi-call-entrypoint/lazy.js';
6
- import { getCanonicalRouter } from '../router/lazy.js';
7
4
  export class LazyProtocolContractsProvider {
8
5
  getProtocolContractArtifact(name) {
9
6
  switch(name){
10
- case 'AuthRegistry':
11
- return getCanonicalAuthRegistry();
12
7
  case 'ContractInstanceRegistry':
13
8
  return getCanonicalInstanceRegistry();
14
9
  case 'ContractClassRegistry':
15
10
  return getCanonicalClassRegistry();
16
- case 'MultiCallEntrypoint':
17
- return getCanonicalMultiCallEntrypoint();
18
11
  case 'FeeJuice':
19
12
  return getCanonicalFeeJuice();
20
- case 'Router':
21
- return getCanonicalRouter();
22
13
  default:
23
14
  throw new Error(`Unknown protocol contract name: ${name}`);
24
15
  }
@@ -4,4 +4,4 @@ import type { ProtocolContractName } from '../protocol_contract_data.js';
4
4
  export interface ProtocolContractsProvider {
5
5
  getProtocolContractArtifact(name: ProtocolContractName): Promise<ProtocolContract>;
6
6
  }
7
- //# sourceMappingURL=protocol_contracts_provider.d.ts.map
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdG9jb2xfY29udHJhY3RzX3Byb3ZpZGVyLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmlkZXIvcHJvdG9jb2xfY29udHJhY3RzX3Byb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RSw0REFBNEQ7QUFDNUQsTUFBTSxXQUFXLHlCQUF5QjtJQUN4QywyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Q0FDcEYifQ==
@@ -1,11 +1,16 @@
1
- import { CANONICAL_AUTH_REGISTRY_ADDRESS, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, FEE_JUICE_ADDRESS, MAX_PROTOCOL_CONTRACTS, MULTI_CALL_ENTRYPOINT_ADDRESS, ROUTER_ADDRESS } from '@aztec/constants';
1
+ // Reads compiled Noir artifacts for each protocol contract and derives their addresses, class IDs,
2
+ // bytecode commitments, and other deployment data, emitting everything as precomputed constants into
3
+ // `protocol_contract_data.ts`. This avoids clients repeating the expensive hashing at runtime and
4
+ // ensures a single source of truth for the protocol contracts hash enforced by circuits, P2P, and L1.
5
+ import { CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, FEE_JUICE_ADDRESS, MAX_PROTOCOL_CONTRACTS } from '@aztec/constants';
2
6
  import { makeTuple } from '@aztec/foundation/array';
3
- import { poseidon2Hash } from '@aztec/foundation/crypto';
4
- import { Fr } from '@aztec/foundation/fields';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
5
8
  import { createConsoleLogger } from '@aztec/foundation/log';
6
9
  import { loadContractArtifact } from '@aztec/stdlib/abi';
7
10
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
8
- import { getContractInstanceFromInstantiationParams } from '@aztec/stdlib/contract';
11
+ import { computeContractAddressFromInstance, computeInitializationHash, getContractClassFromArtifact } from '@aztec/stdlib/contract';
12
+ import { computeSiloedPrivateLogFirstField } from '@aztec/stdlib/hash';
13
+ import { PublicKeys } from '@aztec/stdlib/keys';
9
14
  import { ProtocolContracts } from '@aztec/stdlib/tx';
10
15
  import { promises as fs } from 'fs';
11
16
  import path from 'path';
@@ -16,12 +21,9 @@ const destArtifactsDir = './artifacts';
16
21
  const outputFilePath = './src/protocol_contract_data.ts';
17
22
  const salt = new Fr(1);
18
23
  const contractAddressMapping = {
19
- AuthRegistry: CANONICAL_AUTH_REGISTRY_ADDRESS,
20
24
  ContractInstanceRegistry: CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
21
25
  ContractClassRegistry: CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS,
22
- MultiCallEntrypoint: MULTI_CALL_ENTRYPOINT_ADDRESS,
23
- FeeJuice: FEE_JUICE_ADDRESS,
24
- Router: ROUTER_ADDRESS
26
+ FeeJuice: FEE_JUICE_ADDRESS
25
27
  };
26
28
  async function clearDestDir() {
27
29
  try {
@@ -50,11 +52,33 @@ async function copyArtifact(srcName, destName) {
50
52
  await fs.copyFile(src, dest);
51
53
  return artifact;
52
54
  }
53
- async function computeAddress(artifact) {
54
- const instance = await getContractInstanceFromInstantiationParams(loadContractArtifact(artifact), {
55
- salt
56
- });
57
- return instance.address;
55
+ // Precompute all the expensive contract data that can be obtained from the artifact, to avoid redundant computations in clients.
56
+ // Protocol contracts come from a trusted source, so no class verifications are needed.
57
+ async function computeContractData(artifact, deployer) {
58
+ const loaded = loadContractArtifact(artifact);
59
+ const contractClass = await getContractClassFromArtifact(loaded);
60
+ const constructorArtifact = loaded.functions.find((f)=>f.name === 'constructor');
61
+ const initializationHash = await computeInitializationHash(constructorArtifact, []);
62
+ const instance = {
63
+ version: 2,
64
+ currentContractClassId: contractClass.id,
65
+ originalContractClassId: contractClass.id,
66
+ initializationHash,
67
+ immutablesHash: Fr.ZERO,
68
+ publicKeys: PublicKeys.default(),
69
+ salt,
70
+ deployer
71
+ };
72
+ const address = await computeContractAddressFromInstance(instance);
73
+ return {
74
+ address,
75
+ classId: contractClass.id,
76
+ artifactHash: contractClass.artifactHash,
77
+ privateFunctionsRoot: contractClass.privateFunctionsRoot,
78
+ publicBytecodeCommitment: contractClass.publicBytecodeCommitment,
79
+ initializationHash,
80
+ privateFunctions: contractClass.privateFunctions
81
+ };
58
82
  }
59
83
  async function generateDeclarationFile(destName) {
60
84
  const content = `
@@ -88,14 +112,37 @@ function generateContractAddresses(names) {
88
112
  };
89
113
  `;
90
114
  }
91
- function generateDerivedAddresses(names, derivedAddresses) {
115
+ function generateDerivedAddresses(names, contractData) {
92
116
  return `
93
117
  export const ProtocolContractDerivedAddress = {
94
- ${derivedAddresses.map((address, i)=>`${names[i]}: AztecAddress.fromString('${address.toString()}')`).join(',\n')}
118
+ ${contractData.map((d, i)=>`${names[i]}: AztecAddress.fromString('${d.address.toString()}')`).join(',\n')}
119
+ };
120
+ `;
121
+ }
122
+ function generateClassIdPreimages(names, contractData) {
123
+ return `
124
+ export const ProtocolContractClassId: Record<ProtocolContractName, Fr> = {
125
+ ${contractData.map((d, i)=>`${names[i]}: Fr.fromString('${d.classId.toString()}')`).join(',\n')}
126
+ };
127
+
128
+ export const ProtocolContractClassIdPreimage: Record<ProtocolContractName, { artifactHash: Fr; privateFunctionsRoot: Fr; publicBytecodeCommitment: Fr }> = {
129
+ ${contractData.map((d, i)=>`${names[i]}: {
130
+ artifactHash: Fr.fromString('${d.artifactHash.toString()}'),
131
+ privateFunctionsRoot: Fr.fromString('${d.privateFunctionsRoot.toString()}'),
132
+ publicBytecodeCommitment: Fr.fromString('${d.publicBytecodeCommitment.toString()}'),
133
+ }`).join(',\n')}
134
+ };
135
+
136
+ export const ProtocolContractInitializationHash: Record<ProtocolContractName, Fr> = {
137
+ ${contractData.map((d, i)=>`${names[i]}: Fr.fromString('${d.initializationHash.toString()}')`).join(',\n')}
138
+ };
139
+
140
+ export const ProtocolContractPrivateFunctions: Record<ProtocolContractName, { selector: FunctionSelector; vkHash: Fr }[]> = {
141
+ ${contractData.map((d, i)=>`${names[i]}: [${d.privateFunctions.map((fn)=>`{ selector: FunctionSelector.fromField(Fr.fromString('${fn.selector.toField().toString()}')), vkHash: Fr.fromString('${fn.vkHash.toString()}') }`).join(', ')}]`).join(',\n')}
95
142
  };
96
143
  `;
97
144
  }
98
- async function generateProtocolContractsList(names, derivedAddresses) {
145
+ async function generateProtocolContractsList(names, contractData) {
99
146
  const list = makeTuple(MAX_PROTOCOL_CONTRACTS, ()=>AztecAddress.zero());
100
147
  for(let i = 0; i < names.length; i++){
101
148
  const name = names[i];
@@ -104,7 +151,7 @@ async function generateProtocolContractsList(names, derivedAddresses) {
104
151
  if (!list[derivedAddressIndex].equals(AztecAddress.zero())) {
105
152
  throw new Error(`Duplicate protocol contract address: ${address.toString()}`);
106
153
  }
107
- list[derivedAddressIndex] = derivedAddresses[i];
154
+ list[derivedAddressIndex] = contractData[i].address;
108
155
  }
109
156
  return `
110
157
  export const ProtocolContractsList = new ProtocolContracts([
@@ -117,16 +164,14 @@ async function generateProtocolContractsList(names, derivedAddresses) {
117
164
  // Generate the siloed log tags for events emitted via private logs.
118
165
  async function generateLogTags() {
119
166
  return `
120
- export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('${await poseidon2Hash([
121
- CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS,
122
- CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE
123
- ])}');
167
+ export const CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG = Fr.fromHexString('${await computeSiloedPrivateLogFirstField(new AztecAddress(new Fr(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS)), new Fr(CONTRACT_INSTANCE_PUBLISHED_MAGIC_VALUE))}');
124
168
  `;
125
169
  }
126
- async function generateOutputFile(names, derivedAddresses) {
170
+ async function generateOutputFile(names, contractData) {
127
171
  const content = `
128
172
  // GENERATED FILE - DO NOT EDIT. RUN \`yarn generate\` or \`yarn generate:data\`
129
- import { Fr } from '@aztec/foundation/fields';
173
+ import { Fr } from '@aztec/foundation/curves/bn254';
174
+ import { FunctionSelector } from '@aztec/stdlib/abi';
130
175
  import { AztecAddress } from '@aztec/stdlib/aztec-address';
131
176
  import { ProtocolContracts } from '@aztec/stdlib/tx';
132
177
 
@@ -136,9 +181,11 @@ async function generateOutputFile(names, derivedAddresses) {
136
181
 
137
182
  ${generateContractAddresses(names)}
138
183
 
139
- ${generateDerivedAddresses(names, derivedAddresses)}
184
+ ${generateDerivedAddresses(names, contractData)}
185
+
186
+ ${generateClassIdPreimages(names, contractData)}
140
187
 
141
- ${await generateProtocolContractsList(names, derivedAddresses)}
188
+ ${await generateProtocolContractsList(names, contractData)}
142
189
 
143
190
  ${await generateLogTags()}
144
191
  `;
@@ -147,16 +194,16 @@ async function generateOutputFile(names, derivedAddresses) {
147
194
  async function main() {
148
195
  await clearDestDir();
149
196
  const srcNames = JSON.parse(await fs.readFile(path.join(noirContractsRoot, 'protocol_contracts.json'), 'utf8'));
150
- const derivedAddresses = [];
197
+ const contractDataList = [];
151
198
  const destNames = srcNames.map((n)=>n.split('-')[1]);
152
199
  for(let i = 0; i < srcNames.length; i++){
153
200
  const srcName = srcNames[i];
154
201
  const destName = destNames[i];
155
202
  const artifact = await copyArtifact(srcName, destName);
156
203
  await generateDeclarationFile(destName);
157
- derivedAddresses.push(await computeAddress(artifact));
204
+ contractDataList.push(await computeContractData(artifact, AztecAddress.fromBigInt(BigInt(contractAddressMapping[destName]))));
158
205
  }
159
- await generateOutputFile(destNames, derivedAddresses);
206
+ await generateOutputFile(destNames, contractDataList);
160
207
  }
161
208
  try {
162
209
  await main();
@@ -1,6 +1,4 @@
1
1
  export declare function getSampleContractClassPublishedEventPayload(): Buffer;
2
- export declare function getSamplePrivateFunctionBroadcastedEventPayload(): Buffer;
3
- export declare function getSampleUtilityFunctionBroadcastedEventPayload(): Buffer;
4
2
  export declare function getSampleContractInstancePublishedEventPayload(): Buffer;
5
3
  export declare function getPathToFixture(name: string): string;
6
- //# sourceMappingURL=fixtures.d.ts.map
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0cy9maXh0dXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSx3QkFBZ0IsMkNBQTJDLElBQUksTUFBTSxDQUdwRTtBQUdELHdCQUFnQiw4Q0FBOEMsSUFBSSxNQUFNLENBR3ZFO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLFVBRTVDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAKA,wBAAgB,2CAA2C,IAAI,MAAM,CAGpE;AAGD,wBAAgB,+CAA+C,IAAI,MAAM,CAGxE;AAGD,wBAAgB,+CAA+C,IAAI,MAAM,CAGxE;AAGD,wBAAgB,8CAA8C,IAAI,MAAM,CAGvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/tests/fixtures.ts"],"names":[],"mappings":"AAKA,wBAAgB,2CAA2C,IAAI,MAAM,CAGpE;AAGD,wBAAgB,8CAA8C,IAAI,MAAM,CAGvE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,UAE5C"}
@@ -7,16 +7,6 @@ export function getSampleContractClassPublishedEventPayload() {
7
7
  return Buffer.from(readFileSync(path).toString(), 'hex');
8
8
  }
9
9
  // Generated from end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts with AZTEC_GENERATE_TEST_DATA=1
10
- export function getSamplePrivateFunctionBroadcastedEventPayload() {
11
- const path = getPathToFixture('PrivateFunctionBroadcastedEventData.hex');
12
- return Buffer.from(readFileSync(path).toString(), 'hex');
13
- }
14
- // Generated from end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts with AZTEC_GENERATE_TEST_DATA=1
15
- export function getSampleUtilityFunctionBroadcastedEventPayload() {
16
- const path = getPathToFixture('UtilityFunctionBroadcastedEventData.hex');
17
- return Buffer.from(readFileSync(path).toString(), 'hex');
18
- }
19
- // Generated from end-to-end/src/e2e_deploy_contract/contract_class_registration.test.ts with AZTEC_GENERATE_TEST_DATA=1
20
10
  export function getSampleContractInstancePublishedEventPayload() {
21
11
  const path = getPathToFixture('ContractInstancePublishedEventData.hex');
22
12
  return Buffer.from(readFileSync(path).toString(), 'hex');
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@aztec/protocol-contracts",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/protocol-contracts",
4
4
  "description": "Canonical Noir contracts for the Aztec Network",
5
- "version": "0.0.1-commit.b655e406",
5
+ "version": "0.0.1-commit.b9865e97",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  ".": "./dest/index.js",
@@ -21,13 +21,13 @@
21
21
  "tsconfig": "./tsconfig.json"
22
22
  },
23
23
  "scripts": {
24
- "build": "yarn clean && yarn generate && yarn generate:cleanup-artifacts && tsc -b",
25
- "build:keep-debug-symbols": "yarn clean && yarn generate && tsc -b",
24
+ "build": "yarn clean && yarn generate && yarn generate:cleanup-artifacts && ../scripts/tsc.sh",
25
+ "build:keep-debug-symbols": "yarn clean && yarn generate && ../scripts/tsc.sh",
26
26
  "generate": "yarn generate:data",
27
27
  "generate:cleanup-artifacts": "node --no-warnings --loader @swc-node/register/esm src/scripts/cleanup_artifacts.ts",
28
28
  "generate:data": "node --no-warnings --loader @swc-node/register/esm src/scripts/generate_data.ts",
29
- "build:dev": "tsc -b --watch",
30
- "build:ts": "tsc -b",
29
+ "build:dev": "../scripts/tsc.sh --watch",
30
+ "build:ts": "../scripts/tsc.sh",
31
31
  "clean": "rm -rf ./dest .tsbuildinfo ./artifacts",
32
32
  "test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests --maxWorkers=${JEST_MAX_WORKERS:-8}"
33
33
  },
@@ -73,9 +73,9 @@
73
73
  ]
74
74
  },
75
75
  "dependencies": {
76
- "@aztec/constants": "0.0.1-commit.b655e406",
77
- "@aztec/foundation": "0.0.1-commit.b655e406",
78
- "@aztec/stdlib": "0.0.1-commit.b655e406",
76
+ "@aztec/constants": "0.0.1-commit.b9865e97",
77
+ "@aztec/foundation": "0.0.1-commit.b9865e97",
78
+ "@aztec/stdlib": "0.0.1-commit.b9865e97",
79
79
  "lodash.chunk": "^4.2.0",
80
80
  "lodash.omit": "^4.5.0",
81
81
  "tslib": "^2.4.0"
@@ -86,6 +86,7 @@
86
86
  "@types/lodash.chunk": "^4.2.9",
87
87
  "@types/lodash.omit": "^4.5.9",
88
88
  "@types/node": "^22.15.17",
89
+ "@typescript/native-preview": "7.0.0-dev.20260113.1",
89
90
  "jest": "^30.0.0",
90
91
  "jest-mock-extended": "^4.0.0",
91
92
  "ts-loader": "^9.5.4",
@@ -1,10 +1,10 @@
1
1
  import { CONTRACT_CLASS_PUBLISHED_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 { bufferFromFields } from '@aztec/stdlib/abi';
5
5
  import {
6
6
  type ContractClassPublic,
7
- computeContractClassId,
7
+ type ContractClassPublicWithCommitment,
8
8
  computePublicBytecodeCommitment,
9
9
  } from '@aztec/stdlib/contract';
10
10
  import type { ContractClassLog } from '@aztec/stdlib/logs';
@@ -29,7 +29,7 @@ export class ContractClassPublishedEvent {
29
29
  }
30
30
 
31
31
  static fromLog(log: ContractClassLog) {
32
- // See how the log is serialized in `noir-projects/noir-contracts/contracts/protocol/contract_class_registry/src/events/class_published.nr`.
32
+ // See how the log is serialized in `noir-projects/noir-contracts/contracts/protocol/contract_class_registry_contract/src/events/class_published.nr`.
33
33
  const fieldsWithoutTag = log.fields.fields.slice(1);
34
34
  const reader = new FieldReader(fieldsWithoutTag);
35
35
  const contractClassId = reader.readField();
@@ -47,31 +47,26 @@ export class ContractClassPublishedEvent {
47
47
  );
48
48
  }
49
49
 
50
- async toContractClassPublic(): Promise<ContractClassPublic> {
51
- const computedClassId = await computeContractClassId({
52
- artifactHash: this.artifactHash,
53
- privateFunctionsRoot: this.privateFunctionsRoot,
54
- publicBytecodeCommitment: await computePublicBytecodeCommitment(this.packedPublicBytecode),
55
- });
56
-
57
- if (!computedClassId.equals(this.contractClassId)) {
58
- throw new Error(
59
- `Invalid contract class id: computed ${computedClassId.toString()} but event broadcasted ${this.contractClassId.toString()}`,
60
- );
61
- }
62
-
63
- if (this.version !== 1) {
64
- throw new Error(`Unexpected contract class version ${this.version}`);
65
- }
66
-
50
+ /** Converts the event to a contract class, without computing or validating the bytecode commitment. */
51
+ toContractClassPublic(): ContractClassPublic {
67
52
  return {
68
53
  id: this.contractClassId,
69
54
  artifactHash: this.artifactHash,
70
55
  packedBytecode: this.packedPublicBytecode,
71
56
  privateFunctionsRoot: this.privateFunctionsRoot,
72
- version: this.version,
73
- privateFunctions: [],
74
- utilityFunctions: [],
57
+ version: this.version as 1,
75
58
  };
76
59
  }
60
+
61
+ /** Converts the event to a contract class with its bytecode commitment (expensive). */
62
+ async toContractClassPublicWithBytecodeCommitment(): Promise<ContractClassPublicWithCommitment> {
63
+ const publicBytecodeCommitment = await computePublicBytecodeCommitment(this.packedPublicBytecode);
64
+ return { ...this.toContractClassPublic(), publicBytecodeCommitment };
65
+ }
66
+
67
+ public static extractContractClassEvents(logs: ContractClassLog[]): ContractClassPublishedEvent[] {
68
+ return logs
69
+ .filter((log: ContractClassLog) => ContractClassPublishedEvent.isContractClassPublishedEvent(log))
70
+ .map((log: ContractClassLog) => ContractClassPublishedEvent.fromLog(log));
71
+ }
77
72
  }
@@ -6,18 +6,16 @@ import { makeProtocolContract } from '../make_protocol_contract.js';
6
6
  import type { ProtocolContract } from '../protocol_contract.js';
7
7
 
8
8
  export * from './contract_class_published_event.js';
9
- export * from './private_function_broadcasted_event.js';
10
- export * from './utility_function_broadcasted_event.js';
11
9
 
12
10
  export const ContractClassRegistryArtifact = loadContractArtifact(ContractClassRegistryJson as NoirCompiledContract);
13
11
 
14
12
  let protocolContract: ProtocolContract;
15
13
 
16
14
  /** Returns the canonical deployment of the contract. */
17
- export async function getCanonicalClassRegistry(): Promise<ProtocolContract> {
15
+ export function getCanonicalClassRegistry(): Promise<ProtocolContract> {
18
16
  if (!protocolContract) {
19
17
  const artifact = ContractClassRegistryArtifact;
20
- protocolContract = await makeProtocolContract('ContractClassRegistry', artifact);
18
+ protocolContract = makeProtocolContract('ContractClassRegistry', artifact);
21
19
  }
22
- return protocolContract;
20
+ return Promise.resolve(protocolContract);
23
21
  }
@@ -4,8 +4,6 @@ import { makeProtocolContract } from '../make_protocol_contract.js';
4
4
  import type { ProtocolContract } from '../protocol_contract.js';
5
5
 
6
6
  export * from './contract_class_published_event.js';
7
- export * from './private_function_broadcasted_event.js';
8
- export * from './utility_function_broadcasted_event.js';
9
7
 
10
8
  let protocolContract: ProtocolContract;
11
9
  let protocolContractArtifact: ContractArtifact;
@@ -27,7 +25,7 @@ export async function getContractClassRegistryArtifact(): Promise<ContractArtifa
27
25
  export async function getCanonicalClassRegistry(): Promise<ProtocolContract> {
28
26
  if (!protocolContract) {
29
27
  const contractClassRegistryArtifact = await getContractClassRegistryArtifact();
30
- protocolContract = await makeProtocolContract('ContractClassRegistry', contractClassRegistryArtifact);
28
+ protocolContract = makeProtocolContract('ContractClassRegistry', contractClassRegistryArtifact);
31
29
  }
32
30
  return protocolContract;
33
31
  }
@@ -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
  }