@aztec/standard-contracts 0.0.1-commit.d58ff9d0 → 0.0.1-commit.f5a9928

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 (45) hide show
  1. package/artifacts/AuthRegistry.json +2469 -229
  2. package/artifacts/HandshakeRegistry.json +162 -158
  3. package/artifacts/MultiCallEntrypoint.json +2830 -438
  4. package/artifacts/PublicChecks.json +2751 -665
  5. package/artifacts-historical/HandshakeRegistry-5.0.1.d.json.ts +4 -0
  6. package/artifacts-historical/HandshakeRegistry-5.0.1.json +1 -0
  7. package/dest/handshake-registry/constants.d.ts +2 -1
  8. package/dest/handshake-registry/constants.d.ts.map +1 -1
  9. package/dest/handshake-registry/constants.js +1 -0
  10. package/dest/handshake-registry/historical.d.ts +11 -0
  11. package/dest/handshake-registry/historical.d.ts.map +1 -0
  12. package/dest/handshake-registry/historical.js +38 -0
  13. package/dest/handshake-registry/index.d.ts +4 -2
  14. package/dest/handshake-registry/index.d.ts.map +1 -1
  15. package/dest/handshake-registry/index.js +15 -2
  16. package/dest/handshake-registry/lazy.d.ts +4 -2
  17. package/dest/handshake-registry/lazy.d.ts.map +1 -1
  18. package/dest/handshake-registry/lazy.js +14 -2
  19. package/dest/index.d.ts +3 -1
  20. package/dest/index.d.ts.map +1 -1
  21. package/dest/index.js +2 -0
  22. package/dest/make_standard_contract.d.ts +13 -1
  23. package/dest/make_standard_contract.d.ts.map +1 -1
  24. package/dest/make_standard_contract.js +18 -5
  25. package/dest/preloaded/index.d.ts +8 -0
  26. package/dest/preloaded/index.d.ts.map +1 -0
  27. package/dest/preloaded/index.js +21 -0
  28. package/dest/preloaded/lazy.d.ts +8 -0
  29. package/dest/preloaded/lazy.d.ts.map +1 -0
  30. package/dest/preloaded/lazy.js +21 -0
  31. package/dest/publishable_standard_contracts.d.ts +17 -0
  32. package/dest/publishable_standard_contracts.d.ts.map +1 -0
  33. package/dest/publishable_standard_contracts.js +23 -0
  34. package/dest/standard_contract_data.js +20 -20
  35. package/package.json +4 -3
  36. package/src/handshake-registry/constants.ts +2 -0
  37. package/src/handshake-registry/historical.ts +44 -0
  38. package/src/handshake-registry/index.ts +19 -1
  39. package/src/handshake-registry/lazy.ts +19 -1
  40. package/src/index.ts +2 -0
  41. package/src/make_standard_contract.ts +28 -5
  42. package/src/preloaded/index.ts +19 -0
  43. package/src/preloaded/lazy.ts +19 -0
  44. package/src/publishable_standard_contracts.ts +22 -0
  45. package/src/standard_contract_data.ts +20 -20
@@ -1,5 +1,6 @@
1
1
  import type { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import type { AztecAddress } from '@aztec/stdlib/aztec-address';
3
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES } from './historical.js';
3
4
  export declare const STANDARD_HANDSHAKE_REGISTRY_ADDRESS: AztecAddress;
4
5
  export declare const STANDARD_HANDSHAKE_REGISTRY_CLASS_ID: Fr;
5
6
  export declare const STANDARD_HANDSHAKE_REGISTRY_SALT: Fr;
@@ -8,4 +9,4 @@ export declare const STANDARD_HANDSHAKE_REGISTRY_SALT: Fr;
8
9
  * `resolveCustomRequest` hook. Mirrors `INTERACTIVE_HANDSHAKE_REQUEST_KIND` in the registry contract.
9
10
  */
10
11
  export declare const INTERACTIVE_HANDSHAKE_REQUEST_KIND: Fr;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZHNoYWtlLXJlZ2lzdHJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUloRSxlQUFPLE1BQU0sbUNBQW1DLEVBQUUsWUFBd0QsQ0FBQztBQUMzRyxlQUFPLE1BQU0sb0NBQW9DLElBQTRDLENBQUM7QUFDOUYsZUFBTyxNQUFNLGdDQUFnQyxJQUF5QyxDQUFDO0FBRXZGOzs7R0FHRztBQUlILGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxFQUUvQyxDQUFDIn0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZHNoYWtlLXJlZ2lzdHJ5L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUloRSxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRixlQUFPLE1BQU0sbUNBQW1DLEVBQUUsWUFBd0QsQ0FBQztBQUMzRyxlQUFPLE1BQU0sb0NBQW9DLElBQTRDLENBQUM7QUFDOUYsZUFBTyxNQUFNLGdDQUFnQyxJQUF5QyxDQUFDO0FBRXZGOzs7R0FHRztBQUlILGVBQU8sTUFBTSxrQ0FBa0MsRUFBRSxFQUUvQyxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/constants.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,eAAO,MAAM,mCAAmC,EAAE,YAAwD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,IAA4C,CAAC;AAC9F,eAAO,MAAM,gCAAgC,IAAyC,CAAC;AAEvF;;;GAGG;AAIH,eAAO,MAAM,kCAAkC,EAAE,EAE/C,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/constants.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,EAAE,gDAAgD,EAAE,MAAM,iBAAiB,CAAC;AAEnF,eAAO,MAAM,mCAAmC,EAAE,YAAwD,CAAC;AAC3G,eAAO,MAAM,oCAAoC,IAA4C,CAAC;AAC9F,eAAO,MAAM,gCAAgC,IAAyC,CAAC;AAEvF;;;GAGG;AAIH,eAAO,MAAM,kCAAkC,EAAE,EAE/C,CAAC"}
@@ -3,6 +3,7 @@
3
3
  // `HandshakeRegistry.json` static import.
4
4
  import { sha256ToField } from '@aztec/foundation/crypto/sha256';
5
5
  import { StandardContractAddress, StandardContractClassId, StandardContractSalt } from '../standard_contract_data.js';
6
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES } from './historical.js';
6
7
  export const STANDARD_HANDSHAKE_REGISTRY_ADDRESS = StandardContractAddress.HandshakeRegistry;
7
8
  export const STANDARD_HANDSHAKE_REGISTRY_CLASS_ID = StandardContractClassId.HandshakeRegistry;
8
9
  export const STANDARD_HANDSHAKE_REGISTRY_SALT = StandardContractSalt.HandshakeRegistry;
@@ -0,0 +1,11 @@
1
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
2
+ import type { StandardContractData } from '../make_standard_contract.js';
3
+ /** Deployment data of the standard HandshakeRegistry released in v5.0.1 and superseded in v5.1.0. */
4
+ export declare const HANDSHAKE_REGISTRY_V5_0_1_DATA: StandardContractData;
5
+ /**
6
+ * Addresses of superseded standard HandshakeRegistry deployments that remain live onchain. PXE registers these
7
+ * alongside the current deployment and authorizes their read functions, so contracts compiled against older
8
+ * releases can still reach the registry version they were built for.
9
+ */
10
+ export declare const HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES: AztecAddress[];
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yaWNhbC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRzaGFrZS1yZWdpc3RyeS9oaXN0b3JpY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRCxPQUFPLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXpFLHFHQUFxRztBQUNyRyxlQUFPLE1BQU0sOEJBQThCLEVBQUUsb0JBc0I1QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILGVBQU8sTUFBTSxnREFBZ0QsRUFBRSxZQUFZLEVBRTFFLENBQUMifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historical.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/historical.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,qGAAqG;AACrG,eAAO,MAAM,8BAA8B,EAAE,oBAsB5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gDAAgD,EAAE,YAAY,EAE1E,CAAC"}
@@ -0,0 +1,38 @@
1
+ // Deployment data of superseded standard HandshakeRegistry versions. When a release changes the registry (and thus
2
+ // its canonical address), contracts compiled against earlier releases keep the old address baked into their
3
+ // bytecode, and the old instance stays live onchain. Archiving the retired deployment here (data below, trimmed
4
+ // artifact under `artifacts-historical/`) lets PXE keep registering and authorizing it, so apps built on older
5
+ // releases keep working against newer aztec.js versions.
6
+ import { Fr } from '@aztec/foundation/curves/bn254';
7
+ import { FunctionSelector } from '@aztec/stdlib/abi';
8
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
+ /** Deployment data of the standard HandshakeRegistry released in v5.0.1 and superseded in v5.1.0. */ export const HANDSHAKE_REGISTRY_V5_0_1_DATA = {
10
+ address: AztecAddress.fromStringUnsafe('0x086c3c67589e1141c70ed0ed8ae324c51d3bf7c5637043fd84c424ffb625831d'),
11
+ salt: new Fr(1),
12
+ classId: Fr.fromString('0x020ec1998d06036ddab4ba170e9b0d9b96e52beb58aa5ea83d72b22f589cbe6c'),
13
+ artifactHash: Fr.fromString('0x2dd01b80cabc352f7d01799a6e5dd6255cc0d7f01fe42d270760d0bf0a0b5daf'),
14
+ privateFunctionsRoot: Fr.fromString('0x0c80100ee31d91778c8f3d4453d056a58467b50f86d446f3209b96d87acb354e'),
15
+ publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
16
+ initializationHash: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
17
+ privateFunctions: [
18
+ {
19
+ selector: FunctionSelector.fromField(new Fr(0x19f8b409)),
20
+ vkHash: Fr.fromString('0x033a99c31fd390e320398efa03eb1a34d0db2f2e0201fbb0062aa915f406f3d7')
21
+ },
22
+ {
23
+ selector: FunctionSelector.fromField(new Fr(0xdb548fcf)),
24
+ vkHash: Fr.fromString('0x12964f25be85fded4079591a3871e85d15967c75fd70f3d0edf10d72abfea59c')
25
+ },
26
+ {
27
+ selector: FunctionSelector.fromField(new Fr(0xf1ff839b)),
28
+ vkHash: Fr.fromString('0x049120d4c9a12a2286c83df31064637b53746ea13868b0756174dcb3e036bb9d')
29
+ }
30
+ ]
31
+ };
32
+ /**
33
+ * Addresses of superseded standard HandshakeRegistry deployments that remain live onchain. PXE registers these
34
+ * alongside the current deployment and authorizes their read functions, so contracts compiled against older
35
+ * releases can still reach the registry version they were built for.
36
+ */ export const HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES = [
37
+ HANDSHAKE_REGISTRY_V5_0_1_DATA.address
38
+ ];
@@ -1,6 +1,8 @@
1
1
  import type { StandardContract } from '../standard_contract.js';
2
- export { INTERACTIVE_HANDSHAKE_REQUEST_KIND, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT, } from './constants.js';
2
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES, INTERACTIVE_HANDSHAKE_REQUEST_KIND, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT, } from './constants.js';
3
3
  export declare const HandshakeRegistryArtifact: import("@aztec/stdlib/abi").ContractArtifact;
4
4
  /** Returns the standard deployment of the handshake registry. */
5
5
  export declare function getStandardHandshakeRegistry(): Promise<StandardContract>;
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYW5kc2hha2UtcmVnaXN0cnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsa0NBQWtDLEVBQ2xDLG1DQUFtQyxFQUNuQyxvQ0FBb0MsRUFDcEMsZ0NBQWdDLEdBQ2pDLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsZUFBTyxNQUFNLHlCQUF5Qiw4Q0FBc0UsQ0FBQztBQUk3RyxpRUFBaUU7QUFDakUsd0JBQWdCLDRCQUE0QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUt4RSJ9
6
+ /** Returns superseded standard deployments of the handshake registry that remain live onchain. */
7
+ export declare function getHistoricalStandardHandshakeRegistries(): Promise<StandardContract[]>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oYW5kc2hha2UtcmVnaXN0cnkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUdoRSxPQUFPLEVBQ0wsZ0RBQWdELEVBQ2hELGtDQUFrQyxFQUNsQyxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLGdDQUFnQyxHQUNqQyxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLGVBQU8sTUFBTSx5QkFBeUIsOENBQXNFLENBQUM7QUFJN0csaUVBQWlFO0FBQ2pFLHdCQUFnQiw0QkFBNEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FLeEU7QUFJRCxrR0FBa0c7QUFDbEcsd0JBQWdCLHdDQUF3QyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBVXRGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,yBAAyB,8CAAsE,CAAC;AAI7G,iEAAiE;AACjE,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAKxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,gDAAgD,EAChD,kCAAkC,EAClC,mCAAmC,EACnC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAExB,eAAO,MAAM,yBAAyB,8CAAsE,CAAC;AAI7G,iEAAiE;AACjE,wBAAgB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAKxE;AAID,kGAAkG;AAClG,wBAAgB,wCAAwC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAUtF"}
@@ -1,9 +1,13 @@
1
1
  import { loadContractArtifact } from '@aztec/stdlib/abi';
2
+ import HandshakeRegistryV501Json from '../../artifacts-historical/HandshakeRegistry-5.0.1.json' with {
3
+ type: 'json'
4
+ };
2
5
  import HandshakeRegistryJson from '../../artifacts/HandshakeRegistry.json' with {
3
6
  type: 'json'
4
7
  };
5
- import { makeStandardContract } from '../make_standard_contract.js';
6
- export { INTERACTIVE_HANDSHAKE_REQUEST_KIND, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT } from './constants.js';
8
+ import { makeStandardContract, makeStandardContractFromData } from '../make_standard_contract.js';
9
+ import { HANDSHAKE_REGISTRY_V5_0_1_DATA } from './historical.js';
10
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES, INTERACTIVE_HANDSHAKE_REQUEST_KIND, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT } from './constants.js';
7
11
  export const HandshakeRegistryArtifact = loadContractArtifact(HandshakeRegistryJson);
8
12
  let standardContract;
9
13
  /** Returns the standard deployment of the handshake registry. */ export function getStandardHandshakeRegistry() {
@@ -12,3 +16,12 @@ let standardContract;
12
16
  }
13
17
  return Promise.resolve(standardContract);
14
18
  }
19
+ let historicalStandardContracts;
20
+ /** Returns superseded standard deployments of the handshake registry that remain live onchain. */ export function getHistoricalStandardHandshakeRegistries() {
21
+ if (!historicalStandardContracts) {
22
+ historicalStandardContracts = [
23
+ makeStandardContractFromData(HANDSHAKE_REGISTRY_V5_0_1_DATA, loadContractArtifact(HandshakeRegistryV501Json))
24
+ ];
25
+ }
26
+ return Promise.resolve(historicalStandardContracts);
27
+ }
@@ -1,7 +1,9 @@
1
1
  import { type ContractArtifact } from '@aztec/stdlib/abi';
2
2
  import type { StandardContract } from '../standard_contract.js';
3
- export { STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT, } from './constants.js';
3
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT, } from './constants.js';
4
4
  export declare function getHandshakeRegistryArtifact(): Promise<ContractArtifact>;
5
5
  /** Returns the standard deployment of the handshake registry. */
6
6
  export declare function getStandardHandshakeRegistry(): Promise<StandardContract>;
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRzaGFrZS1yZWdpc3RyeS9sYXp5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF3QixNQUFNLG1CQUFtQixDQUFDO0FBR2hGLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEUsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxvQ0FBb0MsRUFDcEMsZ0NBQWdDLEdBQ2pDLE1BQU0sZ0JBQWdCLENBQUM7QUFLeEIsd0JBQXNCLDRCQUE0QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQVc5RTtBQUVELGlFQUFpRTtBQUNqRSx3QkFBc0IsNEJBQTRCLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBTTlFIn0=
7
+ /** Returns superseded standard deployments of the handshake registry that remain live onchain. */
8
+ export declare function getHistoricalStandardHandshakeRegistries(): Promise<StandardContract[]>;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRzaGFrZS1yZWdpc3RyeS9sYXp5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUF3QixNQUFNLG1CQUFtQixDQUFDO0FBR2hGLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHaEUsT0FBTyxFQUNMLGdEQUFnRCxFQUNoRCxtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLGdDQUFnQyxHQUNqQyxNQUFNLGdCQUFnQixDQUFDO0FBS3hCLHdCQUFzQiw0QkFBNEIsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FXOUU7QUFFRCxpRUFBaUU7QUFDakUsd0JBQXNCLDRCQUE0QixJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQU05RTtBQUlELGtHQUFrRztBQUNsRyx3QkFBc0Isd0NBQXdDLElBQUksT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FXNUYifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,mCAAmC,EACnC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAKxB,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAW9E;AAED,iEAAiE;AACjE,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAM9E"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/handshake-registry/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAGhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,gDAAgD,EAChD,mCAAmC,EACnC,oCAAoC,EACpC,gCAAgC,GACjC,MAAM,gBAAgB,CAAC;AAKxB,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAW9E;AAED,iEAAiE;AACjE,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,gBAAgB,CAAC,CAM9E;AAID,kGAAkG;AAClG,wBAAsB,wCAAwC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAW5F"}
@@ -1,6 +1,7 @@
1
1
  import { loadContractArtifact } from '@aztec/stdlib/abi';
2
- import { makeStandardContract } from '../make_standard_contract.js';
3
- export { STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT } from './constants.js';
2
+ import { makeStandardContract, makeStandardContractFromData } from '../make_standard_contract.js';
3
+ import { HANDSHAKE_REGISTRY_V5_0_1_DATA } from './historical.js';
4
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES, STANDARD_HANDSHAKE_REGISTRY_ADDRESS, STANDARD_HANDSHAKE_REGISTRY_CLASS_ID, STANDARD_HANDSHAKE_REGISTRY_SALT } from './constants.js';
4
5
  let standardContract;
5
6
  let standardContractArtifact;
6
7
  export async function getHandshakeRegistryArtifact() {
@@ -22,3 +23,14 @@ export async function getHandshakeRegistryArtifact() {
22
23
  }
23
24
  return standardContract;
24
25
  }
26
+ let historicalStandardContracts;
27
+ /** Returns superseded standard deployments of the handshake registry that remain live onchain. */ export async function getHistoricalStandardHandshakeRegistries() {
28
+ if (!historicalStandardContracts) {
29
+ // Same bundler-compatible lazy import as `getHandshakeRegistryArtifact` above.
30
+ const { default: handshakeRegistryV501Json } = await import('../../artifacts-historical/HandshakeRegistry-5.0.1.json');
31
+ historicalStandardContracts = [
32
+ makeStandardContractFromData(HANDSHAKE_REGISTRY_V5_0_1_DATA, loadContractArtifact(handshakeRegistryV501Json))
33
+ ];
34
+ }
35
+ return historicalStandardContracts;
36
+ }
package/dest/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './auth-registry/index.js';
2
2
  export * from './handshake-registry/index.js';
3
3
  export * from './multi-call-entrypoint/index.js';
4
+ export * from './preloaded/index.js';
4
5
  export * from './public-checks/index.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDBCQUEwQixDQUFDIn0=
6
+ export * from './publishable_standard_contracts.js';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qCAAqC,CAAC"}
package/dest/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  export * from './auth-registry/index.js';
2
2
  export * from './handshake-registry/index.js';
3
3
  export * from './multi-call-entrypoint/index.js';
4
+ export * from './preloaded/index.js';
4
5
  export * from './public-checks/index.js';
6
+ export * from './publishable_standard_contracts.js';
@@ -1,9 +1,21 @@
1
+ import { Fr } from '@aztec/foundation/curves/bn254';
1
2
  import type { ContractArtifact } from '@aztec/stdlib/abi';
3
+ import type { ContractData } from './contract_data.js';
2
4
  import type { StandardContract } from './standard_contract.js';
3
5
  import { type StandardContractName } from './standard_contract_data.js';
6
+ /** Precomputed deployment values of a standard contract, enough to reconstruct it without any hash computations. */
7
+ export type StandardContractData = ContractData & {
8
+ salt: Fr;
9
+ };
4
10
  /**
5
11
  * Reconstructs a StandardContract from precomputed data without performing any hash computations.
6
12
  * Internal to the standard-contracts package — not part of the public API.
7
13
  */
8
14
  export declare function makeStandardContract(name: StandardContractName, artifact: ContractArtifact): StandardContract;
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9zdGFuZGFyZF9jb250cmFjdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21ha2Vfc3RhbmRhcmRfY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkxRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9ELE9BQU8sRUFLTCxLQUFLLG9CQUFvQixFQUcxQixNQUFNLDZCQUE2QixDQUFDO0FBRXJDOzs7R0FHRztBQUNILHdCQUFnQixvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixHQUFHLGdCQUFnQixDQThCN0cifQ==
15
+ /**
16
+ * Reconstructs a StandardContract from explicit precomputed data, for deployments not covered by the generated
17
+ * `standard_contract_data.ts` records (namely historical deployments from previous releases).
18
+ * Internal to the standard-contracts package, not part of the public API.
19
+ */
20
+ export declare function makeStandardContractFromData(data: StandardContractData, artifact: ContractArtifact): StandardContract;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9zdGFuZGFyZF9jb250cmFjdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL21ha2Vfc3RhbmRhcmRfY29udHJhY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJMUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBS0wsS0FBSyxvQkFBb0IsRUFHMUIsTUFBTSw2QkFBNkIsQ0FBQztBQUVyQyxvSEFBb0g7QUFDcEgsTUFBTSxNQUFNLG9CQUFvQixHQUFHLFlBQVksR0FBRztJQUFFLElBQUksRUFBRSxFQUFFLENBQUE7Q0FBRSxDQUFDO0FBRS9EOzs7R0FHRztBQUNILHdCQUFnQixvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixHQUFHLGdCQUFnQixDQWU3RztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsNEJBQTRCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0EyQnJIIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"make_standard_contract.d.ts","sourceRoot":"","sources":["../src/make_standard_contract.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAKL,KAAK,oBAAoB,EAG1B,MAAM,6BAA6B,CAAC;AAErC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CA8B7G"}
1
+ {"version":3,"file":"make_standard_contract.d.ts","sourceRoot":"","sources":["../src/make_standard_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAKL,KAAK,oBAAoB,EAG1B,MAAM,6BAA6B,CAAC;AAErC,oHAAoH;AACpH,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAAE,IAAI,EAAE,EAAE,CAAA;CAAE,CAAC;AAE/D;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAe7G;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CA2BrH"}
@@ -6,11 +6,24 @@ import { StandardContractAddress, StandardContractClassId, StandardContractClass
6
6
  * Reconstructs a StandardContract from precomputed data without performing any hash computations.
7
7
  * Internal to the standard-contracts package — not part of the public API.
8
8
  */ export function makeStandardContract(name, artifact) {
9
- const address = StandardContractAddress[name];
10
- const salt = StandardContractSalt[name];
11
- const classId = StandardContractClassId[name];
12
9
  const { artifactHash, privateFunctionsRoot, publicBytecodeCommitment } = StandardContractClassIdPreimage[name];
13
- const initializationHash = StandardContractInitializationHash[name];
10
+ return makeStandardContractFromData({
11
+ address: StandardContractAddress[name],
12
+ salt: StandardContractSalt[name],
13
+ classId: StandardContractClassId[name],
14
+ artifactHash,
15
+ privateFunctionsRoot,
16
+ publicBytecodeCommitment,
17
+ initializationHash: StandardContractInitializationHash[name],
18
+ privateFunctions: StandardContractPrivateFunctions[name]
19
+ }, artifact);
20
+ }
21
+ /**
22
+ * Reconstructs a StandardContract from explicit precomputed data, for deployments not covered by the generated
23
+ * `standard_contract_data.ts` records (namely historical deployments from previous releases).
24
+ * Internal to the standard-contracts package, not part of the public API.
25
+ */ export function makeStandardContractFromData(data, artifact) {
26
+ const { address, salt, classId, artifactHash, privateFunctionsRoot, publicBytecodeCommitment, initializationHash } = data;
14
27
  const contractClass = {
15
28
  id: classId,
16
29
  version: 1,
@@ -18,7 +31,7 @@ import { StandardContractAddress, StandardContractClassId, StandardContractClass
18
31
  privateFunctionsRoot,
19
32
  publicBytecodeCommitment,
20
33
  packedBytecode: artifact.functions.find((f)=>f.name === 'public_dispatch')?.bytecode ?? Buffer.alloc(0),
21
- privateFunctions: StandardContractPrivateFunctions[name]
34
+ privateFunctions: data.privateFunctions
22
35
  };
23
36
  const instance = {
24
37
  version: 2,
@@ -0,0 +1,8 @@
1
+ import type { StandardContract } from '../standard_contract.js';
2
+ /**
3
+ * Returns the standard contracts every PXE registers by default: the MultiCallEntrypoint, the AuthRegistry, and the
4
+ * HandshakeRegistry, plus superseded HandshakeRegistry deployments that remain live onchain so contracts compiled
5
+ * against older releases keep resolving the registry version they were built for.
6
+ */
7
+ export declare function getDefaultStandardPreloadedContracts(): Promise<StandardContract[]>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcmVsb2FkZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRTs7OztHQUlHO0FBQ0gsd0JBQXNCLG9DQUFvQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBUXhGIn0=
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preloaded/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQxF"}
@@ -0,0 +1,21 @@
1
+ import { getStandardAuthRegistry } from '../auth-registry/index.js';
2
+ import { getHistoricalStandardHandshakeRegistries, getStandardHandshakeRegistry } from '../handshake-registry/index.js';
3
+ import { getStandardMultiCallEntrypoint } from '../multi-call-entrypoint/index.js';
4
+ /**
5
+ * Returns the standard contracts every PXE registers by default: the MultiCallEntrypoint, the AuthRegistry, and the
6
+ * HandshakeRegistry, plus superseded HandshakeRegistry deployments that remain live onchain so contracts compiled
7
+ * against older releases keep resolving the registry version they were built for.
8
+ */ export async function getDefaultStandardPreloadedContracts() {
9
+ const [multiCallEntrypoint, authRegistry, handshakeRegistry, historicalHandshakeRegistries] = await Promise.all([
10
+ getStandardMultiCallEntrypoint(),
11
+ getStandardAuthRegistry(),
12
+ getStandardHandshakeRegistry(),
13
+ getHistoricalStandardHandshakeRegistries()
14
+ ]);
15
+ return [
16
+ multiCallEntrypoint,
17
+ authRegistry,
18
+ handshakeRegistry,
19
+ ...historicalHandshakeRegistries
20
+ ];
21
+ }
@@ -0,0 +1,8 @@
1
+ import type { StandardContract } from '../standard_contract.js';
2
+ /**
3
+ * Returns the standard contracts every PXE registers by default: the MultiCallEntrypoint, the AuthRegistry, and the
4
+ * HandshakeRegistry, plus superseded HandshakeRegistry deployments that remain live onchain so contracts compiled
5
+ * against older releases keep resolving the registry version they were built for.
6
+ */
7
+ export declare function getDefaultStandardPreloadedContracts(): Promise<StandardContract[]>;
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3ByZWxvYWRlZC9sYXp5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFaEU7Ozs7R0FJRztBQUNILHdCQUFzQixvQ0FBb0MsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQVF4RiJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/preloaded/lazy.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE;;;;GAIG;AACH,wBAAsB,oCAAoC,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAQxF"}
@@ -0,0 +1,21 @@
1
+ import { getStandardAuthRegistry } from '../auth-registry/lazy.js';
2
+ import { getHistoricalStandardHandshakeRegistries, getStandardHandshakeRegistry } from '../handshake-registry/lazy.js';
3
+ import { getStandardMultiCallEntrypoint } from '../multi-call-entrypoint/lazy.js';
4
+ /**
5
+ * Returns the standard contracts every PXE registers by default: the MultiCallEntrypoint, the AuthRegistry, and the
6
+ * HandshakeRegistry, plus superseded HandshakeRegistry deployments that remain live onchain so contracts compiled
7
+ * against older releases keep resolving the registry version they were built for.
8
+ */ export async function getDefaultStandardPreloadedContracts() {
9
+ const [multiCallEntrypoint, authRegistry, handshakeRegistry, historicalHandshakeRegistries] = await Promise.all([
10
+ getStandardMultiCallEntrypoint(),
11
+ getStandardAuthRegistry(),
12
+ getStandardHandshakeRegistry(),
13
+ getHistoricalStandardHandshakeRegistries()
14
+ ]);
15
+ return [
16
+ multiCallEntrypoint,
17
+ authRegistry,
18
+ handshakeRegistry,
19
+ ...historicalHandshakeRegistries
20
+ ];
21
+ }
@@ -0,0 +1,17 @@
1
+ import type { StandardContract } from './standard_contract.js';
2
+ /**
3
+ * Returns the standard contracts that are published on-chain (class registration + instance
4
+ * publication) before their public functions can be called: AuthRegistry, PublicChecks, and
5
+ * HandshakeRegistry. These are exactly the contracts guarded by the `ensure*Published` e2e setup
6
+ * helpers.
7
+ *
8
+ * MultiCallEntrypoint is deliberately excluded: it is a client-side entrypoint used to encode
9
+ * batched private calls and is never published for public execution.
10
+ *
11
+ * This is the single source of truth for the set of standard contracts that test environments seed
12
+ * at genesis (registration/deployment nullifiers) and preload into the archiver contract store, so
13
+ * the two stay consistent — preloading a class whose nullifier is not seeded would recreate the
14
+ * publish-collision bug that genesis seeding avoids.
15
+ */
16
+ export declare function getPublishableStandardContracts(): Promise<StandardContract[]>;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGFibGVfc3RhbmRhcmRfY29udHJhY3RzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHVibGlzaGFibGVfc3RhbmRhcmRfY29udHJhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFL0Q7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILHdCQUFnQiwrQkFBK0IsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUU3RSJ9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publishable_standard_contracts.d.ts","sourceRoot":"","sources":["../src/publishable_standard_contracts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAE7E"}
@@ -0,0 +1,23 @@
1
+ import { getStandardAuthRegistry } from './auth-registry/index.js';
2
+ import { getStandardHandshakeRegistry } from './handshake-registry/index.js';
3
+ import { getStandardPublicChecks } from './public-checks/index.js';
4
+ /**
5
+ * Returns the standard contracts that are published on-chain (class registration + instance
6
+ * publication) before their public functions can be called: AuthRegistry, PublicChecks, and
7
+ * HandshakeRegistry. These are exactly the contracts guarded by the `ensure*Published` e2e setup
8
+ * helpers.
9
+ *
10
+ * MultiCallEntrypoint is deliberately excluded: it is a client-side entrypoint used to encode
11
+ * batched private calls and is never published for public execution.
12
+ *
13
+ * This is the single source of truth for the set of standard contracts that test environments seed
14
+ * at genesis (registration/deployment nullifiers) and preload into the archiver contract store, so
15
+ * the two stay consistent — preloading a class whose nullifier is not seeded would recreate the
16
+ * publish-collision bug that genesis seeding avoids.
17
+ */ export function getPublishableStandardContracts() {
18
+ return Promise.all([
19
+ getStandardAuthRegistry(),
20
+ getStandardPublicChecks(),
21
+ getStandardHandshakeRegistry()
22
+ ]);
23
+ }
@@ -15,36 +15,36 @@ export const StandardContractSalt = {
15
15
  HandshakeRegistry: new Fr(1)
16
16
  };
17
17
  export const StandardContractAddress = {
18
- AuthRegistry: AztecAddress.fromStringUnsafe('0x1fe01dde371ec27308a4e5d1f08d2e734b773352c1f47d9d5b0974c1729ac16e'),
19
- MultiCallEntrypoint: AztecAddress.fromStringUnsafe('0x124b09dd9229a0e476e5d5affcbd917c16400d7673a6b589497650afc18456da'),
20
- PublicChecks: AztecAddress.fromStringUnsafe('0x0de6d5fa41576a2289a289180c5ba3b1b75d19a630c779cfbef4480e27ac3e28'),
21
- HandshakeRegistry: AztecAddress.fromStringUnsafe('0x1f81756ef59026857b437350d1123ea317cacf3a20b95c77586d618591b8bb93')
18
+ AuthRegistry: AztecAddress.fromStringUnsafe('0x1e8e7e73c592a1b1c9199b4b655ddc7a16fa8a8488df595610b71d3dc1cc666c'),
19
+ MultiCallEntrypoint: AztecAddress.fromStringUnsafe('0x246d60af8b79a5dceece7d2388921203401c0df02ce674c5781c6c2162922986'),
20
+ PublicChecks: AztecAddress.fromStringUnsafe('0x031b75e2c220f6a6f27da5d61f7b2a12756a127fd25b95fad5da1c5520994b18'),
21
+ HandshakeRegistry: AztecAddress.fromStringUnsafe('0x06127814dca78709650de6629637194f7381d2e05b35eb9d53a4746636c9aa9d')
22
22
  };
23
23
  export const StandardContractClassId = {
24
- AuthRegistry: Fr.fromString('0x07429c3c22c191987452fe7c8daeb56b8a4ada6d94fed30e7fb6659da36c5099'),
25
- MultiCallEntrypoint: Fr.fromString('0x28aa32d375f8c4acb57cf9ee899bd3b08a5a148cecf2064602fe818aafdf6e33'),
26
- PublicChecks: Fr.fromString('0x0ac1bd3e46990fdcd9c4182ca9dab6d9b22dda5ee1a9fe581dde36a6ea639596'),
27
- HandshakeRegistry: Fr.fromString('0x1544fd83a3880eca21d17789665e5281318ea4f9395aef53217463deb5b82619')
24
+ AuthRegistry: Fr.fromString('0x04182c4b482c8e60c386e473f6dbb6bb3e2ef18e5156f7c9db5ac46af81abdcf'),
25
+ MultiCallEntrypoint: Fr.fromString('0x2f20566eaff9091697f8f5c43a19041267c7591d54074b57043eae90fca8ea64'),
26
+ PublicChecks: Fr.fromString('0x04bc93d415c4d48acab6063b6410f74e1cc257ba8e519020f8773b4ce8ccd31e'),
27
+ HandshakeRegistry: Fr.fromString('0x2e04c07c83ee8107e921c3ae4ade010ee183860a89b7534ea3367efb561d2c3b')
28
28
  };
29
29
  export const StandardContractClassIdPreimage = {
30
30
  AuthRegistry: {
31
- artifactHash: Fr.fromString('0x0d029bbbf1f83e4c8c088213c7b7d200d2e89d2085183f53151d59ba369e1fab'),
32
- privateFunctionsRoot: Fr.fromString('0x211b33685bcb41a5d3a2a84d8ec021c7280392cb4aae5a778eafe5282dbba740'),
31
+ artifactHash: Fr.fromString('0x0f050d2517afac6974e02937314e095569f4c7bb70d98cea097c562313872c8c'),
32
+ privateFunctionsRoot: Fr.fromString('0x1b16157ab0b322bcaf3de5cb197b276c5e29ca3668a0c440668ca56aa7dfff77'),
33
33
  publicBytecodeCommitment: Fr.fromString('0x0c7984b020afc901da3b5898b8f94d1d9a09ea2b37d6e0043409abc0b0332906')
34
34
  },
35
35
  MultiCallEntrypoint: {
36
- artifactHash: Fr.fromString('0x28f8874c4768c1072922ca41c49ba1f302aefb7f858ebb289dc17c993abc8528'),
37
- privateFunctionsRoot: Fr.fromString('0x2cd2008a79f59c3f2caa996962b0b35889f5ee8fcf175282406a2a521550cc70'),
36
+ artifactHash: Fr.fromString('0x2c0df1970a0307e54c4445670a7f915a77ed57650ffd37a76c47e512c88e0302'),
37
+ privateFunctionsRoot: Fr.fromString('0x10228bc99b6715f15c866a1df0d9cb63c31920cb8e61a6b79058bf98658d7f39'),
38
38
  publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e')
39
39
  },
40
40
  PublicChecks: {
41
- artifactHash: Fr.fromString('0x1149d0cd4421cb20fccdcf2c73c79df4e773e30f6c4b8d24e8c1cd718d34d50b'),
41
+ artifactHash: Fr.fromString('0x0e6f595db5f0830c2f52f1a5aec5cc85193b89a47408cfbbb2d6ad8f3a7c8a52'),
42
42
  privateFunctionsRoot: Fr.fromString('0x202860adb1b8975971eeaf571aaaa88a27f4035290d58532ae7d60b0dfaad54c'),
43
43
  publicBytecodeCommitment: Fr.fromString('0x013c4f854a5c87c9daf86c5f9bc07a42c2a061f1d924a5b3564ec7edc8e18cb7')
44
44
  },
45
45
  HandshakeRegistry: {
46
- artifactHash: Fr.fromString('0x1c02c2ba7d53ec4fd5450d6dc7f86ab1b17a6fcfa5a50850405e7529acc9638b'),
47
- privateFunctionsRoot: Fr.fromString('0x10288478f6ce295fa9a831e0b712773f4c59287a6bc6ae57b5948519b94f7171'),
46
+ artifactHash: Fr.fromString('0x005a9c5db229999895a873e4c2bcaf6ca2523522b5c520c52c39b1bdb1b5faee'),
47
+ privateFunctionsRoot: Fr.fromString('0x1bb83fa540ba6654ffe4a4c75ec9349180a2f0ecd0d3851ca28d665ab2926c73'),
48
48
  publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e')
49
49
  }
50
50
  };
@@ -58,28 +58,28 @@ export const StandardContractPrivateFunctions = {
58
58
  AuthRegistry: [
59
59
  {
60
60
  selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000079a3d418')),
61
- vkHash: Fr.fromString('0x2979f430e7a6d4c2222a35a5e00f9c8c0e41c5ad9afa95d8d718f5c1f57ac4f2')
61
+ vkHash: Fr.fromString('0x2d46cdec4cc2afd813ba2b50106dba455821e4c7b3c10f1c7293bbc759dccf64')
62
62
  }
63
63
  ],
64
64
  MultiCallEntrypoint: [
65
65
  {
66
66
  selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000f04908a9')),
67
- vkHash: Fr.fromString('0x1bc6ab9244a92fe2143e42a1856ea0b29415e0530eda89dd634a0b8630780593')
67
+ vkHash: Fr.fromString('0x0699bae67183ce084da1cd76ce05d18f45f796237f2baafaf7d4bfbf9663c433')
68
68
  }
69
69
  ],
70
70
  PublicChecks: [],
71
71
  HandshakeRegistry: [
72
72
  {
73
73
  selector: FunctionSelector.fromField(Fr.fromString('0x0000000000000000000000000000000000000000000000000000000019f8b409')),
74
- vkHash: Fr.fromString('0x136fb94bf8b1bfdb25f4d6c6ced06b8db140a268330308027b32ced3151faa81')
74
+ vkHash: Fr.fromString('0x195d78c4fa1f3f8accaa2dcc45115c5b0536e68cdd4c06f5999185554f7b73e4')
75
75
  },
76
76
  {
77
77
  selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000db548fcf')),
78
- vkHash: Fr.fromString('0x06bfb80a0e8d1c8f941c7f91c233e56febcb60300c4dcbf878df87120aa9a89f')
78
+ vkHash: Fr.fromString('0x06ea812f1c792a864a36003312327d78995fdd894fbf48d54928a315e84df342')
79
79
  },
80
80
  {
81
81
  selector: FunctionSelector.fromField(Fr.fromString('0x00000000000000000000000000000000000000000000000000000000f1ff839b')),
82
- vkHash: Fr.fromString('0x05eef6388f1678ef7a24ed7829a15abf8fb76922ed73477114ff4828e2772535')
82
+ vkHash: Fr.fromString('0x049120d4c9a12a2286c83df31064637b53746ea13868b0756174dcb3e036bb9d')
83
83
  }
84
84
  ]
85
85
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@aztec/standard-contracts",
3
3
  "homepage": "https://github.com/AztecProtocol/aztec-packages/tree/master/yarn-project/standard-contracts",
4
4
  "description": "Standard non-protocol contracts for the Aztec Network",
5
- "version": "0.0.1-commit.d58ff9d0",
5
+ "version": "0.0.1-commit.f5a9928",
6
6
  "type": "module",
7
7
  "exports": {
8
8
  ".": "./dest/index.js",
@@ -74,8 +74,8 @@
74
74
  ]
75
75
  },
76
76
  "dependencies": {
77
- "@aztec/foundation": "0.0.1-commit.d58ff9d0",
78
- "@aztec/stdlib": "0.0.1-commit.d58ff9d0",
77
+ "@aztec/foundation": "0.0.1-commit.f5a9928",
78
+ "@aztec/stdlib": "0.0.1-commit.f5a9928",
79
79
  "tslib": "^2.4.0"
80
80
  },
81
81
  "devDependencies": {
@@ -95,6 +95,7 @@
95
95
  "src",
96
96
  "!*.test.*",
97
97
  "artifacts",
98
+ "artifacts-historical",
98
99
  "!src/scripts/*"
99
100
  ],
100
101
  "engines": {
@@ -7,6 +7,8 @@ import type { AztecAddress } from '@aztec/stdlib/aztec-address';
7
7
 
8
8
  import { StandardContractAddress, StandardContractClassId, StandardContractSalt } from '../standard_contract_data.js';
9
9
 
10
+ export { HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES } from './historical.js';
11
+
10
12
  export const STANDARD_HANDSHAKE_REGISTRY_ADDRESS: AztecAddress = StandardContractAddress.HandshakeRegistry;
11
13
  export const STANDARD_HANDSHAKE_REGISTRY_CLASS_ID = StandardContractClassId.HandshakeRegistry;
12
14
  export const STANDARD_HANDSHAKE_REGISTRY_SALT = StandardContractSalt.HandshakeRegistry;
@@ -0,0 +1,44 @@
1
+ // Deployment data of superseded standard HandshakeRegistry versions. When a release changes the registry (and thus
2
+ // its canonical address), contracts compiled against earlier releases keep the old address baked into their
3
+ // bytecode, and the old instance stays live onchain. Archiving the retired deployment here (data below, trimmed
4
+ // artifact under `artifacts-historical/`) lets PXE keep registering and authorizing it, so apps built on older
5
+ // releases keep working against newer aztec.js versions.
6
+ import { Fr } from '@aztec/foundation/curves/bn254';
7
+ import { FunctionSelector } from '@aztec/stdlib/abi';
8
+ import { AztecAddress } from '@aztec/stdlib/aztec-address';
9
+
10
+ import type { StandardContractData } from '../make_standard_contract.js';
11
+
12
+ /** Deployment data of the standard HandshakeRegistry released in v5.0.1 and superseded in v5.1.0. */
13
+ export const HANDSHAKE_REGISTRY_V5_0_1_DATA: StandardContractData = {
14
+ address: AztecAddress.fromStringUnsafe('0x086c3c67589e1141c70ed0ed8ae324c51d3bf7c5637043fd84c424ffb625831d'),
15
+ salt: new Fr(1),
16
+ classId: Fr.fromString('0x020ec1998d06036ddab4ba170e9b0d9b96e52beb58aa5ea83d72b22f589cbe6c'),
17
+ artifactHash: Fr.fromString('0x2dd01b80cabc352f7d01799a6e5dd6255cc0d7f01fe42d270760d0bf0a0b5daf'),
18
+ privateFunctionsRoot: Fr.fromString('0x0c80100ee31d91778c8f3d4453d056a58467b50f86d446f3209b96d87acb354e'),
19
+ publicBytecodeCommitment: Fr.fromString('0x0ce4c618c3ed7f3a20410e618c06bb701e150af7fe28a3e92f68e7733809f33e'),
20
+ initializationHash: Fr.fromString('0x0000000000000000000000000000000000000000000000000000000000000000'),
21
+ privateFunctions: [
22
+ {
23
+ selector: FunctionSelector.fromField(new Fr(0x19f8b409)),
24
+ vkHash: Fr.fromString('0x033a99c31fd390e320398efa03eb1a34d0db2f2e0201fbb0062aa915f406f3d7'),
25
+ },
26
+ {
27
+ selector: FunctionSelector.fromField(new Fr(0xdb548fcf)),
28
+ vkHash: Fr.fromString('0x12964f25be85fded4079591a3871e85d15967c75fd70f3d0edf10d72abfea59c'),
29
+ },
30
+ {
31
+ selector: FunctionSelector.fromField(new Fr(0xf1ff839b)),
32
+ vkHash: Fr.fromString('0x049120d4c9a12a2286c83df31064637b53746ea13868b0756174dcb3e036bb9d'),
33
+ },
34
+ ],
35
+ };
36
+
37
+ /**
38
+ * Addresses of superseded standard HandshakeRegistry deployments that remain live onchain. PXE registers these
39
+ * alongside the current deployment and authorizes their read functions, so contracts compiled against older
40
+ * releases can still reach the registry version they were built for.
41
+ */
42
+ export const HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES: AztecAddress[] = [
43
+ HANDSHAKE_REGISTRY_V5_0_1_DATA.address,
44
+ ];
@@ -1,11 +1,14 @@
1
1
  import { loadContractArtifact } from '@aztec/stdlib/abi';
2
2
  import type { NoirCompiledContract } from '@aztec/stdlib/noir';
3
3
 
4
+ import HandshakeRegistryV501Json from '../../artifacts-historical/HandshakeRegistry-5.0.1.json' with { type: 'json' };
4
5
  import HandshakeRegistryJson from '../../artifacts/HandshakeRegistry.json' with { type: 'json' };
5
- import { makeStandardContract } from '../make_standard_contract.js';
6
+ import { makeStandardContract, makeStandardContractFromData } from '../make_standard_contract.js';
6
7
  import type { StandardContract } from '../standard_contract.js';
8
+ import { HANDSHAKE_REGISTRY_V5_0_1_DATA } from './historical.js';
7
9
 
8
10
  export {
11
+ HISTORICAL_STANDARD_HANDSHAKE_REGISTRY_ADDRESSES,
9
12
  INTERACTIVE_HANDSHAKE_REQUEST_KIND,
10
13
  STANDARD_HANDSHAKE_REGISTRY_ADDRESS,
11
14
  STANDARD_HANDSHAKE_REGISTRY_CLASS_ID,
@@ -23,3 +26,18 @@ export function getStandardHandshakeRegistry(): Promise<StandardContract> {
23
26
  }
24
27
  return Promise.resolve(standardContract);
25
28
  }
29
+
30
+ let historicalStandardContracts: StandardContract[];
31
+
32
+ /** Returns superseded standard deployments of the handshake registry that remain live onchain. */
33
+ export function getHistoricalStandardHandshakeRegistries(): Promise<StandardContract[]> {
34
+ if (!historicalStandardContracts) {
35
+ historicalStandardContracts = [
36
+ makeStandardContractFromData(
37
+ HANDSHAKE_REGISTRY_V5_0_1_DATA,
38
+ loadContractArtifact(HandshakeRegistryV501Json as NoirCompiledContract),
39
+ ),
40
+ ];
41
+ }
42
+ return Promise.resolve(historicalStandardContracts);
43
+ }