@aztec/sequencer-client 0.1.0-alpha11

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 (146) hide show
  1. package/.eslintrc.cjs +1 -0
  2. package/.tsbuildinfo +1 -0
  3. package/README.md +45 -0
  4. package/dest/block_builder/index.d.ts +19 -0
  5. package/dest/block_builder/index.d.ts.map +1 -0
  6. package/dest/block_builder/index.js +2 -0
  7. package/dest/block_builder/solo_block_builder.d.ts +76 -0
  8. package/dest/block_builder/solo_block_builder.d.ts.map +1 -0
  9. package/dest/block_builder/solo_block_builder.js +453 -0
  10. package/dest/block_builder/solo_block_builder.test.d.ts +3 -0
  11. package/dest/block_builder/solo_block_builder.test.d.ts.map +1 -0
  12. package/dest/block_builder/solo_block_builder.test.js +291 -0
  13. package/dest/block_builder/types.d.ts +12 -0
  14. package/dest/block_builder/types.d.ts.map +1 -0
  15. package/dest/block_builder/types.js +2 -0
  16. package/dest/client/index.d.ts +2 -0
  17. package/dest/client/index.d.ts.map +1 -0
  18. package/dest/client/index.js +2 -0
  19. package/dest/client/sequencer-client.d.ts +32 -0
  20. package/dest/client/sequencer-client.d.ts.map +1 -0
  21. package/dest/client/sequencer-client.js +47 -0
  22. package/dest/config.d.ts +12 -0
  23. package/dest/config.d.ts.map +1 -0
  24. package/dest/config.js +25 -0
  25. package/dest/global_variable_builder/config.d.ts +19 -0
  26. package/dest/global_variable_builder/config.d.ts.map +1 -0
  27. package/dest/global_variable_builder/config.js +2 -0
  28. package/dest/global_variable_builder/global_builder.d.ts +30 -0
  29. package/dest/global_variable_builder/global_builder.d.ts.map +1 -0
  30. package/dest/global_variable_builder/global_builder.js +24 -0
  31. package/dest/global_variable_builder/index.d.ts +11 -0
  32. package/dest/global_variable_builder/index.d.ts.map +1 -0
  33. package/dest/global_variable_builder/index.js +12 -0
  34. package/dest/global_variable_builder/viem-reader.d.ts +26 -0
  35. package/dest/global_variable_builder/viem-reader.d.ts.map +1 -0
  36. package/dest/global_variable_builder/viem-reader.js +43 -0
  37. package/dest/index.d.ts +11 -0
  38. package/dest/index.d.ts.map +1 -0
  39. package/dest/index.js +12 -0
  40. package/dest/mocks/tx.d.ts +10 -0
  41. package/dest/mocks/tx.d.ts.map +1 -0
  42. package/dest/mocks/tx.js +18 -0
  43. package/dest/mocks/verification_keys.d.ts +28 -0
  44. package/dest/mocks/verification_keys.d.ts.map +1 -0
  45. package/dest/mocks/verification_keys.js +14 -0
  46. package/dest/prover/empty.d.ts +41 -0
  47. package/dest/prover/empty.d.ts.map +1 -0
  48. package/dest/prover/empty.js +57 -0
  49. package/dest/prover/index.d.ts +17 -0
  50. package/dest/prover/index.d.ts.map +1 -0
  51. package/dest/prover/index.js +2 -0
  52. package/dest/publisher/config.d.ts +33 -0
  53. package/dest/publisher/config.d.ts.map +1 -0
  54. package/dest/publisher/config.js +2 -0
  55. package/dest/publisher/index.d.ts +10 -0
  56. package/dest/publisher/index.d.ts.map +1 -0
  57. package/dest/publisher/index.js +11 -0
  58. package/dest/publisher/l1-publisher.d.ts +99 -0
  59. package/dest/publisher/l1-publisher.d.ts.map +1 -0
  60. package/dest/publisher/l1-publisher.js +154 -0
  61. package/dest/publisher/l1-publisher.test.d.ts +2 -0
  62. package/dest/publisher/l1-publisher.test.d.ts.map +1 -0
  63. package/dest/publisher/l1-publisher.test.js +58 -0
  64. package/dest/publisher/viem-tx-sender.d.ts +42 -0
  65. package/dest/publisher/viem-tx-sender.d.ts.map +1 -0
  66. package/dest/publisher/viem-tx-sender.js +115 -0
  67. package/dest/receiver.d.ts +13 -0
  68. package/dest/receiver.d.ts.map +1 -0
  69. package/dest/receiver.js +2 -0
  70. package/dest/sequencer/config.d.ts +26 -0
  71. package/dest/sequencer/config.d.ts.map +1 -0
  72. package/dest/sequencer/config.js +2 -0
  73. package/dest/sequencer/index.d.ts +4 -0
  74. package/dest/sequencer/index.d.ts.map +1 -0
  75. package/dest/sequencer/index.js +4 -0
  76. package/dest/sequencer/processed_tx.d.ts +34 -0
  77. package/dest/sequencer/processed_tx.d.ts.map +1 -0
  78. package/dest/sequencer/processed_tx.js +39 -0
  79. package/dest/sequencer/public_processor.d.ts +68 -0
  80. package/dest/sequencer/public_processor.d.ts.map +1 -0
  81. package/dest/sequencer/public_processor.js +195 -0
  82. package/dest/sequencer/public_processor.test.d.ts +2 -0
  83. package/dest/sequencer/public_processor.test.d.ts.map +1 -0
  84. package/dest/sequencer/public_processor.test.js +159 -0
  85. package/dest/sequencer/sequencer.d.ts +133 -0
  86. package/dest/sequencer/sequencer.d.ts.map +1 -0
  87. package/dest/sequencer/sequencer.js +293 -0
  88. package/dest/sequencer/sequencer.test.d.ts +2 -0
  89. package/dest/sequencer/sequencer.test.d.ts.map +1 -0
  90. package/dest/sequencer/sequencer.test.js +100 -0
  91. package/dest/sequencer/utils.d.ts +7 -0
  92. package/dest/sequencer/utils.d.ts.map +1 -0
  93. package/dest/sequencer/utils.js +9 -0
  94. package/dest/simulator/index.d.ts +42 -0
  95. package/dest/simulator/index.d.ts.map +1 -0
  96. package/dest/simulator/index.js +2 -0
  97. package/dest/simulator/public_executor.d.ts +39 -0
  98. package/dest/simulator/public_executor.d.ts.map +1 -0
  99. package/dest/simulator/public_executor.js +118 -0
  100. package/dest/simulator/public_kernel.d.ts +20 -0
  101. package/dest/simulator/public_kernel.d.ts.map +1 -0
  102. package/dest/simulator/public_kernel.js +27 -0
  103. package/dest/simulator/rollup.d.ts +33 -0
  104. package/dest/simulator/rollup.d.ts.map +1 -0
  105. package/dest/simulator/rollup.js +41 -0
  106. package/dest/utils.d.ts +12 -0
  107. package/dest/utils.d.ts.map +1 -0
  108. package/dest/utils.js +16 -0
  109. package/jest.integration.config.json +13 -0
  110. package/package.json +23 -0
  111. package/src/block_builder/index.ts +23 -0
  112. package/src/block_builder/solo_block_builder.test.ts +425 -0
  113. package/src/block_builder/solo_block_builder.ts +710 -0
  114. package/src/block_builder/types.ts +16 -0
  115. package/src/client/index.ts +1 -0
  116. package/src/client/sequencer-client.ts +79 -0
  117. package/src/config.ts +48 -0
  118. package/src/global_variable_builder/config.ts +19 -0
  119. package/src/global_variable_builder/global_builder.ts +43 -0
  120. package/src/global_variable_builder/index.ts +15 -0
  121. package/src/global_variable_builder/viem-reader.ts +63 -0
  122. package/src/index.ts +12 -0
  123. package/src/mocks/tx.ts +26 -0
  124. package/src/mocks/verification_keys.ts +36 -0
  125. package/src/prover/empty.ts +73 -0
  126. package/src/prover/index.ts +27 -0
  127. package/src/publisher/config.ts +36 -0
  128. package/src/publisher/index.ts +14 -0
  129. package/src/publisher/l1-publisher.test.ts +77 -0
  130. package/src/publisher/l1-publisher.ts +236 -0
  131. package/src/publisher/viem-tx-sender.ts +166 -0
  132. package/src/receiver.ts +13 -0
  133. package/src/sequencer/config.ts +27 -0
  134. package/src/sequencer/index.ts +3 -0
  135. package/src/sequencer/processed_tx.ts +82 -0
  136. package/src/sequencer/public_processor.test.ts +225 -0
  137. package/src/sequencer/public_processor.ts +280 -0
  138. package/src/sequencer/sequencer.test.ts +158 -0
  139. package/src/sequencer/sequencer.ts +356 -0
  140. package/src/sequencer/utils.ts +18 -0
  141. package/src/simulator/index.ts +51 -0
  142. package/src/simulator/public_executor.ts +137 -0
  143. package/src/simulator/public_kernel.ts +27 -0
  144. package/src/simulator/rollup.ts +54 -0
  145. package/src/utils.ts +16 -0
  146. package/tsconfig.json +38 -0
@@ -0,0 +1,26 @@
1
+ import { GlobalReaderConfig } from './config.js';
2
+ import { L1GlobalReader } from './global_builder.js';
3
+ /**
4
+ * Reads values from L1 state using viem.
5
+ */
6
+ export declare class ViemReader implements L1GlobalReader {
7
+ private rollupContract;
8
+ private publicClient;
9
+ constructor(config: GlobalReaderConfig);
10
+ /**
11
+ * Fetches the last timestamp that a block was processed by the contract.
12
+ * @returns The last timestamp that a block was processed by the contract.
13
+ */
14
+ getLastTimestamp(): Promise<bigint>;
15
+ /**
16
+ * Fetches the version of the rollup contract.
17
+ * @returns The version of the rollup contract.
18
+ */
19
+ getVersion(): Promise<bigint>;
20
+ /**
21
+ * Gets the chain id.
22
+ * @returns The chain id.
23
+ */
24
+ getChainId(): Promise<bigint>;
25
+ }
26
+ //# sourceMappingURL=viem-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viem-reader.d.ts","sourceRoot":"","sources":["../../src/global_variable_builder/viem-reader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC/C,OAAO,CAAC,cAAc,CAAqF;IAC3G,OAAO,CAAC,YAAY,CAA4C;gBAEpD,MAAM,EAAE,kBAAkB;IAiBtC;;;OAGG;IACU,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIhD;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAG3C"}
@@ -0,0 +1,43 @@
1
+ import { createEthereumChain } from '@aztec/ethereum';
2
+ import { RollupAbi } from '@aztec/l1-artifacts';
3
+ import { createPublicClient, http, getContract, getAddress, } from 'viem';
4
+ /**
5
+ * Reads values from L1 state using viem.
6
+ */
7
+ export class ViemReader {
8
+ constructor(config) {
9
+ const { rpcUrl, apiKey, rollupContract: rollupContractAddress } = config;
10
+ const chain = createEthereumChain(rpcUrl, apiKey);
11
+ this.publicClient = createPublicClient({
12
+ chain: chain.chainInfo,
13
+ transport: http(chain.rpcUrl),
14
+ });
15
+ this.rollupContract = getContract({
16
+ address: getAddress(rollupContractAddress.toString()),
17
+ abi: RollupAbi,
18
+ publicClient: this.publicClient,
19
+ });
20
+ }
21
+ /**
22
+ * Fetches the last timestamp that a block was processed by the contract.
23
+ * @returns The last timestamp that a block was processed by the contract.
24
+ */
25
+ async getLastTimestamp() {
26
+ return BigInt(await this.rollupContract.read.lastBlockTs());
27
+ }
28
+ /**
29
+ * Fetches the version of the rollup contract.
30
+ * @returns The version of the rollup contract.
31
+ */
32
+ async getVersion() {
33
+ return BigInt(await this.rollupContract.read.VERSION());
34
+ }
35
+ /**
36
+ * Gets the chain id.
37
+ * @returns The chain id.
38
+ */
39
+ async getChainId() {
40
+ return await Promise.resolve(BigInt(this.publicClient.chain.id));
41
+ }
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmllbS1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZ2xvYmFsX3ZhcmlhYmxlX2J1aWxkZXIvdmllbS1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFJTCxrQkFBa0IsRUFDbEIsSUFBSSxFQUNKLFdBQVcsRUFDWCxVQUFVLEdBQ1gsTUFBTSxNQUFNLENBQUM7QUFLZDs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQVksTUFBMEI7UUFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXpFLE1BQU0sS0FBSyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1lBQ3JDLEtBQUssRUFBRSxLQUFLLENBQUMsU0FBUztZQUN0QixTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDaEMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyRCxHQUFHLEVBQUUsU0FBUztZQUNkLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGdCQUFnQjtRQUMzQixPQUFPLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxVQUFVO1FBQ3JCLE9BQU8sTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLFVBQVU7UUFDckIsT0FBTyxNQUFNLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGIn0=
@@ -0,0 +1,11 @@
1
+ export * from './sequencer/index.js';
2
+ export * from './config.js';
3
+ export * from './publisher/index.js';
4
+ export * from './client/index.js';
5
+ export * from './mocks/tx.js';
6
+ export * from './mocks/verification_keys.js';
7
+ export { WasmRollupCircuitSimulator } from './simulator/rollup.js';
8
+ export { EmptyRollupProver } from './prover/empty.js';
9
+ export { SoloBlockBuilder } from './block_builder/solo_block_builder.js';
10
+ export { makeProcessedTx, makeEmptyProcessedTx } from './sequencer/processed_tx.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC"}
package/dest/index.js ADDED
@@ -0,0 +1,12 @@
1
+ export * from './sequencer/index.js';
2
+ export * from './config.js';
3
+ export * from './publisher/index.js';
4
+ export * from './client/index.js';
5
+ export * from './mocks/tx.js';
6
+ export * from './mocks/verification_keys.js';
7
+ // Used by publisher test in e2e
8
+ export { WasmRollupCircuitSimulator } from './simulator/rollup.js';
9
+ export { EmptyRollupProver } from './prover/empty.js';
10
+ export { SoloBlockBuilder } from './block_builder/solo_block_builder.js';
11
+ export { makeProcessedTx, makeEmptyProcessedTx } from './sequencer/processed_tx.js';
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxnQ0FBZ0M7QUFDaEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDIn0=
@@ -0,0 +1,10 @@
1
+ import { Tx, TxL2Logs } from '@aztec/types';
2
+ /**
3
+ * Testing utility to create empty logs composed from a single empty log.
4
+ */
5
+ export declare function makeEmptyLogs(): TxL2Logs;
6
+ /**
7
+ * Testing utility to create a tx with gibberish kernel circuit output, random logs, and an empty proof.
8
+ */
9
+ export declare function makeTx(seed?: number): Tx;
10
+ //# sourceMappingURL=tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tx.d.ts","sourceRoot":"","sources":["../../src/mocks/tx.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG5D;;GAEG;AACH,wBAAgB,aAAa,IAAI,QAAQ,CAGxC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAI,MAS9B"}
@@ -0,0 +1,18 @@
1
+ import { KERNEL_PUBLIC_CALL_STACK_LENGTH, makeEmptyProof } from '@aztec/circuits.js';
2
+ import { makeKernelPublicInputs, makePublicCallRequest } from '@aztec/circuits.js/factories';
3
+ import { FunctionL2Logs, Tx, TxL2Logs } from '@aztec/types';
4
+ import times from 'lodash.times';
5
+ /**
6
+ * Testing utility to create empty logs composed from a single empty log.
7
+ */
8
+ export function makeEmptyLogs() {
9
+ const functionLogs = [new FunctionL2Logs([Buffer.alloc(0)])];
10
+ return new TxL2Logs(functionLogs);
11
+ }
12
+ /**
13
+ * Testing utility to create a tx with gibberish kernel circuit output, random logs, and an empty proof.
14
+ */
15
+ export function makeTx(seed = 0) {
16
+ return new Tx(makeKernelPublicInputs(seed), makeEmptyProof(), TxL2Logs.random(2, 3), TxL2Logs.random(3, 0), [], times(KERNEL_PUBLIC_CALL_STACK_LENGTH, makePublicCallRequest));
17
+ }
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdHgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLCtCQUErQixFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxjQUFjLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM1RCxPQUFPLEtBQUssTUFBTSxjQUFjLENBQUM7QUFFakM7O0dBRUc7QUFDSCxNQUFNLFVBQVUsYUFBYTtJQUMzQixNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RCxPQUFPLElBQUksUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUM7SUFDN0IsT0FBTyxJQUFJLEVBQUUsQ0FDWCxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFDNUIsY0FBYyxFQUFFLEVBQ2hCLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUNyQixRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDckIsRUFBRSxFQUNGLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxxQkFBcUIsQ0FBQyxDQUM5RCxDQUFDO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,28 @@
1
+ import { VerificationKey } from '@aztec/circuits.js';
2
+ /**
3
+ * Well-known verification keys.
4
+ */
5
+ export interface VerificationKeys {
6
+ /**
7
+ * Verification key for the default public kernel circuit.
8
+ */
9
+ publicKernelCircuit: VerificationKey;
10
+ /**
11
+ * Verification key for the default private kernel circuit.
12
+ */
13
+ privateKernelCircuit: VerificationKey;
14
+ /**
15
+ * Verification key for the default base rollup circuit.
16
+ */
17
+ baseRollupCircuit: VerificationKey;
18
+ /**
19
+ * Verification key for the default merge rollup circuit.
20
+ */
21
+ mergeRollupCircuit: VerificationKey;
22
+ }
23
+ /**
24
+ * Returns mock verification keys for each well known circuit.
25
+ * @returns A VerificationKeys object with fake values.
26
+ */
27
+ export declare function getVerificationKeys(): VerificationKeys;
28
+ //# sourceMappingURL=verification_keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification_keys.d.ts","sourceRoot":"","sources":["../../src/mocks/verification_keys.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,mBAAmB,EAAE,eAAe,CAAC;IACrC;;OAEG;IACH,oBAAoB,EAAE,eAAe,CAAC;IACtC;;OAEG;IACH,iBAAiB,EAAE,eAAe,CAAC;IACnC;;OAEG;IACH,kBAAkB,EAAE,eAAe,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAOtD"}
@@ -0,0 +1,14 @@
1
+ import { VerificationKey } from '@aztec/circuits.js';
2
+ /**
3
+ * Returns mock verification keys for each well known circuit.
4
+ * @returns A VerificationKeys object with fake values.
5
+ */
6
+ export function getVerificationKeys() {
7
+ return {
8
+ privateKernelCircuit: VerificationKey.makeFake(),
9
+ baseRollupCircuit: VerificationKey.makeFake(),
10
+ mergeRollupCircuit: VerificationKey.makeFake(),
11
+ publicKernelCircuit: VerificationKey.makeFake(),
12
+ };
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZpY2F0aW9uX2tleXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbW9ja3MvdmVyaWZpY2F0aW9uX2tleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBd0JyRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU87UUFDTCxvQkFBb0IsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO1FBQ2hELGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7UUFDN0Msa0JBQWtCLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUM5QyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFO0tBQ2hELENBQUM7QUFDSixDQUFDIn0=
@@ -0,0 +1,41 @@
1
+ import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, Proof, PublicCircuitPublicInputs, PublicKernelPublicInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
2
+ import { PublicProver, RollupProver } from './index.js';
3
+ /**
4
+ * Prover implementation that returns empty proofs and overrides aggregation objects.
5
+ */
6
+ export declare class EmptyRollupProver implements RollupProver {
7
+ /**
8
+ * Creates an empty proof for the given input.
9
+ * @param _input - Input to the circuit.
10
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
11
+ */
12
+ getBaseRollupProof(_input: BaseRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
13
+ /**
14
+ * Creates an empty proof for the given input.
15
+ * @param _input - Input to the circuit.
16
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
17
+ */
18
+ getMergeRollupProof(_input: MergeRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
19
+ /**
20
+ * Creates an empty proof for the given input.
21
+ * @param _input - Input to the circuit.
22
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
23
+ */
24
+ getRootRollupProof(_input: RootRollupInputs, publicInputs: RootRollupPublicInputs): Promise<Proof>;
25
+ }
26
+ /**
27
+ * Prover implementation that returns empty proofs.
28
+ */
29
+ export declare class EmptyPublicProver implements PublicProver {
30
+ /**
31
+ * Creates an empty proof for the given input.
32
+ * @param _publicInputs - Public inputs obtained via simulation.
33
+ */
34
+ getPublicCircuitProof(_publicInputs: PublicCircuitPublicInputs): Promise<Proof>;
35
+ /**
36
+ * Creates an empty proof for the given input.
37
+ * @param _publicInputs - Public inputs obtained via simulation.
38
+ */
39
+ getPublicKernelCircuitProof(_publicInputs: PublicKernelPublicInputs): Promise<Proof>;
40
+ }
41
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","sourceRoot":"","sources":["../../src/prover/empty.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOxD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC;IAK/G;;;;OAIG;IACG,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC;IAIjH;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC;CAIzG;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD;;;OAGG;IACG,qBAAqB,CAAC,aAAa,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC;IAIrF;;;OAGG;IACG,2BAA2B,CAAC,aAAa,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC;CAG3F"}
@@ -0,0 +1,57 @@
1
+ /* eslint-disable require-await */
2
+ import { AggregationObject, Proof, } from '@aztec/circuits.js';
3
+ const EMPTY_PROOF_SIZE = 42;
4
+ // TODO: Silently modifying one of the inputs to inject the aggregation object is horrible.
5
+ // We should rethink these interfaces.
6
+ /**
7
+ * Prover implementation that returns empty proofs and overrides aggregation objects.
8
+ */
9
+ export class EmptyRollupProver {
10
+ /**
11
+ * Creates an empty proof for the given input.
12
+ * @param _input - Input to the circuit.
13
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
14
+ */
15
+ async getBaseRollupProof(_input, publicInputs) {
16
+ publicInputs.endAggregationObject = AggregationObject.makeFake();
17
+ return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
18
+ }
19
+ /**
20
+ * Creates an empty proof for the given input.
21
+ * @param _input - Input to the circuit.
22
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
23
+ */
24
+ async getMergeRollupProof(_input, publicInputs) {
25
+ publicInputs.endAggregationObject = AggregationObject.makeFake();
26
+ return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
27
+ }
28
+ /**
29
+ * Creates an empty proof for the given input.
30
+ * @param _input - Input to the circuit.
31
+ * @param publicInputs - Public inputs of the circuit obtained via simulation, modified by this call.
32
+ */
33
+ async getRootRollupProof(_input, publicInputs) {
34
+ publicInputs.endAggregationObject = AggregationObject.makeFake();
35
+ return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
36
+ }
37
+ }
38
+ /**
39
+ * Prover implementation that returns empty proofs.
40
+ */
41
+ export class EmptyPublicProver {
42
+ /**
43
+ * Creates an empty proof for the given input.
44
+ * @param _publicInputs - Public inputs obtained via simulation.
45
+ */
46
+ async getPublicCircuitProof(_publicInputs) {
47
+ return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
48
+ }
49
+ /**
50
+ * Creates an empty proof for the given input.
51
+ * @param _publicInputs - Public inputs obtained via simulation.
52
+ */
53
+ async getPublicKernelCircuitProof(_publicInputs) {
54
+ return new Proof(Buffer.alloc(EMPTY_PROOF_SIZE, 0));
55
+ }
56
+ }
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyL2VtcHR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQ0wsaUJBQWlCLEVBSWpCLEtBQUssR0FLTixNQUFNLG9CQUFvQixDQUFDO0FBRzVCLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0FBRTVCLDJGQUEyRjtBQUMzRixzQ0FBc0M7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBd0IsRUFBRSxZQUEyQztRQUM1RixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsbUJBQW1CLENBQUMsTUFBeUIsRUFBRSxZQUEyQztRQUM5RixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBd0IsRUFBRSxZQUFvQztRQUNyRixZQUFZLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakUsT0FBTyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCOzs7T0FHRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxhQUF3QztRQUNsRSxPQUFPLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLDJCQUEyQixDQUFDLGFBQXVDO1FBQ3ZFLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDRiJ9
@@ -0,0 +1,17 @@
1
+ import { BaseOrMergeRollupPublicInputs, BaseRollupInputs, MergeRollupInputs, Proof, PublicCircuitPublicInputs, PublicKernelPublicInputs, RootRollupInputs, RootRollupPublicInputs } from '@aztec/circuits.js';
2
+ /**
3
+ * Generates proofs for the base, merge, and root rollup circuits.
4
+ */
5
+ export interface RollupProver {
6
+ getBaseRollupProof(input: BaseRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
7
+ getMergeRollupProof(input: MergeRollupInputs, publicInputs: BaseOrMergeRollupPublicInputs): Promise<Proof>;
8
+ getRootRollupProof(input: RootRollupInputs, publicInputs: RootRollupPublicInputs): Promise<Proof>;
9
+ }
10
+ /**
11
+ * Generates proofs for the public and public kernel circuits.
12
+ */
13
+ export interface PublicProver {
14
+ getPublicCircuitProof(publicInputs: PublicCircuitPublicInputs): Promise<Proof>;
15
+ getPublicKernelCircuitProof(publicInputs: PublicKernelPublicInputs): Promise<Proof>;
16
+ }
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACzG,mBAAmB,CAAC,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,6BAA6B,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3G,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACnG;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qBAAqB,CAAC,YAAY,EAAE,yBAAyB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/E,2BAA2B,CAAC,YAAY,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;CACrF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvdmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,33 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { L1Addresses } from '@aztec/types';
3
+ /**
4
+ * The configuration of the rollup transaction publisher.
5
+ */
6
+ export interface TxSenderConfig extends L1Addresses {
7
+ /**
8
+ * The private key to be used by the publisher.
9
+ */
10
+ publisherPrivateKey: Buffer;
11
+ /**
12
+ * The RPC Url of the ethereum host.
13
+ */
14
+ rpcUrl: string;
15
+ /**
16
+ * The API key of the ethereum host.
17
+ */
18
+ apiKey?: string;
19
+ /**
20
+ * The number of confirmations required.
21
+ */
22
+ requiredConfirmations: number;
23
+ }
24
+ /**
25
+ * Configuration of the L1Publisher.
26
+ */
27
+ export interface PublisherConfig {
28
+ /**
29
+ * The interval to wait between publish retries.
30
+ */
31
+ retryIntervalMs: number;
32
+ }
33
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/publisher/config.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1Ymxpc2hlci9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,10 @@
1
+ import { PublisherConfig, TxSenderConfig } from './config.js';
2
+ import { L1Publisher } from './l1-publisher.js';
3
+ export { L1Publisher } from './l1-publisher.js';
4
+ export { PublisherConfig } from './config.js';
5
+ /**
6
+ * Returns a new instance of the L1Publisher.
7
+ * @param config - Configuration to initialize the new instance.
8
+ */
9
+ export declare function getL1Publisher(config: PublisherConfig & TxSenderConfig): L1Publisher;
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/publisher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,GAAG,WAAW,CAEpF"}
@@ -0,0 +1,11 @@
1
+ import { L1Publisher } from './l1-publisher.js';
2
+ import { ViemTxSender } from './viem-tx-sender.js';
3
+ export { L1Publisher } from './l1-publisher.js';
4
+ /**
5
+ * Returns a new instance of the L1Publisher.
6
+ * @param config - Configuration to initialize the new instance.
7
+ */
8
+ export function getL1Publisher(config) {
9
+ return new L1Publisher(new ViemTxSender(config), config);
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGlzaGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2hEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBd0M7SUFDckUsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMzRCxDQUFDIn0=
@@ -0,0 +1,99 @@
1
+ /// <reference types="node" resolution-mode="require"/>
2
+ import { ContractPublicData, L2Block } from '@aztec/types';
3
+ import { L2BlockReceiver } from '../receiver.js';
4
+ import { PublisherConfig } from './config.js';
5
+ /**
6
+ * Minimal information from a tx receipt returned by an L1PublisherTxSender.
7
+ */
8
+ export type MinimalTransactionReceipt = {
9
+ /**
10
+ * True if the tx was successful, false if reverted.
11
+ */
12
+ status: boolean;
13
+ /**
14
+ * Hash of the transaction.
15
+ */
16
+ transactionHash: string;
17
+ };
18
+ /**
19
+ * Pushes txs to the L1 chain and waits for their completion.
20
+ */
21
+ export interface L1PublisherTxSender {
22
+ /**
23
+ * Sends a tx to the L1 rollup contract with a new L2 block. Returns once the tx has been mined.
24
+ * @param encodedData - Serialized data for processing the new L2 block.
25
+ * @returns The hash of the mined tx.
26
+ */
27
+ sendProcessTx(encodedData: L1ProcessArgs): Promise<string | undefined>;
28
+ /**
29
+ * Sends a tx to the public contract data emitter contract with contract deployment data such as bytecode. Returns once the tx has been mined.
30
+ * @param l2BlockNum - Number of the L2 block that owns this public contract data.
31
+ * @param l2BlockHash - The hash of the block corresponding to this data.
32
+ * @param contractData - Data to publish.
33
+ * @returns The hash of the mined tx.
34
+ */
35
+ sendEmitContractDeploymentTx(l2BlockNum: number, l2BlockHash: Buffer, contractData: ContractPublicData[]): Promise<(string | undefined)[]>;
36
+ /**
37
+ * Returns a tx receipt if the tx has been mined.
38
+ * @param txHash - Hash of the tx to look for.
39
+ * @returns Undefined if the tx hasn't been mined yet, the receipt otherwise.
40
+ */
41
+ getTransactionReceipt(txHash: string): Promise<MinimalTransactionReceipt | undefined>;
42
+ }
43
+ /**
44
+ * Encoded block data and proof ready to be pushed to the L1 contract.
45
+ */
46
+ export type L1ProcessArgs = {
47
+ /**
48
+ * Root rollup proof for an L1 block.
49
+ */
50
+ proof: Buffer;
51
+ /**
52
+ * Serialized L2Block data.
53
+ */
54
+ inputs: Buffer;
55
+ };
56
+ /**
57
+ * Publishes L2 blocks to L1. This implementation does *not* retry a transaction in
58
+ * the event of network congestion, but should work for local development.
59
+ * - If sending (not mining) a tx fails, it retries indefinitely at 1-minute intervals.
60
+ * - If the tx is not mined, keeps polling indefinitely at 1-second intervals.
61
+ *
62
+ * Adapted from https://github.com/AztecProtocol/aztec2-internal/blob/master/falafel/src/rollup_publisher.ts.
63
+ */
64
+ export declare class L1Publisher implements L2BlockReceiver {
65
+ private txSender;
66
+ private interruptableSleep;
67
+ private sleepTimeMs;
68
+ private interrupted;
69
+ private log;
70
+ constructor(txSender: L1PublisherTxSender, config?: PublisherConfig);
71
+ /**
72
+ * Processes incoming L2 block data by publishing it to the L1 rollup contract.
73
+ * @param l2BlockData - L2 block data to publish.
74
+ * @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
75
+ */
76
+ processL2Block(l2BlockData: L2Block): Promise<boolean>;
77
+ /**
78
+ * Publishes new contract data to L1.
79
+ * @param l2BlockNum - The L2 block number that the new contracts were deployed on.
80
+ * @param l2BlockHash - The hash of the block corresponding to this data.
81
+ * @param contractData - The new contract data to publish.
82
+ * @returns True once the tx has been confirmed and is successful, false on revert or interrupt, blocks otherwise.
83
+ */
84
+ processNewContractData(l2BlockNum: number, l2BlockHash: Buffer, contractData: ContractPublicData[]): Promise<boolean>;
85
+ /**
86
+ * Calling `interrupt` will cause any in progress call to `publishRollup` to return `false` asap.
87
+ * Be warned, the call may return false even if the tx subsequently gets successfully mined.
88
+ * In practice this shouldn't matter, as we'll only ever be calling `interrupt` when we know it's going to fail.
89
+ * A call to `clearInterrupt` is required before you can continue publishing.
90
+ */
91
+ interrupt(): void;
92
+ private checkFeeDistributorBalance;
93
+ private checkNextL2BlockNum;
94
+ private sendProcessTx;
95
+ private sendEmitNewContractDataTx;
96
+ private getTransactionReceipt;
97
+ protected sleepOrInterrupted(): Promise<void>;
98
+ }
99
+ //# sourceMappingURL=l1-publisher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"l1-publisher.d.ts","sourceRoot":"","sources":["../../src/publisher/l1-publisher.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAEvE;;;;;;OAMG;IACH,4BAA4B,CAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,kBAAkB,EAAE,GACjC,OAAO,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAEnC;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF;;;;;;;GAOG;AACH,qBAAa,WAAY,YAAW,eAAe;IAMrC,OAAO,CAAC,QAAQ;IAL5B,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,GAAG,CAAwC;gBAE/B,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,eAAe;IAI3E;;;;OAIG;IACU,cAAc,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAkCnE;;;;;;OAMG;IACU,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,kBAAkB,EAAE;IAoC/G;;;;;OAKG;IACI,SAAS;YAOF,0BAA0B;IAKxC,OAAO,CAAC,mBAAmB;YAIb,aAAa;YAWb,yBAAyB;YAWzB,qBAAqB;cAWnB,kBAAkB;CAGnC"}