@airgap/tezos 0.13.45-beta.2 → 0.13.45-beta.3

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 (421) hide show
  1. package/package.json +5 -5
  2. package/v0/actions/GetKtAccountsAction.js +11 -81
  3. package/v0/actions/GetKtAccountsAction.js.map +1 -1
  4. package/v0/constants.js +6 -6
  5. package/v0/constants.js.map +1 -1
  6. package/v0/index.js +38 -38
  7. package/v0/index.js.map +1 -1
  8. package/v0/protocol/TezosAddress.d.ts +0 -1
  9. package/v0/protocol/TezosAddress.js +41 -81
  10. package/v0/protocol/TezosAddress.js.map +1 -1
  11. package/v0/protocol/TezosCryptoClient.d.ts +0 -1
  12. package/v0/protocol/TezosCryptoClient.js +68 -123
  13. package/v0/protocol/TezosCryptoClient.js.map +1 -1
  14. package/v0/protocol/TezosProtocol.js +978 -1631
  15. package/v0/protocol/TezosProtocol.js.map +1 -1
  16. package/v0/protocol/TezosProtocolOptions.d.ts +1 -1
  17. package/v0/protocol/TezosProtocolOptions.js +26 -98
  18. package/v0/protocol/TezosProtocolOptions.js.map +1 -1
  19. package/v0/protocol/TezosUtils.d.ts +0 -1
  20. package/v0/protocol/TezosUtils.js +131 -165
  21. package/v0/protocol/TezosUtils.js.map +1 -1
  22. package/v0/protocol/contract/TezosContract.js +243 -472
  23. package/v0/protocol/contract/TezosContract.js.map +1 -1
  24. package/v0/protocol/contract/TezosContractCall.js +8 -10
  25. package/v0/protocol/contract/TezosContractCall.js.map +1 -1
  26. package/v0/protocol/contract/TezosContractEntrypoint.js +14 -19
  27. package/v0/protocol/contract/TezosContractEntrypoint.js.map +1 -1
  28. package/v0/protocol/contract/TezosContractStorage.js +8 -9
  29. package/v0/protocol/contract/TezosContractStorage.js.map +1 -1
  30. package/v0/protocol/contract/remote-data/TezosContractRemoteDataFactory.js +8 -25
  31. package/v0/protocol/contract/remote-data/TezosContractRemoteDataFactory.js.map +1 -1
  32. package/v0/protocol/contract/remote-data/TezosStorageRemoteData.js +39 -113
  33. package/v0/protocol/contract/remote-data/TezosStorageRemoteData.js.map +1 -1
  34. package/v0/protocol/domains/TezosDomains.js +165 -270
  35. package/v0/protocol/domains/TezosDomains.js.map +1 -1
  36. package/v0/protocol/fa/TezosBTC.js +19 -98
  37. package/v0/protocol/fa/TezosBTC.js.map +1 -1
  38. package/v0/protocol/fa/TezosBTCtez.js +17 -48
  39. package/v0/protocol/fa/TezosBTCtez.js.map +1 -1
  40. package/v0/protocol/fa/TezosCTez.js +17 -45
  41. package/v0/protocol/fa/TezosCTez.js.map +1 -1
  42. package/v0/protocol/fa/TezosDOGA.js +17 -45
  43. package/v0/protocol/fa/TezosDOGA.js.map +1 -1
  44. package/v0/protocol/fa/TezosETHtz.js +10 -68
  45. package/v0/protocol/fa/TezosETHtz.js.map +1 -1
  46. package/v0/protocol/fa/TezosFA1Protocol.js +119 -276
  47. package/v0/protocol/fa/TezosFA1Protocol.js.map +1 -1
  48. package/v0/protocol/fa/TezosFA1p2Protocol.js +22 -101
  49. package/v0/protocol/fa/TezosFA1p2Protocol.js.map +1 -1
  50. package/v0/protocol/fa/TezosFA2Protocol.js +213 -402
  51. package/v0/protocol/fa/TezosFA2Protocol.js.map +1 -1
  52. package/v0/protocol/fa/TezosFAProtocol.js +211 -418
  53. package/v0/protocol/fa/TezosFAProtocol.js.map +1 -1
  54. package/v0/protocol/fa/TezosFAProtocolOptions.d.ts +2 -2
  55. package/v0/protocol/fa/TezosFAProtocolOptions.js +92 -195
  56. package/v0/protocol/fa/TezosFAProtocolOptions.js.map +1 -1
  57. package/v0/protocol/fa/TezosKolibriUSD.js +11 -70
  58. package/v0/protocol/fa/TezosKolibriUSD.js.map +1 -1
  59. package/v0/protocol/fa/TezosPlanty.js +17 -45
  60. package/v0/protocol/fa/TezosPlanty.js.map +1 -1
  61. package/v0/protocol/fa/TezosQUIPU.js +17 -48
  62. package/v0/protocol/fa/TezosQUIPU.js.map +1 -1
  63. package/v0/protocol/fa/TezosSIRS.js +17 -45
  64. package/v0/protocol/fa/TezosSIRS.js.map +1 -1
  65. package/v0/protocol/fa/TezosStaker.js +11 -70
  66. package/v0/protocol/fa/TezosStaker.js.map +1 -1
  67. package/v0/protocol/fa/TezosUBTC.js +17 -48
  68. package/v0/protocol/fa/TezosUBTC.js.map +1 -1
  69. package/v0/protocol/fa/TezosUDEFI.js +17 -48
  70. package/v0/protocol/fa/TezosUDEFI.js.map +1 -1
  71. package/v0/protocol/fa/TezosUSD.js +11 -70
  72. package/v0/protocol/fa/TezosUSD.js.map +1 -1
  73. package/v0/protocol/fa/TezosUSDT.js +17 -48
  74. package/v0/protocol/fa/TezosUSDT.js.map +1 -1
  75. package/v0/protocol/fa/TezosUUSD.js +8 -27
  76. package/v0/protocol/fa/TezosUUSD.js.map +1 -1
  77. package/v0/protocol/fa/TezosUXTZ.js +17 -48
  78. package/v0/protocol/fa/TezosUXTZ.js.map +1 -1
  79. package/v0/protocol/fa/TezosWRAP.js +17 -48
  80. package/v0/protocol/fa/TezosWRAP.js.map +1 -1
  81. package/v0/protocol/fa/TezosWrapped.js +11 -70
  82. package/v0/protocol/fa/TezosWrapped.js.map +1 -1
  83. package/v0/protocol/fa/TezosYOU.js +8 -27
  84. package/v0/protocol/fa/TezosYOU.js.map +1 -1
  85. package/v0/protocol/fa/metadata/BigMapTokenMetadataIndexer.js +84 -162
  86. package/v0/protocol/fa/metadata/BigMapTokenMetadataIndexer.js.map +1 -1
  87. package/v0/protocol/fa/metadata/ObjktTokenMetadataIndexer.js +37 -87
  88. package/v0/protocol/fa/metadata/ObjktTokenMetadataIndexer.js.map +1 -1
  89. package/v0/protocol/indexerClient/TezosIndexerClient.js +115 -259
  90. package/v0/protocol/indexerClient/TezosIndexerClient.js.map +1 -1
  91. package/v0/protocol/kt/TezosKtAddress.js +7 -67
  92. package/v0/protocol/kt/TezosKtAddress.js.map +1 -1
  93. package/v0/protocol/kt/TezosKtProtocol.js +161 -309
  94. package/v0/protocol/kt/TezosKtProtocol.js.map +1 -1
  95. package/v0/protocol/sapling/TezosSaplingAddress.d.ts +0 -1
  96. package/v0/protocol/sapling/TezosSaplingAddress.js +46 -117
  97. package/v0/protocol/sapling/TezosSaplingAddress.js.map +1 -1
  98. package/v0/protocol/sapling/TezosSaplingCryptoClient.d.ts +0 -1
  99. package/v0/protocol/sapling/TezosSaplingCryptoClient.js +125 -220
  100. package/v0/protocol/sapling/TezosSaplingCryptoClient.js.map +1 -1
  101. package/v0/protocol/sapling/TezosSaplingProtocol.d.ts +0 -1
  102. package/v0/protocol/sapling/TezosSaplingProtocol.js +600 -1127
  103. package/v0/protocol/sapling/TezosSaplingProtocol.js.map +1 -1
  104. package/v0/protocol/sapling/TezosSaplingProtocolOptions.d.ts +0 -1
  105. package/v0/protocol/sapling/TezosSaplingProtocolOptions.js +32 -61
  106. package/v0/protocol/sapling/TezosSaplingProtocolOptions.js.map +1 -1
  107. package/v0/protocol/sapling/TezosShieldedTezProtocol.js +50 -134
  108. package/v0/protocol/sapling/TezosShieldedTezProtocol.js.map +1 -1
  109. package/v0/protocol/sapling/injector/TezosSaplingInjectorClient.js +10 -56
  110. package/v0/protocol/sapling/injector/TezosSaplingInjectorClient.js.map +1 -1
  111. package/v0/protocol/sapling/node/TezosSaplingNodeClient.js +12 -67
  112. package/v0/protocol/sapling/node/TezosSaplingNodeClient.js.map +1 -1
  113. package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.d.ts +0 -1
  114. package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.js +221 -539
  115. package/v0/protocol/sapling/utils/TezosSaplingBookkeeper.js.map +1 -1
  116. package/v0/protocol/sapling/utils/TezosSaplingEncoder.d.ts +0 -1
  117. package/v0/protocol/sapling/utils/TezosSaplingEncoder.js +101 -104
  118. package/v0/protocol/sapling/utils/TezosSaplingEncoder.js.map +1 -1
  119. package/v0/protocol/sapling/utils/TezosSaplingForger.d.ts +0 -1
  120. package/v0/protocol/sapling/utils/TezosSaplingForger.js +107 -266
  121. package/v0/protocol/sapling/utils/TezosSaplingForger.js.map +1 -1
  122. package/v0/protocol/sapling/utils/TezosSaplingState.js +110 -239
  123. package/v0/protocol/sapling/utils/TezosSaplingState.js.map +1 -1
  124. package/v0/protocol/types/TezosOperationType.js +1 -1
  125. package/v0/protocol/types/TezosOperationType.js.map +1 -1
  126. package/v0/protocol/types/contract/BigMapEntry.d.ts +1 -1
  127. package/v0/protocol/types/contract/TezosContractMetadata.d.ts +2 -2
  128. package/v0/protocol/types/micheline/MichelineNode.d.ts +7 -7
  129. package/v0/protocol/types/micheline/MichelineNodeUtils.js +9 -13
  130. package/v0/protocol/types/micheline/MichelineNodeUtils.js.map +1 -1
  131. package/v0/protocol/types/michelson/MichelsonType.d.ts +0 -1
  132. package/v0/protocol/types/michelson/MichelsonType.js +11 -12
  133. package/v0/protocol/types/michelson/MichelsonType.js.map +1 -1
  134. package/v0/protocol/types/michelson/MichelsonTypeMeta.js +45 -92
  135. package/v0/protocol/types/michelson/MichelsonTypeMeta.js.map +1 -1
  136. package/v0/protocol/types/michelson/MichelsonTypeUtils.d.ts +0 -1
  137. package/v0/protocol/types/michelson/MichelsonTypeUtils.js +58 -219
  138. package/v0/protocol/types/michelson/MichelsonTypeUtils.js.map +1 -1
  139. package/v0/protocol/types/michelson/generics/MichelsonList.js +24 -43
  140. package/v0/protocol/types/michelson/generics/MichelsonList.js.map +1 -1
  141. package/v0/protocol/types/michelson/generics/MichelsonMap.js +39 -61
  142. package/v0/protocol/types/michelson/generics/MichelsonMap.js.map +1 -1
  143. package/v0/protocol/types/michelson/generics/MichelsonOption.d.ts +1 -1
  144. package/v0/protocol/types/michelson/generics/MichelsonOption.js +46 -75
  145. package/v0/protocol/types/michelson/generics/MichelsonOption.js.map +1 -1
  146. package/v0/protocol/types/michelson/generics/MichelsonOr.d.ts +1 -1
  147. package/v0/protocol/types/michelson/generics/MichelsonOr.js +50 -76
  148. package/v0/protocol/types/michelson/generics/MichelsonOr.js.map +1 -1
  149. package/v0/protocol/types/michelson/generics/MichelsonPair.js +52 -85
  150. package/v0/protocol/types/michelson/generics/MichelsonPair.js.map +1 -1
  151. package/v0/protocol/types/michelson/grammar/MichelsonGrammarData.d.ts +1 -1
  152. package/v0/protocol/types/michelson/grammar/MichelsonGrammarInstruction.d.ts +1 -1
  153. package/v0/protocol/types/michelson/grammar/MichelsonGrammarType.d.ts +1 -1
  154. package/v0/protocol/types/michelson/primitives/MichelsonAddress.d.ts +0 -1
  155. package/v0/protocol/types/michelson/primitives/MichelsonAddress.js +28 -47
  156. package/v0/protocol/types/michelson/primitives/MichelsonAddress.js.map +1 -1
  157. package/v0/protocol/types/michelson/primitives/MichelsonBool.js +20 -39
  158. package/v0/protocol/types/michelson/primitives/MichelsonBool.js.map +1 -1
  159. package/v0/protocol/types/michelson/primitives/MichelsonBytes.d.ts +0 -1
  160. package/v0/protocol/types/michelson/primitives/MichelsonBytes.js +35 -54
  161. package/v0/protocol/types/michelson/primitives/MichelsonBytes.js.map +1 -1
  162. package/v0/protocol/types/michelson/primitives/MichelsonInt.d.ts +0 -1
  163. package/v0/protocol/types/michelson/primitives/MichelsonInt.js +30 -49
  164. package/v0/protocol/types/michelson/primitives/MichelsonInt.js.map +1 -1
  165. package/v0/protocol/types/michelson/primitives/MichelsonString.d.ts +0 -1
  166. package/v0/protocol/types/michelson/primitives/MichelsonString.js +33 -52
  167. package/v0/protocol/types/michelson/primitives/MichelsonString.js.map +1 -1
  168. package/v0/protocol/types/michelson/primitives/MichelsonUnit.js +14 -34
  169. package/v0/protocol/types/michelson/primitives/MichelsonUnit.js.map +1 -1
  170. package/v0/protocol/types/sapling/TezosSaplingStateTree.d.ts +1 -1
  171. package/v0/protocol/types/sapling/TezosSaplingTransaction.d.ts +0 -1
  172. package/v0/protocol/types/utils.js +8 -10
  173. package/v0/protocol/types/utils.js.map +1 -1
  174. package/v0/serializer/validators/transaction-validator.js +29 -78
  175. package/v0/serializer/validators/transaction-validator.js.map +1 -1
  176. package/v0/serializer/validators/transaction-xtz-btc-validator.js +55 -129
  177. package/v0/serializer/validators/transaction-xtz-btc-validator.js.map +1 -1
  178. package/v0/serializer/validators/validators.js +43 -103
  179. package/v0/serializer/validators/validators.js.map +1 -1
  180. package/v1/block-explorer/TzKTBlockExplorer.js +12 -61
  181. package/v1/block-explorer/TzKTBlockExplorer.js.map +1 -1
  182. package/v1/block-explorer/factory.js +4 -5
  183. package/v1/block-explorer/factory.js.map +1 -1
  184. package/v1/contract/TezosContract.js +242 -471
  185. package/v1/contract/TezosContract.js.map +1 -1
  186. package/v1/contract/TezosContractCall.js +8 -10
  187. package/v1/contract/TezosContractCall.js.map +1 -1
  188. package/v1/contract/TezosContractEntrypoint.d.ts +1 -1
  189. package/v1/contract/TezosContractEntrypoint.js +14 -19
  190. package/v1/contract/TezosContractEntrypoint.js.map +1 -1
  191. package/v1/contract/TezosContractStorage.js +8 -9
  192. package/v1/contract/TezosContractStorage.js.map +1 -1
  193. package/v1/contract/remote-data/TezosContractRemoteDataFactory.js +8 -25
  194. package/v1/contract/remote-data/TezosContractRemoteDataFactory.js.map +1 -1
  195. package/v1/contract/remote-data/TezosStorageRemoteData.js +39 -113
  196. package/v1/contract/remote-data/TezosStorageRemoteData.js.map +1 -1
  197. package/v1/crypto/TezosCryptoClient.d.ts +0 -1
  198. package/v1/crypto/TezosCryptoClient.js +64 -117
  199. package/v1/crypto/TezosCryptoClient.js.map +1 -1
  200. package/v1/crypto/TezosSaplingCryptoClient.d.ts +0 -1
  201. package/v1/crypto/TezosSaplingCryptoClient.js +116 -194
  202. package/v1/crypto/TezosSaplingCryptoClient.js.map +1 -1
  203. package/v1/data/TezosAddress.js +13 -14
  204. package/v1/data/TezosAddress.js.map +1 -1
  205. package/v1/data/TezosSaplingAddress.d.ts +0 -1
  206. package/v1/data/TezosSaplingAddress.js +29 -94
  207. package/v1/data/TezosSaplingAddress.js.map +1 -1
  208. package/v1/domains/TezosDomains.js +165 -270
  209. package/v1/domains/TezosDomains.js.map +1 -1
  210. package/v1/index.js +39 -39
  211. package/v1/index.js.map +1 -1
  212. package/v1/indexer/TzKTIndexerClient.js +126 -270
  213. package/v1/indexer/TzKTIndexerClient.js.map +1 -1
  214. package/v1/indexer/factory.js +4 -5
  215. package/v1/indexer/factory.js.map +1 -1
  216. package/v1/indexer/token-metadata/BigMapTokenMetadataIndexerClient.js +83 -161
  217. package/v1/indexer/token-metadata/BigMapTokenMetadataIndexerClient.js.map +1 -1
  218. package/v1/indexer/token-metadata/ObjktTokenMetadataIndexerClient.js +36 -85
  219. package/v1/indexer/token-metadata/ObjktTokenMetadataIndexerClient.js.map +1 -1
  220. package/v1/injector/TezosSaplingInjectorClient.js +10 -56
  221. package/v1/injector/TezosSaplingInjectorClient.js.map +1 -1
  222. package/v1/module/TezosModule.js +88 -155
  223. package/v1/module/TezosModule.js.map +1 -1
  224. package/v1/module.js +2 -3
  225. package/v1/module.js.map +1 -1
  226. package/v1/node/TezosSaplingNodeClient.js +12 -67
  227. package/v1/node/TezosSaplingNodeClient.js.map +1 -1
  228. package/v1/protocol/TezosProtocol.js +848 -1385
  229. package/v1/protocol/TezosProtocol.js.map +1 -1
  230. package/v1/protocol/fa/TezosFA1Protocol.js +81 -205
  231. package/v1/protocol/fa/TezosFA1Protocol.js.map +1 -1
  232. package/v1/protocol/fa/TezosFA1p2Protocol.js +32 -111
  233. package/v1/protocol/fa/TezosFA1p2Protocol.js.map +1 -1
  234. package/v1/protocol/fa/TezosFA2Protocol.js +174 -332
  235. package/v1/protocol/fa/TezosFA2Protocol.js.map +1 -1
  236. package/v1/protocol/fa/TezosFAProtocol.js +255 -528
  237. package/v1/protocol/fa/TezosFAProtocol.js.map +1 -1
  238. package/v1/protocol/fa/tokens/BTCTezProtocol.d.ts +2 -2
  239. package/v1/protocol/fa/tokens/BTCTezProtocol.js +30 -47
  240. package/v1/protocol/fa/tokens/BTCTezProtocol.js.map +1 -1
  241. package/v1/protocol/fa/tokens/CTezProtocol.d.ts +2 -2
  242. package/v1/protocol/fa/tokens/CTezProtocol.js +27 -47
  243. package/v1/protocol/fa/tokens/CTezProtocol.js.map +1 -1
  244. package/v1/protocol/fa/tokens/DogamiProtocol.d.ts +2 -2
  245. package/v1/protocol/fa/tokens/DogamiProtocol.js +27 -47
  246. package/v1/protocol/fa/tokens/DogamiProtocol.js.map +1 -1
  247. package/v1/protocol/fa/tokens/ETHTezProtocol.d.ts +2 -2
  248. package/v1/protocol/fa/tokens/ETHTezProtocol.js +30 -90
  249. package/v1/protocol/fa/tokens/ETHTezProtocol.js.map +1 -1
  250. package/v1/protocol/fa/tokens/KolibriUSDProtocol.d.ts +2 -2
  251. package/v1/protocol/fa/tokens/KolibriUSDProtocol.js +30 -90
  252. package/v1/protocol/fa/tokens/KolibriUSDProtocol.js.map +1 -1
  253. package/v1/protocol/fa/tokens/PlentyProtocol.d.ts +2 -2
  254. package/v1/protocol/fa/tokens/PlentyProtocol.js +30 -90
  255. package/v1/protocol/fa/tokens/PlentyProtocol.js.map +1 -1
  256. package/v1/protocol/fa/tokens/QuipuswapProtocol.d.ts +2 -2
  257. package/v1/protocol/fa/tokens/QuipuswapProtocol.js +30 -47
  258. package/v1/protocol/fa/tokens/QuipuswapProtocol.js.map +1 -1
  259. package/v1/protocol/fa/tokens/SiriusProtocol.d.ts +2 -2
  260. package/v1/protocol/fa/tokens/SiriusProtocol.js +27 -47
  261. package/v1/protocol/fa/tokens/SiriusProtocol.js.map +1 -1
  262. package/v1/protocol/fa/tokens/StakerProtocol.d.ts +2 -2
  263. package/v1/protocol/fa/tokens/StakerProtocol.js +30 -90
  264. package/v1/protocol/fa/tokens/StakerProtocol.js.map +1 -1
  265. package/v1/protocol/fa/tokens/TetherUSDProtocol.d.ts +2 -2
  266. package/v1/protocol/fa/tokens/TetherUSDProtocol.js +30 -47
  267. package/v1/protocol/fa/tokens/TetherUSDProtocol.js.map +1 -1
  268. package/v1/protocol/fa/tokens/TzBTCProtocol.d.ts +2 -2
  269. package/v1/protocol/fa/tokens/TzBTCProtocol.js +27 -47
  270. package/v1/protocol/fa/tokens/TzBTCProtocol.js.map +1 -1
  271. package/v1/protocol/fa/tokens/UBTCProtocol.d.ts +2 -2
  272. package/v1/protocol/fa/tokens/UBTCProtocol.js +30 -47
  273. package/v1/protocol/fa/tokens/UBTCProtocol.js.map +1 -1
  274. package/v1/protocol/fa/tokens/UDEFIProtocol.d.ts +2 -2
  275. package/v1/protocol/fa/tokens/UDEFIProtocol.js +30 -47
  276. package/v1/protocol/fa/tokens/UDEFIProtocol.js.map +1 -1
  277. package/v1/protocol/fa/tokens/USDTezProtocol.d.ts +2 -2
  278. package/v1/protocol/fa/tokens/USDTezProtocol.js +27 -47
  279. package/v1/protocol/fa/tokens/USDTezProtocol.js.map +1 -1
  280. package/v1/protocol/fa/tokens/UUSDProtocol.d.ts +2 -2
  281. package/v1/protocol/fa/tokens/UUSDProtocol.js +30 -47
  282. package/v1/protocol/fa/tokens/UUSDProtocol.js.map +1 -1
  283. package/v1/protocol/fa/tokens/UXTZProtocol.d.ts +2 -2
  284. package/v1/protocol/fa/tokens/UXTZProtocol.js +30 -47
  285. package/v1/protocol/fa/tokens/UXTZProtocol.js.map +1 -1
  286. package/v1/protocol/fa/tokens/WrapProtocol.d.ts +2 -2
  287. package/v1/protocol/fa/tokens/WrapProtocol.js +30 -47
  288. package/v1/protocol/fa/tokens/WrapProtocol.js.map +1 -1
  289. package/v1/protocol/fa/tokens/WrappedTezosProtocol.d.ts +2 -2
  290. package/v1/protocol/fa/tokens/WrappedTezosProtocol.js +27 -47
  291. package/v1/protocol/fa/tokens/WrappedTezosProtocol.js.map +1 -1
  292. package/v1/protocol/fa/tokens/YouProtocol.d.ts +2 -2
  293. package/v1/protocol/fa/tokens/YouProtocol.js +30 -47
  294. package/v1/protocol/fa/tokens/YouProtocol.js.map +1 -1
  295. package/v1/protocol/fa/tokens/stXTZProtocol.d.ts +2 -2
  296. package/v1/protocol/fa/tokens/stXTZProtocol.js +30 -47
  297. package/v1/protocol/fa/tokens/stXTZProtocol.js.map +1 -1
  298. package/v1/protocol/kt/TezosKtProtocol.js +254 -498
  299. package/v1/protocol/kt/TezosKtProtocol.js.map +1 -1
  300. package/v1/protocol/sapling/TezosSaplingProtocol.d.ts +0 -1
  301. package/v1/protocol/sapling/TezosSaplingProtocol.js +532 -933
  302. package/v1/protocol/sapling/TezosSaplingProtocol.js.map +1 -1
  303. package/v1/protocol/sapling/TezosShieldedTezProtocol.js +72 -164
  304. package/v1/protocol/sapling/TezosShieldedTezProtocol.js.map +1 -1
  305. package/v1/serializer/v3/schemas/converter/transaction-converter.js +14 -26
  306. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
  307. package/v1/serializer/v3/serializer-companion.js +103 -188
  308. package/v1/serializer/v3/serializer-companion.js.map +1 -1
  309. package/v1/serializer/v3/validators/transaction-validator.js +54 -143
  310. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -1
  311. package/v1/serializer/v3/validators/validators.js +40 -100
  312. package/v1/serializer/v3/validators/validators.js.map +1 -1
  313. package/v1/types/block-explorer.d.ts +1 -1
  314. package/v1/types/contract/TezosContractMetadata.d.ts +2 -2
  315. package/v1/types/contract/bigmap/BigMapEntry.d.ts +1 -1
  316. package/v1/types/crypto.d.ts +2 -2
  317. package/v1/types/fa/TezosFA1ContractEntrypoint.d.ts +1 -1
  318. package/v1/types/fa/TezosFA1p2ContractEntrypoint.d.ts +1 -1
  319. package/v1/types/fa/TezosFA2ContractEntrypoint.d.ts +1 -1
  320. package/v1/types/indexer.d.ts +1 -1
  321. package/v1/types/micheline/MichelineNode.d.ts +7 -7
  322. package/v1/types/micheline/MichelineNodeUtils.js +9 -13
  323. package/v1/types/micheline/MichelineNodeUtils.js.map +1 -1
  324. package/v1/types/michelson/MichelsonType.d.ts +0 -1
  325. package/v1/types/michelson/MichelsonType.js +11 -12
  326. package/v1/types/michelson/MichelsonType.js.map +1 -1
  327. package/v1/types/michelson/MichelsonTypeMeta.js +45 -92
  328. package/v1/types/michelson/MichelsonTypeMeta.js.map +1 -1
  329. package/v1/types/michelson/MichelsonTypeUtils.d.ts +0 -1
  330. package/v1/types/michelson/MichelsonTypeUtils.js +58 -219
  331. package/v1/types/michelson/MichelsonTypeUtils.js.map +1 -1
  332. package/v1/types/michelson/generics/MichelsonList.js +24 -43
  333. package/v1/types/michelson/generics/MichelsonList.js.map +1 -1
  334. package/v1/types/michelson/generics/MichelsonMap.js +39 -61
  335. package/v1/types/michelson/generics/MichelsonMap.js.map +1 -1
  336. package/v1/types/michelson/generics/MichelsonOption.d.ts +1 -1
  337. package/v1/types/michelson/generics/MichelsonOption.js +46 -75
  338. package/v1/types/michelson/generics/MichelsonOption.js.map +1 -1
  339. package/v1/types/michelson/generics/MichelsonOr.d.ts +1 -1
  340. package/v1/types/michelson/generics/MichelsonOr.js +50 -76
  341. package/v1/types/michelson/generics/MichelsonOr.js.map +1 -1
  342. package/v1/types/michelson/generics/MichelsonPair.js +52 -85
  343. package/v1/types/michelson/generics/MichelsonPair.js.map +1 -1
  344. package/v1/types/michelson/grammar/MichelsonGrammarData.d.ts +1 -1
  345. package/v1/types/michelson/grammar/MichelsonGrammarInstruction.d.ts +1 -1
  346. package/v1/types/michelson/grammar/MichelsonGrammarType.d.ts +1 -1
  347. package/v1/types/michelson/primitives/MichelsonAddress.d.ts +0 -1
  348. package/v1/types/michelson/primitives/MichelsonAddress.js +28 -47
  349. package/v1/types/michelson/primitives/MichelsonAddress.js.map +1 -1
  350. package/v1/types/michelson/primitives/MichelsonBool.js +20 -39
  351. package/v1/types/michelson/primitives/MichelsonBool.js.map +1 -1
  352. package/v1/types/michelson/primitives/MichelsonBytes.d.ts +0 -1
  353. package/v1/types/michelson/primitives/MichelsonBytes.js +35 -54
  354. package/v1/types/michelson/primitives/MichelsonBytes.js.map +1 -1
  355. package/v1/types/michelson/primitives/MichelsonInt.d.ts +0 -1
  356. package/v1/types/michelson/primitives/MichelsonInt.js +30 -49
  357. package/v1/types/michelson/primitives/MichelsonInt.js.map +1 -1
  358. package/v1/types/michelson/primitives/MichelsonString.d.ts +0 -1
  359. package/v1/types/michelson/primitives/MichelsonString.js +33 -52
  360. package/v1/types/michelson/primitives/MichelsonString.js.map +1 -1
  361. package/v1/types/michelson/primitives/MichelsonUnit.js +14 -34
  362. package/v1/types/michelson/primitives/MichelsonUnit.js.map +1 -1
  363. package/v1/types/network.js +1 -1
  364. package/v1/types/network.js.map +1 -1
  365. package/v1/types/operations/TezosOperationType.js +1 -1
  366. package/v1/types/operations/TezosOperationType.js.map +1 -1
  367. package/v1/types/protocol.d.ts +3 -3
  368. package/v1/types/sapling/TezosSaplingExternalMethodProvider.d.ts +0 -1
  369. package/v1/types/sapling/TezosSaplingStateTree.d.ts +1 -1
  370. package/v1/types/sapling/TezosSaplingTransaction.d.ts +0 -1
  371. package/v1/types/staking/TezosDelegatorAction.js +1 -1
  372. package/v1/types/staking/TezosDelegatorAction.js.map +1 -1
  373. package/v1/utils/address.js +6 -7
  374. package/v1/utils/address.js.map +1 -1
  375. package/v1/utils/bip.d.ts +0 -1
  376. package/v1/utils/bip.js +6 -7
  377. package/v1/utils/bip.js.map +1 -1
  378. package/v1/utils/convert.js +7 -8
  379. package/v1/utils/convert.js.map +1 -1
  380. package/v1/utils/encoding.d.ts +0 -1
  381. package/v1/utils/encoding.js +74 -64
  382. package/v1/utils/encoding.js.map +1 -1
  383. package/v1/utils/fa.js +2 -3
  384. package/v1/utils/fa.js.map +1 -1
  385. package/v1/utils/key.js +9 -12
  386. package/v1/utils/key.js.map +1 -1
  387. package/v1/utils/micheline.js +8 -10
  388. package/v1/utils/micheline.js.map +1 -1
  389. package/v1/utils/operations.js +21 -22
  390. package/v1/utils/operations.js.map +1 -1
  391. package/v1/utils/pack.d.ts +0 -1
  392. package/v1/utils/pack.js +65 -107
  393. package/v1/utils/pack.js.map +1 -1
  394. package/v1/utils/protocol/fa/TezosFA1Accountant.js +24 -52
  395. package/v1/utils/protocol/fa/TezosFA1Accountant.js.map +1 -1
  396. package/v1/utils/protocol/fa/TezosFA2Accountant.js +40 -77
  397. package/v1/utils/protocol/fa/TezosFA2Accountant.js.map +1 -1
  398. package/v1/utils/protocol/fa/TezosFAAccountant.js +21 -89
  399. package/v1/utils/protocol/fa/TezosFAAccountant.js.map +1 -1
  400. package/v1/utils/protocol/instance.js +90 -26
  401. package/v1/utils/protocol/instance.js.map +1 -1
  402. package/v1/utils/protocol/sapling/TezosSaplingAccountant.d.ts +0 -1
  403. package/v1/utils/protocol/sapling/TezosSaplingAccountant.js +221 -539
  404. package/v1/utils/protocol/sapling/TezosSaplingAccountant.js.map +1 -1
  405. package/v1/utils/protocol/sapling/TezosSaplingEncoder.d.ts +0 -1
  406. package/v1/utils/protocol/sapling/TezosSaplingEncoder.js +101 -104
  407. package/v1/utils/protocol/sapling/TezosSaplingEncoder.js.map +1 -1
  408. package/v1/utils/protocol/sapling/TezosSaplingForger.d.ts +0 -1
  409. package/v1/utils/protocol/sapling/TezosSaplingForger.js +107 -266
  410. package/v1/utils/protocol/sapling/TezosSaplingForger.js.map +1 -1
  411. package/v1/utils/protocol/sapling/TezosSaplingState.js +110 -239
  412. package/v1/utils/protocol/sapling/TezosSaplingState.js.map +1 -1
  413. package/v1/utils/protocol/tezos/TezosAccountant.js +97 -166
  414. package/v1/utils/protocol/tezos/TezosAccountant.js.map +1 -1
  415. package/v1/utils/protocol/tezos/TezosForger.js +21 -76
  416. package/v1/utils/protocol/tezos/TezosForger.js.map +1 -1
  417. package/v1/utils/signature.js +5 -6
  418. package/v1/utils/signature.js.map +1 -1
  419. package/v1/utils/transaction.d.ts +4 -5
  420. package/v1/utils/transaction.js +3 -3
  421. package/v1/utils/transaction.js.map +1 -1
@@ -15,252 +15,123 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __generator = (this && this.__generator) || function (thisArg, body) {
35
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
36
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
37
- function verb(n) { return function (v) { return step([n, v]); }; }
38
- function step(op) {
39
- if (f) throw new TypeError("Generator is already executing.");
40
- while (_) try {
41
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
42
- if (y = 0, t) op = [op[0] & 2, t.value];
43
- switch (op[0]) {
44
- case 0: case 1: t = op; break;
45
- case 4: _.label++; return { value: op[1], done: false };
46
- case 5: _.label++; y = op[1]; op = [0]; continue;
47
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
48
- default:
49
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
50
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
51
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
52
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
53
- if (t[2]) _.ops.pop();
54
- _.trys.pop(); continue;
55
- }
56
- op = body.call(thisArg, _);
57
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
58
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
59
- }
60
- };
61
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
62
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
63
- if (ar || !(i in from)) {
64
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
65
- ar[i] = from[i];
66
- }
67
- }
68
- return to.concat(ar || Array.prototype.slice.call(from));
69
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
70
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
71
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
72
37
  };
73
38
  Object.defineProperty(exports, "__esModule", { value: true });
74
39
  exports.TezosSaplingState = void 0;
75
- var Lazy_1 = require("@airgap/coinlib-core/data/Lazy");
76
- var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
77
- var array_1 = require("@airgap/coinlib-core/utils/array");
78
- var hex_1 = require("@airgap/coinlib-core/utils/hex");
79
- var sapling = __importStar(require("@airgap/sapling-wasm"));
80
- var TezosSaplingState = /** @class */ (function () {
81
- function TezosSaplingState(treeHeight) {
82
- var _this = this;
40
+ const Lazy_1 = require("@airgap/coinlib-core/data/Lazy");
41
+ const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
42
+ const array_1 = require("@airgap/coinlib-core/utils/array");
43
+ const hex_1 = require("@airgap/coinlib-core/utils/hex");
44
+ const sapling = __importStar(require("@airgap/sapling-wasm"));
45
+ class TezosSaplingState {
46
+ constructor(treeHeight) {
83
47
  this.treeHeight = treeHeight;
84
48
  this.uncommitedMerkleHash = '0100000000000000000000000000000000000000000000000000000000000000';
85
- this.uncommitedMerkleHashes = new Lazy_1.LazyAsync(function () { return _this.createUncommitedMerkleHashes(); });
49
+ this.uncommitedMerkleHashes = new Lazy_1.LazyAsync(() => this.createUncommitedMerkleHashes());
86
50
  }
87
- TezosSaplingState.prototype.getStateTreeFromStateDiff = function (saplingStateDiff, skipConstruction) {
88
- if (skipConstruction === void 0) { skipConstruction = false; }
89
- return __awaiter(this, void 0, void 0, function () {
90
- var commitments, merkleTree;
91
- return __generator(this, function (_a) {
92
- switch (_a.label) {
93
- case 0:
94
- if (this.stateTree !== undefined && this.stateTree.root === saplingStateDiff.root) {
95
- return [2 /*return*/, this.stateTree];
96
- }
97
- commitments = saplingStateDiff.commitments_and_ciphertexts.map(function (_a) {
98
- var commitment = _a[0], _ = _a[1];
99
- return commitment;
100
- });
101
- if (!!skipConstruction) return [3 /*break*/, 3];
102
- return [4 /*yield*/, this.constructMerkleTree(commitments, 0)];
103
- case 1:
104
- merkleTree = _a.sent();
105
- return [4 /*yield*/, this.verifyMerkleTree(merkleTree, saplingStateDiff.root)];
106
- case 2:
107
- _a.sent();
108
- _a.label = 3;
109
- case 3:
110
- this.stateTree = {
111
- height: this.treeHeight,
112
- size: commitments.length,
113
- root: saplingStateDiff.root,
114
- tree: merkleTree
115
- };
116
- return [2 /*return*/, this.stateTree];
117
- }
118
- });
119
- });
120
- };
121
- TezosSaplingState.prototype.getWitness = function (stateTree, position) {
122
- return __awaiter(this, void 0, void 0, function () {
123
- var heightBuffer, positionBuffer, neighboringHashes, witness;
124
- return __generator(this, function (_a) {
125
- switch (_a.label) {
126
- case 0:
127
- heightBuffer = (0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(stateTree.height)));
128
- positionBuffer = (0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(position, 64)));
129
- return [4 /*yield*/, this.getNeighboringHashes([], stateTree.height, position, stateTree.tree)];
130
- case 1:
131
- neighboringHashes = _a.sent();
132
- witness = neighboringHashes
133
- .map(function (hash) { return Buffer.concat([(0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(hash.length))), hash]); })
134
- .reverse()
135
- .reduce(function (acc, next) { return Buffer.concat([acc, next]); });
136
- return [2 /*return*/, Buffer.concat([heightBuffer, witness, positionBuffer]).toString('hex')];
137
- }
138
- });
139
- });
140
- };
141
- TezosSaplingState.prototype.constructMerkleTree = function (children, height) {
142
- return __awaiter(this, void 0, void 0, function () {
143
- var chunkedChildren, newChildren;
144
- var _this = this;
145
- return __generator(this, function (_a) {
146
- switch (_a.label) {
147
- case 0:
148
- if (height === this.treeHeight && children.length === 1) {
149
- return [2 /*return*/, children[0]];
150
- }
151
- if (height === this.treeHeight || children.length > Math.pow(2, this.treeHeight - 1 - height)) {
152
- return [2 /*return*/, Promise.reject('Invalid Merkle tree')];
153
- }
154
- chunkedChildren = (0, array_1.chunkedArray)(children, 2);
155
- return [4 /*yield*/, Promise.all(chunkedChildren.map(function (chunk) { return __awaiter(_this, void 0, void 0, function () {
156
- var _a, lhs, rhs, parentHash;
157
- return __generator(this, function (_b) {
158
- switch (_b.label) {
159
- case 0: return [4 /*yield*/, Promise.all([this.getMerkleHash(chunk[0], height), this.getMerkleHash(chunk[1], height)])];
160
- case 1:
161
- _a = _b.sent(), lhs = _a[0], rhs = _a[1];
162
- return [4 /*yield*/, sapling.merkleHash(height, lhs, rhs)];
163
- case 2:
164
- parentHash = _b.sent();
165
- return [2 /*return*/, [parentHash.toString('hex'), chunk[0], chunk[1]]];
166
- }
167
- });
168
- }); }))];
169
- case 1:
170
- newChildren = _a.sent();
171
- return [2 /*return*/, this.constructMerkleTree(newChildren, height + 1)];
172
- }
173
- });
174
- });
175
- };
176
- TezosSaplingState.prototype.verifyMerkleTree = function (tree, expectedRoot) {
177
- return __awaiter(this, void 0, void 0, function () {
178
- var root;
179
- return __generator(this, function (_a) {
180
- switch (_a.label) {
181
- case 0: return [4 /*yield*/, this.getMerkleHash(tree, this.treeHeight - 1)];
182
- case 1:
183
- root = _a.sent();
184
- if (root.toString('hex') !== expectedRoot) {
185
- return [2 /*return*/, Promise.reject('Merkle tree root is invalid')];
186
- }
187
- return [2 /*return*/];
188
- }
189
- });
190
- });
191
- };
192
- TezosSaplingState.prototype.getMerkleHash = function (tree, height) {
193
- return __awaiter(this, void 0, void 0, function () {
194
- return __generator(this, function (_a) {
195
- switch (_a.label) {
196
- case 0:
197
- if (!(tree === undefined)) return [3 /*break*/, 2];
198
- return [4 /*yield*/, this.uncommitedMerkleHashes.get()];
199
- case 1: return [2 /*return*/, (_a.sent())[height]];
200
- case 2:
201
- if (typeof tree === 'string') {
202
- return [2 /*return*/, Buffer.from(tree, 'hex')];
203
- }
204
- else {
205
- return [2 /*return*/, Buffer.from(tree[0], 'hex')];
206
- }
207
- _a.label = 3;
208
- case 3: return [2 /*return*/];
209
- }
210
- });
211
- });
212
- };
213
- TezosSaplingState.prototype.createUncommitedMerkleHashes = function () {
214
- return __awaiter(this, void 0, void 0, function () {
215
- var res, i, hash, _a, _b;
216
- return __generator(this, function (_c) {
217
- switch (_c.label) {
218
- case 0:
219
- res = new Array(this.treeHeight);
220
- res[0] = Buffer.from(this.uncommitedMerkleHash, 'hex');
221
- i = 0;
222
- _c.label = 1;
223
- case 1:
224
- if (!(i < this.treeHeight)) return [3 /*break*/, 4];
225
- hash = res[i];
226
- _a = res;
227
- _b = i + 1;
228
- return [4 /*yield*/, sapling.merkleHash(i, hash, hash)];
229
- case 2:
230
- _a[_b] = _c.sent();
231
- _c.label = 3;
232
- case 3:
233
- i++;
234
- return [3 /*break*/, 1];
235
- case 4: return [2 /*return*/, res];
236
- }
237
- });
238
- });
239
- };
240
- TezosSaplingState.prototype.getNeighboringHashes = function (acc, height, position, tree) {
241
- return __awaiter(this, void 0, void 0, function () {
242
- var full, _a, nextPosition, nextTree, otherTree, _b;
243
- return __generator(this, function (_c) {
244
- switch (_c.label) {
245
- case 0:
246
- if (!(typeof tree === 'undefined')) return [3 /*break*/, 1];
247
- return [2 /*return*/, Promise.reject('Invalid tree')];
248
- case 1:
249
- if (!(typeof tree === 'string')) return [3 /*break*/, 2];
250
- return [2 /*return*/, acc];
251
- case 2:
252
- full = new bignumber_1.default(2).pow(height - 1);
253
- _a = position.lt(full)
254
- ? [position, tree[1], tree[2]]
255
- : [position.minus(full), tree[2], tree[1]], nextPosition = _a[0], nextTree = _a[1], otherTree = _a[2];
256
- _b = this.getNeighboringHashes;
257
- return [4 /*yield*/, this.getMerkleHash(otherTree, height - 1)];
258
- case 3: return [2 /*return*/, _b.apply(this, [__spreadArray.apply(void 0, [[_c.sent()], acc, true]), height - 1, nextPosition, nextTree])];
259
- }
260
- });
261
- });
262
- };
263
- return TezosSaplingState;
264
- }());
51
+ async getStateTreeFromStateDiff(saplingStateDiff, skipConstruction = false) {
52
+ if (this.stateTree !== undefined && this.stateTree.root === saplingStateDiff.root) {
53
+ return this.stateTree;
54
+ }
55
+ const commitments = saplingStateDiff.commitments_and_ciphertexts.map(([commitment, _]) => commitment);
56
+ let merkleTree;
57
+ if (!skipConstruction) {
58
+ merkleTree = await this.constructMerkleTree(commitments, 0);
59
+ await this.verifyMerkleTree(merkleTree, saplingStateDiff.root);
60
+ }
61
+ this.stateTree = {
62
+ height: this.treeHeight,
63
+ size: commitments.length,
64
+ root: saplingStateDiff.root,
65
+ tree: merkleTree
66
+ };
67
+ return this.stateTree;
68
+ }
69
+ async getWitness(stateTree, position) {
70
+ const heightBuffer = (0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(stateTree.height)));
71
+ const positionBuffer = (0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(position, 64)));
72
+ const neighboringHashes = await this.getNeighboringHashes([], stateTree.height, position, stateTree.tree);
73
+ const witness = neighboringHashes
74
+ .map((hash) => Buffer.concat([(0, hex_1.hexToBytes)((0, hex_1.changeEndianness)((0, hex_1.toHexString)(hash.length))), hash]))
75
+ .reverse()
76
+ .reduce((acc, next) => Buffer.concat([acc, next]));
77
+ return Buffer.concat([heightBuffer, witness, positionBuffer]).toString('hex');
78
+ }
79
+ async constructMerkleTree(children, height) {
80
+ if (height === this.treeHeight && children.length === 1) {
81
+ return children[0];
82
+ }
83
+ if (height === this.treeHeight || children.length > Math.pow(2, this.treeHeight - 1 - height)) {
84
+ return Promise.reject('Invalid Merkle tree');
85
+ }
86
+ const chunkedChildren = (0, array_1.chunkedArray)(children, 2);
87
+ const newChildren = await Promise.all(chunkedChildren.map(async (chunk) => {
88
+ const [lhs, rhs] = await Promise.all([this.getMerkleHash(chunk[0], height), this.getMerkleHash(chunk[1], height)]);
89
+ const parentHash = await sapling.merkleHash(height, lhs, rhs);
90
+ return [parentHash.toString('hex'), chunk[0], chunk[1]];
91
+ }));
92
+ return this.constructMerkleTree(newChildren, height + 1);
93
+ }
94
+ async verifyMerkleTree(tree, expectedRoot) {
95
+ const root = await this.getMerkleHash(tree, this.treeHeight - 1);
96
+ if (root.toString('hex') !== expectedRoot) {
97
+ return Promise.reject('Merkle tree root is invalid');
98
+ }
99
+ }
100
+ async getMerkleHash(tree, height) {
101
+ if (tree === undefined) {
102
+ return (await this.uncommitedMerkleHashes.get())[height];
103
+ }
104
+ else if (typeof tree === 'string') {
105
+ return Buffer.from(tree, 'hex');
106
+ }
107
+ else {
108
+ return Buffer.from(tree[0], 'hex');
109
+ }
110
+ }
111
+ async createUncommitedMerkleHashes() {
112
+ const res = new Array(this.treeHeight);
113
+ res[0] = Buffer.from(this.uncommitedMerkleHash, 'hex');
114
+ for (var i = 0; i < this.treeHeight; i++) {
115
+ const hash = res[i];
116
+ res[i + 1] = await sapling.merkleHash(i, hash, hash);
117
+ }
118
+ return res;
119
+ }
120
+ async getNeighboringHashes(acc, height, position, tree) {
121
+ if (typeof tree === 'undefined') {
122
+ return Promise.reject('Invalid tree');
123
+ }
124
+ else if (typeof tree === 'string') {
125
+ return acc;
126
+ }
127
+ else {
128
+ const full = new bignumber_1.default(2).pow(height - 1);
129
+ const [nextPosition, nextTree, otherTree] = position.lt(full)
130
+ ? [position, tree[1], tree[2]]
131
+ : [position.minus(full), tree[2], tree[1]];
132
+ return this.getNeighboringHashes([await this.getMerkleHash(otherTree, height - 1), ...acc], height - 1, nextPosition, nextTree);
133
+ }
134
+ }
135
+ }
265
136
  exports.TezosSaplingState = TezosSaplingState;
266
137
  //# sourceMappingURL=TezosSaplingState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TezosSaplingState.js","sourceRoot":"","sources":["../../../../../src/v1/utils/protocol/sapling/TezosSaplingState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TezosSaplingState.js","sourceRoot":"","sources":["../../../../../src/v1/utils/protocol/sapling/TezosSaplingState.ts"],"names":[],"mappings":"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"}