@aztec/archiver 2.0.3-rc.9 → 2.0.4
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/archiver/archiver.d.ts +7 -7
- package/dest/archiver/archiver.d.ts.map +1 -1
- package/dest/archiver/archiver.js +14 -17
- package/dest/factory.d.ts +2 -4
- package/dest/factory.d.ts.map +1 -1
- package/package.json +13 -13
- package/src/archiver/archiver.ts +21 -19
- package/src/factory.ts +1 -3
|
@@ -51,9 +51,7 @@ export declare class Archiver extends Archiver_base implements ArchiveSource, Tr
|
|
|
51
51
|
private readonly instrumentation;
|
|
52
52
|
private readonly l1constants;
|
|
53
53
|
private readonly log;
|
|
54
|
-
/**
|
|
55
|
-
* A promise in which we will be continually fetching new L2 blocks.
|
|
56
|
-
*/
|
|
54
|
+
/** A loop in which we will be continually fetching new L2 blocks. */
|
|
57
55
|
private runningPromise?;
|
|
58
56
|
private rollup;
|
|
59
57
|
private inbox;
|
|
@@ -61,6 +59,7 @@ export declare class Archiver extends Archiver_base implements ArchiveSource, Tr
|
|
|
61
59
|
private l1BlockNumber;
|
|
62
60
|
private l1Timestamp;
|
|
63
61
|
private initialSyncComplete;
|
|
62
|
+
private initialSyncPromise;
|
|
64
63
|
readonly tracer: Tracer;
|
|
65
64
|
/**
|
|
66
65
|
* Creates a new instance of the Archiver.
|
|
@@ -99,6 +98,7 @@ export declare class Archiver extends Archiver_base implements ArchiveSource, Tr
|
|
|
99
98
|
*/
|
|
100
99
|
start(blockUntilSynced: boolean): Promise<void>;
|
|
101
100
|
syncImmediate(): Promise<void>;
|
|
101
|
+
waitForInitialSync(): Promise<void>;
|
|
102
102
|
private syncSafe;
|
|
103
103
|
/**
|
|
104
104
|
* Fetches logs from L1 contracts and processes them.
|
|
@@ -126,10 +126,10 @@ export declare class Archiver extends Archiver_base implements ArchiveSource, Tr
|
|
|
126
126
|
getL1Constants(): Promise<L1RollupConstants>;
|
|
127
127
|
getRollupAddress(): Promise<EthAddress>;
|
|
128
128
|
getRegistryAddress(): Promise<EthAddress>;
|
|
129
|
-
getL1BlockNumber(): bigint;
|
|
130
|
-
getL1Timestamp(): Promise<bigint>;
|
|
131
|
-
getL2SlotNumber(): Promise<bigint>;
|
|
132
|
-
getL2EpochNumber(): Promise<bigint>;
|
|
129
|
+
getL1BlockNumber(): bigint | undefined;
|
|
130
|
+
getL1Timestamp(): Promise<bigint | undefined>;
|
|
131
|
+
getL2SlotNumber(): Promise<bigint | undefined>;
|
|
132
|
+
getL2EpochNumber(): Promise<bigint | undefined>;
|
|
133
133
|
getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]>;
|
|
134
134
|
getBlockHeadersForEpoch(epochNumber: bigint): Promise<BlockHeader[]>;
|
|
135
135
|
isEpochComplete(epochNumber: bigint): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAY,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"archiver.d.ts","sourceRoot":"","sources":["../../src/archiver/archiver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAY,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAKlE,OAAO,EAAE,YAAY,EAAkB,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAWnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,OAAO,EAEZ,KAAK,aAAa,EAElB,KAAK,MAAM,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAMjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC3G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,UAAU,EAAkB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAMjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQlD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,KAAK,mBAAmB,EAA6B,MAAM,iBAAiB,CAAC;AAEtF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAEpG,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,cAAc,EAAE,uBAAuB,CAAC;IACxC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;6BAe6C,UAAU,eAAe;AALxE;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,aAA4C,YAAW,aAAa,EAAE,SAAS;IA2BzG,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,QAAQ,CAAC,SAAS,EAAE,iBAAiB;IACrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAlCtB,qEAAqE;IACrE,OAAO,CAAC,cAAc,CAAC,CAAiB;IAExC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAgB;IAE7B,OAAO,CAAC,KAAK,CAAsB;IAEnC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,kBAAkB,CAA6B;IAEvD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B;;;;;;;;;OASG;gBAEgB,YAAY,EAAE,gBAAgB,EAC9B,WAAW,EAAE;QAAE,aAAa,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,UAAU,CAAC;QAAC,eAAe,EAAE,UAAU,CAAA;KAAE,EACzG,SAAS,EAAE,iBAAiB,EAC7B,MAAM,EAAE;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,6BAA6B,CAAC,EAAE,OAAO,CAAA;KAAE,EACxF,cAAc,EAAE,uBAAuB,EACvC,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,uBAAuB,EACxC,WAAW,EAAE,iBAAiB,GAAG;QAAE,gBAAgB,EAAE,QAAQ,CAAA;KAAE,EAC/D,GAAG,GAAE,MAAiC;IAYzD;;;;;;OAMG;WACiB,aAAa,CAC/B,MAAM,EAAE,cAAc,EACtB,aAAa,EAAE,iBAAiB,EAChC,IAAI,EAAE,YAAY,EAClB,gBAAgB,UAAO,GACtB,OAAO,CAAC,QAAQ,CAAC;IAmDpB,8BAA8B;IACvB,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC;IAItD;;;OAGG;IACU,KAAK,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BrD,aAAa;IAOb,kBAAkB;YAIX,QAAQ;IAgBtB;;OAEG;YAEW,IAAI;IAuGlB,qGAAqG;YACvF,QAAQ;IAatB,wFAAwF;YAC1E,gBAAgB;IA8C9B,OAAO,CAAC,SAAS;YAUH,oBAAoB;YA8FpB,qBAAqB;YAkBrB,sBAAsB;YAsCtB,cAAc;YAQd,cAAc;YAuRd,kCAAkC;IA6ChD,yCAAyC;IAClC,MAAM;IAWb;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI3C,cAAc,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI5C,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIvC,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC;IAIzC,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7C,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAM9C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAMzC,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAkB1D,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkBpE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BnE,mFAAmF;IAC5E,qBAAqB,IAAI,OAAO;IAIvC;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAInF,yDAAyD;IAC5C,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAO3G;;;;OAIG;IACU,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAYtD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAWjF,WAAW,CAAC,MAAM,EAAE,MAAM;IAI1B,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAI1E;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIzE;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAIrD;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhE;;;;OAIG;IACH,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAI9E;;;OAGG;IACI,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9C,wEAAwE;IACjE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAIlE,qBAAqB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAIhD,WAAW,CACtB,OAAO,EAAE,YAAY,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAanD;;;;OAIG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIrD;;;;OAIG;IACH,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIrE,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAIpC,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI9F,+BAA+B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrE,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAqDrB,UAAU,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAiCpE;AAOD;;;;;GAKG;AACH,qBAAa,mBACX,YACE,IAAI,CACF,iBAAiB,EACf,SAAS,GACT,YAAY,GACZ,oBAAoB,GACpB,uBAAuB,GACvB,sBAAsB,GACtB,yBAAyB,GACzB,4BAA4B,GAC5B,+BAA+B,GAC/B,cAAc,GACd,UAAU,GACV,OAAO,GACP,kBAAkB,GAClB,WAAW,CACd;;IAIS,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB;gBAAxB,KAAK,EAAE,iBAAiB;IA0IhD,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,4BAA4B,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAoCrG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA0CjF,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAG5E,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAGxE,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAGpE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAGjE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAGnE,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAG1D,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAGrD,qBAAqB,CAAC,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAGrE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAGlE,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;IAG1E,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAGhE,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAG9E,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC;IAG1C,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC;IAGzC,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAG5D,4BAA4B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGlE,wBAAwB,CAAC,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAG3D,aAAa,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAG9C,gBAAgB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAGlE,qBAAqB,CAAC,eAAe,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;IAGnE,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC;IAG/G,mBAAmB,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAGpC,kCAAkC,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAGvE,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAGpG,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IAG7C,YAAY,IAAI,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAGhH,+BAA+B,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGzE,qBAAqB,CAAC,KAAK,GAAE,WAAW,CAAC,MAAM,CAAM,GAAG,qBAAqB,CAAC,YAAY,CAAC;IAG3F,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGvD,oBAAoB,IAAI,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAGzD,+BAA+B,IAAI,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAG3E,+BAA+B,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxF"}
|
|
@@ -11,6 +11,7 @@ import { Buffer16, Buffer32 } from '@aztec/foundation/buffer';
|
|
|
11
11
|
import { merge, pick } from '@aztec/foundation/collection';
|
|
12
12
|
import { Fr } from '@aztec/foundation/fields';
|
|
13
13
|
import { createLogger } from '@aztec/foundation/log';
|
|
14
|
+
import { promiseWithResolvers } from '@aztec/foundation/promise';
|
|
14
15
|
import { RunningPromise, makeLoggingErrorHandler } from '@aztec/foundation/running-promise';
|
|
15
16
|
import { sleep } from '@aztec/foundation/sleep';
|
|
16
17
|
import { count } from '@aztec/foundation/string';
|
|
@@ -49,15 +50,14 @@ function mapArchiverConfig(config) {
|
|
|
49
50
|
instrumentation;
|
|
50
51
|
l1constants;
|
|
51
52
|
log;
|
|
52
|
-
/**
|
|
53
|
-
* A promise in which we will be continually fetching new L2 blocks.
|
|
54
|
-
*/ runningPromise;
|
|
53
|
+
/** A loop in which we will be continually fetching new L2 blocks. */ runningPromise;
|
|
55
54
|
rollup;
|
|
56
55
|
inbox;
|
|
57
56
|
store;
|
|
58
57
|
l1BlockNumber;
|
|
59
58
|
l1Timestamp;
|
|
60
59
|
initialSyncComplete;
|
|
60
|
+
initialSyncPromise;
|
|
61
61
|
tracer;
|
|
62
62
|
/**
|
|
63
63
|
* Creates a new instance of the Archiver.
|
|
@@ -74,6 +74,7 @@ function mapArchiverConfig(config) {
|
|
|
74
74
|
this.store = new ArchiverStoreHelper(dataStore);
|
|
75
75
|
this.rollup = new RollupContract(publicClient, l1Addresses.rollupAddress);
|
|
76
76
|
this.inbox = new InboxContract(publicClient, l1Addresses.inboxAddress);
|
|
77
|
+
this.initialSyncPromise = promiseWithResolvers();
|
|
77
78
|
}
|
|
78
79
|
/**
|
|
79
80
|
* Creates a new instance of the Archiver and blocks until it syncs from chain.
|
|
@@ -146,6 +147,9 @@ function mapArchiverConfig(config) {
|
|
|
146
147
|
}
|
|
147
148
|
return this.runningPromise.trigger();
|
|
148
149
|
}
|
|
150
|
+
waitForInitialSync() {
|
|
151
|
+
return this.initialSyncPromise.promise;
|
|
152
|
+
}
|
|
149
153
|
async syncSafe(initialRun) {
|
|
150
154
|
try {
|
|
151
155
|
await this.sync(initialRun);
|
|
@@ -239,6 +243,7 @@ function mapArchiverConfig(config) {
|
|
|
239
243
|
this.l1Timestamp = currentL1Timestamp;
|
|
240
244
|
this.l1BlockNumber = currentL1BlockNumber;
|
|
241
245
|
this.initialSyncComplete = true;
|
|
246
|
+
this.initialSyncPromise.resolve();
|
|
242
247
|
if (initialRun) {
|
|
243
248
|
this.log.info(`Initial archiver sync to L1 block ${currentL1BlockNumber} complete.`, {
|
|
244
249
|
l1BlockNumber: currentL1BlockNumber,
|
|
@@ -725,24 +730,16 @@ function mapArchiverConfig(config) {
|
|
|
725
730
|
return Promise.resolve(this.l1Addresses.registryAddress);
|
|
726
731
|
}
|
|
727
732
|
getL1BlockNumber() {
|
|
728
|
-
|
|
729
|
-
if (!l1BlockNumber) {
|
|
730
|
-
throw new Error('L1 block number not yet available. Complete an initial sync first.');
|
|
731
|
-
}
|
|
732
|
-
return l1BlockNumber;
|
|
733
|
+
return this.l1BlockNumber;
|
|
733
734
|
}
|
|
734
735
|
getL1Timestamp() {
|
|
735
|
-
|
|
736
|
-
if (!l1Timestamp) {
|
|
737
|
-
throw new Error('L1 timestamp not yet available. Complete an initial sync first.');
|
|
738
|
-
}
|
|
739
|
-
return Promise.resolve(l1Timestamp);
|
|
736
|
+
return Promise.resolve(this.l1Timestamp);
|
|
740
737
|
}
|
|
741
|
-
|
|
742
|
-
return getSlotAtTimestamp(
|
|
738
|
+
getL2SlotNumber() {
|
|
739
|
+
return Promise.resolve(this.l1Timestamp === undefined ? undefined : getSlotAtTimestamp(this.l1Timestamp, this.l1constants));
|
|
743
740
|
}
|
|
744
|
-
|
|
745
|
-
return getEpochNumberAtTimestamp(
|
|
741
|
+
getL2EpochNumber() {
|
|
742
|
+
return Promise.resolve(this.l1Timestamp === undefined ? undefined : getEpochNumberAtTimestamp(this.l1Timestamp, this.l1constants));
|
|
746
743
|
}
|
|
747
744
|
async getBlocksForEpoch(epochNumber) {
|
|
748
745
|
const [start, end] = getSlotRangeForEpoch(epochNumber, this.l1constants);
|
package/dest/factory.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { DataStoreConfig } from '@aztec/kv-store/config';
|
|
2
|
-
import type
|
|
3
|
-
import type { ArchiverApi, Service } from '@aztec/stdlib/interfaces/server';
|
|
4
|
-
import { type ArchiverDeps } from './archiver/archiver.js';
|
|
2
|
+
import { Archiver, type ArchiverDeps } from './archiver/archiver.js';
|
|
5
3
|
import type { ArchiverConfig } from './archiver/config.js';
|
|
6
4
|
import { KVArchiverDataStore } from './archiver/kv_archiver_store/kv_archiver_store.js';
|
|
7
5
|
export declare const ARCHIVER_STORE_NAME = "archiver";
|
|
@@ -17,5 +15,5 @@ export declare function createArchiverStore(userConfig: Pick<ArchiverConfig, 'ar
|
|
|
17
15
|
*/
|
|
18
16
|
export declare function createArchiver(config: ArchiverConfig & DataStoreConfig, deps: ArchiverDeps, opts?: {
|
|
19
17
|
blockUntilSync: boolean;
|
|
20
|
-
}): Promise<
|
|
18
|
+
}): Promise<Archiver>;
|
|
21
19
|
//# sourceMappingURL=factory.d.ts.map
|
package/dest/factory.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAO9D,OAAO,EAAE,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAuB,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAE7G,eAAO,MAAM,mBAAmB,aAAa,CAAC;AAE9C,iCAAiC;AACjC,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,wBAAwB,GAAG,SAAS,CAAC,GAAG,eAAe,gCAQzF;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GAAG,eAAe,EACxC,IAAI,EAAE,YAAY,EAClB,IAAI,GAAE;IAAE,cAAc,EAAE,OAAO,CAAA;CAA6B,GAC3D,OAAO,CAAC,QAAQ,CAAC,CAInB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/archiver",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -66,18 +66,18 @@
|
|
|
66
66
|
]
|
|
67
67
|
},
|
|
68
68
|
"dependencies": {
|
|
69
|
-
"@aztec/blob-lib": "2.0.
|
|
70
|
-
"@aztec/blob-sink": "2.0.
|
|
71
|
-
"@aztec/constants": "2.0.
|
|
72
|
-
"@aztec/epoch-cache": "2.0.
|
|
73
|
-
"@aztec/ethereum": "2.0.
|
|
74
|
-
"@aztec/foundation": "2.0.
|
|
75
|
-
"@aztec/kv-store": "2.0.
|
|
76
|
-
"@aztec/l1-artifacts": "2.0.
|
|
77
|
-
"@aztec/noir-protocol-circuits-types": "2.0.
|
|
78
|
-
"@aztec/protocol-contracts": "2.0.
|
|
79
|
-
"@aztec/stdlib": "2.0.
|
|
80
|
-
"@aztec/telemetry-client": "2.0.
|
|
69
|
+
"@aztec/blob-lib": "2.0.4",
|
|
70
|
+
"@aztec/blob-sink": "2.0.4",
|
|
71
|
+
"@aztec/constants": "2.0.4",
|
|
72
|
+
"@aztec/epoch-cache": "2.0.4",
|
|
73
|
+
"@aztec/ethereum": "2.0.4",
|
|
74
|
+
"@aztec/foundation": "2.0.4",
|
|
75
|
+
"@aztec/kv-store": "2.0.4",
|
|
76
|
+
"@aztec/l1-artifacts": "2.0.4",
|
|
77
|
+
"@aztec/noir-protocol-circuits-types": "2.0.4",
|
|
78
|
+
"@aztec/protocol-contracts": "2.0.4",
|
|
79
|
+
"@aztec/stdlib": "2.0.4",
|
|
80
|
+
"@aztec/telemetry-client": "2.0.4",
|
|
81
81
|
"lodash.groupby": "^4.6.0",
|
|
82
82
|
"lodash.omit": "^4.5.0",
|
|
83
83
|
"tsc-watch": "^6.0.0",
|
package/src/archiver/archiver.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { merge, pick } from '@aztec/foundation/collection';
|
|
|
14
14
|
import type { EthAddress } from '@aztec/foundation/eth-address';
|
|
15
15
|
import { Fr } from '@aztec/foundation/fields';
|
|
16
16
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
17
|
+
import { type PromiseWithResolvers, promiseWithResolvers } from '@aztec/foundation/promise';
|
|
17
18
|
import { RunningPromise, makeLoggingErrorHandler } from '@aztec/foundation/running-promise';
|
|
18
19
|
import { sleep } from '@aztec/foundation/sleep';
|
|
19
20
|
import { count } from '@aztec/foundation/string';
|
|
@@ -116,9 +117,7 @@ function mapArchiverConfig(config: Partial<ArchiverConfig>) {
|
|
|
116
117
|
* concern themselves with it.
|
|
117
118
|
*/
|
|
118
119
|
export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implements ArchiveSource, Traceable {
|
|
119
|
-
/**
|
|
120
|
-
* A promise in which we will be continually fetching new L2 blocks.
|
|
121
|
-
*/
|
|
120
|
+
/** A loop in which we will be continually fetching new L2 blocks. */
|
|
122
121
|
private runningPromise?: RunningPromise;
|
|
123
122
|
|
|
124
123
|
private rollup: RollupContract;
|
|
@@ -129,6 +128,7 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
129
128
|
private l1BlockNumber: bigint | undefined;
|
|
130
129
|
private l1Timestamp: bigint | undefined;
|
|
131
130
|
private initialSyncComplete: boolean = false;
|
|
131
|
+
private initialSyncPromise: PromiseWithResolvers<void>;
|
|
132
132
|
|
|
133
133
|
public readonly tracer: Tracer;
|
|
134
134
|
|
|
@@ -160,6 +160,7 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
160
160
|
|
|
161
161
|
this.rollup = new RollupContract(publicClient, l1Addresses.rollupAddress);
|
|
162
162
|
this.inbox = new InboxContract(publicClient, l1Addresses.inboxAddress);
|
|
163
|
+
this.initialSyncPromise = promiseWithResolvers();
|
|
163
164
|
}
|
|
164
165
|
|
|
165
166
|
/**
|
|
@@ -270,6 +271,10 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
270
271
|
return this.runningPromise.trigger();
|
|
271
272
|
}
|
|
272
273
|
|
|
274
|
+
public waitForInitialSync() {
|
|
275
|
+
return this.initialSyncPromise.promise;
|
|
276
|
+
}
|
|
277
|
+
|
|
273
278
|
private async syncSafe(initialRun: boolean) {
|
|
274
279
|
try {
|
|
275
280
|
await this.sync(initialRun);
|
|
@@ -382,6 +387,7 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
382
387
|
this.l1Timestamp = currentL1Timestamp;
|
|
383
388
|
this.l1BlockNumber = currentL1BlockNumber;
|
|
384
389
|
this.initialSyncComplete = true;
|
|
390
|
+
this.initialSyncPromise.resolve();
|
|
385
391
|
|
|
386
392
|
if (initialRun) {
|
|
387
393
|
this.log.info(`Initial archiver sync to L1 block ${currentL1BlockNumber} complete.`, {
|
|
@@ -985,28 +991,24 @@ export class Archiver extends (EventEmitter as new () => ArchiverEmitter) implem
|
|
|
985
991
|
return Promise.resolve(this.l1Addresses.registryAddress);
|
|
986
992
|
}
|
|
987
993
|
|
|
988
|
-
public getL1BlockNumber(): bigint {
|
|
989
|
-
|
|
990
|
-
if (!l1BlockNumber) {
|
|
991
|
-
throw new Error('L1 block number not yet available. Complete an initial sync first.');
|
|
992
|
-
}
|
|
993
|
-
return l1BlockNumber;
|
|
994
|
+
public getL1BlockNumber(): bigint | undefined {
|
|
995
|
+
return this.l1BlockNumber;
|
|
994
996
|
}
|
|
995
997
|
|
|
996
|
-
public getL1Timestamp(): Promise<bigint> {
|
|
997
|
-
|
|
998
|
-
if (!l1Timestamp) {
|
|
999
|
-
throw new Error('L1 timestamp not yet available. Complete an initial sync first.');
|
|
1000
|
-
}
|
|
1001
|
-
return Promise.resolve(l1Timestamp);
|
|
998
|
+
public getL1Timestamp(): Promise<bigint | undefined> {
|
|
999
|
+
return Promise.resolve(this.l1Timestamp);
|
|
1002
1000
|
}
|
|
1003
1001
|
|
|
1004
|
-
public
|
|
1005
|
-
return
|
|
1002
|
+
public getL2SlotNumber(): Promise<bigint | undefined> {
|
|
1003
|
+
return Promise.resolve(
|
|
1004
|
+
this.l1Timestamp === undefined ? undefined : getSlotAtTimestamp(this.l1Timestamp, this.l1constants),
|
|
1005
|
+
);
|
|
1006
1006
|
}
|
|
1007
1007
|
|
|
1008
|
-
public
|
|
1009
|
-
return
|
|
1008
|
+
public getL2EpochNumber(): Promise<bigint | undefined> {
|
|
1009
|
+
return Promise.resolve(
|
|
1010
|
+
this.l1Timestamp === undefined ? undefined : getEpochNumberAtTimestamp(this.l1Timestamp, this.l1constants),
|
|
1011
|
+
);
|
|
1010
1012
|
}
|
|
1011
1013
|
|
|
1012
1014
|
public async getBlocksForEpoch(epochNumber: bigint): Promise<L2Block[]> {
|
package/src/factory.ts
CHANGED
|
@@ -4,9 +4,7 @@ import { createStore } from '@aztec/kv-store/lmdb-v2';
|
|
|
4
4
|
import { protocolContractNames } from '@aztec/protocol-contracts';
|
|
5
5
|
import { BundledProtocolContractsProvider } from '@aztec/protocol-contracts/providers/bundle';
|
|
6
6
|
import { FunctionType, decodeFunctionSignature } from '@aztec/stdlib/abi';
|
|
7
|
-
import type { L2BlockSourceEventEmitter } from '@aztec/stdlib/block';
|
|
8
7
|
import { type ContractClassPublic, computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
|
|
9
|
-
import type { ArchiverApi, Service } from '@aztec/stdlib/interfaces/server';
|
|
10
8
|
|
|
11
9
|
import { Archiver, type ArchiverDeps } from './archiver/archiver.js';
|
|
12
10
|
import type { ArchiverConfig } from './archiver/config.js';
|
|
@@ -38,7 +36,7 @@ export async function createArchiver(
|
|
|
38
36
|
config: ArchiverConfig & DataStoreConfig,
|
|
39
37
|
deps: ArchiverDeps,
|
|
40
38
|
opts: { blockUntilSync: boolean } = { blockUntilSync: true },
|
|
41
|
-
): Promise<
|
|
39
|
+
): Promise<Archiver> {
|
|
42
40
|
const archiverStore = await createArchiverStore(config);
|
|
43
41
|
await registerProtocolContracts(archiverStore);
|
|
44
42
|
return Archiver.createAndSync(config, archiverStore, deps, opts.blockUntilSync);
|