@aztec/archiver 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/dest/archiver/config.d.ts.map +1 -1
  2. package/dest/archiver/config.js +5 -3
  3. package/dest/archiver/eth_log_handlers.d.ts +1 -1
  4. package/dest/archiver/eth_log_handlers.d.ts.map +1 -1
  5. package/dest/archiver/eth_log_handlers.js +12 -6
  6. package/dest/archiver/index.d.ts +1 -1
  7. package/dest/archiver/index.d.ts.map +1 -1
  8. package/dest/archiver/index.js +2 -2
  9. package/dest/archiver/kv_archiver_store/block_store.d.ts +59 -0
  10. package/dest/archiver/kv_archiver_store/block_store.d.ts.map +1 -0
  11. package/dest/archiver/kv_archiver_store/block_store.js +140 -0
  12. package/dest/archiver/kv_archiver_store/contract_store.d.ts +46 -0
  13. package/dest/archiver/kv_archiver_store/contract_store.d.ts.map +1 -0
  14. package/dest/archiver/kv_archiver_store/contract_store.js +81 -0
  15. package/dest/archiver/{lmdb_archiver_store.d.ts → kv_archiver_store/kv_archiver_store.d.ts} +14 -12
  16. package/dest/archiver/kv_archiver_store/kv_archiver_store.d.ts.map +1 -0
  17. package/dest/archiver/kv_archiver_store/kv_archiver_store.js +207 -0
  18. package/dest/archiver/kv_archiver_store/log_store.d.ts +35 -0
  19. package/dest/archiver/kv_archiver_store/log_store.d.ts.map +1 -0
  20. package/dest/archiver/kv_archiver_store/log_store.js +131 -0
  21. package/dest/archiver/kv_archiver_store/message_store.d.ts +53 -0
  22. package/dest/archiver/kv_archiver_store/message_store.d.ts.map +1 -0
  23. package/dest/archiver/kv_archiver_store/message_store.js +138 -0
  24. package/package.json +7 -7
  25. package/dest/archiver/lmdb_archiver_store.d.ts.map +0 -1
  26. package/dest/archiver/lmdb_archiver_store.js +0 -528
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAgCjD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/archiver/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,WAAW,EAAE,mBAAmB,CAAC;IAEjC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAmCjD"}
@@ -5,9 +5,12 @@ import { EthAddress } from '@aztec/foundation/eth-address';
5
5
  * @returns The archiver configuration.
6
6
  */
7
7
  export function getConfigEnvVars() {
8
- const { ETHEREUM_HOST, ARCHIVER_POLLING_INTERVAL_MS, ARCHIVER_VIEM_POLLING_INTERVAL_MS, ROLLUP_CONTRACT_ADDRESS, CONTRACT_DEPLOYMENT_EMITTER_ADDRESS, API_KEY, INBOX_CONTRACT_ADDRESS, OUTBOX_CONTRACT_ADDRESS, REGISTRY_CONTRACT_ADDRESS, DATA_DIRECTORY, } = process.env;
8
+ const { ETHEREUM_HOST, ARCHIVER_POLLING_INTERVAL_MS, ARCHIVER_VIEM_POLLING_INTERVAL_MS, AVAILABILITY_ORACLE_CONTRACT_ADDRESS, ROLLUP_CONTRACT_ADDRESS, CONTRACT_DEPLOYMENT_EMITTER_ADDRESS, API_KEY, INBOX_CONTRACT_ADDRESS, OUTBOX_CONTRACT_ADDRESS, REGISTRY_CONTRACT_ADDRESS, DATA_DIRECTORY, } = process.env;
9
9
  // Populate the relevant addresses for use by the archiver.
10
10
  const addresses = {
11
+ availabilityOracleAddress: AVAILABILITY_ORACLE_CONTRACT_ADDRESS
12
+ ? EthAddress.fromString(AVAILABILITY_ORACLE_CONTRACT_ADDRESS)
13
+ : EthAddress.ZERO,
11
14
  rollupAddress: ROLLUP_CONTRACT_ADDRESS ? EthAddress.fromString(ROLLUP_CONTRACT_ADDRESS) : EthAddress.ZERO,
12
15
  registryAddress: REGISTRY_CONTRACT_ADDRESS ? EthAddress.fromString(REGISTRY_CONTRACT_ADDRESS) : EthAddress.ZERO,
13
16
  inboxAddress: INBOX_CONTRACT_ADDRESS ? EthAddress.fromString(INBOX_CONTRACT_ADDRESS) : EthAddress.ZERO,
@@ -15,7 +18,6 @@ export function getConfigEnvVars() {
15
18
  contractDeploymentEmitterAddress: CONTRACT_DEPLOYMENT_EMITTER_ADDRESS
16
19
  ? EthAddress.fromString(CONTRACT_DEPLOYMENT_EMITTER_ADDRESS)
17
20
  : EthAddress.ZERO,
18
- decoderHelperAddress: EthAddress.ZERO,
19
21
  };
20
22
  return {
21
23
  rpcUrl: ETHEREUM_HOST || 'http://127.0.0.1:8545/',
@@ -26,4 +28,4 @@ export function getConfigEnvVars() {
26
28
  dataDirectory: DATA_DIRECTORY,
27
29
  };
28
30
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUErQzNEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE1BQU0sRUFDSixhQUFhLEVBQ2IsNEJBQTRCLEVBQzVCLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsbUNBQW1DLEVBQ25DLE9BQU8sRUFDUCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHlCQUF5QixFQUN6QixjQUFjLEdBQ2YsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO0lBQ2hCLDJEQUEyRDtJQUMzRCxNQUFNLFNBQVMsR0FBd0I7UUFDckMsYUFBYSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3pHLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUMvRyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdEcsYUFBYSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3pHLGdDQUFnQyxFQUFFLG1DQUFtQztZQUNuRSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDbkIsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLElBQUk7S0FDdEMsQ0FBQztJQUNGLE9BQU87UUFDTCxNQUFNLEVBQUUsYUFBYSxJQUFJLHdCQUF3QjtRQUNqRCx5QkFBeUIsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSztRQUMvRixxQkFBcUIsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsSUFBSztRQUNyRyxNQUFNLEVBQUUsT0FBTztRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGFBQWEsRUFBRSxjQUFjO0tBQzlCLENBQUM7QUFDSixDQUFDIn0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FyY2hpdmVyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUErQzNEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE1BQU0sRUFDSixhQUFhLEVBQ2IsNEJBQTRCLEVBQzVCLGlDQUFpQyxFQUNqQyxvQ0FBb0MsRUFDcEMsdUJBQXVCLEVBQ3ZCLG1DQUFtQyxFQUNuQyxPQUFPLEVBQ1Asc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDekIsY0FBYyxHQUNmLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQztJQUNoQiwyREFBMkQ7SUFDM0QsTUFBTSxTQUFTLEdBQXdCO1FBQ3JDLHlCQUF5QixFQUFFLG9DQUFvQztZQUM3RCxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxvQ0FBb0MsQ0FBQztZQUM3RCxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDbkIsYUFBYSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3pHLGVBQWUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSTtRQUMvRyxZQUFZLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7UUFDdEcsYUFBYSxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJO1FBQ3pHLGdDQUFnQyxFQUFFLG1DQUFtQztZQUNuRSxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztZQUM1RCxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUk7S0FDcEIsQ0FBQztJQUNGLE9BQU87UUFDTCxNQUFNLEVBQUUsYUFBYSxJQUFJLHdCQUF3QjtRQUNqRCx5QkFBeUIsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSztRQUMvRixxQkFBcUIsRUFBRSxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsSUFBSztRQUNyRyxNQUFNLEVBQUUsT0FBTztRQUNmLFdBQVcsRUFBRSxTQUFTO1FBQ3RCLGFBQWEsRUFBRSxjQUFjO0tBQzlCLENBQUM7QUFDSixDQUFDIn0=
@@ -36,7 +36,7 @@ export declare function getL2BlockProcessedLogs(publicClient: PublicClient, roll
36
36
  readonly inputs: readonly [{
37
37
  readonly indexed: true;
38
38
  readonly internalType: "uint256";
39
- readonly name: "blockNum";
39
+ readonly name: "blockNumber";
40
40
  readonly type: "uint256";
41
41
  }];
42
42
  readonly name: "L2BlockProcessed";
@@ -1 +1 @@
1
- {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,oBAAoB,EAEpB,aAAa,EAEb,OAAO,EACR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,EAAO,GAAG,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAEtG;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,GAC5E,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAmB3B;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,GACtF,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAMhB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,GACjF,OAAO,CAAC,OAAO,EAAE,CAAC,CAcpB;AAiCD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;;;;;;;;;;UAchB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,gCAAgC,EAAE,UAAU,EAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAW5G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACvD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,GACtG,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,EAAE,CA8BpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,CAWlF;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC,CAW5F"}
1
+ {"version":3,"file":"eth_log_handlers.d.ts","sourceRoot":"","sources":["../../src/archiver/eth_log_handlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAGL,oBAAoB,EAEpB,aAAa,EAEb,OAAO,EACR,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAS,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,4BAA4B,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAExF,OAAO,EAAO,GAAG,EAAE,YAAY,EAA0D,MAAM,MAAM,CAAC;AAEtG;;;;GAIG;AACH,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,GAC5E,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAmB3B;AAED;;;;GAIG;AACH,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,GACtF,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAMhB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,EAC1B,qBAAqB,EAAE,MAAM,EAC7B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,GACjF,OAAO,CAAC,OAAO,EAAE,CAAC,CAcpB;AAuCD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,UAAU,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;;;;;;;;;;UAchB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,YAAY,EAC1B,gCAAgC,EAAE,UAAU,EAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAW5G;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,EACvD,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,4BAA4B,EAAE,oBAAoB,CAAC,EAAE,GACtG,CAAC,oBAAoB,EAAE,EAAE,MAAM,CAAC,EAAE,CA8BpC;AAED;;;;;;;GAOG;AACH,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC,CAWlF;AAED;;;;;;;GAOG;AACH,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,UAAU,EACxB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,QAAQ,EAAE,wBAAwB,CAAC,EAAE,CAAC,CAW5F"}
@@ -2,7 +2,7 @@ import { ContractData, EncodedContractFunction, ExtendedContractData, L1Actor, L
2
2
  import { AztecAddress } from '@aztec/foundation/aztec-address';
3
3
  import { EthAddress } from '@aztec/foundation/eth-address';
4
4
  import { Fr, Point } from '@aztec/foundation/fields';
5
- import { BufferReader } from '@aztec/foundation/serialize';
5
+ import { BufferReader, numToUInt32BE } from '@aztec/foundation/serialize';
6
6
  import { ContractDeploymentEmitterAbi, InboxAbi, RollupAbi } from '@aztec/l1-artifacts';
7
7
  import { decodeFunctionData, getAbiItem, getAddress, hexToBytes } from 'viem';
8
8
  /**
@@ -42,12 +42,12 @@ export function processCancelledL1ToL2MessagesLogs(logs) {
42
42
  export async function processBlockLogs(publicClient, expectedL2BlockNumber, logs) {
43
43
  const retrievedBlocks = [];
44
44
  for (const log of logs) {
45
- const blockNum = log.args.blockNum;
45
+ const blockNum = log.args.blockNumber;
46
46
  if (blockNum !== expectedL2BlockNumber) {
47
47
  throw new Error('Block number mismatch. Expected: ' + expectedL2BlockNumber + ' but got: ' + blockNum + '.');
48
48
  }
49
49
  // TODO: Fetch blocks from calldata in parallel
50
- const newBlock = await getBlockFromCallData(publicClient, log.transactionHash, log.args.blockNum);
50
+ const newBlock = await getBlockFromCallData(publicClient, log.transactionHash, log.args.blockNumber);
51
51
  newBlock.setL1BlockNumber(log.blockNumber);
52
52
  retrievedBlocks.push(newBlock);
53
53
  expectedL2BlockNumber++;
@@ -73,8 +73,14 @@ async function getBlockFromCallData(publicClient, txHash, l2BlockNum) {
73
73
  if (functionName !== 'process') {
74
74
  throw new Error(`Unexpected method called ${functionName}`);
75
75
  }
76
- const [, l2BlockHex] = args;
77
- const block = L2Block.fromBufferWithLogs(Buffer.from(hexToBytes(l2BlockHex)));
76
+ const [headerHex, archiveRootHex, , bodyHex] = args;
77
+ const blockBuffer = Buffer.concat([
78
+ Buffer.from(hexToBytes(headerHex)),
79
+ Buffer.from(hexToBytes(archiveRootHex)),
80
+ numToUInt32BE(Number(l2BlockNum)),
81
+ Buffer.from(hexToBytes(bodyHex)),
82
+ ]);
83
+ const block = L2Block.fromBufferWithLogs(blockBuffer);
78
84
  if (BigInt(block.number) !== l2BlockNum) {
79
85
  throw new Error(`Block number mismatch: expected ${l2BlockNum} but got ${block.number}`);
80
86
  }
@@ -191,4 +197,4 @@ export async function getL1ToL2MessageCancelledLogs(publicClient, inboxAddress,
191
197
  toBlock: toBlock + 1n, // the toBlock argument in getLogs is exclusive
192
198
  });
193
199
  }
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixPQUFPLEVBQ1AsYUFBYSxFQUNiLE9BQU8sRUFDUCxPQUFPLEdBQ1IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEYsT0FBTyxFQUEwQixrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV0Rzs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLG9DQUFvQyxDQUNsRCxJQUE2RTtJQUU3RSxNQUFNLGNBQWMsR0FBOEIsRUFBRSxDQUFDO0lBQ3JELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1FBQ3RCLE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQ3hHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDWCxjQUFjLENBQUMsSUFBSSxDQUFDO1lBQ2xCLElBQUksYUFBYSxDQUNmLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsTUFBTSxD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
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoX2xvZ19oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcmNoaXZlci9ldGhfbG9nX2hhbmRsZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixPQUFPLEVBQ1AsYUFBYSxFQUNiLE9BQU8sRUFDUCxPQUFPLEdBQ1IsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhGLE9BQU8sRUFBMEIsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEc7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQ0FBb0MsQ0FDbEQsSUFBNkU7SUFFN0UsTUFBTSxjQUFjLEdBQThCLEVBQUUsQ0FBQztJQUNyRCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtRQUN0QixNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUN4RyxHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1gsY0FBYyxDQUFDLElBQUksQ0FBQztZQUNsQixJQUFJLGFBQWEsQ0FDZixJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxD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
@@ -1,6 +1,6 @@
1
1
  export * from './archiver.js';
2
2
  export * from './config.js';
3
3
  export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
4
- export { LMDBArchiverStore } from './lmdb_archiver_store.js';
5
4
  export { ArchiverDataStore } from './archiver_store.js';
5
+ export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/archiver/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export * from './archiver.js';
2
2
  export * from './config.js';
3
3
  export { MemoryArchiverStore } from './memory_archiver_store/memory_archiver_store.js';
4
- export { LMDBArchiverStore } from './lmdb_archiver_store.js';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUMifQ==
4
+ export { KVArchiverDataStore } from './kv_archiver_store/kv_archiver_store.js';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXJjaGl2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFFdkYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUMifQ==
@@ -0,0 +1,59 @@
1
+ import { L2Block, L2Tx, TxHash } from '@aztec/circuit-types';
2
+ import { AztecAddress } from '@aztec/circuits.js';
3
+ import { AztecKVStore } from '@aztec/kv-store';
4
+ /**
5
+ * LMDB implementation of the ArchiverDataStore interface.
6
+ */
7
+ export declare class BlockStore {
8
+ #private;
9
+ private db;
10
+ constructor(db: AztecKVStore);
11
+ /**
12
+ * Append new blocks to the store's list.
13
+ * @param blocks - The L2 blocks to be added to the store.
14
+ * @returns True if the operation is successful.
15
+ */
16
+ addBlocks(blocks: L2Block[]): Promise<boolean>;
17
+ /**
18
+ * Gets up to `limit` amount of L2 blocks starting from `from`.
19
+ * @param start - Number of the first block to return (inclusive).
20
+ * @param limit - The number of blocks to return.
21
+ * @returns The requested L2 blocks, without logs attached
22
+ */
23
+ getBlocks(start: number, limit: number): IterableIterator<L2Block>;
24
+ /**
25
+ * Gets an L2 block.
26
+ * @param blockNumber - The number of the block to return.
27
+ * @returns The requested L2 block, without logs attached
28
+ */
29
+ getBlock(blockNumber: number): L2Block | undefined;
30
+ /**
31
+ * Gets an l2 tx.
32
+ * @param txHash - The txHash of the l2 tx.
33
+ * @returns The requested L2 tx.
34
+ */
35
+ getL2Tx(txHash: TxHash): L2Tx | undefined;
36
+ /**
37
+ * Looks up which block included the requested L2 tx.
38
+ * @param txHash - The txHash of the l2 tx.
39
+ * @returns The block number and index of the tx.
40
+ */
41
+ getL2TxLocation(txHash: TxHash): [blockNumber: number, txIndex: number] | undefined;
42
+ /**
43
+ * Looks up which block deployed a particular contract.
44
+ * @param contractAddress - The address of the contract to look up.
45
+ * @returns The block number and index of the contract.
46
+ */
47
+ getContractLocation(contractAddress: AztecAddress): [blockNumber: number, index: number] | undefined;
48
+ /**
49
+ * Gets the number of the latest L2 block processed.
50
+ * @returns The number of the latest L2 block processed.
51
+ */
52
+ getBlockNumber(): number;
53
+ /**
54
+ * Gets the most recent L1 block processed.
55
+ * @returns The L1 block that published the latest L2 block
56
+ */
57
+ getL1BlockNumber(): bigint;
58
+ }
59
+ //# sourceMappingURL=block_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/block_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,YAAY,EAAmB,MAAM,iBAAiB,CAAC;AAahE;;GAEG;AACH,qBAAa,UAAU;;IAYT,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAOpC;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B9C;;;;;OAKG;IACF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAMnE;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAWlD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAUzC;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,SAAS;IAInF;;;;OAIG;IACH,mBAAmB,CAAC,eAAe,EAAE,YAAY,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS;IAIpG;;;OAGG;IACH,cAAc,IAAI,MAAM;IAKxB;;;OAGG;IACH,gBAAgB,IAAI,MAAM;CAsB3B"}
@@ -0,0 +1,140 @@
1
+ var _BlockStore_instances, _BlockStore_blocks, _BlockStore_txIndex, _BlockStore_contractIndex, _BlockStore_log, _BlockStore_computeBlockRange;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { INITIAL_L2_BLOCK_NUM, L2Block } from '@aztec/circuit-types';
4
+ import { createDebugLogger } from '@aztec/foundation/log';
5
+ /* eslint-enable */
6
+ /**
7
+ * LMDB implementation of the ArchiverDataStore interface.
8
+ */
9
+ export class BlockStore {
10
+ constructor(db) {
11
+ _BlockStore_instances.add(this);
12
+ this.db = db;
13
+ /** Map block number to block data */
14
+ _BlockStore_blocks.set(this, void 0);
15
+ /** Index mapping transaction hash (as a string) to its location in a block */
16
+ _BlockStore_txIndex.set(this, void 0);
17
+ /** Index mapping a contract's address (as a string) to its location in a block */
18
+ _BlockStore_contractIndex.set(this, void 0);
19
+ _BlockStore_log.set(this, createDebugLogger('aztec:archiver:block_store'));
20
+ __classPrivateFieldSet(this, _BlockStore_blocks, db.createMap('archiver_blocks'), "f");
21
+ __classPrivateFieldSet(this, _BlockStore_txIndex, db.createMap('archiver_tx_index'), "f");
22
+ __classPrivateFieldSet(this, _BlockStore_contractIndex, db.createMap('archiver_contract_index'), "f");
23
+ }
24
+ /**
25
+ * Append new blocks to the store's list.
26
+ * @param blocks - The L2 blocks to be added to the store.
27
+ * @returns True if the operation is successful.
28
+ */
29
+ addBlocks(blocks) {
30
+ return this.db.transaction(() => {
31
+ for (const block of blocks) {
32
+ void __classPrivateFieldGet(this, _BlockStore_blocks, "f").set(block.number, {
33
+ blockNumber: block.number,
34
+ block: block.toBuffer(),
35
+ l1BlockNumber: block.getL1BlockNumber(),
36
+ blockHash: block.getBlockHash(),
37
+ });
38
+ for (const [i, tx] of block.getTxs().entries()) {
39
+ if (tx.txHash.isZero()) {
40
+ continue;
41
+ }
42
+ void __classPrivateFieldGet(this, _BlockStore_txIndex, "f").set(tx.txHash.toString(), [block.number, i]);
43
+ }
44
+ for (const [i, contractData] of block.newContractData.entries()) {
45
+ if (contractData.contractAddress.isZero()) {
46
+ continue;
47
+ }
48
+ void __classPrivateFieldGet(this, _BlockStore_contractIndex, "f").set(contractData.contractAddress.toString(), [block.number, i]);
49
+ }
50
+ }
51
+ return true;
52
+ });
53
+ }
54
+ /**
55
+ * Gets up to `limit` amount of L2 blocks starting from `from`.
56
+ * @param start - Number of the first block to return (inclusive).
57
+ * @param limit - The number of blocks to return.
58
+ * @returns The requested L2 blocks, without logs attached
59
+ */
60
+ *getBlocks(start, limit) {
61
+ for (const blockCtx of __classPrivateFieldGet(this, _BlockStore_blocks, "f").values(__classPrivateFieldGet(this, _BlockStore_instances, "m", _BlockStore_computeBlockRange).call(this, start, limit))) {
62
+ yield L2Block.fromBuffer(blockCtx.block, blockCtx.blockHash);
63
+ }
64
+ }
65
+ /**
66
+ * Gets an L2 block.
67
+ * @param blockNumber - The number of the block to return.
68
+ * @returns The requested L2 block, without logs attached
69
+ */
70
+ getBlock(blockNumber) {
71
+ const blockCtx = __classPrivateFieldGet(this, _BlockStore_blocks, "f").get(blockNumber);
72
+ if (!blockCtx || !blockCtx.block) {
73
+ return undefined;
74
+ }
75
+ const block = L2Block.fromBuffer(blockCtx.block, blockCtx.blockHash);
76
+ return block;
77
+ }
78
+ /**
79
+ * Gets an l2 tx.
80
+ * @param txHash - The txHash of the l2 tx.
81
+ * @returns The requested L2 tx.
82
+ */
83
+ getL2Tx(txHash) {
84
+ const [blockNumber, txIndex] = this.getL2TxLocation(txHash) ?? [];
85
+ if (typeof blockNumber !== 'number' || typeof txIndex !== 'number') {
86
+ return undefined;
87
+ }
88
+ const block = this.getBlock(blockNumber);
89
+ return block?.getTx(txIndex);
90
+ }
91
+ /**
92
+ * Looks up which block included the requested L2 tx.
93
+ * @param txHash - The txHash of the l2 tx.
94
+ * @returns The block number and index of the tx.
95
+ */
96
+ getL2TxLocation(txHash) {
97
+ return __classPrivateFieldGet(this, _BlockStore_txIndex, "f").get(txHash.toString());
98
+ }
99
+ /**
100
+ * Looks up which block deployed a particular contract.
101
+ * @param contractAddress - The address of the contract to look up.
102
+ * @returns The block number and index of the contract.
103
+ */
104
+ getContractLocation(contractAddress) {
105
+ return __classPrivateFieldGet(this, _BlockStore_contractIndex, "f").get(contractAddress.toString());
106
+ }
107
+ /**
108
+ * Gets the number of the latest L2 block processed.
109
+ * @returns The number of the latest L2 block processed.
110
+ */
111
+ getBlockNumber() {
112
+ const [lastBlockNumber] = __classPrivateFieldGet(this, _BlockStore_blocks, "f").keys({ reverse: true, limit: 1 });
113
+ return typeof lastBlockNumber === 'number' ? lastBlockNumber : INITIAL_L2_BLOCK_NUM - 1;
114
+ }
115
+ /**
116
+ * Gets the most recent L1 block processed.
117
+ * @returns The L1 block that published the latest L2 block
118
+ */
119
+ getL1BlockNumber() {
120
+ const [lastBlock] = __classPrivateFieldGet(this, _BlockStore_blocks, "f").values({ reverse: true, limit: 1 });
121
+ if (!lastBlock) {
122
+ return 0n;
123
+ }
124
+ else {
125
+ return lastBlock.l1BlockNumber;
126
+ }
127
+ }
128
+ }
129
+ _BlockStore_blocks = new WeakMap(), _BlockStore_txIndex = new WeakMap(), _BlockStore_contractIndex = new WeakMap(), _BlockStore_log = new WeakMap(), _BlockStore_instances = new WeakSet(), _BlockStore_computeBlockRange = function _BlockStore_computeBlockRange(start, limit) {
130
+ if (limit < 1) {
131
+ throw new Error(`Invalid limit: ${limit}`);
132
+ }
133
+ if (start < INITIAL_L2_BLOCK_NUM) {
134
+ __classPrivateFieldGet(this, _BlockStore_log, "f").call(this, `Clamping start block ${start} to ${INITIAL_L2_BLOCK_NUM}`);
135
+ start = INITIAL_L2_BLOCK_NUM;
136
+ }
137
+ const end = start + limit;
138
+ return { start, end };
139
+ };
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvYmxvY2tfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRW5GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBWTFELG1CQUFtQjtBQUVuQjs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBWXJCLFlBQW9CLEVBQWdCOztRQUFoQixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBWHBDLHFDQUFxQztRQUNyQyxxQ0FBd0M7UUFFeEMsOEVBQThFO1FBQzlFLHNDQUE0QztRQUU1QyxrRkFBa0Y7UUFDbEYsNENBQWtEO1FBRWxELDBCQUFPLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDLEVBQUM7UUFHckQsdUJBQUEsSUFBSSxzQkFBVyxFQUFFLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLE1BQUEsQ0FBQztRQUUvQyx1QkFBQSxJQUFJLHVCQUFZLEVBQUUsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsTUFBQSxDQUFDO1FBQ2xELHVCQUFBLElBQUksNkJBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMseUJBQXlCLENBQUMsTUFBQSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLE1BQWlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzlCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO2dCQUMxQixLQUFLLHVCQUFBLElBQUksMEJBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtvQkFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxNQUFNO29CQUN6QixLQUFLLEVBQUUsS0FB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
@@ -0,0 +1,46 @@
1
+ import { ContractData, ExtendedContractData } from '@aztec/circuit-types';
2
+ import { AztecAddress } from '@aztec/foundation/aztec-address';
3
+ import { AztecKVStore } from '@aztec/kv-store';
4
+ import { BlockStore } from './block_store.js';
5
+ /**
6
+ * LMDB implementation of the ArchiverDataStore interface.
7
+ */
8
+ export declare class ContractStore {
9
+ #private;
10
+ private db;
11
+ constructor(db: AztecKVStore, blockStore: BlockStore);
12
+ /**
13
+ * Add new extended contract data from an L2 block to the store's list.
14
+ * @param data - List of contracts' data to be added.
15
+ * @param blockNum - Number of the L2 block the contract data was deployed in.
16
+ * @returns True if the operation is successful.
17
+ */
18
+ addExtendedContractData(data: ExtendedContractData[], blockNum: number): Promise<boolean>;
19
+ /**
20
+ * Get the extended contract data for this contract.
21
+ * @param contractAddress - The contract data address.
22
+ * @returns The extended contract data or undefined if not found.
23
+ */
24
+ getExtendedContractData(contractAddress: AztecAddress): ExtendedContractData | undefined;
25
+ /**
26
+ * Lookup all extended contract data in an L2 block.
27
+ * @param blockNumber - The block number to get all contract data from.
28
+ * @returns All extended contract data in the block (if found).
29
+ */
30
+ getExtendedContractDataInBlock(blockNumber: number): Array<ExtendedContractData>;
31
+ /**
32
+ * Get basic info for an L2 contract.
33
+ * Contains contract address & the ethereum portal address.
34
+ * @param contractAddress - The contract data address.
35
+ * @returns ContractData with the portal address (if we didn't throw an error).
36
+ */
37
+ getContractData(contractAddress: AztecAddress): ContractData | undefined;
38
+ /**
39
+ * Get basic info for an all L2 contracts deployed in a block.
40
+ * Contains contract address & the ethereum portal address.
41
+ * @param blockNumber - Number of the L2 block where contracts were deployed.
42
+ * @returns ContractData with the portal address (if we didn't throw an error).
43
+ */
44
+ getContractDataInBlock(blockNumber: number): ContractData[];
45
+ }
46
+ //# sourceMappingURL=contract_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contract_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/contract_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAa;;IAKZ,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU;IAK5D;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,oBAAoB,GAAG,SAAS;IAiBxF;;;;OAIG;IACH,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,oBAAoB,CAAC;IAMhF;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,YAAY,GAAG,SAAS;IAUxE;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE;CAI5D"}
@@ -0,0 +1,81 @@
1
+ var _ContractStore_blockStore, _ContractStore_extendedContractData, _ContractStore_log;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { ExtendedContractData } from '@aztec/circuit-types';
4
+ import { createDebugLogger } from '@aztec/foundation/log';
5
+ /**
6
+ * LMDB implementation of the ArchiverDataStore interface.
7
+ */
8
+ export class ContractStore {
9
+ constructor(db, blockStore) {
10
+ this.db = db;
11
+ _ContractStore_blockStore.set(this, void 0);
12
+ _ContractStore_extendedContractData.set(this, void 0);
13
+ _ContractStore_log.set(this, createDebugLogger('aztec:archiver:contract_store'));
14
+ __classPrivateFieldSet(this, _ContractStore_extendedContractData, db.createMap('archiver_extended_contract_data'), "f");
15
+ __classPrivateFieldSet(this, _ContractStore_blockStore, blockStore, "f");
16
+ }
17
+ /**
18
+ * Add new extended contract data from an L2 block to the store's list.
19
+ * @param data - List of contracts' data to be added.
20
+ * @param blockNum - Number of the L2 block the contract data was deployed in.
21
+ * @returns True if the operation is successful.
22
+ */
23
+ addExtendedContractData(data, blockNum) {
24
+ return __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").swap(blockNum, (existingData = []) => {
25
+ existingData.push(...data.map(d => d.toBuffer()));
26
+ return existingData;
27
+ });
28
+ }
29
+ /**
30
+ * Get the extended contract data for this contract.
31
+ * @param contractAddress - The contract data address.
32
+ * @returns The extended contract data or undefined if not found.
33
+ */
34
+ getExtendedContractData(contractAddress) {
35
+ const [blockNumber, _] = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getContractLocation(contractAddress) ?? [];
36
+ if (typeof blockNumber !== 'number') {
37
+ return undefined;
38
+ }
39
+ for (const contract of __classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").get(blockNumber) ?? []) {
40
+ const extendedContractData = ExtendedContractData.fromBuffer(contract);
41
+ if (extendedContractData.contractData.contractAddress.equals(contractAddress)) {
42
+ return extendedContractData;
43
+ }
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Lookup all extended contract data in an L2 block.
49
+ * @param blockNumber - The block number to get all contract data from.
50
+ * @returns All extended contract data in the block (if found).
51
+ */
52
+ getExtendedContractDataInBlock(blockNumber) {
53
+ return (__classPrivateFieldGet(this, _ContractStore_extendedContractData, "f").get(blockNumber) ?? []).map(contract => ExtendedContractData.fromBuffer(contract));
54
+ }
55
+ /**
56
+ * Get basic info for an L2 contract.
57
+ * Contains contract address & the ethereum portal address.
58
+ * @param contractAddress - The contract data address.
59
+ * @returns ContractData with the portal address (if we didn't throw an error).
60
+ */
61
+ getContractData(contractAddress) {
62
+ const [blockNumber, index] = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getContractLocation(contractAddress) ?? [];
63
+ if (typeof blockNumber !== 'number' || typeof index !== 'number') {
64
+ return undefined;
65
+ }
66
+ const block = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getBlock(blockNumber);
67
+ return block?.newContractData[index];
68
+ }
69
+ /**
70
+ * Get basic info for an all L2 contracts deployed in a block.
71
+ * Contains contract address & the ethereum portal address.
72
+ * @param blockNumber - Number of the L2 block where contracts were deployed.
73
+ * @returns ContractData with the portal address (if we didn't throw an error).
74
+ */
75
+ getContractDataInBlock(blockNumber) {
76
+ const block = __classPrivateFieldGet(this, _ContractStore_blockStore, "f").getBlock(blockNumber);
77
+ return block?.newContractData ?? [];
78
+ }
79
+ }
80
+ _ContractStore_blockStore = new WeakMap(), _ContractStore_extendedContractData = new WeakMap(), _ContractStore_log = new WeakMap();
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3Rfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXJjaGl2ZXIva3ZfYXJjaGl2ZXJfc3RvcmUvY29udHJhY3Rfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQWdCLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFLMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFvQixFQUFnQixFQUFFLFVBQXNCO1FBQXhDLE9BQUUsR0FBRixFQUFFLENBQWM7UUFKcEMsNENBQXdCO1FBQ3hCLHNEQUFrRDtRQUNsRCw2QkFBTyxpQkFBaUIsQ0FBQywrQkFBK0IsQ0FBQyxFQUFDO1FBR3hELHVCQUFBLElBQUksdUNBQXlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUMsTUFBQSxDQUFDO1FBQzdFLHVCQUFBLElBQUksNkJBQWUsVUFBVSxNQUFBLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsdUJBQXVCLENBQUMsSUFBNEIsRUFBRSxRQUFnQjtRQUNwRSxPQUFPLHVCQUFBLElBQUksMkNBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksR0FBRyxFQUFFLEVBQUUsRUFBRTtZQUNyRSxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEQsT0FBTyxZQUFZLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHVCQUF1QixDQUFDLGVBQTZCO1FBQ25ELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsdUJBQUEsSUFBSSxpQ0FBWSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVyRixJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtZQUNuQyxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELEtBQUssTUFBTSxRQUFRLElBQUksdUJBQUEsSUFBSSwyQ0FBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3hFLE1BQU0sb0JBQW9CLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksb0JBQW9CLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUU7Z0JBQzdFLE9BQU8sb0JBQW9CLENBQUM7YUFDN0I7U0FDRjtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsOEJBQThCLENBQUMsV0FBbUI7UUFDaEQsT0FBTyxDQUFDLHVCQUFBLElBQUksMkNBQXNCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUN4RSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsZUFBNkI7UUFDM0MsTUFBTSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyx1QkFBQSxJQUFJLGlDQUFZLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pGLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNoRSxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE1BQU0sS0FBSyxHQUFHLHVCQUFBLElBQUksaUNBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLFdBQW1CO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLHVCQUFBLElBQUksaUNBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsT0FBTyxLQUFLLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0YifQ==
@@ -1,15 +1,14 @@
1
1
  import { ContractData, ExtendedContractData, GetUnencryptedLogsResponse, L1ToL2Message, L2Block, L2BlockL2Logs, L2Tx, LogFilter, LogType, TxHash } from '@aztec/circuit-types';
2
2
  import { Fr } from '@aztec/circuits.js';
3
3
  import { AztecAddress } from '@aztec/foundation/aztec-address';
4
- import { RootDatabase } from 'lmdb';
5
- import { ArchiverDataStore, ArchiverL1SynchPoint } from './archiver_store.js';
4
+ import { AztecKVStore } from '@aztec/kv-store';
5
+ import { ArchiverDataStore, ArchiverL1SynchPoint } from '../archiver_store.js';
6
6
  /**
7
7
  * LMDB implementation of the ArchiverDataStore interface.
8
8
  */
9
- export declare class LMDBArchiverStore implements ArchiverDataStore {
9
+ export declare class KVArchiverDataStore implements ArchiverDataStore {
10
10
  #private;
11
- constructor(db: RootDatabase, logsMaxPageSize?: number);
12
- close(): Promise<void>;
11
+ constructor(db: AztecKVStore, logsMaxPageSize?: number);
13
12
  /**
14
13
  * Append new blocks to the store's list.
15
14
  * @param blocks - The L2 blocks to be added to the store.
@@ -18,9 +17,11 @@ export declare class LMDBArchiverStore implements ArchiverDataStore {
18
17
  addBlocks(blocks: L2Block[]): Promise<boolean>;
19
18
  /**
20
19
  * Gets up to `limit` amount of L2 blocks starting from `from`.
20
+ * The blocks returned do not contain any logs.
21
+ *
21
22
  * @param start - Number of the first block to return (inclusive).
22
23
  * @param limit - The number of blocks to return.
23
- * @returns The requested L2 blocks.
24
+ * @returns The requested L2 blocks, without any logs attached
24
25
  */
25
26
  getBlocks(start: number, limit: number): Promise<L2Block[]>;
26
27
  /**
@@ -46,15 +47,16 @@ export declare class LMDBArchiverStore implements ArchiverDataStore {
46
47
  addPendingL1ToL2Messages(messages: L1ToL2Message[], l1BlockNumber: bigint): Promise<boolean>;
47
48
  /**
48
49
  * Remove pending L1 to L2 messages from the store (if they were cancelled).
49
- * @param cancelledMessages - The message keys to be removed from the store.
50
+ * @param messages - The message keys to be removed from the store.
50
51
  * @param l1BlockNumber - The L1 block number for which to remove the messages.
51
52
  * @returns True if the operation is successful.
52
53
  */
53
- cancelPendingL1ToL2Messages(cancelledMessages: Fr[], l1BlockNumber: bigint): Promise<boolean>;
54
+ cancelPendingL1ToL2Messages(messages: Fr[], l1BlockNumber: bigint): Promise<boolean>;
54
55
  /**
55
56
  * Messages that have been published in an L2 block are confirmed.
56
57
  * Add them to the confirmed store, also remove them from the pending store.
57
58
  * @param entryKeys - The message keys to be removed from the store.
59
+ * @param blockNumber - The block for which to add the messages.
58
60
  * @returns True if the operation is successful.
59
61
  */
60
62
  confirmL1ToL2Messages(entryKeys: Fr[]): Promise<boolean>;
@@ -99,10 +101,10 @@ export declare class LMDBArchiverStore implements ArchiverDataStore {
99
101
  getExtendedContractData(contractAddress: AztecAddress): Promise<ExtendedContractData | undefined>;
100
102
  /**
101
103
  * Lookup all extended contract data in an L2 block.
102
- * @param blockNum - The block number to get all contract data from.
104
+ * @param blockNumber - The block number to get all contract data from.
103
105
  * @returns All extended contract data in the block (if found).
104
106
  */
105
- getExtendedContractDataInBlock(blockNum: number): Promise<ExtendedContractData[]>;
107
+ getExtendedContractDataInBlock(blockNumber: number): Promise<ExtendedContractData[]>;
106
108
  /**
107
109
  * Get basic info for an L2 contract.
108
110
  * Contains contract address & the ethereum portal address.
@@ -116,7 +118,7 @@ export declare class LMDBArchiverStore implements ArchiverDataStore {
116
118
  * @param blockNumber - Number of the L2 block where contracts were deployed.
117
119
  * @returns ContractData with the portal address (if we didn't throw an error).
118
120
  */
119
- getContractDataInBlock(blockNumber: number): Promise<ContractData[] | undefined>;
121
+ getContractDataInBlock(blockNumber: number): Promise<ContractData[]>;
120
122
  /**
121
123
  * Gets the number of the latest L2 block processed.
122
124
  * @returns The number of the latest L2 block processed.
@@ -127,4 +129,4 @@ export declare class LMDBArchiverStore implements ArchiverDataStore {
127
129
  */
128
130
  getL1BlockNumber(): Promise<ArchiverL1SynchPoint>;
129
131
  }
130
- //# sourceMappingURL=lmdb_archiver_store.d.ts.map
132
+ //# sourceMappingURL=kv_archiver_store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kv_archiver_store.d.ts","sourceRoot":"","sources":["../../../src/archiver/kv_archiver_store/kv_archiver_store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,0BAA0B,EAC1B,aAAa,EACb,OAAO,EACP,aAAa,EACb,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACP,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAM/E;;GAEG;AACH,qBAAa,mBAAoB,YAAW,iBAAiB;;gBAQ/C,EAAE,EAAE,YAAY,EAAE,eAAe,GAAE,MAAa;IAO5D;;;;OAIG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9C;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS3D;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;IAIlD;;;;;;OAMG;IACH,OAAO,CACL,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC;IAInB;;;;;OAKG;IACH,wBAAwB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5F;;;;;OAKG;IACH,2BAA2B,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpF;;;;;;OAMG;IACH,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxD;;;;OAIG;IACH,2BAA2B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;IAIzD;;;;OAIG;IACH,yBAAyB,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAQjE;;;;;;OAMG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQjF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAQ1E;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzF;;;;OAIG;IACH,uBAAuB,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAIjG;;;;OAIG;IACH,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAIpF;;;;;OAKG;IACH,eAAe,CAAC,eAAe,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAIjF;;;;;OAKG;IACH,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIpE;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,oBAAoB,CAAC;CASlD"}