@airgap/tezos 0.13.45-beta.1 → 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 +851 -1388
  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
@@ -1,19 +1,4 @@
1
1
  "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
3
  if (k2 === undefined) k2 = k;
19
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -30,124 +15,86 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
30
15
  }) : function(o, v) {
31
16
  o["default"] = v;
32
17
  });
33
- var __importStar = (this && this.__importStar) || function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
41
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
42
- return new (P || (P = Promise))(function (resolve, reject) {
43
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
44
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
45
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
46
- step((generator = generator.apply(thisArg, _arguments || [])).next());
47
- });
48
- };
49
- var __generator = (this && this.__generator) || function (thisArg, body) {
50
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
51
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
52
- function verb(n) { return function (v) { return step([n, v]); }; }
53
- function step(op) {
54
- if (f) throw new TypeError("Generator is already executing.");
55
- while (_) try {
56
- 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;
57
- if (y = 0, t) op = [op[0] & 2, t.value];
58
- switch (op[0]) {
59
- case 0: case 1: t = op; break;
60
- case 4: _.label++; return { value: op[1], done: false };
61
- case 5: _.label++; y = op[1]; op = [0]; continue;
62
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
63
- default:
64
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
65
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
66
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
67
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
68
- if (t[2]) _.ops.pop();
69
- _.trys.pop(); continue;
70
- }
71
- op = body.call(thisArg, _);
72
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
73
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
74
- }
75
- };
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
+ })();
76
35
  Object.defineProperty(exports, "__esModule", { value: true });
77
36
  exports.TezosCryptoClient = void 0;
78
37
  // @ts-ignore
79
- var bs58 = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58-4.0.1"));
80
- var errors_1 = require("@airgap/coinlib-core/errors");
81
- var coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
82
- var Ed25519CryptoClient_1 = require("@airgap/coinlib-core/protocols/Ed25519CryptoClient");
83
- var blake2b_1 = require("@stablelib/blake2b");
84
- var ed25519_1 = require("@stablelib/ed25519");
85
- var utf8_1 = require("@stablelib/utf8");
86
- var encoding_1 = require("../utils/encoding");
87
- var transaction_1 = require("../utils/transaction");
88
- var TezosCryptoClient = /** @class */ (function (_super) {
89
- __extends(TezosCryptoClient, _super);
90
- function TezosCryptoClient() {
91
- return _super.call(this) || this;
38
+ const bs58 = __importStar(require("@airgap/coinlib-core/dependencies/src/bs58-4.0.1"));
39
+ const errors_1 = require("@airgap/coinlib-core/errors");
40
+ const coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
41
+ const Ed25519CryptoClient_1 = require("@airgap/coinlib-core/protocols/Ed25519CryptoClient");
42
+ const blake2b_1 = require("@stablelib/blake2b");
43
+ const ed25519_1 = require("@stablelib/ed25519");
44
+ const utf8_1 = require("@stablelib/utf8");
45
+ const encoding_1 = require("../utils/encoding");
46
+ const transaction_1 = require("../utils/transaction");
47
+ class TezosCryptoClient extends Ed25519CryptoClient_1.Ed25519CryptoClient {
48
+ constructor() {
49
+ super();
92
50
  }
93
- TezosCryptoClient.prototype.signMessage = function (message, keypair) {
94
- return __awaiter(this, void 0, void 0, function () {
95
- var bufferMessage, hashBytes, rawSignature, signature;
96
- return __generator(this, function (_a) {
97
- bufferMessage = this.toBuffer(message);
98
- hashBytes = this.hash(bufferMessage);
99
- rawSignature = (0, ed25519_1.sign)(Buffer.from(keypair.privateKey, 'hex'), hashBytes);
100
- signature = (0, encoding_1.encodeBase58)(rawSignature, 'ed25519Signature');
101
- return [2 /*return*/, signature];
102
- });
103
- });
104
- };
105
- TezosCryptoClient.prototype.operationSignature = function (privateKey, binaryTransaction) {
106
- var watermarkedForgedOperationBytes = Buffer.concat([transaction_1.WATERMARK.operation, binaryTransaction]);
107
- var hashedWatermarkedOpBytes = this.hash(watermarkedForgedOperationBytes);
51
+ async signMessage(message, keypair) {
52
+ const bufferMessage = this.toBuffer(message);
53
+ const hashBytes = this.hash(bufferMessage);
54
+ const rawSignature = (0, ed25519_1.sign)(Buffer.from(keypair.privateKey, 'hex'), hashBytes);
55
+ const signature = (0, encoding_1.encodeBase58)(rawSignature, 'ed25519Signature');
56
+ return signature;
57
+ }
58
+ operationSignature(privateKey, binaryTransaction) {
59
+ const watermarkedForgedOperationBytes = Buffer.concat([transaction_1.WATERMARK.operation, binaryTransaction]);
60
+ const hashedWatermarkedOpBytes = this.hash(watermarkedForgedOperationBytes);
108
61
  return Buffer.from((0, ed25519_1.sign)(privateKey, hashedWatermarkedOpBytes));
109
- };
110
- TezosCryptoClient.prototype.verifyMessage = function (message, signature, publicKey) {
111
- return __awaiter(this, void 0, void 0, function () {
112
- var rawSignature, bufferMessage, hashBytes, isValidSignature;
113
- return __generator(this, function (_a) {
114
- if (signature.startsWith('edsig')) {
115
- rawSignature = (0, encoding_1.decodeBase58)(signature, 'ed25519Signature');
116
- }
117
- else {
118
- throw new errors_1.InvalidValueError(coinlib_error_1.Domain.TEZOS, "invalid signature: ".concat(JSON.stringify(signature)));
119
- }
120
- bufferMessage = this.toBuffer(message);
121
- hashBytes = this.hash(bufferMessage);
122
- isValidSignature = (0, ed25519_1.verify)(Buffer.from(publicKey, 'hex'), hashBytes, rawSignature);
123
- return [2 /*return*/, isValidSignature];
124
- });
125
- });
126
- };
127
- TezosCryptoClient.prototype.toBuffer = function (message) {
62
+ }
63
+ async verifyMessage(message, signature, publicKey) {
64
+ let rawSignature;
65
+ if (signature.startsWith('edsig')) {
66
+ rawSignature = (0, encoding_1.decodeBase58)(signature, 'ed25519Signature');
67
+ }
68
+ else {
69
+ throw new errors_1.InvalidValueError(coinlib_error_1.Domain.TEZOS, `invalid signature: ${JSON.stringify(signature)}`);
70
+ }
71
+ const bufferMessage = this.toBuffer(message);
72
+ const hashBytes = this.hash(bufferMessage);
73
+ const isValidSignature = (0, ed25519_1.verify)(Buffer.from(publicKey, 'hex'), hashBytes, rawSignature);
74
+ return isValidSignature;
75
+ }
76
+ toBuffer(message) {
128
77
  if (message.length % 2 !== 0) {
129
78
  return Buffer.from((0, utf8_1.encode)(message));
130
79
  }
131
- var adjustedMessage = message;
80
+ let adjustedMessage = message;
132
81
  if (message.startsWith('0x')) {
133
82
  adjustedMessage = message.slice(2);
134
83
  }
135
- var buffer = Buffer.from(adjustedMessage, 'hex');
84
+ const buffer = Buffer.from(adjustedMessage, 'hex');
136
85
  if (buffer.length === adjustedMessage.length / 2) {
137
86
  return buffer;
138
87
  }
139
88
  return Buffer.from((0, utf8_1.encode)(message));
140
- };
141
- TezosCryptoClient.prototype.hash = function (message, size) {
142
- if (size === void 0) { size = 32; }
89
+ }
90
+ hash(message, size = 32) {
143
91
  return Buffer.from((0, blake2b_1.hash)(message, size));
144
- };
145
- TezosCryptoClient.prototype.blake2bLedgerHash = function (message) {
146
- var buffer = this.toBuffer(message);
147
- var hash = this.hash(buffer);
92
+ }
93
+ blake2bLedgerHash(message) {
94
+ const buffer = this.toBuffer(message);
95
+ const hash = this.hash(buffer);
148
96
  return bs58.encode(Buffer.from(hash));
149
- };
150
- return TezosCryptoClient;
151
- }(Ed25519CryptoClient_1.Ed25519CryptoClient));
97
+ }
98
+ }
152
99
  exports.TezosCryptoClient = TezosCryptoClient;
153
100
  //# sourceMappingURL=TezosCryptoClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TezosCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosCryptoClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TezosCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosCryptoClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
3
2
  import { SaplingPartialOutputDescription } from '@airgap/sapling-wasm';
4
3
  import { TezosSaplingCiphertext } from '../types/sapling/TezosSaplingCiphertext';
@@ -15,208 +15,130 @@ 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
- };
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
+ })();
61
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
62
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
63
37
  };
64
38
  Object.defineProperty(exports, "__esModule", { value: true });
65
39
  exports.TezosSaplingCryptoClient = void 0;
66
- var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
67
- var blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
68
- var hex_1 = require("@airgap/coinlib-core/utils/hex");
69
- var sapling = __importStar(require("@airgap/sapling-wasm"));
70
- var nacl_1 = require("@stablelib/nacl");
71
- var random_1 = require("@stablelib/random");
72
- var TezosSaplingAddress_1 = require("../data/TezosSaplingAddress");
73
- var TezosSaplingCryptoClient = /** @class */ (function () {
74
- function TezosSaplingCryptoClient() {
40
+ const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
41
+ const blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
42
+ const hex_1 = require("@airgap/coinlib-core/utils/hex");
43
+ const sapling = __importStar(require("@airgap/sapling-wasm"));
44
+ const nacl_1 = require("@stablelib/nacl");
45
+ const random_1 = require("@stablelib/random");
46
+ const TezosSaplingAddress_1 = require("../data/TezosSaplingAddress");
47
+ class TezosSaplingCryptoClient {
48
+ constructor() {
75
49
  this.ockKey = 'OCK_keystringderivation_TEZOS';
76
50
  this.kdfKey = 'KDFSaplingForTezosV1';
77
51
  }
78
- TezosSaplingCryptoClient.prototype.encryptCiphertext = function (tezosOutput, saplingDescription, rcm, esk, viewingKey) {
79
- return __awaiter(this, void 0, void 0, function () {
80
- var address, _a, ovk, diversifier, pkd, symKey, nonceEnc, plaintextEnc, payloadEnc, epk, ock, nonceOut, plaintextOut, payloadOut;
81
- return __generator(this, function (_b) {
82
- switch (_b.label) {
83
- case 0: return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(tezosOutput.address)];
84
- case 1:
85
- address = _b.sent();
86
- return [4 /*yield*/, Promise.all([
87
- viewingKey !== undefined ? sapling.getOutgoingViewingKey(viewingKey) : undefined,
88
- sapling.getDiversifiedFromRawPaymentAddress(address.raw),
89
- sapling.getPkdFromRawPaymentAddress(address.raw)
90
- ])];
91
- case 2:
92
- _a = _b.sent(), ovk = _a[0], diversifier = _a[1], pkd = _a[2];
93
- return [4 /*yield*/, this.getSymmetricKey(pkd, esk)];
94
- case 3:
95
- symKey = _b.sent();
96
- nonceEnc = (0, random_1.randomBytes)(24);
97
- plaintextEnc = Buffer.concat([
98
- diversifier,
99
- (0, hex_1.toHexBuffer)(new bignumber_1.default(tezosOutput.value), 64, '2sComplement'),
100
- rcm,
101
- (0, hex_1.toHexBuffer)(tezosOutput.memo.length, 32),
102
- Buffer.from(tezosOutput.memo, 'hex')
103
- ]);
104
- payloadEnc = (0, nacl_1.secretBox)(symKey, nonceEnc, plaintextEnc);
105
- return [4 /*yield*/, sapling.deriveEphemeralPublicKey(diversifier, esk)];
106
- case 4:
107
- epk = _b.sent();
108
- ock = ovk !== undefined
109
- ? (0, blake2b_1.blake2bAsBytes)(Buffer.concat([saplingDescription.cv, saplingDescription.cm, epk, ovk]), 256, {
110
- key: Buffer.from(this.ockKey)
111
- })
112
- : (0, random_1.randomBytes)(32);
113
- nonceOut = (0, random_1.randomBytes)(24);
114
- plaintextOut = Buffer.concat([pkd, esk]);
115
- payloadOut = (0, nacl_1.secretBox)(ock, nonceOut, plaintextOut);
116
- return [2 /*return*/, {
117
- cv: saplingDescription.cv.toString('hex'),
118
- epk: epk.toString('hex'),
119
- payload_enc: Buffer.from(payloadEnc).toString('hex'),
120
- nonce_enc: Buffer.from(nonceEnc).toString('hex'),
121
- payload_out: Buffer.from(payloadOut).toString('hex'),
122
- nonce_out: Buffer.from(nonceOut).toString('hex')
123
- }];
124
- }
125
- });
126
- });
127
- };
128
- TezosSaplingCryptoClient.prototype.decryptCiphertextEnc = function (viewingKey, ciphertext, mode, commitment) {
129
- if (mode === void 0) { mode = 'receiver'; }
130
- return __awaiter(this, void 0, void 0, function () {
131
- var symKey, rawAddressFromDiversifier, ivk_1, _a, pkd_1, esk, openBox, decrypted, diversifier, amount, rcm, memoLength, memo;
132
- var _b;
133
- return __generator(this, function (_c) {
134
- switch (_c.label) {
135
- case 0:
136
- if (!(mode === 'receiver')) return [3 /*break*/, 3];
137
- return [4 /*yield*/, sapling.getIncomingViewingKey(viewingKey)];
138
- case 1:
139
- ivk_1 = _c.sent();
140
- return [4 /*yield*/, this.getSymmetricKey(ciphertext.epk, ivk_1)];
141
- case 2:
142
- symKey = _c.sent();
143
- rawAddressFromDiversifier = function (diversifier) { return sapling.getRawPaymentAddressFromIncomingViewingKey(ivk_1, diversifier); };
144
- return [3 /*break*/, 7];
145
- case 3:
146
- if (!(mode === 'sender' && commitment !== undefined)) return [3 /*break*/, 6];
147
- return [4 /*yield*/, this.decryptCiphertextOut(viewingKey, ciphertext, commitment)];
148
- case 4:
149
- _a = _c.sent(), pkd_1 = _a.pkd, esk = _a.esk;
150
- return [4 /*yield*/, this.getSymmetricKey(pkd_1, esk)];
151
- case 5:
152
- symKey = _c.sent();
153
- rawAddressFromDiversifier = function (diversifier) { return Promise.resolve(Buffer.concat([diversifier, pkd_1])); };
154
- return [3 /*break*/, 7];
155
- case 6: throw new Error('Not enough data has been provided to decrypt the ciphertext');
156
- case 7:
157
- openBox = (0, nacl_1.openSecretBox)(symKey, Buffer.from(ciphertext.nonce_enc, 'hex'), Buffer.from(ciphertext.payload_enc, 'hex'));
158
- if (openBox === null) {
159
- throw new Error('Failed to decrypt sapling ciphertext (enc)');
160
- }
161
- decrypted = Buffer.from(openBox);
162
- diversifier = decrypted.slice(0, 11);
163
- amount = new bignumber_1.default(decrypted.slice(11, 19).toString('hex'), 16);
164
- rcm = decrypted.slice(19, 51);
165
- memoLength = new bignumber_1.default(decrypted.slice(51, 55).toString('hex'), 16);
166
- memo = decrypted.slice(55, 55 + memoLength.toNumber());
167
- _b = {
168
- diversifier: diversifier
169
- };
170
- return [4 /*yield*/, rawAddressFromDiversifier(diversifier)];
171
- case 8: return [2 /*return*/, (_b.address = _c.sent(),
172
- _b.amount = amount,
173
- _b.rcm = rcm,
174
- _b.memo = memo,
175
- _b)];
176
- }
177
- });
178
- });
179
- };
180
- TezosSaplingCryptoClient.prototype.decryptCiphertextOut = function (viewingKey, ciphertext, commitment) {
181
- return __awaiter(this, void 0, void 0, function () {
182
- var ovk, cv, cm, epk, ock, openBox, decrypted, pkd, esk;
183
- return __generator(this, function (_a) {
184
- switch (_a.label) {
185
- case 0: return [4 /*yield*/, sapling.getOutgoingViewingKey(viewingKey)];
186
- case 1:
187
- ovk = _a.sent();
188
- cv = Buffer.from(ciphertext.cv, 'hex');
189
- cm = Buffer.isBuffer(commitment) ? commitment : Buffer.from(commitment, 'hex');
190
- epk = Buffer.from(ciphertext.epk, 'hex');
191
- ock = (0, blake2b_1.blake2bAsBytes)(Buffer.concat([cv, cm, epk, ovk]), 256, {
192
- key: Buffer.from(this.ockKey)
193
- });
194
- openBox = (0, nacl_1.openSecretBox)(ock, Buffer.from(ciphertext.nonce_out, 'hex'), Buffer.from(ciphertext.payload_out, 'hex'));
195
- if (openBox === null) {
196
- throw new Error('Failed to decrypt sapling ciphertext (out)');
197
- }
198
- decrypted = Buffer.from(openBox);
199
- pkd = decrypted.slice(0, 32);
200
- esk = decrypted.slice(32);
201
- return [2 /*return*/, { pkd: pkd, esk: esk }];
202
- }
203
- });
204
- });
205
- };
206
- TezosSaplingCryptoClient.prototype.getSymmetricKey = function (p, sk) {
207
- return __awaiter(this, void 0, void 0, function () {
208
- var ka;
209
- return __generator(this, function (_a) {
210
- switch (_a.label) {
211
- case 0: return [4 /*yield*/, sapling.keyAgreement(p, sk)];
212
- case 1:
213
- ka = _a.sent();
214
- return [2 /*return*/, Buffer.from((0, blake2b_1.blake2bAsBytes)(ka, 256, { key: Buffer.from(this.kdfKey) }))];
215
- }
216
- });
52
+ async encryptCiphertext(tezosOutput, saplingDescription, rcm, esk, viewingKey) {
53
+ const address = await TezosSaplingAddress_1.TezosSaplingAddress.fromValue(tezosOutput.address);
54
+ const [ovk, diversifier, pkd] = await Promise.all([
55
+ viewingKey !== undefined ? sapling.getOutgoingViewingKey(viewingKey) : undefined,
56
+ sapling.getDiversifiedFromRawPaymentAddress(address.raw),
57
+ sapling.getPkdFromRawPaymentAddress(address.raw)
58
+ ]);
59
+ const symKey = await this.getSymmetricKey(pkd, esk);
60
+ const nonceEnc = (0, random_1.randomBytes)(24);
61
+ const plaintextEnc = Buffer.concat([
62
+ diversifier,
63
+ (0, hex_1.toHexBuffer)(new bignumber_1.default(tezosOutput.value), 64, '2sComplement'),
64
+ rcm,
65
+ (0, hex_1.toHexBuffer)(tezosOutput.memo.length, 32),
66
+ Buffer.from(tezosOutput.memo, 'hex')
67
+ ]);
68
+ const payloadEnc = (0, nacl_1.secretBox)(symKey, nonceEnc, plaintextEnc);
69
+ const epk = await sapling.deriveEphemeralPublicKey(diversifier, esk);
70
+ const ock = ovk !== undefined
71
+ ? (0, blake2b_1.blake2bAsBytes)(Buffer.concat([saplingDescription.cv, saplingDescription.cm, epk, ovk]), 256, {
72
+ key: Buffer.from(this.ockKey)
73
+ })
74
+ : (0, random_1.randomBytes)(32);
75
+ const nonceOut = (0, random_1.randomBytes)(24);
76
+ const plaintextOut = Buffer.concat([pkd, esk]);
77
+ const payloadOut = (0, nacl_1.secretBox)(ock, nonceOut, plaintextOut);
78
+ return {
79
+ cv: saplingDescription.cv.toString('hex'),
80
+ epk: epk.toString('hex'),
81
+ payload_enc: Buffer.from(payloadEnc).toString('hex'),
82
+ nonce_enc: Buffer.from(nonceEnc).toString('hex'),
83
+ payload_out: Buffer.from(payloadOut).toString('hex'),
84
+ nonce_out: Buffer.from(nonceOut).toString('hex')
85
+ };
86
+ }
87
+ async decryptCiphertextEnc(viewingKey, ciphertext, mode = 'receiver', commitment) {
88
+ let symKey;
89
+ let rawAddressFromDiversifier;
90
+ if (mode === 'receiver') {
91
+ const ivk = await sapling.getIncomingViewingKey(viewingKey);
92
+ symKey = await this.getSymmetricKey(ciphertext.epk, ivk);
93
+ rawAddressFromDiversifier = (diversifier) => sapling.getRawPaymentAddressFromIncomingViewingKey(ivk, diversifier);
94
+ }
95
+ else if (mode === 'sender' && commitment !== undefined) {
96
+ const { pkd, esk } = await this.decryptCiphertextOut(viewingKey, ciphertext, commitment);
97
+ symKey = await this.getSymmetricKey(pkd, esk);
98
+ rawAddressFromDiversifier = (diversifier) => Promise.resolve(Buffer.concat([diversifier, pkd]));
99
+ }
100
+ else {
101
+ throw new Error('Not enough data has been provided to decrypt the ciphertext');
102
+ }
103
+ const openBox = (0, nacl_1.openSecretBox)(symKey, Buffer.from(ciphertext.nonce_enc, 'hex'), Buffer.from(ciphertext.payload_enc, 'hex'));
104
+ if (openBox === null) {
105
+ throw new Error('Failed to decrypt sapling ciphertext (enc)');
106
+ }
107
+ const decrypted = Buffer.from(openBox);
108
+ const diversifier = decrypted.slice(0, 11);
109
+ const amount = new bignumber_1.default(decrypted.slice(11, 19).toString('hex'), 16);
110
+ const rcm = decrypted.slice(19, 51);
111
+ const memoLength = new bignumber_1.default(decrypted.slice(51, 55).toString('hex'), 16);
112
+ const memo = decrypted.slice(55, 55 + memoLength.toNumber());
113
+ return {
114
+ diversifier,
115
+ address: await rawAddressFromDiversifier(diversifier),
116
+ amount,
117
+ rcm,
118
+ memo
119
+ };
120
+ }
121
+ async decryptCiphertextOut(viewingKey, ciphertext, commitment) {
122
+ const ovk = await sapling.getOutgoingViewingKey(viewingKey);
123
+ const cv = Buffer.from(ciphertext.cv, 'hex');
124
+ const cm = Buffer.isBuffer(commitment) ? commitment : Buffer.from(commitment, 'hex');
125
+ const epk = Buffer.from(ciphertext.epk, 'hex');
126
+ const ock = (0, blake2b_1.blake2bAsBytes)(Buffer.concat([cv, cm, epk, ovk]), 256, {
127
+ key: Buffer.from(this.ockKey)
217
128
  });
218
- };
219
- return TezosSaplingCryptoClient;
220
- }());
129
+ const openBox = (0, nacl_1.openSecretBox)(ock, Buffer.from(ciphertext.nonce_out, 'hex'), Buffer.from(ciphertext.payload_out, 'hex'));
130
+ if (openBox === null) {
131
+ throw new Error('Failed to decrypt sapling ciphertext (out)');
132
+ }
133
+ const decrypted = Buffer.from(openBox);
134
+ const pkd = decrypted.slice(0, 32);
135
+ const esk = decrypted.slice(32);
136
+ return { pkd, esk };
137
+ }
138
+ async getSymmetricKey(p, sk) {
139
+ const ka = await sapling.keyAgreement(p, sk);
140
+ return Buffer.from((0, blake2b_1.blake2bAsBytes)(ka, 256, { key: Buffer.from(this.kdfKey) }));
141
+ }
142
+ }
221
143
  exports.TezosSaplingCryptoClient = TezosSaplingCryptoClient;
222
144
  //# sourceMappingURL=TezosSaplingCryptoClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TezosSaplingCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosSaplingCryptoClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TezosSaplingCryptoClient.js","sourceRoot":"","sources":["../../../src/v1/crypto/TezosSaplingCryptoClient.ts"],"names":[],"mappings":"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"}