@xyo-network/xl1-protocol 1.3.8 → 1.3.9

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 (303) hide show
  1. package/README.md +58 -21
  2. package/dist/neutral/index.mjs +216 -101
  3. package/dist/neutral/index.mjs.map +1 -1
  4. package/dist/node/index.mjs +225 -0
  5. package/dist/node/index.mjs.map +1 -0
  6. package/dist/types/Addressable.d.ts +5 -0
  7. package/dist/types/Addressable.d.ts.map +1 -0
  8. package/dist/types/ChainIterator.d.ts +29 -0
  9. package/dist/types/ChainIterator.d.ts.map +1 -0
  10. package/dist/types/ChainIteratorEventData.d.ts +11 -0
  11. package/dist/types/ChainIteratorEventData.d.ts.map +1 -0
  12. package/dist/types/OpenTelemetryProviders.d.ts +6 -0
  13. package/dist/types/OpenTelemetryProviders.d.ts.map +1 -0
  14. package/dist/types/chain/ChainServiceCollection.d.ts +35 -0
  15. package/dist/types/chain/ChainServiceCollection.d.ts.map +1 -0
  16. package/dist/types/chain/Initializable.d.ts +3 -0
  17. package/dist/types/chain/Initializable.d.ts.map +1 -0
  18. package/dist/types/chain/index.d.ts +3 -0
  19. package/dist/types/chain/index.d.ts.map +1 -0
  20. package/dist/types/ethereum.d.ts +11 -0
  21. package/dist/types/ethereum.d.ts.map +1 -0
  22. package/dist/types/index.d.ts +13 -1
  23. package/dist/types/index.d.ts.map +1 -1
  24. package/dist/types/instances/BoundWitness.d.ts +9 -0
  25. package/dist/types/instances/BoundWitness.d.ts.map +1 -0
  26. package/dist/types/instances/Data.d.ts +4 -0
  27. package/dist/types/instances/Data.d.ts.map +1 -0
  28. package/dist/types/instances/Fees.d.ts +8 -0
  29. package/dist/types/instances/Fees.d.ts.map +1 -0
  30. package/dist/types/instances/HydratedBoundWitness.d.ts +10 -0
  31. package/dist/types/instances/HydratedBoundWitness.d.ts.map +1 -0
  32. package/dist/types/instances/Object.d.ts +5 -0
  33. package/dist/types/instances/Object.d.ts.map +1 -0
  34. package/dist/types/instances/Payload.d.ts +6 -0
  35. package/dist/types/instances/Payload.d.ts.map +1 -0
  36. package/dist/types/instances/Signature.d.ts +8 -0
  37. package/dist/types/instances/Signature.d.ts.map +1 -0
  38. package/dist/types/instances/block/BlockFields.d.ts +9 -0
  39. package/dist/types/instances/block/BlockFields.d.ts.map +1 -0
  40. package/dist/types/instances/block/HydratedBlock.d.ts +8 -0
  41. package/dist/types/instances/block/HydratedBlock.d.ts.map +1 -0
  42. package/dist/types/instances/block/SignedHydratedBlock.d.ts +6 -0
  43. package/dist/types/instances/block/SignedHydratedBlock.d.ts.map +1 -0
  44. package/dist/types/instances/block/index.d.ts +3 -0
  45. package/dist/types/instances/block/index.d.ts.map +1 -0
  46. package/dist/types/instances/index.d.ts +10 -0
  47. package/dist/types/instances/index.d.ts.map +1 -0
  48. package/dist/types/instances/modifiers/Signed.d.ts +7 -0
  49. package/dist/types/instances/modifiers/Signed.d.ts.map +1 -0
  50. package/dist/types/instances/modifiers/Validatable.d.ts +5 -0
  51. package/dist/types/instances/modifiers/Validatable.d.ts.map +1 -0
  52. package/dist/types/instances/modifiers/index.d.ts +3 -0
  53. package/dist/types/instances/modifiers/index.d.ts.map +1 -0
  54. package/dist/types/instances/transaction/HydratedTransaction.d.ts +6 -0
  55. package/dist/types/instances/transaction/HydratedTransaction.d.ts.map +1 -0
  56. package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts +6 -0
  57. package/dist/types/instances/transaction/SignedHydratedTransaction.d.ts.map +1 -0
  58. package/dist/types/instances/transaction/TransactionFields.d.ts +9 -0
  59. package/dist/types/instances/transaction/TransactionFields.d.ts.map +1 -0
  60. package/dist/types/instances/transaction/index.d.ts +3 -0
  61. package/dist/types/instances/transaction/index.d.ts.map +1 -0
  62. package/dist/types/payload/elevatable/ChainStakeIntent.d.ts +17 -0
  63. package/dist/types/payload/elevatable/ChainStakeIntent.d.ts.map +1 -0
  64. package/dist/types/payload/elevatable/Executable.d.ts +14 -0
  65. package/dist/types/payload/elevatable/Executable.d.ts.map +1 -0
  66. package/dist/types/payload/elevatable/Hash.d.ts +19 -0
  67. package/dist/types/payload/elevatable/Hash.d.ts.map +1 -0
  68. package/dist/types/payload/elevatable/TransferPayload.d.ts +17 -0
  69. package/dist/types/payload/elevatable/TransferPayload.d.ts.map +1 -0
  70. package/dist/types/payload/elevatable/index.d.ts +5 -0
  71. package/dist/types/payload/elevatable/index.d.ts.map +1 -0
  72. package/dist/types/payload/index.d.ts +2 -0
  73. package/dist/types/payload/index.d.ts.map +1 -0
  74. package/dist/types/protocol/AllowedBlockPayload.d.ts +11 -0
  75. package/dist/types/protocol/AllowedBlockPayload.d.ts.map +1 -0
  76. package/dist/types/protocol/BlockBoundWitness.d.ts +34 -0
  77. package/dist/types/protocol/BlockBoundWitness.d.ts.map +1 -0
  78. package/dist/types/protocol/BlockDuration.d.ts +23 -0
  79. package/dist/types/protocol/BlockDuration.d.ts.map +1 -0
  80. package/dist/types/protocol/BlockNumber.d.ts +37 -0
  81. package/dist/types/protocol/BlockNumber.d.ts.map +1 -0
  82. package/dist/types/protocol/ChainAnalyzer.d.ts +9 -0
  83. package/dist/types/protocol/ChainAnalyzer.d.ts.map +1 -0
  84. package/dist/types/protocol/ChainReference.d.ts +11 -0
  85. package/dist/types/protocol/ChainReference.d.ts.map +1 -0
  86. package/dist/types/protocol/HydratedBlock.d.ts +6 -0
  87. package/dist/types/protocol/HydratedBlock.d.ts.map +1 -0
  88. package/dist/types/protocol/HydratedTransaction.d.ts +9 -0
  89. package/dist/types/protocol/HydratedTransaction.d.ts.map +1 -0
  90. package/dist/types/protocol/Issuer.d.ts +5 -0
  91. package/dist/types/protocol/Issuer.d.ts.map +1 -0
  92. package/dist/types/protocol/Steps.d.ts +2 -0
  93. package/dist/types/protocol/Steps.d.ts.map +1 -0
  94. package/dist/types/protocol/TransactionBoundWitness.d.ts +26 -0
  95. package/dist/types/protocol/TransactionBoundWitness.d.ts.map +1 -0
  96. package/dist/types/protocol/TransactionFeesFields.d.ts +35 -0
  97. package/dist/types/protocol/TransactionFeesFields.d.ts.map +1 -0
  98. package/dist/types/protocol/index.d.ts +13 -0
  99. package/dist/types/protocol/index.d.ts.map +1 -0
  100. package/dist/types/provider/XyoProvider.d.ts +18 -0
  101. package/dist/types/provider/XyoProvider.d.ts.map +1 -0
  102. package/dist/types/provider/XyoRunner.d.ts +7 -0
  103. package/dist/types/provider/XyoRunner.d.ts.map +1 -0
  104. package/dist/types/provider/XyoSigner.d.ts +10 -0
  105. package/dist/types/provider/XyoSigner.d.ts.map +1 -0
  106. package/dist/types/provider/XyoStorage.d.ts +16 -0
  107. package/dist/types/provider/XyoStorage.d.ts.map +1 -0
  108. package/dist/types/provider/XyoViewer.d.ts +17 -0
  109. package/dist/types/provider/XyoViewer.d.ts.map +1 -0
  110. package/dist/types/provider/XyoWallet.d.ts +13 -0
  111. package/dist/types/provider/XyoWallet.d.ts.map +1 -0
  112. package/dist/types/provider/index.d.ts +7 -0
  113. package/dist/types/provider/index.d.ts.map +1 -0
  114. package/dist/types/repository/Repository.d.ts +10 -0
  115. package/dist/types/repository/Repository.d.ts.map +1 -0
  116. package/dist/types/repository/TransactionReadRepository.d.ts +5 -0
  117. package/dist/types/repository/TransactionReadRepository.d.ts.map +1 -0
  118. package/dist/types/repository/TransactionRepository.d.ts +10 -0
  119. package/dist/types/repository/TransactionRepository.d.ts.map +1 -0
  120. package/dist/types/repository/TransactionRepositoryIterator.d.ts +5 -0
  121. package/dist/types/repository/TransactionRepositoryIterator.d.ts.map +1 -0
  122. package/dist/types/repository/TransactionWriteRepository.d.ts +5 -0
  123. package/dist/types/repository/TransactionWriteRepository.d.ts.map +1 -0
  124. package/dist/types/repository/index.d.ts +6 -0
  125. package/dist/types/repository/index.d.ts.map +1 -0
  126. package/dist/types/services/AccountBalanceService.d.ts +7 -0
  127. package/dist/types/services/AccountBalanceService.d.ts.map +1 -0
  128. package/dist/types/services/BlockProducer.d.ts +7 -0
  129. package/dist/types/services/BlockProducer.d.ts.map +1 -0
  130. package/dist/types/services/BlockReward.d.ts +6 -0
  131. package/dist/types/services/BlockReward.d.ts.map +1 -0
  132. package/dist/types/services/Chain/ChainContractViewer.d.ts +12 -0
  133. package/dist/types/services/Chain/ChainContractViewer.d.ts.map +1 -0
  134. package/dist/types/services/Chain/ChainIdentification.d.ts +14 -0
  135. package/dist/types/services/Chain/ChainIdentification.d.ts.map +1 -0
  136. package/dist/types/services/Chain/ChainInformation.d.ts +12 -0
  137. package/dist/types/services/Chain/ChainInformation.d.ts.map +1 -0
  138. package/dist/types/services/Chain/ChainService.d.ts +8 -0
  139. package/dist/types/services/Chain/ChainService.d.ts.map +1 -0
  140. package/dist/types/services/Chain/ChainStakeViewer.d.ts +10 -0
  141. package/dist/types/services/Chain/ChainStakeViewer.d.ts.map +1 -0
  142. package/dist/types/services/Chain/ChainStaker.d.ts +6 -0
  143. package/dist/types/services/Chain/ChainStaker.d.ts.map +1 -0
  144. package/dist/types/services/Chain/index.d.ts +7 -0
  145. package/dist/types/services/Chain/index.d.ts.map +1 -0
  146. package/dist/types/services/Election.d.ts +11 -0
  147. package/dist/types/services/Election.d.ts.map +1 -0
  148. package/dist/types/services/Params.d.ts +9 -0
  149. package/dist/types/services/Params.d.ts.map +1 -0
  150. package/dist/types/services/PendingTransactionsService.d.ts +7 -0
  151. package/dist/types/services/PendingTransactionsService.d.ts.map +1 -0
  152. package/dist/types/services/Service.d.ts +9 -0
  153. package/dist/types/services/Service.d.ts.map +1 -0
  154. package/dist/types/services/index.d.ts +10 -0
  155. package/dist/types/services/index.d.ts.map +1 -0
  156. package/dist/types/services/stakeIntent/ChainIndexingServiceStateSchema.d.ts +39 -0
  157. package/dist/types/services/stakeIntent/ChainIndexingServiceStateSchema.d.ts.map +1 -0
  158. package/dist/types/services/stakeIntent/StakeIntentService.d.ts +24 -0
  159. package/dist/types/services/stakeIntent/StakeIntentService.d.ts.map +1 -0
  160. package/dist/types/services/stakeIntent/index.d.ts +3 -0
  161. package/dist/types/services/stakeIntent/index.d.ts.map +1 -0
  162. package/dist/types/validation/block/BlockValidationFunction.d.ts +5 -0
  163. package/dist/types/validation/block/BlockValidationFunction.d.ts.map +1 -0
  164. package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts +13 -0
  165. package/dist/types/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
  166. package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts +11 -0
  167. package/dist/types/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
  168. package/dist/types/validation/block/index.d.ts +4 -0
  169. package/dist/types/validation/block/index.d.ts.map +1 -0
  170. package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts +4 -0
  171. package/dist/types/validation/boundwitness/BoundWitnessValidationFunction.d.ts.map +1 -0
  172. package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts +6 -0
  173. package/dist/types/validation/boundwitness/HydratedBoundWitnessValidationFunction.d.ts.map +1 -0
  174. package/dist/types/validation/boundwitness/index.d.ts +3 -0
  175. package/dist/types/validation/boundwitness/index.d.ts.map +1 -0
  176. package/dist/types/validation/index.d.ts +5 -0
  177. package/dist/types/validation/index.d.ts.map +1 -0
  178. package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts +5 -0
  179. package/dist/types/validation/payload/InBlockPayloadValidationFunction.d.ts.map +1 -0
  180. package/dist/types/validation/payload/index.d.ts +2 -0
  181. package/dist/types/validation/payload/index.d.ts.map +1 -0
  182. package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts +13 -0
  183. package/dist/types/validation/transaction/HydratedTransactionStateValidationFunction.d.ts.map +1 -0
  184. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts +12 -0
  185. package/dist/types/validation/transaction/HydratedTransactionValidationFunction.d.ts.map +1 -0
  186. package/dist/types/validation/transaction/index.d.ts +3 -0
  187. package/dist/types/validation/transaction/index.d.ts.map +1 -0
  188. package/documents/proof-of-perfect/proof-of-perfect-draft.log +741 -0
  189. package/documents/proof-of-perfect/proof-of-perfect-draft.pdf +0 -0
  190. package/documents/proof-of-perfect/proof-of-perfect-draft.tex +311 -0
  191. package/documents/xyol1-white-paper/white-paper-draft.log +547 -0
  192. package/documents/xyol1-white-paper/white-paper-draft.pdf +0 -0
  193. package/documents/xyol1-white-paper/white-paper-draft.tex +799 -0
  194. package/eslint.config.mjs +35 -0
  195. package/knip.config.ts +1 -1
  196. package/knip.log +491 -0
  197. package/package.json +31 -18
  198. package/src/Addressable.ts +6 -0
  199. package/src/ChainIterator.ts +29 -0
  200. package/src/ChainIteratorEventData.ts +11 -0
  201. package/src/OpenTelemetryProviders.ts +6 -0
  202. package/src/chain/ChainServiceCollection.ts +41 -0
  203. package/src/chain/Initializable.ts +3 -0
  204. package/src/chain/index.ts +2 -0
  205. package/src/ethereum.ts +26 -0
  206. package/src/index.ts +13 -1
  207. package/src/instances/BoundWitness.ts +13 -0
  208. package/src/instances/Data.ts +3 -0
  209. package/src/instances/Fees.ts +8 -0
  210. package/src/instances/HydratedBoundWitness.ts +15 -0
  211. package/src/instances/Object.ts +5 -0
  212. package/src/instances/Payload.ts +6 -0
  213. package/src/instances/Signature.ts +11 -0
  214. package/src/instances/block/BlockFields.ts +13 -0
  215. package/src/instances/block/HydratedBlock.ts +9 -0
  216. package/src/instances/block/SignedHydratedBlock.ts +5 -0
  217. package/src/instances/block/index.ts +2 -0
  218. package/src/instances/index.ts +9 -0
  219. package/src/instances/modifiers/Signed.ts +8 -0
  220. package/src/instances/modifiers/Validatable.ts +5 -0
  221. package/src/instances/modifiers/index.ts +2 -0
  222. package/src/instances/transaction/HydratedTransaction.ts +8 -0
  223. package/src/instances/transaction/SignedHydratedTransaction.ts +7 -0
  224. package/src/instances/transaction/TransactionFields.ts +12 -0
  225. package/src/instances/transaction/index.ts +2 -0
  226. package/src/payload/elevatable/ChainStakeIntent.ts +32 -0
  227. package/src/payload/elevatable/Executable.ts +29 -0
  228. package/src/payload/elevatable/Hash.ts +19 -0
  229. package/src/payload/elevatable/TransferPayload.ts +26 -0
  230. package/src/payload/elevatable/index.ts +4 -0
  231. package/src/payload/index.ts +1 -0
  232. package/src/protocol/AllowedBlockPayload.ts +29 -0
  233. package/src/protocol/BlockBoundWitness.ts +47 -0
  234. package/src/protocol/BlockDuration.ts +23 -0
  235. package/src/protocol/BlockNumber.ts +39 -0
  236. package/src/protocol/ChainAnalyzer.ts +10 -0
  237. package/src/protocol/ChainReference.ts +11 -0
  238. package/src/protocol/HydratedBlock.ts +8 -0
  239. package/src/protocol/HydratedTransaction.ts +19 -0
  240. package/src/protocol/Issuer.ts +5 -0
  241. package/src/protocol/Steps.ts +1 -0
  242. package/src/protocol/TransactionBoundWitness.ts +51 -0
  243. package/src/protocol/TransactionFeesFields.ts +38 -0
  244. package/src/protocol/index.ts +12 -0
  245. package/src/provider/XyoProvider.ts +29 -0
  246. package/src/provider/XyoRunner.ts +8 -0
  247. package/src/provider/XyoSigner.ts +21 -0
  248. package/src/provider/XyoStorage.ts +17 -0
  249. package/src/provider/XyoViewer.ts +18 -0
  250. package/src/provider/XyoWallet.ts +15 -0
  251. package/src/provider/index.ts +6 -0
  252. package/src/repository/Repository.ts +11 -0
  253. package/src/repository/TransactionReadRepository.ts +4 -0
  254. package/src/repository/TransactionRepository.ts +9 -0
  255. package/src/repository/TransactionRepositoryIterator.ts +4 -0
  256. package/src/repository/TransactionWriteRepository.ts +4 -0
  257. package/src/repository/index.ts +5 -0
  258. package/src/services/AccountBalanceService.ts +9 -0
  259. package/src/services/BlockProducer.ts +7 -0
  260. package/src/services/BlockReward.ts +7 -0
  261. package/src/services/Chain/ChainContractViewer.ts +12 -0
  262. package/src/services/Chain/ChainIdentification.ts +17 -0
  263. package/src/services/Chain/ChainInformation.ts +20 -0
  264. package/src/services/Chain/ChainService.ts +7 -0
  265. package/src/services/Chain/ChainStakeViewer.ts +10 -0
  266. package/src/services/Chain/ChainStaker.ts +5 -0
  267. package/src/services/Chain/index.ts +6 -0
  268. package/src/services/Election.ts +14 -0
  269. package/src/services/Params.ts +11 -0
  270. package/src/services/PendingTransactionsService.ts +8 -0
  271. package/src/services/Service.ts +10 -0
  272. package/src/services/index.ts +9 -0
  273. package/src/services/stakeIntent/ChainIndexingServiceStateSchema.ts +46 -0
  274. package/src/services/stakeIntent/StakeIntentService.ts +28 -0
  275. package/src/services/stakeIntent/index.ts +2 -0
  276. package/src/validation/block/BlockValidationFunction.ts +9 -0
  277. package/src/validation/block/HydratedBlockStateValidationFunction.ts +18 -0
  278. package/src/validation/block/HydratedBlockValidationFunction.ts +15 -0
  279. package/src/validation/block/index.ts +3 -0
  280. package/src/validation/boundwitness/BoundWitnessValidationFunction.ts +6 -0
  281. package/src/validation/boundwitness/HydratedBoundWitnessValidationFunction.ts +10 -0
  282. package/src/validation/boundwitness/index.ts +2 -0
  283. package/src/validation/index.ts +4 -0
  284. package/src/validation/payload/InBlockPayloadValidationFunction.ts +8 -0
  285. package/src/validation/payload/index.ts +1 -0
  286. package/src/validation/transaction/HydratedTransactionStateValidationFunction.ts +18 -0
  287. package/src/validation/transaction/HydratedTransactionValidationFunction.ts +16 -0
  288. package/src/validation/transaction/index.ts +2 -0
  289. package/typedoc.json +5 -0
  290. package/vite.config.ts +30 -0
  291. package/vitest.config.ts +14 -0
  292. package/vitest.teardown.ts +10 -0
  293. package/vitest.workspace.ts +5 -0
  294. package/xy.config.ts +2 -2
  295. package/dist/types/transaction/buildTransaction.d.ts +0 -7
  296. package/dist/types/transaction/buildTransaction.d.ts.map +0 -1
  297. package/dist/types/transaction/hydrateTransaction.d.ts +0 -11
  298. package/dist/types/transaction/hydrateTransaction.d.ts.map +0 -1
  299. package/dist/types/transaction/index.d.ts +0 -3
  300. package/dist/types/transaction/index.d.ts.map +0 -1
  301. package/src/transaction/buildTransaction.ts +0 -61
  302. package/src/transaction/hydrateTransaction.ts +0 -73
  303. package/src/transaction/index.ts +0 -2
package/README.md CHANGED
@@ -1,29 +1,61 @@
1
1
  [![logo][]](https://xyo-network)
2
2
 
3
- # @xyo-network/xl1-protocol
3
+ # @xyo-network/chain
4
4
 
5
5
  [![main-build][]][main-build-link]
6
-
7
- [![codacy-badge][]][codacy-link]
8
- [![codeclimate-badge][]][codeclimate-link]
9
- [![codeclimate-coverage-badge][]][codeclimate-coverage-link]
6
+ [![npm-badge][]][npm-link]
7
+ [![npm-downloads-badge][]][npm-link]
8
+ [![jsdelivr-badge][]][jsdelivr-link]
9
+ [![npm-license-badge][]](LICENSE)
10
+ [![socket-badge][]][socket-link]
10
11
 
11
12
  ## Table of Contents
12
13
 
13
- - [@xyo-network/xl1-protocol](#xylabsapi-xyo-xl1-nodejs)
14
- - [Table of Contents](#table-of-contents)
15
- - [Description](#description)
16
- - [Maintainers](#maintainers)
17
- - [License](#license)
18
- - [Credits](#credits)
14
+ - [Description](#description)
15
+ - [Install](#install)
16
+ - [Scripts](#scripts)
17
+ - [Maintainers](#maintainers)
18
+ - [License](#license)
19
+ - [Credits](#credits)
19
20
 
20
21
  ## Description
21
22
 
22
- Api/implementation of XYO Chain API Node
23
+ XY Labs implementation of the XYO Chain Protocol
24
+
25
+ ## Install
26
+
27
+ Using npm:
28
+
29
+ ```sh
30
+ npm i --save @xyo-network/chain
31
+ ```
32
+
33
+ Using yarn:
34
+
35
+ ```sh
36
+ yarn add @xyo-network/chain
37
+ ```
38
+
39
+ ## Build Scripts
40
+
41
+ Using npm:
42
+
43
+ ```sh
44
+ npm xy --help
45
+ ```
46
+
47
+ Using yarn:
48
+
49
+ ```sh
50
+ yarn xy --help
51
+ ```
23
52
 
24
53
  ## Maintainers
25
54
 
26
- - [Arie Trouw](https://github.com/arietrouw) [arietrouw.com](https://arietrouw.com)
55
+ - [Arie Trouw](https://github.com/arietrouw) ([arietrouw.com](https://arietrouw.com))
56
+ - [Matt Jones](https://github.com/jonesmac)
57
+ - [Joel Carter](https://github.com/JoelBCarter)
58
+ - [Jordan Trouw](https://github.com/jordantrouw)
27
59
 
28
60
  ## License
29
61
 
@@ -34,11 +66,16 @@ See the [LICENSE](LICENSE) file for license details
34
66
  [Made with 🔥 and ❄️ by XY Labs](https://xylabs.com)
35
67
 
36
68
  [logo]: https://cdn.xy.company/img/brand/XYO_full_colored.png
37
- [main-build]: https://github.com/xylabs/xl1-protocol/actions/workflows/build-main.yml/badge.svg
38
- [main-build-link]: https://github.com/xylabs/xl1-protocol/actions/workflows/build-main.yml
39
- [codacy-badge]: https://app.codacy.com/project/badge/Grade/14640dade84b44a69e7b9daafd07be46
40
- [codacy-link]: https://www.codacy.com/gh/xylabs/xl1-protocol/dashboard?utm_source=github.com&utm_medium=referral&utm_content=xylabs/api-xylabs-import-nodejs&utm_campaign=Badge_Grade
41
- [codeclimate-badge]: https://api.codeclimate.com/v1/badges/dc0bb5770f231f22f826/maintainability
42
- [codeclimate-link]: https://codeclimate.com/github/xylabs/xl1-protocol/maintainability
43
- [codeclimate-coverage-badge]: https://api.codeclimate.com/v1/badges/dc0bb5770f231f22f826/test_coverage
44
- [codeclimate-coverage-link]: https://codeclimate.com/github/xylabs/xl1-protocol/test_coverage
69
+ [main-build]: https://github.com/xyo-network/chain/actions/workflows/build.yml/badge.svg
70
+ [main-build-link]: https://github.com/xyo-network/chain/actions/workflows/build.yml
71
+ [npm-badge]: https://img.shields.io/npm/v/@xyo-network/chain.svg
72
+ [npm-link]: https://www.npmjs.com/package/@xyo-network/chain
73
+
74
+ [npm-downloads-badge]: https://img.shields.io/npm/dw/@xyo-network/chain
75
+ [npm-license-badge]: https://img.shields.io/npm/l/@xyo-network/chain
76
+
77
+ [jsdelivr-badge]: https://data.jsdelivr.com/v1/package/npm/@xyo-network/chain/badge
78
+ [jsdelivr-link]: https://www.jsdelivr.com/package/npm/@xyo-network/chain
79
+
80
+ [socket-badge]: https://socket.dev/api/badge/npm/package/@xyo-network/chain
81
+ [socket-link]: https://socket.dev/npm/package/@xyo-network/chain
@@ -1,110 +1,225 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
- // src/transaction/buildTransaction.ts
5
- import { assertEx } from "@xylabs/assert";
4
+ // src/ethereum.ts
5
+ import { getAddress } from "@ethersproject/address";
6
6
  import { toHex } from "@xylabs/hex";
7
- import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
8
- import { PayloadBuilder } from "@xyo-network/payload-builder";
9
- var defaultFees = {
10
- base: 1000n,
11
- gasPrice: 100n,
12
- gasLimit: 1000000n,
13
- priority: 0n
14
- };
15
- async function buildTransaction(chain, elevatedPayloads, additionalPayloads, signer, nbf, exp, from, fees = defaultFees) {
16
- if (from === void 0 && Array.isArray(signer)) {
17
- throw new Error("from is required when signer is an array");
18
- }
19
- const txBoundWitnessFields = {
20
- chain,
21
- fees: {
22
- base: toHex(fees.base),
23
- gasLimit: toHex(fees.gasLimit),
24
- gasPrice: toHex(fees.gasPrice),
25
- priority: toHex(fees.priority)
26
- },
27
- nbf,
28
- exp
7
+ import { parseUnits } from "ethers/utils";
8
+ var getDefaultGasConfig = /* @__PURE__ */ __name(() => {
9
+ return {
10
+ gasLimit: 2e6,
11
+ gasPrice: parseUnits("100", "gwei")
29
12
  };
30
- const elevatedHashes = await PayloadBuilder.hashes(elevatedPayloads);
31
- const script = [];
32
- for (const elevatedHash of elevatedHashes) {
33
- script.push(`elevate|${elevatedHash}`);
34
- }
35
- const [tx, txPayloads] = await new BoundWitnessBuilder().fields({
36
- ...txBoundWitnessFields,
37
- script,
38
- from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address)
39
- }).meta({
40
- $signatures: []
41
- }).payloads([
42
- ...elevatedPayloads,
43
- ...additionalPayloads
44
- ]).signers(Array.isArray(signer) ? signer : [
45
- signer
46
- ]).build();
47
- return [
48
- await PayloadBuilder.addStorageMeta(tx),
49
- await PayloadBuilder.addStorageMeta(txPayloads)
50
- ];
51
- }
52
- __name(buildTransaction, "buildTransaction");
13
+ }, "getDefaultGasConfig");
14
+ var ETH_ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
15
+ var toEthAddress = /* @__PURE__ */ __name((value) => {
16
+ const address = typeof value === "object" ? value.address : value;
17
+ return getAddress(toHex(address, {
18
+ prefix: true,
19
+ bitLength: 160
20
+ }));
21
+ }, "toEthAddress");
22
+
23
+ // src/payload/elevatable/ChainStakeIntent.ts
24
+ import { AsObjectFactory } from "@xylabs/object";
25
+ import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
26
+ var ChainStakeIntentSchema = "network.xyo.chain.stake.intent";
27
+ var isChainStakeIntent = /* @__PURE__ */ __name((x) => {
28
+ return isPayloadOfSchemaType(ChainStakeIntentSchema)(x) && asNonNegativeInteger(x.nbf) !== void 0 && asNonNegativeInteger(x.exp) !== void 0;
29
+ }, "isChainStakeIntent");
30
+ var asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent);
31
+ var asOptionalChainStakeIntent = AsObjectFactory.createOptional(isChainStakeIntent);
32
+ var asNonNegativeInteger = /* @__PURE__ */ __name((num) => {
33
+ return Number.isInteger(num) && num >= 0 ? num : void 0;
34
+ }, "asNonNegativeInteger");
35
+
36
+ // src/payload/elevatable/Executable.ts
37
+ import { isAnyPayload } from "@xyo-network/payload-model";
38
+ var hasFrom = /* @__PURE__ */ __name((value) => {
39
+ return value.from !== void 0;
40
+ }, "hasFrom");
41
+ var isExecutable = /* @__PURE__ */ __name((value) => {
42
+ return isAnyPayload(value) && Array.isArray(value.script);
43
+ }, "isExecutable");
44
+ var asExecutable = /* @__PURE__ */ __name((value) => {
45
+ return isExecutable(value) ? value : void 0;
46
+ }, "asExecutable");
47
+
48
+ // src/payload/elevatable/Hash.ts
49
+ import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
50
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
51
+ var HashSchema = "network.xyo.hash";
52
+ var isHashPayload = isPayloadOfSchemaType2(HashSchema);
53
+ var asHashPayload = AsObjectFactory2.create(isHashPayload);
54
+ var asHashPayloadWithStorageMeta = AsObjectFactory2.create(isHashPayload);
55
+ var asOptionalHashPayload = AsObjectFactory2.createOptional(isHashPayload);
56
+
57
+ // src/payload/elevatable/TransferPayload.ts
58
+ import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/object";
59
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType3 } from "@xyo-network/payload-model";
60
+ var TransferSchema = "network.xyo.transfer";
61
+ var isTransfer = isPayloadOfSchemaType3(TransferSchema);
62
+ var asTransfer = AsObjectFactory3.create(isTransfer);
63
+ var asOptionalTransfer = AsObjectFactory3.createOptional(isTransfer);
64
+
65
+ // src/protocol/AllowedBlockPayload.ts
66
+ import { BoundWitnessSchema } from "@xyo-network/boundwitness-model";
67
+ import { isHashStorageMeta, isSchema } from "@xyo-network/payload-model";
68
+ import { isSchemaPayload, SchemaSchema } from "@xyo-network/schema-payload-plugin";
69
+
70
+ // src/protocol/TransactionBoundWitness.ts
71
+ import { AsObjectFactory as AsObjectFactory4 } from "@xylabs/object";
72
+ import { isBoundWitness } from "@xyo-network/boundwitness-model";
73
+ import { isStorageMeta } from "@xyo-network/payload-model";
74
+ var isTransactionBoundWitness = /* @__PURE__ */ __name((value) => {
75
+ const typedObj = value;
76
+ return isBoundWitness(value) && typedObj.chain !== void 0 && typedObj.fees !== void 0 && typedObj.exp !== void 0 && typedObj.nbf !== void 0;
77
+ }, "isTransactionBoundWitness");
78
+ var isSignedTransactionBoundWitness = /* @__PURE__ */ __name((value) => {
79
+ return isTransactionBoundWitness(value) && isSigned(value);
80
+ }, "isSignedTransactionBoundWitness");
81
+ var isSigned = /* @__PURE__ */ __name((value) => isBoundWitness(value) && value.$signatures.length === value.addresses.length && value.addresses.length > 0, "isSigned");
82
+ var isTransactionBoundWitnessWithStorageMeta = /* @__PURE__ */ __name((value) => isTransactionBoundWitness(value) && isStorageMeta(value), "isTransactionBoundWitnessWithStorageMeta");
83
+ var isSignedTransactionBoundWitnessWithStorageMeta = /* @__PURE__ */ __name((value) => isSignedTransactionBoundWitness(value) && isStorageMeta(value), "isSignedTransactionBoundWitnessWithStorageMeta");
84
+ var asTransactionBoundWitness = AsObjectFactory4.create(isTransactionBoundWitness);
85
+ var asOptionalTransactionBoundWitness = AsObjectFactory4.createOptional(isTransactionBoundWitness);
86
+ var asTransactionBoundWitnessWithStorageMeta = AsObjectFactory4.create(isTransactionBoundWitnessWithStorageMeta);
87
+ var asOptionalTransactionBoundWitnessWithStorageMeta = AsObjectFactory4.createOptional(isTransactionBoundWitnessWithStorageMeta);
88
+
89
+ // src/protocol/AllowedBlockPayload.ts
90
+ var AllowedBlockPayloadSchemas = [
91
+ TransferSchema,
92
+ ChainStakeIntentSchema,
93
+ SchemaSchema,
94
+ BoundWitnessSchema,
95
+ HashSchema
96
+ ];
97
+ var isAllowedBlockPayloadSchema = /* @__PURE__ */ __name((value) => {
98
+ return isSchema(value) && AllowedBlockPayloadSchemas.includes(value);
99
+ }, "isAllowedBlockPayloadSchema");
100
+ var isAllowedBlockPayload = /* @__PURE__ */ __name((value) => {
101
+ return isTransfer(value) || isChainStakeIntent(value) || isSchemaPayload(value) || isTransactionBoundWitness(value) || isHashPayload(value);
102
+ }, "isAllowedBlockPayload");
103
+ var isAllowedBlockPayloadWithHashStorageMeta = /* @__PURE__ */ __name((value) => {
104
+ return isAllowedBlockPayload(value) && isHashStorageMeta(value);
105
+ }, "isAllowedBlockPayloadWithHashStorageMeta");
106
+
107
+ // src/protocol/BlockBoundWitness.ts
108
+ import { isHex } from "@xylabs/hex";
109
+ import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
110
+ import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
111
+ import { isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
112
+ var isBlockBoundWitness = /* @__PURE__ */ __name((value) => {
113
+ const typedObj = value;
114
+ return isBoundWitness2(value) && Number.isInteger(typedObj.block) && isHex(typedObj.chain);
115
+ }, "isBlockBoundWitness");
116
+ var isBlockBoundWitnessWithStorageMeta = /* @__PURE__ */ __name((value) => {
117
+ return isBlockBoundWitness(value) && isStorageMeta2(value);
118
+ }, "isBlockBoundWitnessWithStorageMeta");
119
+ var asBlockBoundWitness = AsObjectFactory5.create(isBlockBoundWitness);
120
+ var asOptionalBlockBoundWitness = AsObjectFactory5.createOptional(isBlockBoundWitness);
121
+ var asBlockBoundWitnessWithStorageMeta = AsObjectFactory5.create(isBlockBoundWitnessWithStorageMeta);
122
+ var asOptionalBlockBoundWitnessWithStorageMeta = AsObjectFactory5.createOptional(isBlockBoundWitnessWithStorageMeta);
123
+
124
+ // src/protocol/BlockNumber.ts
125
+ import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/object";
126
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType4, isPayloadOfSchemaTypeWithSources } from "@xyo-network/payload-model";
127
+ var BlockNumberSchema = "network.xyo.chain.block.number";
128
+ var isBlockNumber = isPayloadOfSchemaType4(BlockNumberSchema);
129
+ var asBlockNumber = AsObjectFactory6.create(isBlockNumber);
130
+ var asOptionalBlockNumber = AsObjectFactory6.createOptional(isBlockNumber);
131
+ var isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources(BlockNumberSchema);
132
+ var asBlockNumberWithSources = AsObjectFactory6.create(isBlockNumberWithSources);
133
+ var asOptionalBlockNumberWithSources = AsObjectFactory6.createOptional(isBlockNumberWithSources);
134
+
135
+ // src/protocol/Steps.ts
136
+ var Steps = [
137
+ 10,
138
+ 105,
139
+ 1103,
140
+ 11576,
141
+ 121551,
142
+ 1276282,
143
+ 13400956
144
+ ];
145
+
146
+ // src/services/Chain/ChainIdentification.ts
147
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType5 } from "@xyo-network/payload-model";
148
+ var ChainIdentificationPayloadSchema = "network.xyo.chain.identification";
149
+ var isChainIdentificationPayload = isPayloadOfSchemaType5(ChainIdentificationPayloadSchema);
150
+
151
+ // src/services/Chain/ChainInformation.ts
152
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType6 } from "@xyo-network/payload-model";
153
+ var ChainInformationPayloadSchema = "network.xyo.chain.information";
154
+ var isChainInformationPayload = isPayloadOfSchemaType6(ChainInformationPayloadSchema);
53
155
 
54
- // src/transaction/hydrateTransaction.ts
55
- import { assertEx as assertEx2 } from "@xylabs/assert";
56
- import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from "@xyo-network/archivist-model";
57
- import { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-model";
58
- var tryHydrateTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
59
- return await tryHydrateTypedBoundWitness(archivist, hash, isTransactionBoundWitnessWithStorageMeta);
60
- }, "tryHydrateTransaction");
61
- var hydrateTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
62
- return await hydrateTypedBoundWitness(archivist, hash, isTransactionBoundWitnessWithStorageMeta);
63
- }, "hydrateTransaction");
64
- var flattenHydratedTransaction = /* @__PURE__ */ __name((hydratedTransaction) => {
65
- const [tx, txPayloads] = hydratedTransaction;
66
- return [
67
- ...txPayloads,
68
- tx
69
- ];
70
- }, "flattenHydratedTransaction");
71
- var flattenHydratedTransactions = /* @__PURE__ */ __name((hydratedTransactions) => hydratedTransactions.flatMap((tx) => flattenHydratedTransaction(tx)), "flattenHydratedTransactions");
72
- var tryHydrateElevatedTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
73
- const hydratedTransaction = await tryHydrateTransaction(archivist, hash);
74
- if (!hydratedTransaction) {
75
- return void 0;
76
- }
77
- const [transaction, payloads] = hydratedTransaction;
78
- const opCodes = (transaction.script ?? []).filter((operation) => operation.startsWith("elevate|"));
79
- const elevatedPayloads = [];
80
- for (const opCode of opCodes) {
81
- const [code, hash2] = opCode.split("|");
82
- if (code === "elevated") {
83
- const elevatedPayload = payloads.find((payload) => payload._hash === hash2);
84
- if (isAllowedBlockPayload(elevatedPayload)) {
85
- elevatedPayloads.push(elevatedPayload);
86
- }
87
- }
88
- }
89
- if (opCodes.length === elevatedPayloads.length) {
90
- return [
91
- transaction,
92
- elevatedPayloads
93
- ];
94
- }
95
- return void 0;
96
- }, "tryHydrateElevatedTransaction");
97
- var hydrateElevatedTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
98
- return assertEx2(await tryHydrateElevatedTransaction(archivist, hash), () => "Hydration failed");
99
- }, "hydrateElevatedTransaction");
156
+ // src/services/stakeIntent/ChainIndexingServiceStateSchema.ts
157
+ import { AsObjectFactory as AsObjectFactory7 } from "@xylabs/object";
158
+ import { isPayloadOfSchemaType as isPayloadOfSchemaType7, isStorageMeta as isStorageMeta3 } from "@xyo-network/payload-model";
159
+ var ChainIndexingServiceStateSchema = "network.xyo.chain.indexing.service.state";
160
+ var isChainIndexingServiceState = /* @__PURE__ */ __name((payload) => {
161
+ return isPayloadOfSchemaType7(ChainIndexingServiceStateSchema)(payload);
162
+ }, "isChainIndexingServiceState");
163
+ var asChainIndexingServiceState = AsObjectFactory7.create(isChainIndexingServiceState);
164
+ var isChainIndexingServiceStateWithStorageMeta = /* @__PURE__ */ __name((value) => isChainIndexingServiceState(value) && isStorageMeta3(value), "isChainIndexingServiceStateWithStorageMeta");
165
+ var asChainIndexingServiceStateWithStorageMeta = AsObjectFactory7.create(isChainIndexingServiceStateWithStorageMeta);
166
+ var asOptionalChainIndexingServiceStateWithStorageMeta = AsObjectFactory7.createOptional(isChainIndexingServiceStateWithStorageMeta);
100
167
  export {
101
- buildTransaction,
102
- defaultFees,
103
- flattenHydratedTransaction,
104
- flattenHydratedTransactions,
105
- hydrateElevatedTransaction,
106
- hydrateTransaction,
107
- tryHydrateElevatedTransaction,
108
- tryHydrateTransaction
168
+ AllowedBlockPayloadSchemas,
169
+ BlockNumberSchema,
170
+ ChainIdentificationPayloadSchema,
171
+ ChainIndexingServiceStateSchema,
172
+ ChainInformationPayloadSchema,
173
+ ChainStakeIntentSchema,
174
+ ETH_ZERO_ADDRESS,
175
+ HashSchema,
176
+ Steps,
177
+ TransferSchema,
178
+ asBlockBoundWitness,
179
+ asBlockBoundWitnessWithStorageMeta,
180
+ asBlockNumber,
181
+ asBlockNumberWithSources,
182
+ asChainIndexingServiceState,
183
+ asChainIndexingServiceStateWithStorageMeta,
184
+ asChainStakeIntent,
185
+ asExecutable,
186
+ asHashPayload,
187
+ asHashPayloadWithStorageMeta,
188
+ asOptionalBlockBoundWitness,
189
+ asOptionalBlockBoundWitnessWithStorageMeta,
190
+ asOptionalBlockNumber,
191
+ asOptionalBlockNumberWithSources,
192
+ asOptionalChainIndexingServiceStateWithStorageMeta,
193
+ asOptionalChainStakeIntent,
194
+ asOptionalHashPayload,
195
+ asOptionalTransactionBoundWitness,
196
+ asOptionalTransactionBoundWitnessWithStorageMeta,
197
+ asOptionalTransfer,
198
+ asTransactionBoundWitness,
199
+ asTransactionBoundWitnessWithStorageMeta,
200
+ asTransfer,
201
+ getDefaultGasConfig,
202
+ hasFrom,
203
+ isAllowedBlockPayload,
204
+ isAllowedBlockPayloadSchema,
205
+ isAllowedBlockPayloadWithHashStorageMeta,
206
+ isBlockBoundWitness,
207
+ isBlockBoundWitnessWithStorageMeta,
208
+ isBlockNumber,
209
+ isBlockNumberWithSources,
210
+ isChainIdentificationPayload,
211
+ isChainIndexingServiceState,
212
+ isChainIndexingServiceStateWithStorageMeta,
213
+ isChainInformationPayload,
214
+ isChainStakeIntent,
215
+ isExecutable,
216
+ isHashPayload,
217
+ isSigned,
218
+ isSignedTransactionBoundWitness,
219
+ isSignedTransactionBoundWitnessWithStorageMeta,
220
+ isTransactionBoundWitness,
221
+ isTransactionBoundWitnessWithStorageMeta,
222
+ isTransfer,
223
+ toEthAddress
109
224
  };
110
225
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transaction/buildTransaction.ts","../../src/transaction/hydrateTransaction.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { BoundWitnessBuilder } from '@xyo-network/boundwitness-builder'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransactionWithStorageMeta, TransactionBoundWitness, TransactionBoundWitnessFields, TransactionFeesBigInt,\n} from '@xyo-network/xl1-model'\n\nexport const defaultFees: TransactionFeesBigInt = {\n base: 1000n, gasPrice: 100n, gasLimit: 1_000_000n, priority: 0n,\n}\n\nexport async function buildTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n signer: AccountInstance | AccountInstance[],\n nbf: number,\n exp: number,\n from?: Address,\n fees: TransactionFeesBigInt = defaultFees,\n): Promise<HydratedTransactionWithStorageMeta> {\n if (from === undefined && Array.isArray(signer)) {\n throw new Error('from is required when signer is an array')\n }\n\n const txBoundWitnessFields: TransactionBoundWitnessFields = {\n chain,\n fees: {\n base: toHex(fees.base),\n gasLimit: toHex(fees.gasLimit),\n gasPrice: toHex(fees.gasPrice),\n priority: toHex(fees.priority),\n },\n nbf,\n exp,\n }\n\n const elevatedHashes = await PayloadBuilder.hashes(elevatedPayloads)\n const script: string[] = []\n for (const elevatedHash of elevatedHashes) {\n script.push(`elevate|${elevatedHash}`)\n }\n\n const [tx, txPayloads] = await new BoundWitnessBuilder<TransactionBoundWitness>()\n .fields({\n ...txBoundWitnessFields,\n script,\n from: from ?? (Array.isArray(signer) ? assertEx(signer.at(0)?.address) : signer.address),\n })\n .meta({ $signatures: [] })\n .payloads([...elevatedPayloads, ...additionalPayloads])\n .signers(Array.isArray(signer) ? signer : [signer])\n .build()\n\n return [await PayloadBuilder.addStorageMeta(tx), await PayloadBuilder.addStorageMeta(txPayloads)]\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { ReadArchivist } from '@xyo-network/archivist-model'\nimport { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from '@xyo-network/archivist-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransaction, HydratedTransactionWithStorageMeta, TransactionBoundWitness,\n} from '@xyo-network/xl1-model'\nimport { isAllowedBlockPayload, isTransactionBoundWitnessWithStorageMeta } from '@xyo-network/xl1-model'\n\nexport const tryHydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransactionWithStorageMeta | undefined> => {\n return (await tryHydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n )) as HydratedTransactionWithStorageMeta | undefined\n}\n\nexport const hydrateTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransactionWithStorageMeta> => {\n return await hydrateTypedBoundWitness<TransactionBoundWitness>(\n archivist,\n hash,\n isTransactionBoundWitnessWithStorageMeta,\n ) as HydratedTransactionWithStorageMeta\n}\n\nexport const flattenHydratedTransaction = (hydratedTransaction: HydratedTransaction): Payload[] => {\n const [tx, txPayloads] = hydratedTransaction\n return [...txPayloads, tx]\n}\n\nexport const flattenHydratedTransactions = (hydratedTransactions: HydratedTransaction[]): Payload[] =>\n hydratedTransactions.flatMap(tx => flattenHydratedTransaction(tx))\n\nexport const tryHydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction | undefined> => {\n const hydratedTransaction = await tryHydrateTransaction(archivist, hash)\n if (!hydratedTransaction) {\n return undefined\n }\n const [transaction, payloads] = hydratedTransaction\n const opCodes = (transaction.script ?? []).filter(operation => operation.startsWith('elevate|'))\n const elevatedPayloads: AllowedBlockPayload[] = []\n for (const opCode of opCodes) {\n const [code, hash] = opCode.split('|')\n if (code === 'elevated') {\n const elevatedPayload = payloads.find(payload => payload._hash === hash)\n if (isAllowedBlockPayload(elevatedPayload)) {\n elevatedPayloads.push(elevatedPayload)\n }\n }\n }\n if (opCodes.length === elevatedPayloads.length) {\n return [transaction, elevatedPayloads]\n }\n return undefined\n}\n\nexport const hydrateElevatedTransaction = async (\n archivist: ReadArchivist,\n hash: Hash,\n): Promise<HydratedTransaction> => {\n return assertEx(await tryHydrateElevatedTransaction(archivist, hash), () => 'Hydration failed')\n}\n"],"mappings":"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","names":["assertEx","toHex","BoundWitnessBuilder","PayloadBuilder","defaultFees","base","gasPrice","gasLimit","priority","buildTransaction","chain","elevatedPayloads","additionalPayloads","signer","nbf","exp","from","fees","undefined","Array","isArray","Error","txBoundWitnessFields","toHex","elevatedHashes","PayloadBuilder","hashes","script","elevatedHash","push","tx","txPayloads","BoundWitnessBuilder","fields","assertEx","at","address","meta","$signatures","payloads","signers","build","addStorageMeta","assertEx","hydrateTypedBoundWitness","tryHydrateTypedBoundWitness","isAllowedBlockPayload","isTransactionBoundWitnessWithStorageMeta","tryHydrateTransaction","archivist","hash","tryHydrateTypedBoundWitness","isTransactionBoundWitnessWithStorageMeta","hydrateTransaction","hydrateTypedBoundWitness","flattenHydratedTransaction","hydratedTransaction","tx","txPayloads","flattenHydratedTransactions","hydratedTransactions","flatMap","tryHydrateElevatedTransaction","undefined","transaction","payloads","opCodes","script","filter","operation","startsWith","elevatedPayloads","opCode","code","split","elevatedPayload","find","payload","_hash","isAllowedBlockPayload","push","length","hydrateElevatedTransaction","assertEx"]}
1
+ {"version":3,"sources":["../../src/ethereum.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/protocol/AllowedBlockPayload.ts","../../src/protocol/TransactionBoundWitness.ts","../../src/protocol/BlockBoundWitness.ts","../../src/protocol/BlockNumber.ts","../../src/protocol/Steps.ts","../../src/services/Chain/ChainIdentification.ts","../../src/services/Chain/ChainInformation.ts","../../src/services/stakeIntent/ChainIndexingServiceStateSchema.ts"],"sourcesContent":["import { getAddress } from '@ethersproject/address'\nimport type { Hex } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport { parseUnits } from 'ethers/utils'\n\nexport interface GasConfig {\n gasLimit?: number\n gasPrice?: bigint\n}\n\nexport const getDefaultGasConfig = (): GasConfig => {\n return {\n gasLimit: 2_000_000, // Set the gas limit\n gasPrice: parseUnits('100', 'gwei'),\n }\n}\n\nexport type EthAddress = Hex\n\nexport const ETH_ZERO_ADDRESS: EthAddress = '0x0000000000000000000000000000000000000000' as const\n\nexport const toEthAddress = (value: bigint | string | AccountInstance): EthAddress => {\n const address = (typeof value === 'object') ? value.address : value\n return getAddress(toHex(address, { prefix: true, bitLength: 160 })) as EthAddress\n}\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../../protocol/BlockDuration.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = 'network.xyo.chain.stake.intent' as const\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\nexport const asOptionalChainStakeIntent = AsObjectFactory.createOptional(isChainStakeIntent)\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const HashSchema = 'network.xyo.hash' as const\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\nexport const asOptionalHashPayload = AsObjectFactory.createOptional(isHashPayload)\n","import type {\n Address,\n Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const TransferSchema = 'network.xyo.transfer' as const\nexport type TransferSchema = typeof TransferSchema\n\nexport interface TransferFields extends FromFields {\n epoch: number\n // the amount that is being sent to another address\n transfers: Record<Address, Hex>\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type Transfer = Payload<TransferFields, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\nexport const asOptionalTransfer = AsObjectFactory.createOptional(isTransfer)\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\n\nimport type {\n ChainStakeIntent, HashPayload, Transfer,\n} from '../payload/index.ts'\nimport {\n ChainStakeIntentSchema, HashSchema, isChainStakeIntent, isHashPayload, isTransfer, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type AllowedBlockPayload = Transfer | ChainStakeIntent | SchemaPayload | TransactionBoundWitness | HashPayload\nexport const AllowedBlockPayloadSchemas: Schema[] = [TransferSchema, ChainStakeIntentSchema, SchemaSchema, BoundWitnessSchema, HashSchema]\nexport type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number]\n\nexport const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlockPayloadSchema => {\n return isSchema(value) && AllowedBlockPayloadSchemas.includes(value)\n}\n\nexport const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {\n return isTransfer(value) || isChainStakeIntent(value) || isSchemaPayload(value) || isTransactionBoundWitness(value) || isHashPayload(value)\n}\n\nexport const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashStorageMeta(value)\n}\n","import type { Address } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nimport type {\n FromFields,\n OptionalExecutable,\n} from '../payload/index.ts'\nimport type { BlockDuration } from './BlockDuration.ts'\nimport type { TransactionFeesFields } from './TransactionFeesFields.ts'\n\nexport interface TransactionBoundWitnessFields extends BlockDuration, TransactionFeesFields {\n chain: Address\n}\n\nexport type TransactionBoundWitness = BoundWitness<TransactionBoundWitnessFields & OptionalExecutable & FromFields>\n\nexport const isTransactionBoundWitness = (value: unknown): value is TransactionBoundWitness => {\n const typedObj = value as TransactionBoundWitness\n return isBoundWitness(value)\n && typedObj.chain !== undefined\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isSigned = <T extends BoundWitness = BoundWitness>(value: unknown): value is Signed<T> =>\n isBoundWitness(value)\n && value.$signatures.length === value.addresses.length\n && value.addresses.length > 0\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\nexport const asOptionalTransactionBoundWitness = AsObjectFactory.createOptional(isTransactionBoundWitness)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\nexport const asOptionalTransactionBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isTransactionBoundWitnessWithStorageMeta)\n","import type {\n Address, Hash, Hex,\n} from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport type { WithStorageMeta } from '@xyo-network/payload-model'\nimport { isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Updated balance of address whose balance were changed by this block */\n balances: Record<Address, Hex>\n /** Block number */\n block: number\n /** Chain id - this should be \"0\" for the genesis block */\n chain: Hex\n /** Previous block hash if not block 0 */\n previous: Hash | null /* the previous block hash */\n /** Version of the protocol being used major * 1,000,000 + minor * 1,000 + patch */\n protocol: number\n /** Step hashes */\n step_hashes: Hex[]\n}\n\nexport type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>\n\nexport const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness => {\n const typedObj = value as BlockBoundWitness\n return isBoundWitness(value)\n && Number.isInteger(typedObj.block)\n && isHex(typedObj.chain)\n}\n\nexport const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isStorageMeta(value)\n}\n\nexport const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)\nexport const asOptionalBlockBoundWitness = AsObjectFactory.createOptional(isBlockBoundWitness)\n\nexport const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)\nexport const asOptionalBlockBoundWitnessWithStorageMeta = AsObjectFactory.createOptional(isBlockBoundWitnessWithStorageMeta)\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport const BlockNumberSchema = 'network.xyo.chain.block.number' as const\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: Hex\n /**\n * The chain id\n */\n chain?: Hex\n}\n/**\n * The number of a block\n */\nexport type BlockNumber = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumber = isPayloadOfSchemaType<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumber = AsObjectFactory.create<BlockNumber>(isBlockNumber)\nexport const asOptionalBlockNumber = AsObjectFactory.createOptional<BlockNumber>(isBlockNumber)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumberWithSources = AsObjectFactory.create<WithSources<BlockNumber>>(isBlockNumberWithSources)\nexport const asOptionalBlockNumberWithSources = AsObjectFactory.createOptional<WithSources<BlockNumber>>(isBlockNumberWithSources)\n","export const Steps = [10, 105, 1103, 11_576, 121_551, 1_276_282, 13_400_956]\n","import type { Address } from '@xylabs/hex'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainIdentificationPayloadSchema = 'network.xyo.chain.identification' as const\nexport type ChainIdentificationPayloadSchema = typeof ChainIdentificationPayloadSchema\n\n/**\n * Identification required to uniquely identify a chain\n */\nexport interface ChainIdentification {\n /** @field the id of the chain */\n id: Address\n}\n\nexport type ChainIdentificationPayload = Payload<ChainIdentification, ChainIdentificationPayloadSchema>\nexport const isChainIdentificationPayload = isPayloadOfSchemaType<ChainIdentificationPayload>(ChainIdentificationPayloadSchema)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const ChainInformationPayloadSchema = 'network.xyo.chain.information' as const\nexport type ChainInformationPayloadSchema = typeof ChainInformationPayloadSchema\n\nimport type { ChainIdentification } from './ChainIdentification.ts'\n\n/**\n * Information required to produce a chain\n */\nexport interface ChainInformation extends ChainIdentification {\n // TODO: Add these fields which are currently promises on the smart contract\n // forkedAtBlockNumber: bigint\n // forkedAtHash: Hash\n // forkedChainId: Address\n}\n\nexport type ChainInformationPayload = Payload<ChainIdentification, ChainInformationPayloadSchema>\nexport const isChainInformationPayload = isPayloadOfSchemaType<ChainInformationPayload>(ChainInformationPayloadSchema)\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {\n /**\n * The hash of the last block that this service has indexing\n */\n endBlockHash: Hash\n /**\n * The hash of the block that the service started indexing. If undefined, the service is\n * assumed to have started indexing from the genesis block\n */\n startBlockHash?: Hash\n /**\n * The indexed state for the range\n */\n state: T\n}\nexport const ChainIndexingServiceStateSchema = 'network.xyo.chain.indexing.service.state' as const\nexport type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema\n\n/**\n * The result of a ChainIndexingServiceState\n */\nexport type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>\n\n/**\n * Identity functions for determining if an object is an ChainIndexingServiceState\n */\nexport const isChainIndexingServiceState = <T extends JsonValue = JsonValue>(payload?: unknown): payload is ChainIndexingServiceState<T> => {\n return isPayloadOfSchemaType<ChainIndexingServiceState<T>>(ChainIndexingServiceStateSchema)(payload)\n}\nexport const asChainIndexingServiceState = AsObjectFactory.create<ChainIndexingServiceState<JsonValue>>(isChainIndexingServiceState)\n\nexport const isChainIndexingServiceStateWithStorageMeta\n= <T extends JsonValue = JsonValue>(value: unknown): value is WithStorageMeta<ChainIndexingServiceState<T>> =>\n isChainIndexingServiceState<T>(value) && isStorageMeta(value)\n\nexport const asChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.create<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n\nexport const asOptionalChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.createOptional<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n"],"mappings":"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","names":["getAddress","toHex","parseUnits","getDefaultGasConfig","gasLimit","gasPrice","parseUnits","ETH_ZERO_ADDRESS","toEthAddress","value","address","getAddress","toHex","prefix","bitLength","AsObjectFactory","isPayloadOfSchemaType","ChainStakeIntentSchema","isChainStakeIntent","x","isPayloadOfSchemaType","asNonNegativeInteger","nbf","undefined","exp","asChainStakeIntent","AsObjectFactory","create","asOptionalChainStakeIntent","createOptional","num","Number","isInteger","isAnyPayload","hasFrom","value","from","undefined","isExecutable","isAnyPayload","Array","isArray","script","asExecutable","AsObjectFactory","isPayloadOfSchemaType","HashSchema","isHashPayload","asHashPayload","create","asHashPayloadWithStorageMeta","asOptionalHashPayload","createOptional","AsObjectFactory","isPayloadOfSchemaType","TransferSchema","isTransfer","asTransfer","create","asOptionalTransfer","createOptional","BoundWitnessSchema","isHashStorageMeta","isSchema","isSchemaPayload","SchemaSchema","AsObjectFactory","isBoundWitness","isStorageMeta","isTransactionBoundWitness","value","typedObj","isBoundWitness","chain","undefined","fees","exp","nbf","isSignedTransactionBoundWitness","isSigned","$signatures","length","addresses","isTransactionBoundWitnessWithStorageMeta","isStorageMeta","isSignedTransactionBoundWitnessWithStorageMeta","asTransactionBoundWitness","AsObjectFactory","create","asOptionalTransactionBoundWitness","createOptional","asTransactionBoundWitnessWithStorageMeta","asOptionalTransactionBoundWitnessWithStorageMeta","AllowedBlockPayloadSchemas","TransferSchema","ChainStakeIntentSchema","SchemaSchema","BoundWitnessSchema","HashSchema","isAllowedBlockPayloadSchema","value","isSchema","includes","isAllowedBlockPayload","isTransfer","isChainStakeIntent","isSchemaPayload","isTransactionBoundWitness","isHashPayload","isAllowedBlockPayloadWithHashStorageMeta","isHashStorageMeta","isHex","AsObjectFactory","isBoundWitness","isStorageMeta","isBlockBoundWitness","value","typedObj","isBoundWitness","Number","isInteger","block","isHex","chain","isBlockBoundWitnessWithStorageMeta","isStorageMeta","asBlockBoundWitness","AsObjectFactory","create","asOptionalBlockBoundWitness","createOptional","asBlockBoundWitnessWithStorageMeta","asOptionalBlockBoundWitnessWithStorageMeta","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaTypeWithSources","BlockNumberSchema","isBlockNumber","asBlockNumber","create","asOptionalBlockNumber","createOptional","isBlockNumberWithSources","asBlockNumberWithSources","asOptionalBlockNumberWithSources","Steps","isPayloadOfSchemaType","ChainIdentificationPayloadSchema","isChainIdentificationPayload","isPayloadOfSchemaType","ChainInformationPayloadSchema","isChainInformationPayload","AsObjectFactory","isPayloadOfSchemaType","isStorageMeta","ChainIndexingServiceStateSchema","isChainIndexingServiceState","payload","isPayloadOfSchemaType","asChainIndexingServiceState","AsObjectFactory","create","isChainIndexingServiceStateWithStorageMeta","value","isStorageMeta","asChainIndexingServiceStateWithStorageMeta","asOptionalChainIndexingServiceStateWithStorageMeta","createOptional"]}