@aztec/stdlib 5.0.0-nightly.20260702 → 5.0.0-nightly.20260704

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.
@@ -1,7 +1,7 @@
1
1
  import { Fr } from '@aztec/foundation/curves/bn254';
2
2
  import { type FunctionAbi, FunctionSelector } from '../abi/index.js';
3
3
  import type { AztecAddress } from '../aztec-address/index.js';
4
- import type { ContractInstance } from './interfaces/contract_instance.js';
4
+ import type { ContractInstance, ContractInstancePreimage } from './interfaces/contract_instance.js';
5
5
  import type { PartialAddress } from './partial_address.js';
6
6
  /**
7
7
  * Returns the deployment address for a given contract instance.
@@ -12,7 +12,7 @@ import type { PartialAddress } from './partial_address.js';
12
12
  * ```
13
13
  * @param instance - A contract instance for which to calculate the deployment address.
14
14
  */
15
- export declare function computeContractAddressFromInstance(instance: ContractInstance | ({
15
+ export declare function computeContractAddressFromInstance(instance: ContractInstancePreimage | ({
16
16
  originalContractClassId: Fr;
17
17
  saltedInitializationHash: Fr;
18
18
  } & Pick<ContractInstance, 'publicKeys'>)): Promise<AztecAddress>;
@@ -43,4 +43,4 @@ export declare function computeInitializationHash(initFn: FunctionAbi | undefine
43
43
  * @returns The hash.
44
44
  */
45
45
  export declare function computeInitializationHashFromEncodedArgs(initFn: FunctionSelector, encodedArgs: Fr[]): Promise<Fr>;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfYWRkcmVzcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2NvbnRyYWN0X2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTNEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGtDQUFrQyxDQUN0RCxRQUFRLEVBQ0osZ0JBQWdCLEdBQ2hCLENBQUM7SUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUE7Q0FBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUN6RyxPQUFPLENBQUMsWUFBWSxDQUFDLENBR3ZCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUN6QyxRQUFRLEVBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLHlCQUF5QixHQUFHLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsR0FDakg7SUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUE7Q0FBRSxHQUNoRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBVXpCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsR0FDOUYsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUtiO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IseUJBQXlCLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FPekc7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQix3Q0FBd0MsQ0FDNUQsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixXQUFXLEVBQUUsRUFBRSxFQUFFLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FHYiJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfYWRkcmVzcy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnRyYWN0L2NvbnRyYWN0X2FkZHJlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sRUFBRSxLQUFLLFdBQVcsRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RixPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUc5RCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BHLE9BQU8sS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSTNEOzs7Ozs7OztHQVFHO0FBQ0gsd0JBQXNCLGtDQUFrQyxDQUN0RCxRQUFRLEVBQ0osd0JBQXdCLEdBQ3hCLENBQUM7SUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUE7Q0FBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsQ0FBQyxHQUN6RyxPQUFPLENBQUMsWUFBWSxDQUFDLENBR3ZCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQXNCLHFCQUFxQixDQUN6QyxRQUFRLEVBQ0osSUFBSSxDQUFDLGdCQUFnQixFQUFFLHlCQUF5QixHQUFHLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsR0FDakg7SUFBRSx1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFBQyx3QkFBd0IsRUFBRSxFQUFFLENBQUE7Q0FBRSxHQUNoRSxPQUFPLENBQUMsY0FBYyxDQUFDLENBVXpCO0FBRUQ7OztHQUdHO0FBQ0gsd0JBQWdCLCtCQUErQixDQUM3QyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG9CQUFvQixHQUFHLE1BQU0sR0FBRyxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsR0FDOUYsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUtiO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IseUJBQXlCLENBQUMsTUFBTSxFQUFFLFdBQVcsR0FBRyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FPekc7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQix3Q0FBd0MsQ0FDNUQsTUFBTSxFQUFFLGdCQUFnQixFQUN4QixXQUFXLEVBQUUsRUFBRSxFQUFFLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FHYiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"contract_address.d.ts","sourceRoot":"","sources":["../../src/contract/contract_address.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,WAAW,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EACJ,gBAAgB,GAChB,CAAC;IAAE,uBAAuB,EAAE,EAAE,CAAC;IAAC,wBAAwB,EAAE,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EACJ,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC,GACjH;IAAE,uBAAuB,EAAE,EAAE,CAAC;IAAC,wBAAwB,EAAE,EAAE,CAAA;CAAE,GAChE,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC,GAC9F,OAAO,CAAC,EAAE,CAAC,CAKb;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAOzG;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,EAAE,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,CAGb"}
1
+ {"version":3,"file":"contract_address.d.ts","sourceRoot":"","sources":["../../src/contract/contract_address.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,KAAK,WAAW,EAAE,gBAAgB,EAAmB,MAAM,iBAAiB,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D;;;;;;;;GAQG;AACH,wBAAsB,kCAAkC,CACtD,QAAQ,EACJ,wBAAwB,GACxB,CAAC;IAAE,uBAAuB,EAAE,EAAE,CAAC;IAAC,wBAAwB,EAAE,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC,CAGvB;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EACJ,IAAI,CAAC,gBAAgB,EAAE,yBAAyB,GAAG,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC,GACjH;IAAE,uBAAuB,EAAE,EAAE,CAAC;IAAC,wBAAwB,EAAE,EAAE,CAAA;CAAE,GAChE,OAAO,CAAC,cAAc,CAAC,CAUzB;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,oBAAoB,GAAG,MAAM,GAAG,UAAU,GAAG,gBAAgB,CAAC,GAC9F,OAAO,CAAC,EAAE,CAAC,CAKb;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAOzG;AAED;;;;;GAKG;AACH,wBAAsB,wCAAwC,CAC5D,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,EAAE,EAAE,GAChB,OAAO,CAAC,EAAE,CAAC,CAGb"}
@@ -4,7 +4,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
4
4
  import { type ContractArtifact, type FunctionAbi } from '../abi/index.js';
5
5
  import { AztecAddress } from '../aztec-address/index.js';
6
6
  import { PublicKeys } from '../keys/public_keys.js';
7
- import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js';
7
+ import type { ContractInstance, ContractInstancePreimage, ContractInstancePreimageWithAddress, ContractInstanceWithAddress } from './interfaces/contract_instance.js';
8
8
  export type ContractInstantiationData = {
9
9
  constructorArtifact?: FunctionAbi | string;
10
10
  constructorArgs?: any[];
@@ -31,6 +31,20 @@ export declare class SerializableContractInstance {
31
31
  static random(opts?: Partial<FieldsOf<ContractInstance>>): Promise<SerializableContractInstance>;
32
32
  static default(): SerializableContractInstance;
33
33
  }
34
+ export declare class SerializableContractInstancePreimage {
35
+ readonly version: 2;
36
+ readonly salt: Fr;
37
+ readonly deployer: AztecAddress;
38
+ readonly originalContractClassId: Fr;
39
+ readonly initializationHash: Fr;
40
+ readonly immutablesHash: Fr;
41
+ readonly publicKeys: PublicKeys;
42
+ constructor(instance: ContractInstancePreimage);
43
+ toBuffer(): Buffer<ArrayBufferLike>;
44
+ /** Returns a copy of this object with its address included. */
45
+ withAddress(address: AztecAddress): ContractInstancePreimageWithAddress;
46
+ static fromBuffer(bufferOrReader: Buffer | BufferReader): SerializableContractInstancePreimage;
47
+ }
34
48
  /**
35
49
  * Generates a Contract Instance from some instantiation params.
36
50
  * @param artifact - The account contract build artifact.
@@ -38,4 +52,4 @@ export declare class SerializableContractInstance {
38
52
  * @returns - The contract instance
39
53
  */
40
54
  export declare function getContractInstanceFromInstantiationParams(artifact: ContractArtifact, opts: ContractInstantiationData): Promise<ContractInstanceWithAddress>;
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfaW5zdGFuY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBaUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBS2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1wRCxPQUFPLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSXZHLE1BQU0sTUFBTSx5QkFBeUIsR0FBRztJQUN0QyxtQkFBbUIsQ0FBQyxFQUFFLFdBQVcsR0FBRyxNQUFNLENBQUM7SUFDM0MsZUFBZSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDeEIsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDM0IsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN4QixRQUFRLENBQUMsRUFBRSxZQUFZLENBQUM7SUFDeEIsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO0NBQ3JCLENBQUM7QUFFRixxQkFBYSw0QkFBNEI7SUFDdkMsU0FBZ0IsT0FBTyxJQUFXO0lBQ2xDLFNBQWdCLElBQUksRUFBRSxFQUFFLENBQUM7SUFDekIsU0FBZ0IsUUFBUSxFQUFFLFlBQVksQ0FBQztJQUN2QyxTQUFnQixzQkFBc0IsRUFBRSxFQUFFLENBQUM7SUFDM0MsU0FBZ0IsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO0lBQzVDLFNBQWdCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QyxTQUFnQixjQUFjLEVBQUUsRUFBRSxDQUFDO0lBQ25DLFNBQWdCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFFdkMsWUFBWSxRQUFRLEVBQUUsZ0JBQWdCLEVBV3JDO0lBRU0sUUFBUSw0QkFXZDtJQUVELCtEQUErRDtJQUMvRCxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRywyQkFBMkIsQ0FFOUQ7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsWUFBWSxnQ0FZdEQ7SUFFRCxPQUFhLE1BQU0sQ0FBQyxJQUFJLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLHlDQVlqRTtJQUVELE1BQU0sQ0FBQyxPQUFPLGlDQVdiO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFzQiwwQ0FBMEMsQ0FDOUQsUUFBUSxFQUFFLGdCQUFnQixFQUMxQixJQUFJLEVBQUUseUJBQXlCLEdBQzlCLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQTJCdEMifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfaW5zdGFuY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cmFjdC9jb250cmFjdF9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFlBQVksRUFBaUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyxXQUFXLEVBS2pCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1wRCxPQUFPLEtBQUssRUFDVixnQkFBZ0IsRUFDaEIsd0JBQXdCLEVBQ3hCLG1DQUFtQyxFQUNuQywyQkFBMkIsRUFDNUIsTUFBTSxtQ0FBbUMsQ0FBQztBQUkzQyxNQUFNLE1BQU0seUJBQXlCLEdBQUc7SUFDdEMsbUJBQW1CLENBQUMsRUFBRSxXQUFXLEdBQUcsTUFBTSxDQUFDO0lBQzNDLGVBQWUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLGdCQUFnQixDQUFDLEVBQUUsT0FBTyxDQUFDO0lBQzNCLElBQUksRUFBRSxFQUFFLENBQUM7SUFDVCxVQUFVLENBQUMsRUFBRSxVQUFVLENBQUM7SUFDeEIsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3hCLGNBQWMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztDQUNyQixDQUFDO0FBRUYscUJBQWEsNEJBQTRCO0lBQ3ZDLFNBQWdCLE9BQU8sSUFBVztJQUNsQyxTQUFnQixJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ3pCLFNBQWdCLFFBQVEsRUFBRSxZQUFZLENBQUM7SUFDdkMsU0FBZ0Isc0JBQXNCLEVBQUUsRUFBRSxDQUFDO0lBQzNDLFNBQWdCLHVCQUF1QixFQUFFLEVBQUUsQ0FBQztJQUM1QyxTQUFnQixrQkFBa0IsRUFBRSxFQUFFLENBQUM7SUFDdkMsU0FBZ0IsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQyxTQUFnQixVQUFVLEVBQUUsVUFBVSxDQUFDO0lBRXZDLFlBQVksUUFBUSxFQUFFLGdCQUFnQixFQVdyQztJQUVNLFFBQVEsNEJBV2Q7SUFFRCwrREFBK0Q7SUFDL0QsV0FBVyxDQUFDLE9BQU8sRUFBRSxZQUFZLEdBQUcsMkJBQTJCLENBRTlEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsTUFBTSxHQUFHLFlBQVksZ0NBWXREO0lBRUQsT0FBYSxNQUFNLENBQUMsSUFBSSxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBTSx5Q0FZakU7SUFFRCxNQUFNLENBQUMsT0FBTyxpQ0FXYjtDQUNGO0FBRUQscUJBQWEsb0NBQW9DO0lBQy9DLFNBQWdCLE9BQU8sSUFBVztJQUNsQyxTQUFnQixJQUFJLEVBQUUsRUFBRSxDQUFDO0lBQ3pCLFNBQWdCLFFBQVEsRUFBRSxZQUFZLENBQUM7SUFDdkMsU0FBZ0IsdUJBQXVCLEVBQUUsRUFBRSxDQUFDO0lBQzVDLFNBQWdCLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QyxTQUFnQixjQUFjLEVBQUUsRUFBRSxDQUFDO0lBQ25DLFNBQWdCLFVBQVUsRUFBRSxVQUFVLENBQUM7SUFFdkMsWUFBWSxRQUFRLEVBQUUsd0JBQXdCLEVBVTdDO0lBRU0sUUFBUSw0QkFVZDtJQUVELCtEQUErRDtJQUMvRCxXQUFXLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxtQ0FBbUMsQ0FFdEU7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLG9DQUFvQyxDQWU3RjtDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBc0IsMENBQTBDLENBQzlELFFBQVEsRUFBRSxnQkFBZ0IsRUFDMUIsSUFBSSxFQUFFLHlCQUF5QixHQUM5QixPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0EyQnRDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../src/contract/contract_instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAiC,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAKjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAIvG,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,EAAE,CAAC;IACT,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,EAAE,CAAC;CACrB,CAAC;AAEF,qBAAa,4BAA4B;IACvC,SAAgB,OAAO,IAAW;IAClC,SAAgB,IAAI,EAAE,EAAE,CAAC;IACzB,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,sBAAsB,EAAE,EAAE,CAAC;IAC3C,SAAgB,uBAAuB,EAAE,EAAE,CAAC;IAC5C,SAAgB,kBAAkB,EAAE,EAAE,CAAC;IACvC,SAAgB,cAAc,EAAE,EAAE,CAAC;IACnC,SAAgB,UAAU,EAAE,UAAU,CAAC;IAEvC,YAAY,QAAQ,EAAE,gBAAgB,EAWrC;IAEM,QAAQ,4BAWd;IAED,+DAA+D;IAC/D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,CAE9D;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,gCAYtD;IAED,OAAa,MAAM,CAAC,IAAI,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,yCAYjE;IAED,MAAM,CAAC,OAAO,iCAWb;CACF;AAED;;;;;GAKG;AACH,wBAAsB,0CAA0C,CAC9D,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,2BAA2B,CAAC,CA2BtC"}
1
+ {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../src/contract/contract_instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,YAAY,EAAiC,MAAM,6BAA6B,CAAC;AAC1F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAKjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMpD,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,mCAAmC,EACnC,2BAA2B,EAC5B,MAAM,mCAAmC,CAAC;AAI3C,MAAM,MAAM,yBAAyB,GAAG;IACtC,mBAAmB,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3C,eAAe,CAAC,EAAE,GAAG,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,IAAI,EAAE,EAAE,CAAC;IACT,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,EAAE,CAAC;CACrB,CAAC;AAEF,qBAAa,4BAA4B;IACvC,SAAgB,OAAO,IAAW;IAClC,SAAgB,IAAI,EAAE,EAAE,CAAC;IACzB,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,sBAAsB,EAAE,EAAE,CAAC;IAC3C,SAAgB,uBAAuB,EAAE,EAAE,CAAC;IAC5C,SAAgB,kBAAkB,EAAE,EAAE,CAAC;IACvC,SAAgB,cAAc,EAAE,EAAE,CAAC;IACnC,SAAgB,UAAU,EAAE,UAAU,CAAC;IAEvC,YAAY,QAAQ,EAAE,gBAAgB,EAWrC;IAEM,QAAQ,4BAWd;IAED,+DAA+D;IAC/D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,2BAA2B,CAE9D;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,gCAYtD;IAED,OAAa,MAAM,CAAC,IAAI,GAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAM,yCAYjE;IAED,MAAM,CAAC,OAAO,iCAWb;CACF;AAED,qBAAa,oCAAoC;IAC/C,SAAgB,OAAO,IAAW;IAClC,SAAgB,IAAI,EAAE,EAAE,CAAC;IACzB,SAAgB,QAAQ,EAAE,YAAY,CAAC;IACvC,SAAgB,uBAAuB,EAAE,EAAE,CAAC;IAC5C,SAAgB,kBAAkB,EAAE,EAAE,CAAC;IACvC,SAAgB,cAAc,EAAE,EAAE,CAAC;IACnC,SAAgB,UAAU,EAAE,UAAU,CAAC;IAEvC,YAAY,QAAQ,EAAE,wBAAwB,EAU7C;IAEM,QAAQ,4BAUd;IAED,+DAA+D;IAC/D,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,mCAAmC,CAEtE;IAED,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,oCAAoC,CAe7F;CACF;AAED;;;;;GAKG;AACH,wBAAsB,0CAA0C,CAC9D,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,2BAA2B,CAAC,CA2BtC"}
@@ -75,6 +75,51 @@ export class SerializableContractInstance {
75
75
  });
76
76
  }
77
77
  }
78
+ export class SerializableContractInstancePreimage {
79
+ version = VERSION;
80
+ salt;
81
+ deployer;
82
+ originalContractClassId;
83
+ initializationHash;
84
+ immutablesHash;
85
+ publicKeys;
86
+ constructor(instance){
87
+ if (instance.version !== VERSION) {
88
+ throw new Error(`Unexpected contract class version ${instance.version}`);
89
+ }
90
+ this.salt = instance.salt;
91
+ this.deployer = instance.deployer;
92
+ this.originalContractClassId = instance.originalContractClassId;
93
+ this.initializationHash = instance.initializationHash;
94
+ this.immutablesHash = instance.immutablesHash;
95
+ this.publicKeys = instance.publicKeys;
96
+ }
97
+ toBuffer() {
98
+ return serializeToBuffer(numToUInt8(this.version), this.salt, this.deployer, this.originalContractClassId, this.initializationHash, this.immutablesHash, this.publicKeys);
99
+ }
100
+ /** Returns a copy of this object with its address included. */ withAddress(address) {
101
+ return {
102
+ ...this,
103
+ address
104
+ };
105
+ }
106
+ static fromBuffer(bufferOrReader) {
107
+ const reader = BufferReader.asReader(bufferOrReader);
108
+ const version = reader.readUInt8();
109
+ if (version !== VERSION) {
110
+ throw new Error(`Unexpected contract instance preimage version ${version}`);
111
+ }
112
+ return new SerializableContractInstancePreimage({
113
+ version: VERSION,
114
+ salt: reader.readObject(Fr),
115
+ deployer: reader.readObject(AztecAddress),
116
+ originalContractClassId: reader.readObject(Fr),
117
+ initializationHash: reader.readObject(Fr),
118
+ immutablesHash: reader.readObject(Fr),
119
+ publicKeys: reader.readObject(PublicKeys)
120
+ });
121
+ }
122
+ }
78
123
  /**
79
124
  * Generates a Contract Instance from some instantiation params.
80
125
  * @param artifact - The account contract build artifact.
@@ -4,19 +4,19 @@ import { AztecAddress } from '../../aztec-address/index.js';
4
4
  import { PublicKeys } from '../../keys/public_keys.js';
5
5
  declare const VERSION: 2;
6
6
  /**
7
- * A contract instance is a concrete deployment of a contract class. It always references a contract class,
8
- * which dictates what code it executes when called. It has state (both private and public), as well as an
9
- * address that acts as its identifier. It can be called into. It may have encryption and nullifying public keys.
7
+ * The address preimage of a contract instance: the immutable data that hashes to its address, i.e. everything a
8
+ * contract deployment commits to.
9
+ *
10
+ * Note that `originaContractClassId` is not necessarily the instance's _current_ class id, in case of upgrades: that
11
+ * one is not part of the preimage and is instead derived from chain state.
10
12
  */
11
- export interface ContractInstance {
13
+ export interface ContractInstancePreimage {
12
14
  /** Version identifier. Initially one, bumped for any changes to the contract instance struct. */
13
15
  version: typeof VERSION;
14
16
  /** User-generated pseudorandom value for uniqueness. */
15
17
  salt: Fr;
16
18
  /** Optional deployer address or zero if this was a universal deploy. */
17
19
  deployer: AztecAddress;
18
- /** Identifier of the contract class for this instance. */
19
- currentContractClassId: Fr;
20
20
  /** Identifier of the original (at deployment) contract class for this instance */
21
21
  originalContractClassId: Fr;
22
22
  /** Hash of the selector and arguments to the constructor. */
@@ -26,14 +26,24 @@ export interface ContractInstance {
26
26
  /** Public keys associated with this instance. */
27
27
  publicKeys: PublicKeys;
28
28
  }
29
+ /**
30
+ * The address preimage plus the current contract class id, which is chain-tracked state derived from the
31
+ * ContractInstanceRegistry (it equals the original class id unless the contract has been upgraded).
32
+ */
33
+ export interface ContractInstance extends ContractInstancePreimage {
34
+ /** Identifier of the contract class this instance currently runs (as of some block). */
35
+ currentContractClassId: Fr;
36
+ }
37
+ export type ContractInstancePreimageWithAddress = ContractInstancePreimage & {
38
+ address: AztecAddress;
39
+ };
29
40
  export type ContractInstanceWithAddress = ContractInstance & {
30
41
  address: AztecAddress;
31
42
  };
32
- export declare const ContractInstanceSchema: z.ZodObject<{
43
+ export declare const ContractInstancePreimageSchema: z.ZodObject<{
33
44
  version: z.ZodLiteral<2>;
34
45
  salt: import("../../schemas/index.js").ZodFor<Fr>;
35
46
  deployer: import("../../schemas/index.js").ZodFor<AztecAddress>;
36
- currentContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
37
47
  originalContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
38
48
  initializationHash: import("../../schemas/index.js").ZodFor<Fr>;
39
49
  immutablesHash: import("../../schemas/index.js").ZodFor<Fr>;
@@ -53,11 +63,60 @@ export declare const ContractInstanceSchema: z.ZodObject<{
53
63
  fbpkMHash: Fr;
54
64
  }>>;
55
65
  }, z.core.$strip>;
56
- export declare const ContractInstanceWithAddressSchema: z.ZodIntersection<z.ZodObject<{
66
+ export declare const ContractInstanceSchema: z.ZodIntersection<z.ZodObject<{
57
67
  version: z.ZodLiteral<2>;
58
68
  salt: import("../../schemas/index.js").ZodFor<Fr>;
59
69
  deployer: import("../../schemas/index.js").ZodFor<AztecAddress>;
70
+ originalContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
71
+ initializationHash: import("../../schemas/index.js").ZodFor<Fr>;
72
+ immutablesHash: import("../../schemas/index.js").ZodFor<Fr>;
73
+ publicKeys: z.ZodPipe<z.ZodObject<{
74
+ npkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
75
+ ivpkM: z.ZodType<import("@aztec/foundation/schemas").Point, string, z.core.$ZodTypeInternals<import("@aztec/foundation/schemas").Point, string>>;
76
+ ovpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
77
+ tpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
78
+ mspkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
79
+ fbpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
80
+ }, z.core.$strip>, z.ZodTransform<PublicKeys, {
81
+ npkMHash: Fr;
82
+ ivpkM: import("@aztec/foundation/schemas").Point;
83
+ ovpkMHash: Fr;
84
+ tpkMHash: Fr;
85
+ mspkMHash: Fr;
86
+ fbpkMHash: Fr;
87
+ }>>;
88
+ }, z.core.$strip>, z.ZodObject<{
60
89
  currentContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
90
+ }, z.core.$strip>>;
91
+ export declare const ContractInstancePreimageWithAddressSchema: z.ZodIntersection<z.ZodObject<{
92
+ version: z.ZodLiteral<2>;
93
+ salt: import("../../schemas/index.js").ZodFor<Fr>;
94
+ deployer: import("../../schemas/index.js").ZodFor<AztecAddress>;
95
+ originalContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
96
+ initializationHash: import("../../schemas/index.js").ZodFor<Fr>;
97
+ immutablesHash: import("../../schemas/index.js").ZodFor<Fr>;
98
+ publicKeys: z.ZodPipe<z.ZodObject<{
99
+ npkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
100
+ ivpkM: z.ZodType<import("@aztec/foundation/schemas").Point, string, z.core.$ZodTypeInternals<import("@aztec/foundation/schemas").Point, string>>;
101
+ ovpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
102
+ tpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
103
+ mspkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
104
+ fbpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
105
+ }, z.core.$strip>, z.ZodTransform<PublicKeys, {
106
+ npkMHash: Fr;
107
+ ivpkM: import("@aztec/foundation/schemas").Point;
108
+ ovpkMHash: Fr;
109
+ tpkMHash: Fr;
110
+ mspkMHash: Fr;
111
+ fbpkMHash: Fr;
112
+ }>>;
113
+ }, z.core.$strip>, z.ZodObject<{
114
+ address: import("../../schemas/index.js").ZodFor<AztecAddress>;
115
+ }, z.core.$strip>>;
116
+ export declare const ContractInstanceWithAddressSchema: z.ZodIntersection<z.ZodIntersection<z.ZodObject<{
117
+ version: z.ZodLiteral<2>;
118
+ salt: import("../../schemas/index.js").ZodFor<Fr>;
119
+ deployer: import("../../schemas/index.js").ZodFor<AztecAddress>;
61
120
  originalContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
62
121
  initializationHash: import("../../schemas/index.js").ZodFor<Fr>;
63
122
  immutablesHash: import("../../schemas/index.js").ZodFor<Fr>;
@@ -77,6 +136,8 @@ export declare const ContractInstanceWithAddressSchema: z.ZodIntersection<z.ZodO
77
136
  fbpkMHash: Fr;
78
137
  }>>;
79
138
  }, z.core.$strip>, z.ZodObject<{
139
+ currentContractClassId: import("../../schemas/index.js").ZodFor<Fr>;
140
+ }, z.core.$strip>>, z.ZodObject<{
80
141
  address: import("../../schemas/index.js").ZodFor<AztecAddress>;
81
142
  }, z.core.$strip>>;
82
143
  /**
@@ -90,4 +151,4 @@ export declare function contractInstanceFromPlainObject(obj: any): ContractInsta
90
151
  */
91
152
  export declare function contractInstanceWithAddressFromPlainObject(address: AztecAddress, obj: any): ContractInstanceWithAddress;
92
153
  export {};
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfaW5zdGFuY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdC9pbnRlcmZhY2VzL2NvbnRyYWN0X2luc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHdkQsUUFBQSxNQUFNLE9BQU8sR0FBYSxDQUFDO0FBRTNCOzs7O0dBSUc7QUFDSCxNQUFNLFdBQVcsZ0JBQWdCO0lBQy9CLGlHQUFpRztJQUNqRyxPQUFPLEVBQUUsT0FBTyxPQUFPLENBQUM7SUFDeEIsd0RBQXdEO0lBQ3hELElBQUksRUFBRSxFQUFFLENBQUM7SUFDVCx3RUFBd0U7SUFDeEUsUUFBUSxFQUFFLFlBQVksQ0FBQztJQUN2QiwwREFBMEQ7SUFDMUQsc0JBQXNCLEVBQUUsRUFBRSxDQUFDO0lBQzNCLGtGQUFrRjtJQUNsRix1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFDNUIsNkRBQTZEO0lBQzdELGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QiwrREFBK0Q7SUFDL0QsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQixpREFBaUQ7SUFDakQsVUFBVSxFQUFFLFVBQVUsQ0FBQztDQUN4QjtBQUVELE1BQU0sTUFBTSwyQkFBMkIsR0FBRyxnQkFBZ0IsR0FBRztJQUFFLE9BQU8sRUFBRSxZQUFZLENBQUE7Q0FBRSxDQUFDO0FBRXZGLGVBQU8sTUFBTSxzQkFBc0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQVdsQyxDQUFDO0FBRUYsZUFBTyxNQUFNLGlDQUFpQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFFN0MsQ0FBQztBQUVGOzs7R0FHRztBQUNILHdCQUFnQiwrQkFBK0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLGdCQUFnQixDQVcxRTtBQUVEOzs7R0FHRztBQUNILHdCQUFnQiwwQ0FBMEMsQ0FDeEQsT0FBTyxFQUFFLFlBQVksRUFDckIsR0FBRyxFQUFFLEdBQUcsR0FDUCwyQkFBMkIsQ0FLN0IifQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RfaW5zdGFuY2UuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdC9pbnRlcmZhY2VzL2NvbnRyYWN0X2luc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHdkQsUUFBQSxNQUFNLE9BQU8sR0FBYSxDQUFDO0FBRTNCOzs7Ozs7R0FNRztBQUNILE1BQU0sV0FBVyx3QkFBd0I7SUFDdkMsaUdBQWlHO0lBQ2pHLE9BQU8sRUFBRSxPQUFPLE9BQU8sQ0FBQztJQUN4Qix3REFBd0Q7SUFDeEQsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNULHdFQUF3RTtJQUN4RSxRQUFRLEVBQUUsWUFBWSxDQUFDO0lBQ3ZCLGtGQUFrRjtJQUNsRix1QkFBdUIsRUFBRSxFQUFFLENBQUM7SUFDNUIsNkRBQTZEO0lBQzdELGtCQUFrQixFQUFFLEVBQUUsQ0FBQztJQUN2QiwrREFBK0Q7SUFDL0QsY0FBYyxFQUFFLEVBQUUsQ0FBQztJQUNuQixpREFBaUQ7SUFDakQsVUFBVSxFQUFFLFVBQVUsQ0FBQztDQUN4QjtBQUVEOzs7R0FHRztBQUNILE1BQU0sV0FBVyxnQkFBaUIsU0FBUSx3QkFBd0I7SUFDaEUsd0ZBQXdGO0lBQ3hGLHNCQUFzQixFQUFFLEVBQUUsQ0FBQztDQUM1QjtBQUVELE1BQU0sTUFBTSxtQ0FBbUMsR0FBRyx3QkFBd0IsR0FBRztJQUFFLE9BQU8sRUFBRSxZQUFZLENBQUE7Q0FBRSxDQUFDO0FBRXZHLE1BQU0sTUFBTSwyQkFBMkIsR0FBRyxnQkFBZ0IsR0FBRztJQUFFLE9BQU8sRUFBRSxZQUFZLENBQUE7Q0FBRSxDQUFDO0FBRXZGLGVBQU8sTUFBTSw4QkFBOEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBVTFDLENBQUM7QUFFRixlQUFPLE1BQU0sc0JBQXNCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBRWxDLENBQUM7QUFFRixlQUFPLE1BQU0seUNBQXlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0JBRXJELENBQUM7QUFFRixlQUFPLE1BQU0saUNBQWlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFFN0MsQ0FBQztBQUVGOzs7R0FHRztBQUNILHdCQUFnQiwrQkFBK0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLGdCQUFnQixDQVcxRTtBQUVEOzs7R0FHRztBQUNILHdCQUFnQiwwQ0FBMEMsQ0FDeEQsT0FBTyxFQUFFLFlBQVksRUFDckIsR0FBRyxFQUFFLEdBQUcsR0FDUCwyQkFBMkIsQ0FLN0IifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/contract_instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,OAAO,GAAa,CAAC;AAE3B;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,iGAAiG;IACjG,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,wDAAwD;IACxD,IAAI,EAAE,EAAE,CAAC;IACT,wEAAwE;IACxE,QAAQ,EAAE,YAAY,CAAC;IACvB,0DAA0D;IAC1D,sBAAsB,EAAE,EAAE,CAAC;IAC3B,kFAAkF;IAClF,uBAAuB,EAAE,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,kBAAkB,EAAE,EAAE,CAAC;IACvB,+DAA+D;IAC/D,cAAc,EAAE,EAAE,CAAC;IACnB,iDAAiD;IACjD,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;iBAWlC,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;kBAE7C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAW1E;AAED;;;GAGG;AACH,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,GAAG,GACP,2BAA2B,CAK7B"}
1
+ {"version":3,"file":"contract_instance.d.ts","sourceRoot":"","sources":["../../../src/contract/interfaces/contract_instance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,OAAO,GAAa,CAAC;AAE3B;;;;;;GAMG;AACH,MAAM,WAAW,wBAAwB;IACvC,iGAAiG;IACjG,OAAO,EAAE,OAAO,OAAO,CAAC;IACxB,wDAAwD;IACxD,IAAI,EAAE,EAAE,CAAC;IACT,wEAAwE;IACxE,QAAQ,EAAE,YAAY,CAAC;IACvB,kFAAkF;IAClF,uBAAuB,EAAE,EAAE,CAAC;IAC5B,6DAA6D;IAC7D,kBAAkB,EAAE,EAAE,CAAC;IACvB,+DAA+D;IAC/D,cAAc,EAAE,EAAE,CAAC;IACnB,iDAAiD;IACjD,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB;IAChE,wFAAwF;IACxF,sBAAsB,EAAE,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,mCAAmC,GAAG,wBAAwB,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvG,MAAM,MAAM,2BAA2B,GAAG,gBAAgB,GAAG;IAAE,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;iBAU1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;kBAElC,CAAC;AAEF,eAAO,MAAM,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;kBAErD,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;kBAE7C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,GAAG,GAAG,gBAAgB,CAW1E;AAED;;;GAGG;AACH,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,YAAY,EACrB,GAAG,EAAE,GAAG,GACP,2BAA2B,CAK7B"}
@@ -4,16 +4,21 @@ import { AztecAddress } from '../../aztec-address/index.js';
4
4
  import { PublicKeys } from '../../keys/public_keys.js';
5
5
  import { schemas, zodFor } from '../../schemas/index.js';
6
6
  const VERSION = 2;
7
- export const ContractInstanceSchema = zodFor()(z.object({
7
+ export const ContractInstancePreimageSchema = zodFor()(z.object({
8
8
  version: z.literal(VERSION),
9
9
  salt: schemas.Fr,
10
10
  deployer: schemas.AztecAddress,
11
- currentContractClassId: schemas.Fr,
12
11
  originalContractClassId: schemas.Fr,
13
12
  initializationHash: schemas.Fr,
14
13
  immutablesHash: schemas.Fr,
15
14
  publicKeys: PublicKeys.schema
16
15
  }));
16
+ export const ContractInstanceSchema = zodFor()(ContractInstancePreimageSchema.and(z.object({
17
+ currentContractClassId: schemas.Fr
18
+ })));
19
+ export const ContractInstancePreimageWithAddressSchema = zodFor()(ContractInstancePreimageSchema.and(z.object({
20
+ address: schemas.AztecAddress
21
+ })));
17
22
  export const ContractInstanceWithAddressSchema = zodFor()(ContractInstanceSchema.and(z.object({
18
23
  address: schemas.AztecAddress
19
24
  })));
@@ -4,10 +4,10 @@ import { AztecAddress } from '../aztec-address/index.js';
4
4
  import type { KeyPrefix } from './key_types.js';
5
5
  import { PublicKey } from './public_key.js';
6
6
  import { PublicKeys } from './public_keys.js';
7
- export declare function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
7
+ export declare function computeAppNullifierHidingKey(masterNullifierHidingSecretKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
8
8
  export declare function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr>;
9
9
  export declare function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): Promise<Fq>;
10
- export declare function deriveMasterNullifierHidingKey(secretKey: Fr): GrumpkinScalar;
10
+ export declare function deriveMasterNullifierHidingSecretKey(secretKey: Fr): GrumpkinScalar;
11
11
  export declare function deriveMasterIncomingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
12
12
  export declare function deriveMasterOutgoingViewingSecretKey(secretKey: Fr): GrumpkinScalar;
13
13
  export declare function deriveMasterMessageSigningSecretKey(secretKey: Fr): GrumpkinScalar;
@@ -21,7 +21,7 @@ export declare function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<Pub
21
21
  * The six master secret keys that fully define an account's privacy keys.
22
22
  */
23
23
  export type MasterSecretKeys = {
24
- masterNullifierHidingKey: GrumpkinScalar;
24
+ masterNullifierHidingSecretKey: GrumpkinScalar;
25
25
  masterIncomingViewingSecretKey: GrumpkinScalar;
26
26
  masterOutgoingViewingSecretKey: GrumpkinScalar;
27
27
  masterTaggingSecretKey: GrumpkinScalar;
@@ -34,13 +34,13 @@ export type MasterSecretKeys = {
34
34
  * @returns The derived keys.
35
35
  */
36
36
  export declare function deriveKeys(secretKey: Fr): Promise<{
37
- masterNullifierHidingKey: Fq;
37
+ masterNullifierHidingSecretKey: Fq;
38
38
  masterIncomingViewingSecretKey: Fq;
39
39
  masterOutgoingViewingSecretKey: Fq;
40
40
  masterTaggingSecretKey: Fq;
41
41
  masterMessageSigningSecretKey: Fq;
42
42
  masterFallbackSecretKey: Fq;
43
- masterNullifierPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
43
+ masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
44
44
  masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
45
45
  masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
46
46
  masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
@@ -53,17 +53,17 @@ export declare function deriveKeys(secretKey: Fr): Promise<{
53
53
  * @returns The provided secret keys alongside the derived public keys.
54
54
  */
55
55
  export declare function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKeys): Promise<{
56
- masterNullifierHidingKey: Fq;
56
+ masterNullifierHidingSecretKey: Fq;
57
57
  masterIncomingViewingSecretKey: Fq;
58
58
  masterOutgoingViewingSecretKey: Fq;
59
59
  masterTaggingSecretKey: Fq;
60
60
  masterMessageSigningSecretKey: Fq;
61
61
  masterFallbackSecretKey: Fq;
62
- masterNullifierPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
62
+ masterNullifierHidingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
63
63
  masterOutgoingViewingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
64
64
  masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
65
65
  masterMessageSigningPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
66
66
  masterFallbackPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
67
67
  publicKeys: PublicKeys;
68
68
  }>;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUFDLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFckg7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUc3RztBQUVELHdCQUFzQixjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLekY7QUFFRCx3QkFBZ0IsOEJBQThCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTVFO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0IsbUNBQW1DLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRWpGO0FBRUQsd0JBQWdCLDZCQUE2QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUUzRTtBQUVELHdCQUFnQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FHOUQ7QUFFRCx3QkFBZ0IsaUJBQWlCLENBQUMsY0FBYyxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxlQUV2RTtBQUVELHdCQUFzQixjQUFjLENBQUMsVUFBVSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FZdEc7QUFFRCx3QkFBc0Isb0JBQW9CLENBQUMsVUFBVSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxlQW9CbEU7QUFFRCx3QkFBZ0IsNEJBQTRCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBRTlFO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUc7SUFDN0Isd0JBQXdCLEVBQUUsY0FBYyxDQUFDO0lBQ3pDLDhCQUE4QixFQUFFLGNBQWMsQ0FBQztJQUMvQyw4QkFBOEIsRUFBRSxjQUFjLENBQUM7SUFDL0Msc0JBQXNCLEVBQUUsY0FBYyxDQUFDO0lBQ3ZDLDZCQUE2QixFQUFFLGNBQWMsQ0FBQztJQUM5Qyx1QkFBdUIsRUFBRSxjQUFjLENBQUM7Q0FDekMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCx3QkFBZ0IsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBV3ZDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQiw4QkFBOEIsQ0FBQyxVQUFVLEVBQUUsZ0JBQWdCOzs7Ozs7Ozs7Ozs7O0dBNENoRiJ9
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUMxQyw4QkFBOEIsRUFBRSxjQUFjLEVBQzlDLEdBQUcsRUFBRSxZQUFZLEdBQ2hCLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFYjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBRzdHO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUt6RjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0Isb0NBQW9DLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRWxGO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixtQ0FBbUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFakY7QUFFRCx3QkFBZ0IsNkJBQTZCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTNFO0FBRUQsd0JBQWdCLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUc5RDtBQUVELHdCQUFnQixpQkFBaUIsQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLGVBRXZFO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQVl0RztBQUVELHdCQUFzQixvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLGVBb0JsRTtBQUVELHdCQUFnQiw0QkFBNEIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FPOUU7QUFFRDs7R0FFRztBQUNILE1BQU0sTUFBTSxnQkFBZ0IsR0FBRztJQUM3Qiw4QkFBOEIsRUFBRSxjQUFjLENBQUM7SUFDL0MsOEJBQThCLEVBQUUsY0FBYyxDQUFDO0lBQy9DLDhCQUE4QixFQUFFLGNBQWMsQ0FBQztJQUMvQyxzQkFBc0IsRUFBRSxjQUFjLENBQUM7SUFDdkMsNkJBQTZCLEVBQUUsY0FBYyxDQUFDO0lBQzlDLHVCQUF1QixFQUFFLGNBQWMsQ0FBQztDQUN6QyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILHdCQUFnQixVQUFVLENBQUMsU0FBUyxFQUFFLEVBQUU7Ozs7Ozs7Ozs7Ozs7R0FXdkM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLDhCQUE4QixDQUFDLFVBQVUsRUFBRSxnQkFBZ0I7Ozs7Ozs7Ozs7Ozs7R0E0Q2hGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAAC,wBAAwB,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAErH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE5E;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAEjF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAG9D;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9E;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wBAAwB,EAAE,cAAc,CAAC;IACzC,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,sBAAsB,EAAE,cAAc,CAAC;IACvC,6BAA6B,EAAE,cAAc,CAAC;IAC9C,uBAAuB,EAAE,cAAc,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;;;;;GAWvC;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB;;;;;;;;;;;;;GA4ChF"}
1
+ {"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAC1C,8BAA8B,EAAE,cAAc,EAC9C,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,EAAE,CAAC,CAEb;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,mCAAmC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAEjF;AAED,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAG9D;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAO9E;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,8BAA8B,EAAE,cAAc,CAAC;IAC/C,sBAAsB,EAAE,cAAc,CAAC;IACvC,6BAA6B,EAAE,cAAc,CAAC;IAC9C,uBAAuB,EAAE,cAAc,CAAC;CACzC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;;;;;GAWvC;AAED;;;;GAIG;AACH,wBAAsB,8BAA8B,CAAC,UAAU,EAAE,gBAAgB;;;;;;;;;;;;;GA4ChF"}
@@ -5,11 +5,11 @@ import { sha512ToGrumpkinScalar } from '@aztec/foundation/crypto/sha512';
5
5
  import { Fq, Fr } from '@aztec/foundation/curves/bn254';
6
6
  import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
7
7
  import { AztecAddress } from '../aztec-address/index.js';
8
- import { hashPublicKey } from './public_key.js';
8
+ import { PublicKey, hashPublicKey } from './public_key.js';
9
9
  import { PublicKeys } from './public_keys.js';
10
10
  import { getKeyGenerator } from './utils.js';
11
- export function computeAppNullifierHidingKey(masterNullifierHidingKey, app) {
12
- return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
11
+ export function computeAppNullifierHidingKey(masterNullifierHidingSecretKey, app) {
12
+ return computeAppSecretKey(masterNullifierHidingSecretKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
13
13
  }
14
14
  export function computeAppSecretKey(skM, app, keyPrefix) {
15
15
  const generator = getKeyGenerator(keyPrefix);
@@ -25,7 +25,7 @@ export async function computeOvskApp(ovsk, app) {
25
25
  // P = s * G will not be uniform because 2 * (q - r) / q is small.
26
26
  return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
27
27
  }
28
- export function deriveMasterNullifierHidingKey(secretKey) {
28
+ export function deriveMasterNullifierHidingSecretKey(secretKey) {
29
29
  return sha512ToGrumpkinScalar([
30
30
  secretKey,
31
31
  DomainSeparator.NHK_M
@@ -97,6 +97,11 @@ export async function computeAddressSecret(preaddress, ivsk) {
97
97
  return addressSecretCandidate;
98
98
  }
99
99
  export function derivePublicKeyFromSecretKey(secretKey) {
100
+ // 0 * G is the point at infinity. The WASM encodes infinity with an out-of-field x coordinate that Point cannot
101
+ // deserialize, so return the point directly instead of calling into it.
102
+ if (secretKey.isZero()) {
103
+ return Promise.resolve(PublicKey.INFINITY);
104
+ }
100
105
  return Grumpkin.mul(Grumpkin.generator, secretKey);
101
106
  }
102
107
  /**
@@ -107,7 +112,7 @@ export function derivePublicKeyFromSecretKey(secretKey) {
107
112
  // First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
108
113
  // in a circuit
109
114
  return deriveKeysFromMasterSecretKeys({
110
- masterNullifierHidingKey: deriveMasterNullifierHidingKey(secretKey),
115
+ masterNullifierHidingSecretKey: deriveMasterNullifierHidingSecretKey(secretKey),
111
116
  masterIncomingViewingSecretKey: deriveMasterIncomingViewingSecretKey(secretKey),
112
117
  masterOutgoingViewingSecretKey: deriveMasterOutgoingViewingSecretKey(secretKey),
113
118
  masterTaggingSecretKey: sha512ToGrumpkinScalar([
@@ -123,8 +128,8 @@ export function derivePublicKeyFromSecretKey(secretKey) {
123
128
  * @param secretKeys - The master secret keys to derive public keys from.
124
129
  * @returns The provided secret keys alongside the derived public keys.
125
130
  */ export async function deriveKeysFromMasterSecretKeys(secretKeys) {
126
- const { masterNullifierHidingKey, masterIncomingViewingSecretKey, masterOutgoingViewingSecretKey, masterTaggingSecretKey, masterMessageSigningSecretKey, masterFallbackSecretKey } = secretKeys;
127
- const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
131
+ const { masterNullifierHidingSecretKey, masterIncomingViewingSecretKey, masterOutgoingViewingSecretKey, masterTaggingSecretKey, masterMessageSigningSecretKey, masterFallbackSecretKey } = secretKeys;
132
+ const masterNullifierHidingPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingSecretKey);
128
133
  const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
129
134
  const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
130
135
  const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
@@ -134,15 +139,15 @@ export function derivePublicKeyFromSecretKey(secretKey) {
134
139
  // point only for ivpk_m. The npk/ovpk/tpk/mspk/fbpk raw points are also returned alongside so the key
135
140
  // store can persist them under `${account}-{n|ov|t|ms|fb}pk_m` (only their hashes live in publicKeys).
136
141
  // The ivpk_m point isn't returned separately because it already lives in publicKeys.ivpkM.
137
- const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), await hashPublicKey(masterMessageSigningPublicKey), await hashPublicKey(masterFallbackPublicKey));
142
+ const publicKeys = new PublicKeys(await hashPublicKey(masterNullifierHidingPublicKey), masterIncomingViewingPublicKey, await hashPublicKey(masterOutgoingViewingPublicKey), await hashPublicKey(masterTaggingPublicKey), await hashPublicKey(masterMessageSigningPublicKey), await hashPublicKey(masterFallbackPublicKey));
138
143
  return {
139
- masterNullifierHidingKey,
144
+ masterNullifierHidingSecretKey,
140
145
  masterIncomingViewingSecretKey,
141
146
  masterOutgoingViewingSecretKey,
142
147
  masterTaggingSecretKey,
143
148
  masterMessageSigningSecretKey,
144
149
  masterFallbackSecretKey,
145
- masterNullifierPublicKey,
150
+ masterNullifierHidingPublicKey,
146
151
  masterOutgoingViewingPublicKey,
147
152
  masterTaggingPublicKey,
148
153
  masterMessageSigningPublicKey,
@@ -35,11 +35,10 @@ export declare class SimulationOverrides {
35
35
  value: import("@aztec/foundation/schemas").Fr;
36
36
  }[] | null | undefined>>;
37
37
  contracts: z.ZodPipe<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodObject<{
38
- instance: z.ZodIntersection<z.ZodObject<{
38
+ instance: z.ZodIntersection<z.ZodIntersection<z.ZodObject<{
39
39
  version: z.ZodLiteral<2>;
40
40
  salt: ZodFor<import("@aztec/foundation/schemas").Fr>;
41
41
  deployer: ZodFor<import("../aztec-address/index.js").AztecAddress>;
42
- currentContractClassId: ZodFor<import("@aztec/foundation/schemas").Fr>;
43
42
  originalContractClassId: ZodFor<import("@aztec/foundation/schemas").Fr>;
44
43
  initializationHash: ZodFor<import("@aztec/foundation/schemas").Fr>;
45
44
  immutablesHash: ZodFor<import("@aztec/foundation/schemas").Fr>;
@@ -59,6 +58,8 @@ export declare class SimulationOverrides {
59
58
  fbpkMHash: import("@aztec/foundation/schemas").Fr;
60
59
  }>>;
61
60
  }, z.core.$strip>, z.ZodObject<{
61
+ currentContractClassId: ZodFor<import("@aztec/foundation/schemas").Fr>;
62
+ }, z.core.$strip>>, z.ZodObject<{
62
63
  address: ZodFor<import("../aztec-address/index.js").AztecAddress>;
63
64
  }, z.core.$strip>>;
64
65
  }, z.core.$strip>>>>, z.ZodTransform<Record<string, {
@@ -66,11 +67,12 @@ export declare class SimulationOverrides {
66
67
  version: 2;
67
68
  salt: import("@aztec/foundation/schemas").Fr;
68
69
  deployer: import("../aztec-address/index.js").AztecAddress;
69
- currentContractClassId: import("@aztec/foundation/schemas").Fr;
70
70
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
71
71
  initializationHash: import("@aztec/foundation/schemas").Fr;
72
72
  immutablesHash: import("@aztec/foundation/schemas").Fr;
73
73
  publicKeys: import("../keys/public_keys.js").PublicKeys;
74
+ } & {
75
+ currentContractClassId: import("@aztec/foundation/schemas").Fr;
74
76
  } & {
75
77
  address: import("../aztec-address/index.js").AztecAddress;
76
78
  };
@@ -79,11 +81,12 @@ export declare class SimulationOverrides {
79
81
  version: 2;
80
82
  salt: import("@aztec/foundation/schemas").Fr;
81
83
  deployer: import("../aztec-address/index.js").AztecAddress;
82
- currentContractClassId: import("@aztec/foundation/schemas").Fr;
83
84
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
84
85
  initializationHash: import("@aztec/foundation/schemas").Fr;
85
86
  immutablesHash: import("@aztec/foundation/schemas").Fr;
86
87
  publicKeys: import("../keys/public_keys.js").PublicKeys;
88
+ } & {
89
+ currentContractClassId: import("@aztec/foundation/schemas").Fr;
87
90
  } & {
88
91
  address: import("../aztec-address/index.js").AztecAddress;
89
92
  };
@@ -99,11 +102,12 @@ export declare class SimulationOverrides {
99
102
  version: 2;
100
103
  salt: import("@aztec/foundation/schemas").Fr;
101
104
  deployer: import("../aztec-address/index.js").AztecAddress;
102
- currentContractClassId: import("@aztec/foundation/schemas").Fr;
103
105
  originalContractClassId: import("@aztec/foundation/schemas").Fr;
104
106
  initializationHash: import("@aztec/foundation/schemas").Fr;
105
107
  immutablesHash: import("@aztec/foundation/schemas").Fr;
106
108
  publicKeys: import("../keys/public_keys.js").PublicKeys;
109
+ } & {
110
+ currentContractClassId: import("@aztec/foundation/schemas").Fr;
107
111
  } & {
108
112
  address: import("../aztec-address/index.js").AztecAddress;
109
113
  };
@@ -141,4 +145,4 @@ export declare class TxSimulationResult {
141
145
  * @returns
142
146
  */
143
147
  export declare function accumulatePrivateReturnValues(executionResult: PrivateExecutionResult): NestedProcessReturnValues;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGVkX3R4LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc2ltdWxhdGVkX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUNMLEtBQUssMkJBQTJCLEVBRWpDLE1BQU0sNkNBQTZDLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQStCLE1BQU0sMENBQTBDLENBQUM7QUFDbkgsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFOUcsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUVMLHNCQUFzQixFQUd2QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUzdCLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUErQjtJQUFFLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQTtDQUFFLENBQUMsQ0FBQztBQVF2SCxxQkFBYSxtQkFBbUI7SUFDdkIsYUFBYSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztJQUN4QyxTQUFTLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUVyQyxZQUFZLElBQUksR0FBRTtRQUFFLGFBQWEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFBQyxTQUFTLENBQUMsRUFBRSxpQkFBaUIsQ0FBQTtLQUFPLEVBR2hHO0lBRUQsTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7UUFPaEI7Q0FDRjtBQUVELHFCQUFhLHVCQUF1QjtJQUV6QixzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsWUFBWSxFQUFFLG9DQUFvQztJQUYzRCxZQUNTLHNCQUFzQixFQUFFLHNCQUFzQixFQUM5QyxZQUFZLEVBQUUsb0NBQW9DLEVBQ3ZEO0lBRUosc0JBQXNCLDhCQUVyQjtJQUVLLGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBU2pDO0NBQ0Y7QUFFRCxxQkFBYSxrQkFBa0I7SUFFcEIsc0JBQXNCLEVBQUUsc0JBQXNCO0lBQzlDLFlBQVksRUFBRSxvQ0FBb0M7SUFDbEQsWUFBWSxDQUFDO0lBQ2IsS0FBSyxDQUFDO0lBSmYsWUFDUyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsWUFBWSxFQUFFLG9DQUFvQyxFQUNsRCxZQUFZLENBQUMsb0NBQXdCLEVBQ3JDLEtBQUssQ0FBQyw2QkFBaUIsRUFDNUI7SUFFSixpRUFBaUU7SUFDakUsSUFBSSxlQUFlLElBQUksY0FBYyxFQUFFLENBRXRDO0lBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQVNyQjtJQUVELE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBUzlDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxzQkFPcEY7SUFFRCxNQUFNLENBQUMsMENBQTBDLENBQy9DLHVCQUF1QixFQUFFLHVCQUF1QixFQUNoRCxZQUFZLENBQUMsRUFBRSxzQkFBc0IsRUFDckMsS0FBSyxDQUFDLEVBQUUsZUFBZSxzQkFReEI7SUFFRCxPQUFhLE1BQU0sZ0NBTWxCO0lBRUQsc0JBQXNCLDhCQUVyQjtJQUVELGFBQWEsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBRTNCO0lBRUQscUJBQXFCLGdDQUVwQjtDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCx3QkFBZ0IsNkJBQTZCLENBQUMsZUFBZSxFQUFFLHNCQUFzQixHQUFHLHlCQUF5QixDQVdoSCJ9
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltdWxhdGVkX3R4LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvc2ltdWxhdGVkX3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBWSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUNMLEtBQUssMkJBQTJCLEVBRWpDLE1BQU0sNkNBQTZDLENBQUM7QUFFckQsT0FBTyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUsscUJBQXFCLEVBQStCLE1BQU0sMENBQTBDLENBQUM7QUFDbkgsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFFOUcsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUVMLHNCQUFzQixFQUd2QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxLQUFLLGVBQWUsRUFBeUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBUzdCLE1BQU0sTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUErQjtJQUFFLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQTtDQUFFLENBQUMsQ0FBQztBQVF2SCxxQkFBYSxtQkFBbUI7SUFDdkIsYUFBYSxDQUFDLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztJQUN4QyxTQUFTLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztJQUVyQyxZQUFZLElBQUksR0FBRTtRQUFFLGFBQWEsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFBQyxTQUFTLENBQUMsRUFBRSxpQkFBaUIsQ0FBQTtLQUFPLEVBR2hHO0lBRUQsTUFBTSxLQUFLLE1BQU07Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBT2hCO0NBQ0Y7QUFFRCxxQkFBYSx1QkFBdUI7SUFFekIsc0JBQXNCLEVBQUUsc0JBQXNCO0lBQzlDLFlBQVksRUFBRSxvQ0FBb0M7SUFGM0QsWUFDUyxzQkFBc0IsRUFBRSxzQkFBc0IsRUFDOUMsWUFBWSxFQUFFLG9DQUFvQyxFQUN2RDtJQUVKLHNCQUFzQiw4QkFFckI7SUFFSyxhQUFhLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQVNqQztDQUNGO0FBRUQscUJBQWEsa0JBQWtCO0lBRXBCLHNCQUFzQixFQUFFLHNCQUFzQjtJQUM5QyxZQUFZLEVBQUUsb0NBQW9DO0lBQ2xELFlBQVksQ0FBQztJQUNiLEtBQUssQ0FBQztJQUpmLFlBQ1Msc0JBQXNCLEVBQUUsc0JBQXNCLEVBQzlDLFlBQVksRUFBRSxvQ0FBb0MsRUFDbEQsWUFBWSxDQUFDLG9DQUF3QixFQUNyQyxLQUFLLENBQUMsNkJBQWlCLEVBQzVCO0lBRUosaUVBQWlFO0lBQ2pFLElBQUksZUFBZSxJQUFJLGNBQWMsRUFBRSxDQUV0QztJQUVELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FTckI7SUFFRCxNQUFNLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQVM5QztJQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsc0JBT3BGO0lBRUQsTUFBTSxDQUFDLDBDQUEwQyxDQUMvQyx1QkFBdUIsRUFBRSx1QkFBdUIsRUFDaEQsWUFBWSxDQUFDLEVBQUUsc0JBQXNCLEVBQ3JDLEtBQUssQ0FBQyxFQUFFLGVBQWUsc0JBUXhCO0lBRUQsT0FBYSxNQUFNLGdDQU1sQjtJQUVELHNCQUFzQiw4QkFFckI7SUFFRCxhQUFhLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUUzQjtJQUVELHFCQUFxQixnQ0FFcEI7Q0FDRjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLDZCQUE2QixDQUFDLGVBQWUsRUFBRSxzQkFBc0IsR0FBRyx5QkFBeUIsQ0FXaEgifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"simulated_tx.d.ts","sourceRoot":"","sources":["../../src/tx/simulated_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA+B,MAAM,0CAA0C,CAAC;AACnH,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,sBAAsB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAS7B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAA+B;IAAE,QAAQ,EAAE,2BAA2B,CAAA;CAAE,CAAC,CAAC;AAQvH,qBAAa,mBAAmB;IACvB,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAErC,YAAY,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAAO,EAGhG;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOhB;CACF;AAED,qBAAa,uBAAuB;IAEzB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAF3D,YACS,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EACvD;IAEJ,sBAAsB,8BAErB;IAEK,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC,CASjC;CACF;AAED,qBAAa,kBAAkB;IAEpB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAClD,YAAY,CAAC;IACb,KAAK,CAAC;IAJf,YACS,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EAClD,YAAY,CAAC,oCAAwB,EACrC,KAAK,CAAC,6BAAiB,EAC5B;IAEJ,iEAAiE;IACjE,IAAI,eAAe,IAAI,cAAc,EAAE,CAEtC;IAED,IAAI,OAAO,IAAI,OAAO,CASrB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAS9C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC,sBAOpF;IAED,MAAM,CAAC,0CAA0C,CAC/C,uBAAuB,EAAE,uBAAuB,EAChD,YAAY,CAAC,EAAE,sBAAsB,EACrC,KAAK,CAAC,EAAE,eAAe,sBAQxB;IAED,OAAa,MAAM,gCAMlB;IAED,sBAAsB,8BAErB;IAED,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC,CAE3B;IAED,qBAAqB,gCAEpB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,sBAAsB,GAAG,yBAAyB,CAWhH"}
1
+ {"version":3,"file":"simulated_tx.d.ts","sourceRoot":"","sources":["../../src/tx/simulated_tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAY,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,KAAK,2BAA2B,EAEjC,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA+B,MAAM,0CAA0C,CAAC;AACnH,OAAO,EAAE,oCAAoC,EAAE,MAAM,wDAAwD,CAAC;AAE9G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAEL,sBAAsB,EAGvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,KAAK,eAAe,EAAyB,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAClG,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAS7B,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAA+B;IAAE,QAAQ,EAAE,2BAA2B,CAAA;CAAE,CAAC,CAAC;AAQvH,qBAAa,mBAAmB;IACvB,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACxC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAErC,YAAY,IAAI,GAAE;QAAE,aAAa,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE,iBAAiB,CAAA;KAAO,EAGhG;IAED,MAAM,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAOhB;CACF;AAED,qBAAa,uBAAuB;IAEzB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAF3D,YACS,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EACvD;IAEJ,sBAAsB,8BAErB;IAEK,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC,CASjC;CACF;AAED,qBAAa,kBAAkB;IAEpB,sBAAsB,EAAE,sBAAsB;IAC9C,YAAY,EAAE,oCAAoC;IAClD,YAAY,CAAC;IACb,KAAK,CAAC;IAJf,YACS,sBAAsB,EAAE,sBAAsB,EAC9C,YAAY,EAAE,oCAAoC,EAClD,YAAY,CAAC,oCAAwB,EACrC,KAAK,CAAC,6BAAiB,EAC5B;IAEJ,iEAAiE;IACjE,IAAI,eAAe,IAAI,cAAc,EAAE,CAEtC;IAED,IAAI,OAAO,IAAI,OAAO,CASrB;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAS9C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC,sBAOpF;IAED,MAAM,CAAC,0CAA0C,CAC/C,uBAAuB,EAAE,uBAAuB,EAChD,YAAY,CAAC,EAAE,sBAAsB,EACrC,KAAK,CAAC,EAAE,eAAe,sBAQxB;IAED,OAAa,MAAM,gCAMlB;IAED,sBAAsB,8BAErB;IAED,aAAa,IAAI,OAAO,CAAC,EAAE,CAAC,CAE3B;IAED,qBAAqB,gCAEpB;CACF;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,eAAe,EAAE,sBAAsB,GAAG,yBAAyB,CAWhH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/stdlib",
3
- "version": "5.0.0-nightly.20260702",
3
+ "version": "5.0.0-nightly.20260704",
4
4
  "type": "module",
5
5
  "inherits": [
6
6
  "../package.common.json",
@@ -92,13 +92,13 @@
92
92
  },
93
93
  "dependencies": {
94
94
  "@aws-sdk/client-s3": "^3.892.0",
95
- "@aztec/bb.js": "5.0.0-nightly.20260702",
96
- "@aztec/blob-lib": "5.0.0-nightly.20260702",
97
- "@aztec/constants": "5.0.0-nightly.20260702",
98
- "@aztec/ethereum": "5.0.0-nightly.20260702",
99
- "@aztec/foundation": "5.0.0-nightly.20260702",
100
- "@aztec/l1-artifacts": "5.0.0-nightly.20260702",
101
- "@aztec/noir-noirc_abi": "5.0.0-nightly.20260702",
95
+ "@aztec/bb.js": "5.0.0-nightly.20260704",
96
+ "@aztec/blob-lib": "5.0.0-nightly.20260704",
97
+ "@aztec/constants": "5.0.0-nightly.20260704",
98
+ "@aztec/ethereum": "5.0.0-nightly.20260704",
99
+ "@aztec/foundation": "5.0.0-nightly.20260704",
100
+ "@aztec/l1-artifacts": "5.0.0-nightly.20260704",
101
+ "@aztec/noir-noirc_abi": "5.0.0-nightly.20260704",
102
102
  "@google-cloud/storage": "^7.15.0",
103
103
  "axios": "^1.15.1",
104
104
  "json-stringify-deterministic": "1.0.12",
@@ -6,7 +6,7 @@ import { type FunctionAbi, FunctionSelector, encodeArguments } from '../abi/inde
6
6
  import type { AztecAddress } from '../aztec-address/index.js';
7
7
  import { computeVarArgsHash } from '../hash/hash.js';
8
8
  import { computeAddress } from '../keys/index.js';
9
- import type { ContractInstance } from './interfaces/contract_instance.js';
9
+ import type { ContractInstance, ContractInstancePreimage } from './interfaces/contract_instance.js';
10
10
  import type { PartialAddress } from './partial_address.js';
11
11
 
12
12
  // TODO(@spalladino): Review all generator indices in this file
@@ -22,7 +22,7 @@ import type { PartialAddress } from './partial_address.js';
22
22
  */
23
23
  export async function computeContractAddressFromInstance(
24
24
  instance:
25
- | ContractInstance
25
+ | ContractInstancePreimage
26
26
  | ({ originalContractClassId: Fr; saltedInitializationHash: Fr } & Pick<ContractInstance, 'publicKeys'>),
27
27
  ): Promise<AztecAddress> {
28
28
  const partialAddress = await computePartialAddress(instance);
@@ -18,7 +18,12 @@ import {
18
18
  computeInitializationHash,
19
19
  computeInitializationHashFromEncodedArgs,
20
20
  } from './contract_address.js';
21
- import type { ContractInstance, ContractInstanceWithAddress } from './interfaces/contract_instance.js';
21
+ import type {
22
+ ContractInstance,
23
+ ContractInstancePreimage,
24
+ ContractInstancePreimageWithAddress,
25
+ ContractInstanceWithAddress,
26
+ } from './interfaces/contract_instance.js';
22
27
 
23
28
  const VERSION = 2 as const;
24
29
 
@@ -115,6 +120,62 @@ export class SerializableContractInstance {
115
120
  }
116
121
  }
117
122
 
123
+ export class SerializableContractInstancePreimage {
124
+ public readonly version = VERSION;
125
+ public readonly salt: Fr;
126
+ public readonly deployer: AztecAddress;
127
+ public readonly originalContractClassId: Fr;
128
+ public readonly initializationHash: Fr;
129
+ public readonly immutablesHash: Fr;
130
+ public readonly publicKeys: PublicKeys;
131
+
132
+ constructor(instance: ContractInstancePreimage) {
133
+ if (instance.version !== VERSION) {
134
+ throw new Error(`Unexpected contract class version ${instance.version}`);
135
+ }
136
+ this.salt = instance.salt;
137
+ this.deployer = instance.deployer;
138
+ this.originalContractClassId = instance.originalContractClassId;
139
+ this.initializationHash = instance.initializationHash;
140
+ this.immutablesHash = instance.immutablesHash;
141
+ this.publicKeys = instance.publicKeys;
142
+ }
143
+
144
+ public toBuffer() {
145
+ return serializeToBuffer(
146
+ numToUInt8(this.version),
147
+ this.salt,
148
+ this.deployer,
149
+ this.originalContractClassId,
150
+ this.initializationHash,
151
+ this.immutablesHash,
152
+ this.publicKeys,
153
+ );
154
+ }
155
+
156
+ /** Returns a copy of this object with its address included. */
157
+ withAddress(address: AztecAddress): ContractInstancePreimageWithAddress {
158
+ return { ...this, address };
159
+ }
160
+
161
+ static fromBuffer(bufferOrReader: Buffer | BufferReader): SerializableContractInstancePreimage {
162
+ const reader = BufferReader.asReader(bufferOrReader);
163
+ const version = reader.readUInt8();
164
+ if (version !== VERSION) {
165
+ throw new Error(`Unexpected contract instance preimage version ${version}`);
166
+ }
167
+ return new SerializableContractInstancePreimage({
168
+ version: VERSION,
169
+ salt: reader.readObject(Fr),
170
+ deployer: reader.readObject(AztecAddress),
171
+ originalContractClassId: reader.readObject(Fr),
172
+ initializationHash: reader.readObject(Fr),
173
+ immutablesHash: reader.readObject(Fr),
174
+ publicKeys: reader.readObject(PublicKeys),
175
+ });
176
+ }
177
+ }
178
+
118
179
  /**
119
180
  * Generates a Contract Instance from some instantiation params.
120
181
  * @param artifact - The account contract build artifact.
@@ -9,19 +9,19 @@ import { schemas, zodFor } from '../../schemas/index.js';
9
9
  const VERSION = 2 as const;
10
10
 
11
11
  /**
12
- * A contract instance is a concrete deployment of a contract class. It always references a contract class,
13
- * which dictates what code it executes when called. It has state (both private and public), as well as an
14
- * address that acts as its identifier. It can be called into. It may have encryption and nullifying public keys.
12
+ * The address preimage of a contract instance: the immutable data that hashes to its address, i.e. everything a
13
+ * contract deployment commits to.
14
+ *
15
+ * Note that `originaContractClassId` is not necessarily the instance's _current_ class id, in case of upgrades: that
16
+ * one is not part of the preimage and is instead derived from chain state.
15
17
  */
16
- export interface ContractInstance {
18
+ export interface ContractInstancePreimage {
17
19
  /** Version identifier. Initially one, bumped for any changes to the contract instance struct. */
18
20
  version: typeof VERSION;
19
21
  /** User-generated pseudorandom value for uniqueness. */
20
22
  salt: Fr;
21
23
  /** Optional deployer address or zero if this was a universal deploy. */
22
24
  deployer: AztecAddress;
23
- /** Identifier of the contract class for this instance. */
24
- currentContractClassId: Fr;
25
25
  /** Identifier of the original (at deployment) contract class for this instance */
26
26
  originalContractClassId: Fr;
27
27
  /** Hash of the selector and arguments to the constructor. */
@@ -32,14 +32,24 @@ export interface ContractInstance {
32
32
  publicKeys: PublicKeys;
33
33
  }
34
34
 
35
+ /**
36
+ * The address preimage plus the current contract class id, which is chain-tracked state derived from the
37
+ * ContractInstanceRegistry (it equals the original class id unless the contract has been upgraded).
38
+ */
39
+ export interface ContractInstance extends ContractInstancePreimage {
40
+ /** Identifier of the contract class this instance currently runs (as of some block). */
41
+ currentContractClassId: Fr;
42
+ }
43
+
44
+ export type ContractInstancePreimageWithAddress = ContractInstancePreimage & { address: AztecAddress };
45
+
35
46
  export type ContractInstanceWithAddress = ContractInstance & { address: AztecAddress };
36
47
 
37
- export const ContractInstanceSchema = zodFor<ContractInstance>()(
48
+ export const ContractInstancePreimageSchema = zodFor<ContractInstancePreimage>()(
38
49
  z.object({
39
50
  version: z.literal(VERSION),
40
51
  salt: schemas.Fr,
41
52
  deployer: schemas.AztecAddress,
42
- currentContractClassId: schemas.Fr,
43
53
  originalContractClassId: schemas.Fr,
44
54
  initializationHash: schemas.Fr,
45
55
  immutablesHash: schemas.Fr,
@@ -47,6 +57,14 @@ export const ContractInstanceSchema = zodFor<ContractInstance>()(
47
57
  }),
48
58
  );
49
59
 
60
+ export const ContractInstanceSchema = zodFor<ContractInstance>()(
61
+ ContractInstancePreimageSchema.and(z.object({ currentContractClassId: schemas.Fr })),
62
+ );
63
+
64
+ export const ContractInstancePreimageWithAddressSchema = zodFor<ContractInstancePreimageWithAddress>()(
65
+ ContractInstancePreimageSchema.and(z.object({ address: schemas.AztecAddress })),
66
+ );
67
+
50
68
  export const ContractInstanceWithAddressSchema = zodFor<ContractInstanceWithAddress>()(
51
69
  ContractInstanceSchema.and(z.object({ address: schemas.AztecAddress })),
52
70
  );
@@ -11,8 +11,11 @@ import { PublicKey, hashPublicKey } from './public_key.js';
11
11
  import { PublicKeys } from './public_keys.js';
12
12
  import { getKeyGenerator } from './utils.js';
13
13
 
14
- export function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr> {
15
- return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
14
+ export function computeAppNullifierHidingKey(
15
+ masterNullifierHidingSecretKey: GrumpkinScalar,
16
+ app: AztecAddress,
17
+ ): Promise<Fr> {
18
+ return computeAppSecretKey(masterNullifierHidingSecretKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
16
19
  }
17
20
 
18
21
  export function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr> {
@@ -27,7 +30,7 @@ export async function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): P
27
30
  return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
28
31
  }
29
32
 
30
- export function deriveMasterNullifierHidingKey(secretKey: Fr): GrumpkinScalar {
33
+ export function deriveMasterNullifierHidingSecretKey(secretKey: Fr): GrumpkinScalar {
31
34
  return sha512ToGrumpkinScalar([secretKey, DomainSeparator.NHK_M]);
32
35
  }
33
36
 
@@ -93,6 +96,11 @@ export async function computeAddressSecret(preaddress: Fr, ivsk: Fq) {
93
96
  }
94
97
 
95
98
  export function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey> {
99
+ // 0 * G is the point at infinity. The WASM encodes infinity with an out-of-field x coordinate that Point cannot
100
+ // deserialize, so return the point directly instead of calling into it.
101
+ if (secretKey.isZero()) {
102
+ return Promise.resolve(PublicKey.INFINITY);
103
+ }
96
104
  return Grumpkin.mul(Grumpkin.generator, secretKey);
97
105
  }
98
106
 
@@ -100,7 +108,7 @@ export function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey>
100
108
  * The six master secret keys that fully define an account's privacy keys.
101
109
  */
102
110
  export type MasterSecretKeys = {
103
- masterNullifierHidingKey: GrumpkinScalar;
111
+ masterNullifierHidingSecretKey: GrumpkinScalar;
104
112
  masterIncomingViewingSecretKey: GrumpkinScalar;
105
113
  masterOutgoingViewingSecretKey: GrumpkinScalar;
106
114
  masterTaggingSecretKey: GrumpkinScalar;
@@ -117,7 +125,7 @@ export function deriveKeys(secretKey: Fr) {
117
125
  // First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
118
126
  // in a circuit
119
127
  return deriveKeysFromMasterSecretKeys({
120
- masterNullifierHidingKey: deriveMasterNullifierHidingKey(secretKey),
128
+ masterNullifierHidingSecretKey: deriveMasterNullifierHidingSecretKey(secretKey),
121
129
  masterIncomingViewingSecretKey: deriveMasterIncomingViewingSecretKey(secretKey),
122
130
  masterOutgoingViewingSecretKey: deriveMasterOutgoingViewingSecretKey(secretKey),
123
131
  masterTaggingSecretKey: sha512ToGrumpkinScalar([secretKey, DomainSeparator.TSK_M]),
@@ -133,7 +141,7 @@ export function deriveKeys(secretKey: Fr) {
133
141
  */
134
142
  export async function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKeys) {
135
143
  const {
136
- masterNullifierHidingKey,
144
+ masterNullifierHidingSecretKey,
137
145
  masterIncomingViewingSecretKey,
138
146
  masterOutgoingViewingSecretKey,
139
147
  masterTaggingSecretKey,
@@ -141,7 +149,7 @@ export async function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKey
141
149
  masterFallbackSecretKey,
142
150
  } = secretKeys;
143
151
 
144
- const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
152
+ const masterNullifierHidingPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingSecretKey);
145
153
  const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
146
154
  const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
147
155
  const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
@@ -153,7 +161,7 @@ export async function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKey
153
161
  // store can persist them under `${account}-{n|ov|t|ms|fb}pk_m` (only their hashes live in publicKeys).
154
162
  // The ivpk_m point isn't returned separately because it already lives in publicKeys.ivpkM.
155
163
  const publicKeys = new PublicKeys(
156
- await hashPublicKey(masterNullifierPublicKey),
164
+ await hashPublicKey(masterNullifierHidingPublicKey),
157
165
  masterIncomingViewingPublicKey,
158
166
  await hashPublicKey(masterOutgoingViewingPublicKey),
159
167
  await hashPublicKey(masterTaggingPublicKey),
@@ -162,13 +170,13 @@ export async function deriveKeysFromMasterSecretKeys(secretKeys: MasterSecretKey
162
170
  );
163
171
 
164
172
  return {
165
- masterNullifierHidingKey,
173
+ masterNullifierHidingSecretKey,
166
174
  masterIncomingViewingSecretKey,
167
175
  masterOutgoingViewingSecretKey,
168
176
  masterTaggingSecretKey,
169
177
  masterMessageSigningSecretKey,
170
178
  masterFallbackSecretKey,
171
- masterNullifierPublicKey,
179
+ masterNullifierHidingPublicKey,
172
180
  masterOutgoingViewingPublicKey,
173
181
  masterTaggingPublicKey,
174
182
  masterMessageSigningPublicKey,