@aztec/stdlib 5.0.0-nightly.20260701 → 5.0.0-nightly.20260703
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.
- package/dest/block/l2_block_source.d.ts +22 -2
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +10 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts +39 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.d.ts.map +1 -0
- package/dest/block/l2_block_stream/event_driven_l2_block_stream.js +165 -0
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +16 -2
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/interfaces.js +25 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +21 -35
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +5 -30
- package/dest/contract/contract_address.d.ts +5 -4
- package/dest/contract/contract_address.d.ts.map +1 -1
- package/dest/contract/contract_instance.d.ts +16 -2
- package/dest/contract/contract_instance.d.ts.map +1 -1
- package/dest/contract/contract_instance.js +45 -0
- package/dest/contract/interfaces/contract_instance.d.ts +71 -10
- package/dest/contract/interfaces/contract_instance.d.ts.map +1 -1
- package/dest/contract/interfaces/contract_instance.js +7 -2
- package/dest/contract/partial_address.d.ts +9 -3
- package/dest/contract/partial_address.d.ts.map +1 -1
- package/dest/contract/partial_address.js +8 -2
- package/dest/interfaces/proving-job.d.ts +70 -70
- package/dest/keys/derivation.d.ts +35 -5
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/derivation.js +32 -19
- package/dest/logs/app_tagging_secret.d.ts +11 -8
- package/dest/logs/app_tagging_secret.d.ts.map +1 -1
- package/dest/logs/app_tagging_secret.js +14 -14
- package/dest/logs/shared_secret_derivation.d.ts +14 -7
- package/dest/logs/shared_secret_derivation.d.ts.map +1 -1
- package/dest/logs/shared_secret_derivation.js +16 -8
- package/dest/tx/simulated_tx.d.ts +10 -6
- package/dest/tx/simulated_tx.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/block/l2_block_source.ts +41 -0
- package/src/block/l2_block_stream/event_driven_l2_block_stream.ts +207 -0
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +35 -1
- package/src/block/l2_block_stream/l2_block_stream.ts +35 -62
- package/src/contract/contract_address.ts +4 -3
- package/src/contract/contract_instance.ts +62 -1
- package/src/contract/interfaces/contract_instance.ts +26 -8
- package/src/contract/partial_address.ts +8 -2
- package/src/keys/derivation.ts +53 -16
- package/src/logs/app_tagging_secret.ts +14 -10
- package/src/logs/shared_secret_derivation.ts +17 -10
|
@@ -3,6 +3,7 @@ import { AbortError } from '@aztec/foundation/error';
|
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { RunningPromise } from '@aztec/foundation/running-promise';
|
|
5
5
|
import { makeL2BlockId } from '../l2_block_source.js';
|
|
6
|
+
import { localBlockIdDiffers } from './interfaces.js';
|
|
6
7
|
/** Creates a stream of events for new blocks, chain tips updates, and reorgs, out of polling an archiver or a node. */ export class L2BlockStream {
|
|
7
8
|
l2BlockSource;
|
|
8
9
|
localData;
|
|
@@ -129,28 +130,28 @@ import { makeL2BlockId } from '../l2_block_source.js';
|
|
|
129
130
|
// End-of-pass reconciliation: chain-proposed fires against the pre-pass baseline (a post-prune re-read would
|
|
130
131
|
// equal the source tip and suppress it), then the tiers highest-to-lowest so the finalized <= proven <=
|
|
131
132
|
// checkpointed <= proposed invariant holds mid-pass.
|
|
132
|
-
if (
|
|
133
|
+
if (localBlockIdDiffers(prePassProposed, sourceTips.proposed)) {
|
|
133
134
|
await this.emitEvent({
|
|
134
135
|
type: 'chain-proposed',
|
|
135
136
|
block: sourceTips.proposed
|
|
136
137
|
});
|
|
137
138
|
}
|
|
138
139
|
const reconcileTips = pruned ? await this.localData.getL2Tips() : localTips;
|
|
139
|
-
if (!this.opts.ignoreCheckpoints &&
|
|
140
|
+
if (!this.opts.ignoreCheckpoints && localBlockIdDiffers(reconcileTips.checkpointed?.block, sourceTips.checkpointed.block)) {
|
|
140
141
|
await this.emitEvent({
|
|
141
142
|
type: 'chain-checkpointed',
|
|
142
143
|
block: sourceTips.checkpointed.block,
|
|
143
144
|
checkpoint: sourceTips.checkpointed.checkpoint
|
|
144
145
|
});
|
|
145
146
|
}
|
|
146
|
-
if (reconcileTips.proven !== undefined &&
|
|
147
|
+
if (reconcileTips.proven !== undefined && localBlockIdDiffers(reconcileTips.proven.block, sourceTips.proven.block)) {
|
|
147
148
|
await this.emitEvent({
|
|
148
149
|
type: 'chain-proven',
|
|
149
150
|
block: sourceTips.proven.block,
|
|
150
151
|
checkpoint: sourceTips.proven.checkpoint
|
|
151
152
|
});
|
|
152
153
|
}
|
|
153
|
-
if (reconcileTips.finalized !== undefined &&
|
|
154
|
+
if (reconcileTips.finalized !== undefined && localBlockIdDiffers(reconcileTips.finalized.block, sourceTips.finalized.block)) {
|
|
154
155
|
await this.emitEvent({
|
|
155
156
|
type: 'chain-finalized',
|
|
156
157
|
block: sourceTips.finalized.block,
|
|
@@ -230,32 +231,6 @@ import { makeL2BlockId } from '../l2_block_source.js';
|
|
|
230
231
|
return true;
|
|
231
232
|
}
|
|
232
233
|
/**
|
|
233
|
-
* Returns whether the source tip differs from the local one and therefore warrants a tier event. Compares block
|
|
234
|
-
* number and, when both hashes are known, block hash. The hash comparison is skipped when the local hash is
|
|
235
|
-
* undefined or missing: world-state legitimately reports `undefined` hashes for tips ahead of its synced range,
|
|
236
|
-
* and comparing against an undefined hash would re-emit the event on every poll.
|
|
237
|
-
*/ tipDiffers(localBlock, sourceTip) {
|
|
238
|
-
return this.blockTipDiffers(localBlock, sourceTip.block);
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Block-only variant of {@link tipDiffers} for the proposed tip (an {@link L2BlockId}, with no checkpoint). Compares
|
|
242
|
-
* block number and, when the local hash is known, block hash. The hash comparison is skipped when the local hash is
|
|
243
|
-
* undefined: world-state reports `undefined` for its proposed hash, and a strict comparison would re-emit
|
|
244
|
-
* `chain-proposed` on every poll for it. ({@link L2TipsStoreBase} consumers always carry a hash, so the leniency is
|
|
245
|
-
* inert for them.)
|
|
246
|
-
*/ blockTipDiffers(localBlock, sourceBlock) {
|
|
247
|
-
if (localBlock === undefined) {
|
|
248
|
-
return true;
|
|
249
|
-
}
|
|
250
|
-
if (sourceBlock.number !== localBlock.number) {
|
|
251
|
-
return true;
|
|
252
|
-
}
|
|
253
|
-
if (localBlock.hash === undefined) {
|
|
254
|
-
return false;
|
|
255
|
-
}
|
|
256
|
-
return sourceBlock.hash !== localBlock.hash;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
234
|
* Returns whether the source and local agree on the block hash at a given height.
|
|
260
235
|
* @param blockNumber - The block number to test.
|
|
261
236
|
* @param args - A cache of data already requested from source (to avoid re-requesting it) and the source's
|
|
@@ -1,7 +1,8 @@
|
|
|
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
|
+
import type { PartialAddress } from './partial_address.js';
|
|
5
6
|
/**
|
|
6
7
|
* Returns the deployment address for a given contract instance.
|
|
7
8
|
* ```
|
|
@@ -11,7 +12,7 @@ import type { ContractInstance } from './interfaces/contract_instance.js';
|
|
|
11
12
|
* ```
|
|
12
13
|
* @param instance - A contract instance for which to calculate the deployment address.
|
|
13
14
|
*/
|
|
14
|
-
export declare function computeContractAddressFromInstance(instance:
|
|
15
|
+
export declare function computeContractAddressFromInstance(instance: ContractInstancePreimage | ({
|
|
15
16
|
originalContractClassId: Fr;
|
|
16
17
|
saltedInitializationHash: Fr;
|
|
17
18
|
} & Pick<ContractInstance, 'publicKeys'>)): Promise<AztecAddress>;
|
|
@@ -22,7 +23,7 @@ export declare function computeContractAddressFromInstance(instance: ContractIns
|
|
|
22
23
|
export declare function computePartialAddress(instance: Pick<ContractInstance, 'originalContractClassId' | 'initializationHash' | 'salt' | 'deployer' | 'immutablesHash'> | {
|
|
23
24
|
originalContractClassId: Fr;
|
|
24
25
|
saltedInitializationHash: Fr;
|
|
25
|
-
}): Promise<
|
|
26
|
+
}): Promise<PartialAddress>;
|
|
26
27
|
/**
|
|
27
28
|
* Computes the salted initialization hash for an address, defined as the hash of the salt and initialization hash.
|
|
28
29
|
* @param instance - Contract instance for which to compute the salted initialization hash.
|
|
@@ -42,4 +43,4 @@ export declare function computeInitializationHash(initFn: FunctionAbi | undefine
|
|
|
42
43
|
* @returns The hash.
|
|
43
44
|
*/
|
|
44
45
|
export declare function computeInitializationHashFromEncodedArgs(initFn: FunctionSelector, encodedArgs: Fr[]): Promise<Fr>;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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;
|
|
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,
|
|
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,
|
|
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
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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
|
|
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
|
})));
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import type { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* The contract-side preimage of an Aztec address, i.e. the commitment to a specific contract instance.
|
|
4
|
+
*
|
|
5
|
+
* A partial address commits to a contract's code and initialization
|
|
6
|
+
* (`hash(contract_class_id, salted_initialization_hash)`) but not to its keys. Combined with an account's `PublicKeys`,
|
|
7
|
+
* it fully determines the address: `address = (hash(public_keys_hash, partial_address) * G + Ivpk_m).x`. Two accounts
|
|
8
|
+
* therefore share an address only if they share both their public keys and their partial address.
|
|
9
|
+
*
|
|
10
|
+
* See `computePartialAddress` for the derivation.
|
|
5
11
|
*/
|
|
6
12
|
export type PartialAddress = Fr;
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbF9hZGRyZXNzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJhY3QvcGFydGlhbF9hZGRyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXpEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sTUFBTSxjQUFjLEdBQUcsRUFBRSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partial_address.d.ts","sourceRoot":"","sources":["../../src/contract/partial_address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"partial_address.d.ts","sourceRoot":"","sources":["../../src/contract/partial_address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEzD;;;;;;;;;GASG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC"}
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* The contract-side preimage of an Aztec address, i.e. the commitment to a specific contract instance.
|
|
3
|
+
*
|
|
4
|
+
* A partial address commits to a contract's code and initialization
|
|
5
|
+
* (`hash(contract_class_id, salted_initialization_hash)`) but not to its keys. Combined with an account's `PublicKeys`,
|
|
6
|
+
* it fully determines the address: `address = (hash(public_keys_hash, partial_address) * G + Ivpk_m).x`. Two accounts
|
|
7
|
+
* therefore share an address only if they share both their public keys and their partial address.
|
|
8
|
+
*
|
|
9
|
+
* See `computePartialAddress` for the derivation.
|
|
4
10
|
*/ export { };
|