@aztec/stdlib 0.0.1-commit.d431d1c → 0.0.1-commit.e310a4c8

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 (176) hide show
  1. package/dest/block/block_hash.d.ts +16 -18
  2. package/dest/block/block_hash.d.ts.map +1 -1
  3. package/dest/block/block_hash.js +21 -31
  4. package/dest/block/block_parameter.d.ts +4 -4
  5. package/dest/block/block_parameter.d.ts.map +1 -1
  6. package/dest/block/block_parameter.js +2 -2
  7. package/dest/block/checkpointed_l2_block.d.ts +6 -6
  8. package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
  9. package/dest/block/checkpointed_l2_block.js +3 -3
  10. package/dest/block/in_block.d.ts +11 -11
  11. package/dest/block/in_block.d.ts.map +1 -1
  12. package/dest/block/in_block.js +4 -4
  13. package/dest/block/index.d.ts +2 -2
  14. package/dest/block/index.d.ts.map +1 -1
  15. package/dest/block/index.js +1 -1
  16. package/dest/block/{l2_block_new.d.ts → l2_block.d.ts} +8 -7
  17. package/dest/block/l2_block.d.ts.map +1 -0
  18. package/dest/block/{l2_block_new.js → l2_block.js} +5 -9
  19. package/dest/block/l2_block_source.d.ts +39 -30
  20. package/dest/block/l2_block_source.d.ts.map +1 -1
  21. package/dest/block/l2_block_stream/interfaces.d.ts +3 -3
  22. package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
  23. package/dest/block/l2_block_stream/l2_block_stream.d.ts +2 -3
  24. package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
  25. package/dest/block/l2_block_stream/l2_block_stream.js +4 -4
  26. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +3 -3
  27. package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -1
  28. package/dest/block/test/l2_tips_store_test_suite.js +2 -2
  29. package/dest/checkpoint/checkpoint.d.ts +8 -8
  30. package/dest/checkpoint/checkpoint.d.ts.map +1 -1
  31. package/dest/checkpoint/checkpoint.js +4 -4
  32. package/dest/checkpoint/published_checkpoint.d.ts +2 -2
  33. package/dest/config/node-rpc-config.js +1 -1
  34. package/dest/contract/contract_address.js +1 -1
  35. package/dest/contract/contract_class_id.d.ts +1 -1
  36. package/dest/contract/contract_class_id.js +1 -1
  37. package/dest/contract/private_function.d.ts +1 -1
  38. package/dest/contract/private_function.d.ts.map +1 -1
  39. package/dest/contract/private_function.js +2 -3
  40. package/dest/contract/private_function_membership_proof.d.ts +1 -1
  41. package/dest/contract/private_function_membership_proof.js +1 -1
  42. package/dest/database-version/database_version.d.ts +58 -0
  43. package/dest/database-version/database_version.d.ts.map +1 -0
  44. package/dest/database-version/database_version.js +69 -0
  45. package/dest/database-version/version_manager.d.ts +2 -50
  46. package/dest/database-version/version_manager.d.ts.map +1 -1
  47. package/dest/database-version/version_manager.js +1 -66
  48. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts +2 -2
  49. package/dest/delayed_public_mutable/delayed_public_mutable_values.d.ts.map +1 -1
  50. package/dest/delayed_public_mutable/delayed_public_mutable_values.js +7 -10
  51. package/dest/epoch-helpers/index.d.ts +3 -1
  52. package/dest/epoch-helpers/index.d.ts.map +1 -1
  53. package/dest/epoch-helpers/index.js +5 -1
  54. package/dest/hash/hash.js +2 -2
  55. package/dest/hash/map_slot.d.ts +1 -1
  56. package/dest/hash/map_slot.d.ts.map +1 -1
  57. package/dest/hash/map_slot.js +4 -3
  58. package/dest/interfaces/archiver.d.ts +1 -1
  59. package/dest/interfaces/archiver.d.ts.map +1 -1
  60. package/dest/interfaces/archiver.js +17 -16
  61. package/dest/interfaces/aztec-node-admin.d.ts +4 -1
  62. package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
  63. package/dest/interfaces/aztec-node.d.ts +50 -57
  64. package/dest/interfaces/aztec-node.d.ts.map +1 -1
  65. package/dest/interfaces/aztec-node.js +13 -17
  66. package/dest/interfaces/block-builder.d.ts +13 -7
  67. package/dest/interfaces/block-builder.d.ts.map +1 -1
  68. package/dest/interfaces/block-builder.js +7 -0
  69. package/dest/interfaces/configs.d.ts +2 -2
  70. package/dest/interfaces/configs.d.ts.map +1 -1
  71. package/dest/interfaces/get_logs_response.d.ts +7 -7
  72. package/dest/interfaces/prover-client.d.ts +10 -1
  73. package/dest/interfaces/prover-client.d.ts.map +1 -1
  74. package/dest/interfaces/prover-client.js +7 -1
  75. package/dest/interfaces/tx_provider.d.ts +3 -3
  76. package/dest/interfaces/tx_provider.d.ts.map +1 -1
  77. package/dest/interfaces/validator.d.ts +3 -3
  78. package/dest/interfaces/validator.d.ts.map +1 -1
  79. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts +3 -3
  80. package/dest/kernel/hints/build_nullifier_read_request_hints.d.ts.map +1 -1
  81. package/dest/kernel/hints/build_nullifier_read_request_hints.js +4 -6
  82. package/dest/keys/derivation.d.ts +3 -3
  83. package/dest/keys/derivation.js +8 -8
  84. package/dest/keys/key_types.d.ts +1 -1
  85. package/dest/keys/utils.d.ts +1 -1
  86. package/dest/keys/utils.d.ts.map +1 -1
  87. package/dest/keys/utils.js +7 -3
  88. package/dest/l1-contracts/slash_factory.d.ts +1 -1
  89. package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
  90. package/dest/l1-contracts/slash_factory.js +1 -0
  91. package/dest/logs/extended_public_log.d.ts +6 -6
  92. package/dest/logs/log_id.d.ts +8 -8
  93. package/dest/logs/log_id.d.ts.map +1 -1
  94. package/dest/logs/log_id.js +6 -5
  95. package/dest/logs/siloed_tag.d.ts +1 -1
  96. package/dest/logs/siloed_tag.d.ts.map +1 -1
  97. package/dest/logs/siloed_tag.js +4 -3
  98. package/dest/p2p/block_proposal.d.ts +13 -6
  99. package/dest/p2p/block_proposal.d.ts.map +1 -1
  100. package/dest/p2p/block_proposal.js +1 -1
  101. package/dest/p2p/checkpoint_proposal.d.ts +10 -3
  102. package/dest/p2p/checkpoint_proposal.d.ts.map +1 -1
  103. package/dest/p2p/message_validator.d.ts +18 -3
  104. package/dest/p2p/message_validator.d.ts.map +1 -1
  105. package/dest/p2p/message_validator.js +2 -1
  106. package/dest/stats/stats.d.ts +1 -3
  107. package/dest/stats/stats.d.ts.map +1 -1
  108. package/dest/tests/factories.js +1 -1
  109. package/dest/tests/jest.d.ts +4 -4
  110. package/dest/tests/jest.js +9 -9
  111. package/dest/tests/mocks.d.ts +15 -10
  112. package/dest/tests/mocks.d.ts.map +1 -1
  113. package/dest/tests/mocks.js +19 -13
  114. package/dest/tx/block_header.d.ts +3 -2
  115. package/dest/tx/block_header.d.ts.map +1 -1
  116. package/dest/tx/block_header.js +3 -2
  117. package/dest/tx/in_tx.d.ts +3 -3
  118. package/dest/tx/indexed_tx_effect.d.ts +5 -5
  119. package/dest/tx/indexed_tx_effect.d.ts.map +1 -1
  120. package/dest/tx/indexed_tx_effect.js +3 -2
  121. package/dest/tx/tx_receipt.d.ts +42 -14
  122. package/dest/tx/tx_receipt.d.ts.map +1 -1
  123. package/dest/tx/tx_receipt.js +46 -15
  124. package/package.json +11 -10
  125. package/src/block/block_hash.ts +26 -47
  126. package/src/block/block_parameter.ts +3 -3
  127. package/src/block/checkpointed_l2_block.ts +4 -4
  128. package/src/block/in_block.ts +7 -7
  129. package/src/block/index.ts +1 -1
  130. package/src/block/{l2_block_new.ts → l2_block.ts} +8 -12
  131. package/src/block/l2_block_source.ts +40 -31
  132. package/src/block/l2_block_stream/interfaces.ts +2 -2
  133. package/src/block/l2_block_stream/l2_block_stream.ts +5 -6
  134. package/src/block/l2_block_stream/l2_tips_store_base.ts +2 -2
  135. package/src/block/test/l2_tips_store_test_suite.ts +4 -4
  136. package/src/checkpoint/checkpoint.ts +7 -7
  137. package/src/config/node-rpc-config.ts +1 -1
  138. package/src/contract/contract_address.ts +1 -1
  139. package/src/contract/contract_class_id.ts +1 -1
  140. package/src/contract/private_function.ts +2 -3
  141. package/src/contract/private_function_membership_proof.ts +1 -1
  142. package/src/database-version/database_version.ts +87 -0
  143. package/src/database-version/version_manager.ts +1 -77
  144. package/src/delayed_public_mutable/delayed_public_mutable_values.ts +9 -10
  145. package/src/epoch-helpers/index.ts +10 -1
  146. package/src/hash/hash.ts +2 -2
  147. package/src/hash/map_slot.ts +3 -2
  148. package/src/interfaces/archiver.ts +17 -25
  149. package/src/interfaces/aztec-node.ts +72 -116
  150. package/src/interfaces/block-builder.ts +15 -5
  151. package/src/interfaces/configs.ts +1 -3
  152. package/src/interfaces/prover-client.ts +15 -0
  153. package/src/interfaces/tx_provider.ts +2 -2
  154. package/src/interfaces/validator.ts +2 -4
  155. package/src/kernel/hints/build_nullifier_read_request_hints.ts +1 -10
  156. package/src/keys/derivation.ts +8 -8
  157. package/src/keys/key_types.ts +1 -1
  158. package/src/keys/utils.ts +7 -3
  159. package/src/l1-contracts/slash_factory.ts +1 -0
  160. package/src/logs/log_id.ts +7 -6
  161. package/src/logs/siloed_tag.ts +3 -2
  162. package/src/p2p/block_proposal.ts +12 -5
  163. package/src/p2p/checkpoint_proposal.ts +9 -2
  164. package/src/p2p/message_validator.ts +14 -2
  165. package/src/stats/stats.ts +0 -2
  166. package/src/tests/factories.ts +1 -1
  167. package/src/tests/jest.ts +9 -9
  168. package/src/tests/mocks.ts +26 -17
  169. package/src/tx/block_header.ts +7 -4
  170. package/src/tx/indexed_tx_effect.ts +3 -2
  171. package/src/tx/tx_receipt.ts +75 -18
  172. package/dest/block/l2_block_new.d.ts.map +0 -1
  173. package/dest/database-version/index.d.ts +0 -2
  174. package/dest/database-version/index.d.ts.map +0 -1
  175. package/dest/database-version/index.js +0 -1
  176. package/src/database-version/index.ts +0 -1
@@ -1,19 +1,34 @@
1
1
  import { BlockNumber, BlockNumberSchema } from '@aztec/foundation/branded-types';
2
- import type { FieldsOf } from '@aztec/foundation/types';
3
2
 
4
3
  import { z } from 'zod';
5
4
 
6
5
  import { RevertCode } from '../avm/revert_code.js';
7
- import { L2BlockHash } from '../block/block_hash.js';
6
+ import { BlockHash } from '../block/block_hash.js';
8
7
  import { type ZodFor, schemas } from '../schemas/schemas.js';
9
8
  import { TxHash } from './tx_hash.js';
10
9
 
11
- /**
12
- * Possible status of a transaction.
13
- */
10
+ /** Block inclusion/finalization status. */
14
11
  export enum TxStatus {
15
12
  DROPPED = 'dropped',
16
13
  PENDING = 'pending',
14
+ PROPOSED = 'proposed',
15
+ CHECKPOINTED = 'checkpointed',
16
+ PROVEN = 'proven',
17
+ FINALIZED = 'finalized', // TODO(#13569): Implement finalized status properly
18
+ }
19
+
20
+ /** Tx status sorted by finalization progress. */
21
+ export const SortedTxStatuses: TxStatus[] = [
22
+ TxStatus.DROPPED,
23
+ TxStatus.PENDING,
24
+ TxStatus.PROPOSED,
25
+ TxStatus.CHECKPOINTED,
26
+ TxStatus.PROVEN,
27
+ TxStatus.FINALIZED,
28
+ ];
29
+
30
+ /** Execution result - only set when tx is in a block. */
31
+ export enum TxExecutionResult {
17
32
  SUCCESS = 'success',
18
33
  APP_LOGIC_REVERTED = 'app_logic_reverted',
19
34
  TEARDOWN_REVERTED = 'teardown_reverted',
@@ -30,20 +45,52 @@ export class TxReceipt {
30
45
  constructor(
31
46
  /** A unique identifier for a transaction. */
32
47
  public txHash: TxHash,
33
- /** The transaction's status. */
48
+ /** The transaction's block finalization status. */
34
49
  public status: TxStatus,
50
+ /** The execution result of the transaction, only set when tx is in a block. */
51
+ public executionResult: TxExecutionResult | undefined,
35
52
  /** Description of transaction error, if any. */
36
- public error: string,
53
+ public error: string | undefined,
37
54
  /** The transaction fee paid for the transaction. */
38
55
  public transactionFee?: bigint,
39
56
  /** The hash of the block containing the transaction. */
40
- public blockHash?: L2BlockHash,
57
+ public blockHash?: BlockHash,
41
58
  /** The block number in which the transaction was included. */
42
59
  public blockNumber?: BlockNumber,
43
60
  ) {}
44
61
 
62
+ /** Returns true if the transaction was executed successfully. */
63
+ hasExecutionSucceeded(): boolean {
64
+ return this.executionResult === TxExecutionResult.SUCCESS;
65
+ }
66
+
67
+ /** Returns true if the transaction execution reverted. */
68
+ hasExecutionReverted(): boolean {
69
+ return this.executionResult !== undefined && this.executionResult !== TxExecutionResult.SUCCESS;
70
+ }
71
+
72
+ /** Returns true if the transaction has been included in a block (proposed, checkpointed, proven, or finalized). */
73
+ isMined(): boolean {
74
+ return (
75
+ this.status === TxStatus.PROPOSED ||
76
+ this.status === TxStatus.CHECKPOINTED ||
77
+ this.status === TxStatus.PROVEN ||
78
+ this.status === TxStatus.FINALIZED
79
+ );
80
+ }
81
+
82
+ /** Returns true if the transaction is pending. */
83
+ isPending(): boolean {
84
+ return this.status === TxStatus.PENDING;
85
+ }
86
+
87
+ /** Returns true if the transaction was dropped. */
88
+ isDropped(): boolean {
89
+ return this.status === TxStatus.DROPPED;
90
+ }
91
+
45
92
  static empty() {
46
- return new TxReceipt(TxHash.zero(), TxStatus.DROPPED, '');
93
+ return new TxReceipt(TxHash.zero(), TxStatus.DROPPED, undefined, undefined);
47
94
  }
48
95
 
49
96
  static get schema(): ZodFor<TxReceipt> {
@@ -51,18 +98,28 @@ export class TxReceipt {
51
98
  .object({
52
99
  txHash: TxHash.schema,
53
100
  status: z.nativeEnum(TxStatus),
54
- error: z.string(),
55
- blockHash: L2BlockHash.schema.optional(),
101
+ executionResult: z.nativeEnum(TxExecutionResult).optional(),
102
+ error: z.string().optional(),
103
+ blockHash: BlockHash.schema.optional(),
56
104
  blockNumber: BlockNumberSchema.optional(),
57
105
  transactionFee: schemas.BigInt.optional(),
58
106
  })
59
- .transform(TxReceipt.from);
107
+ .transform(fields => TxReceipt.from(fields));
60
108
  }
61
109
 
62
- static from(fields: FieldsOf<TxReceipt>) {
110
+ static from(fields: {
111
+ txHash: TxHash;
112
+ status: TxStatus;
113
+ executionResult?: TxExecutionResult;
114
+ error?: string;
115
+ transactionFee?: bigint;
116
+ blockHash?: BlockHash;
117
+ blockNumber?: BlockNumber;
118
+ }) {
63
119
  return new TxReceipt(
64
120
  fields.txHash,
65
121
  fields.status,
122
+ fields.executionResult,
66
123
  fields.error,
67
124
  fields.transactionFee,
68
125
  fields.blockHash,
@@ -70,15 +127,15 @@ export class TxReceipt {
70
127
  );
71
128
  }
72
129
 
73
- public static statusFromRevertCode(revertCode: RevertCode) {
130
+ public static executionResultFromRevertCode(revertCode: RevertCode): TxExecutionResult {
74
131
  if (revertCode.equals(RevertCode.OK)) {
75
- return TxStatus.SUCCESS;
132
+ return TxExecutionResult.SUCCESS;
76
133
  } else if (revertCode.equals(RevertCode.APP_LOGIC_REVERTED)) {
77
- return TxStatus.APP_LOGIC_REVERTED;
134
+ return TxExecutionResult.APP_LOGIC_REVERTED;
78
135
  } else if (revertCode.equals(RevertCode.TEARDOWN_REVERTED)) {
79
- return TxStatus.TEARDOWN_REVERTED;
136
+ return TxExecutionResult.TEARDOWN_REVERTED;
80
137
  } else if (revertCode.equals(RevertCode.BOTH_REVERTED)) {
81
- return TxStatus.BOTH_REVERTED;
138
+ return TxExecutionResult.BOTH_REVERTED;
82
139
  } else {
83
140
  throw new Error(`Unknown revert code: ${revertCode.getCode()}`);
84
141
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"l2_block_new.d.ts","sourceRoot":"","sources":["../../src/block/l2_block_new.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export * from './version_manager.js';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS12ZXJzaW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUMifQ==
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/database-version/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -1 +0,0 @@
1
- export * from './version_manager.js';
@@ -1 +0,0 @@
1
- export * from './version_manager.js';