@airgap/tezos 0.13.7-beta.11

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 (370) hide show
  1. package/LICENSE.md +7 -0
  2. package/actions/GetKtAccountsAction.d.ts +8 -0
  3. package/actions/GetKtAccountsAction.js +85 -0
  4. package/actions/GetKtAccountsAction.js.map +1 -0
  5. package/airgap-coinlib-tezos.min.js +103587 -0
  6. package/constants.d.ts +18 -0
  7. package/constants.js +28 -0
  8. package/constants.js.map +1 -0
  9. package/index.d.ts +46 -0
  10. package/index.js +103 -0
  11. package/index.js.map +1 -0
  12. package/package.json +70 -0
  13. package/protocol/TezosAddress.d.ts +11 -0
  14. package/protocol/TezosAddress.js +102 -0
  15. package/protocol/TezosAddress.js.map +1 -0
  16. package/protocol/TezosCryptoClient.d.ts +15 -0
  17. package/protocol/TezosCryptoClient.js +152 -0
  18. package/protocol/TezosCryptoClient.js.map +1 -0
  19. package/protocol/TezosProtocol.d.ts +349 -0
  20. package/protocol/TezosProtocol.js +1853 -0
  21. package/protocol/TezosProtocol.js.map +1 -0
  22. package/protocol/TezosProtocolOptions.d.ts +29 -0
  23. package/protocol/TezosProtocolOptions.js +114 -0
  24. package/protocol/TezosProtocolOptions.js.map +1 -0
  25. package/protocol/TezosUtils.d.ts +40 -0
  26. package/protocol/TezosUtils.js +296 -0
  27. package/protocol/TezosUtils.js.map +1 -0
  28. package/protocol/contract/TezosContract.d.ts +52 -0
  29. package/protocol/contract/TezosContract.js +509 -0
  30. package/protocol/contract/TezosContract.js.map +1 -0
  31. package/protocol/contract/TezosContractCall.d.ts +10 -0
  32. package/protocol/contract/TezosContractCall.js +23 -0
  33. package/protocol/contract/TezosContractCall.js.map +1 -0
  34. package/protocol/contract/TezosContractEntrypoint.d.ts +8 -0
  35. package/protocol/contract/TezosContractEntrypoint.js +27 -0
  36. package/protocol/contract/TezosContractEntrypoint.js.map +1 -0
  37. package/protocol/contract/TezosContractStorage.d.ts +7 -0
  38. package/protocol/contract/TezosContractStorage.js +16 -0
  39. package/protocol/contract/TezosContractStorage.js.map +1 -0
  40. package/protocol/contract/remote-data/TezosContractRemoteDataFactory.d.ts +11 -0
  41. package/protocol/contract/remote-data/TezosContractRemoteDataFactory.js +34 -0
  42. package/protocol/contract/remote-data/TezosContractRemoteDataFactory.js.map +1 -0
  43. package/protocol/contract/remote-data/TezosStorageRemoteData.d.ts +12 -0
  44. package/protocol/contract/remote-data/TezosStorageRemoteData.js +151 -0
  45. package/protocol/contract/remote-data/TezosStorageRemoteData.js.map +1 -0
  46. package/protocol/domains/TezosDomains.d.ts +20 -0
  47. package/protocol/domains/TezosDomains.js +306 -0
  48. package/protocol/domains/TezosDomains.js.map +1 -0
  49. package/protocol/fa/TezosBTC.d.ts +12 -0
  50. package/protocol/fa/TezosBTC.js +107 -0
  51. package/protocol/fa/TezosBTC.js.map +1 -0
  52. package/protocol/fa/TezosBTCtez.d.ts +10 -0
  53. package/protocol/fa/TezosBTCtez.js +54 -0
  54. package/protocol/fa/TezosBTCtez.js.map +1 -0
  55. package/protocol/fa/TezosCTez.d.ts +10 -0
  56. package/protocol/fa/TezosCTez.js +51 -0
  57. package/protocol/fa/TezosCTez.js.map +1 -0
  58. package/protocol/fa/TezosDOGA.d.ts +10 -0
  59. package/protocol/fa/TezosDOGA.js +51 -0
  60. package/protocol/fa/TezosDOGA.js.map +1 -0
  61. package/protocol/fa/TezosETHtz.d.ts +9 -0
  62. package/protocol/fa/TezosETHtz.js +72 -0
  63. package/protocol/fa/TezosETHtz.js.map +1 -0
  64. package/protocol/fa/TezosFA1Protocol.d.ts +27 -0
  65. package/protocol/fa/TezosFA1Protocol.js +310 -0
  66. package/protocol/fa/TezosFA1Protocol.js.map +1 -0
  67. package/protocol/fa/TezosFA1p2Protocol.d.ts +8 -0
  68. package/protocol/fa/TezosFA1p2Protocol.js +117 -0
  69. package/protocol/fa/TezosFA1p2Protocol.js.map +1 -0
  70. package/protocol/fa/TezosFA2Protocol.d.ts +58 -0
  71. package/protocol/fa/TezosFA2Protocol.js +449 -0
  72. package/protocol/fa/TezosFA2Protocol.js.map +1 -0
  73. package/protocol/fa/TezosFAProtocol.d.ts +65 -0
  74. package/protocol/fa/TezosFAProtocol.js +510 -0
  75. package/protocol/fa/TezosFAProtocol.js.map +1 -0
  76. package/protocol/fa/TezosFAProtocolOptions.d.ts +54 -0
  77. package/protocol/fa/TezosFAProtocolOptions.js +228 -0
  78. package/protocol/fa/TezosFAProtocolOptions.js.map +1 -0
  79. package/protocol/fa/TezosKolibriUSD.d.ts +10 -0
  80. package/protocol/fa/TezosKolibriUSD.js +74 -0
  81. package/protocol/fa/TezosKolibriUSD.js.map +1 -0
  82. package/protocol/fa/TezosPlanty.d.ts +10 -0
  83. package/protocol/fa/TezosPlanty.js +51 -0
  84. package/protocol/fa/TezosPlanty.js.map +1 -0
  85. package/protocol/fa/TezosQUIPU.d.ts +10 -0
  86. package/protocol/fa/TezosQUIPU.js +54 -0
  87. package/protocol/fa/TezosQUIPU.js.map +1 -0
  88. package/protocol/fa/TezosSIRS.d.ts +10 -0
  89. package/protocol/fa/TezosSIRS.js +51 -0
  90. package/protocol/fa/TezosSIRS.js.map +1 -0
  91. package/protocol/fa/TezosStaker.d.ts +10 -0
  92. package/protocol/fa/TezosStaker.js +74 -0
  93. package/protocol/fa/TezosStaker.js.map +1 -0
  94. package/protocol/fa/TezosUBTC.d.ts +10 -0
  95. package/protocol/fa/TezosUBTC.js +54 -0
  96. package/protocol/fa/TezosUBTC.js.map +1 -0
  97. package/protocol/fa/TezosUDEFI.d.ts +10 -0
  98. package/protocol/fa/TezosUDEFI.js +54 -0
  99. package/protocol/fa/TezosUDEFI.js.map +1 -0
  100. package/protocol/fa/TezosUSD.d.ts +10 -0
  101. package/protocol/fa/TezosUSD.js +74 -0
  102. package/protocol/fa/TezosUSD.js.map +1 -0
  103. package/protocol/fa/TezosUSDT.d.ts +10 -0
  104. package/protocol/fa/TezosUSDT.js +54 -0
  105. package/protocol/fa/TezosUSDT.js.map +1 -0
  106. package/protocol/fa/TezosUUSD.d.ts +6 -0
  107. package/protocol/fa/TezosUUSD.js +31 -0
  108. package/protocol/fa/TezosUUSD.js.map +1 -0
  109. package/protocol/fa/TezosWRAP.d.ts +10 -0
  110. package/protocol/fa/TezosWRAP.js +54 -0
  111. package/protocol/fa/TezosWRAP.js.map +1 -0
  112. package/protocol/fa/TezosWrapped.d.ts +10 -0
  113. package/protocol/fa/TezosWrapped.js +74 -0
  114. package/protocol/fa/TezosWrapped.js.map +1 -0
  115. package/protocol/fa/TezosYOU.d.ts +6 -0
  116. package/protocol/fa/TezosYOU.js +31 -0
  117. package/protocol/fa/TezosYOU.js.map +1 -0
  118. package/protocol/indexerClient/TezosIndexerClient.d.ts +25 -0
  119. package/protocol/indexerClient/TezosIndexerClient.js +251 -0
  120. package/protocol/indexerClient/TezosIndexerClient.js.map +1 -0
  121. package/protocol/indexerClient/TezosProtocolIndexerClient.d.ts +26 -0
  122. package/protocol/indexerClient/TezosProtocolIndexerClient.js +3 -0
  123. package/protocol/indexerClient/TezosProtocolIndexerClient.js.map +1 -0
  124. package/protocol/kt/TezosKtAddress.d.ts +5 -0
  125. package/protocol/kt/TezosKtAddress.js +72 -0
  126. package/protocol/kt/TezosKtAddress.js.map +1 -0
  127. package/protocol/kt/TezosKtProtocol.d.ts +30 -0
  128. package/protocol/kt/TezosKtProtocol.js +317 -0
  129. package/protocol/kt/TezosKtProtocol.js.map +1 -0
  130. package/protocol/sapling/TezosSaplingAddress.d.ts +12 -0
  131. package/protocol/sapling/TezosSaplingAddress.js +134 -0
  132. package/protocol/sapling/TezosSaplingAddress.js.map +1 -0
  133. package/protocol/sapling/TezosSaplingCryptoClient.d.ts +34 -0
  134. package/protocol/sapling/TezosSaplingCryptoClient.js +241 -0
  135. package/protocol/sapling/TezosSaplingCryptoClient.js.map +1 -0
  136. package/protocol/sapling/TezosSaplingProtocol.d.ts +130 -0
  137. package/protocol/sapling/TezosSaplingProtocol.js +1101 -0
  138. package/protocol/sapling/TezosSaplingProtocol.js.map +1 -0
  139. package/protocol/sapling/TezosSaplingProtocolOptions.d.ts +43 -0
  140. package/protocol/sapling/TezosSaplingProtocolOptions.js +78 -0
  141. package/protocol/sapling/TezosSaplingProtocolOptions.js.map +1 -0
  142. package/protocol/sapling/TezosShieldedTezProtocol.d.ts +9 -0
  143. package/protocol/sapling/TezosShieldedTezProtocol.js +109 -0
  144. package/protocol/sapling/TezosShieldedTezProtocol.js.map +1 -0
  145. package/protocol/sapling/node/TezosSaplingNodeClient.d.ts +8 -0
  146. package/protocol/sapling/node/TezosSaplingNodeClient.js +78 -0
  147. package/protocol/sapling/node/TezosSaplingNodeClient.js.map +1 -0
  148. package/protocol/sapling/utils/TezosSaplingBookkeeper.d.ts +34 -0
  149. package/protocol/sapling/utils/TezosSaplingBookkeeper.js +586 -0
  150. package/protocol/sapling/utils/TezosSaplingBookkeeper.js.map +1 -0
  151. package/protocol/sapling/utils/TezosSaplingEncoder.d.ts +22 -0
  152. package/protocol/sapling/utils/TezosSaplingEncoder.js +158 -0
  153. package/protocol/sapling/utils/TezosSaplingEncoder.js.map +1 -0
  154. package/protocol/sapling/utils/TezosSaplingForger.d.ts +26 -0
  155. package/protocol/sapling/utils/TezosSaplingForger.js +278 -0
  156. package/protocol/sapling/utils/TezosSaplingForger.js.map +1 -0
  157. package/protocol/sapling/utils/TezosSaplingState.d.ts +17 -0
  158. package/protocol/sapling/utils/TezosSaplingState.js +260 -0
  159. package/protocol/sapling/utils/TezosSaplingState.js.map +1 -0
  160. package/protocol/types/TezosAddressCursor.d.ts +3 -0
  161. package/protocol/types/TezosAddressCursor.js +3 -0
  162. package/protocol/types/TezosAddressCursor.js.map +1 -0
  163. package/protocol/types/TezosAddressResult.d.ts +4 -0
  164. package/protocol/types/TezosAddressResult.js +3 -0
  165. package/protocol/types/TezosAddressResult.js.map +1 -0
  166. package/protocol/types/TezosBlockHeader.d.ts +13 -0
  167. package/protocol/types/TezosBlockHeader.js +3 -0
  168. package/protocol/types/TezosBlockHeader.js.map +1 -0
  169. package/protocol/types/TezosBlockMetadata.d.ts +7 -0
  170. package/protocol/types/TezosBlockMetadata.js +3 -0
  171. package/protocol/types/TezosBlockMetadata.js.map +1 -0
  172. package/protocol/types/TezosContractCode.d.ts +5 -0
  173. package/protocol/types/TezosContractCode.js +3 -0
  174. package/protocol/types/TezosContractCode.js.map +1 -0
  175. package/protocol/types/TezosOperationType.d.ts +13 -0
  176. package/protocol/types/TezosOperationType.js +18 -0
  177. package/protocol/types/TezosOperationType.js.map +1 -0
  178. package/protocol/types/TezosTransactionCursor.d.ts +3 -0
  179. package/protocol/types/TezosTransactionCursor.js +3 -0
  180. package/protocol/types/TezosTransactionCursor.js.map +1 -0
  181. package/protocol/types/TezosTransactionResult.d.ts +6 -0
  182. package/protocol/types/TezosTransactionResult.js +3 -0
  183. package/protocol/types/TezosTransactionResult.js.map +1 -0
  184. package/protocol/types/TezosWrappedOperation.d.ts +5 -0
  185. package/protocol/types/TezosWrappedOperation.js +3 -0
  186. package/protocol/types/TezosWrappedOperation.js.map +1 -0
  187. package/protocol/types/contract/BigMap.d.ts +7 -0
  188. package/protocol/types/contract/BigMap.js +3 -0
  189. package/protocol/types/contract/BigMap.js.map +1 -0
  190. package/protocol/types/contract/BigMapEnrtyFilter.d.ts +5 -0
  191. package/protocol/types/contract/BigMapEnrtyFilter.js +3 -0
  192. package/protocol/types/contract/BigMapEnrtyFilter.js.map +1 -0
  193. package/protocol/types/contract/BigMapEntry.d.ts +7 -0
  194. package/protocol/types/contract/BigMapEntry.js +3 -0
  195. package/protocol/types/contract/BigMapEntry.js.map +1 -0
  196. package/protocol/types/contract/BigMapRequest.d.ts +8 -0
  197. package/protocol/types/contract/BigMapRequest.js +3 -0
  198. package/protocol/types/contract/BigMapRequest.js.map +1 -0
  199. package/protocol/types/contract/TezosContractMetadata.d.ts +61 -0
  200. package/protocol/types/contract/TezosContractMetadata.js +3 -0
  201. package/protocol/types/contract/TezosContractMetadata.js.map +1 -0
  202. package/protocol/types/domains/TezosDomainsRecord.d.ts +8 -0
  203. package/protocol/types/domains/TezosDomainsRecord.js +3 -0
  204. package/protocol/types/domains/TezosDomainsRecord.js.map +1 -0
  205. package/protocol/types/domains/TezosDomainsReverseRecord.d.ts +5 -0
  206. package/protocol/types/domains/TezosDomainsReverseRecord.js +3 -0
  207. package/protocol/types/domains/TezosDomainsReverseRecord.js.map +1 -0
  208. package/protocol/types/fa/TezosFA2BalanceOfRequest.d.ts +4 -0
  209. package/protocol/types/fa/TezosFA2BalanceOfRequest.js +3 -0
  210. package/protocol/types/fa/TezosFA2BalanceOfRequest.js.map +1 -0
  211. package/protocol/types/fa/TezosFA2BalanceOfResponse.d.ts +5 -0
  212. package/protocol/types/fa/TezosFA2BalanceOfResponse.js +3 -0
  213. package/protocol/types/fa/TezosFA2BalanceOfResponse.js.map +1 -0
  214. package/protocol/types/fa/TezosFA2TransferRequest.d.ts +8 -0
  215. package/protocol/types/fa/TezosFA2TransferRequest.js +3 -0
  216. package/protocol/types/fa/TezosFA2TransferRequest.js.map +1 -0
  217. package/protocol/types/fa/TezosFA2UpdateOperatorRequest.d.ts +6 -0
  218. package/protocol/types/fa/TezosFA2UpdateOperatorRequest.js +3 -0
  219. package/protocol/types/fa/TezosFA2UpdateOperatorRequest.js.map +1 -0
  220. package/protocol/types/fa/TezosFATokenMetadata.d.ts +6 -0
  221. package/protocol/types/fa/TezosFATokenMetadata.js +3 -0
  222. package/protocol/types/fa/TezosFATokenMetadata.js.map +1 -0
  223. package/protocol/types/kt/TezosKtAddressCursor.d.ts +4 -0
  224. package/protocol/types/kt/TezosKtAddressCursor.js +3 -0
  225. package/protocol/types/kt/TezosKtAddressCursor.js.map +1 -0
  226. package/protocol/types/kt/TezosKtAddressResult.d.ts +5 -0
  227. package/protocol/types/kt/TezosKtAddressResult.js +3 -0
  228. package/protocol/types/kt/TezosKtAddressResult.js.map +1 -0
  229. package/protocol/types/micheline/MichelineNode.d.ts +15 -0
  230. package/protocol/types/micheline/MichelineNode.js +5 -0
  231. package/protocol/types/micheline/MichelineNode.js.map +1 -0
  232. package/protocol/types/micheline/MichelineNodeUtils.d.ts +6 -0
  233. package/protocol/types/micheline/MichelineNodeUtils.js +40 -0
  234. package/protocol/types/micheline/MichelineNodeUtils.js.map +1 -0
  235. package/protocol/types/michelson/MichelsonType.d.ts +11 -0
  236. package/protocol/types/michelson/MichelsonType.js +22 -0
  237. package/protocol/types/michelson/MichelsonType.js.map +1 -0
  238. package/protocol/types/michelson/MichelsonTypeMeta.d.ts +33 -0
  239. package/protocol/types/michelson/MichelsonTypeMeta.js +132 -0
  240. package/protocol/types/michelson/MichelsonTypeMeta.js.map +1 -0
  241. package/protocol/types/michelson/MichelsonTypeUtils.d.ts +19 -0
  242. package/protocol/types/michelson/MichelsonTypeUtils.js +249 -0
  243. package/protocol/types/michelson/MichelsonTypeUtils.js.map +1 -0
  244. package/protocol/types/michelson/generics/MichelsonList.d.ts +11 -0
  245. package/protocol/types/michelson/generics/MichelsonList.js +68 -0
  246. package/protocol/types/michelson/generics/MichelsonList.js.map +1 -0
  247. package/protocol/types/michelson/generics/MichelsonMap.d.ts +14 -0
  248. package/protocol/types/michelson/generics/MichelsonMap.js +118 -0
  249. package/protocol/types/michelson/generics/MichelsonMap.js.map +1 -0
  250. package/protocol/types/michelson/generics/MichelsonOption.d.ts +25 -0
  251. package/protocol/types/michelson/generics/MichelsonOption.js +119 -0
  252. package/protocol/types/michelson/generics/MichelsonOption.js.map +1 -0
  253. package/protocol/types/michelson/generics/MichelsonOr.d.ts +25 -0
  254. package/protocol/types/michelson/generics/MichelsonOr.js +132 -0
  255. package/protocol/types/michelson/generics/MichelsonOr.js.map +1 -0
  256. package/protocol/types/michelson/generics/MichelsonPair.d.ts +17 -0
  257. package/protocol/types/michelson/generics/MichelsonPair.js +135 -0
  258. package/protocol/types/michelson/generics/MichelsonPair.js.map +1 -0
  259. package/protocol/types/michelson/grammar/MichelsonGrammarData.d.ts +2 -0
  260. package/protocol/types/michelson/grammar/MichelsonGrammarData.js +4 -0
  261. package/protocol/types/michelson/grammar/MichelsonGrammarData.js.map +1 -0
  262. package/protocol/types/michelson/grammar/MichelsonGrammarInstruction.d.ts +1 -0
  263. package/protocol/types/michelson/grammar/MichelsonGrammarInstruction.js +4 -0
  264. package/protocol/types/michelson/grammar/MichelsonGrammarInstruction.js.map +1 -0
  265. package/protocol/types/michelson/grammar/MichelsonGrammarType.d.ts +1 -0
  266. package/protocol/types/michelson/grammar/MichelsonGrammarType.js +4 -0
  267. package/protocol/types/michelson/grammar/MichelsonGrammarType.js.map +1 -0
  268. package/protocol/types/michelson/primitives/MichelsonAddress.d.ts +15 -0
  269. package/protocol/types/michelson/primitives/MichelsonAddress.js +72 -0
  270. package/protocol/types/michelson/primitives/MichelsonAddress.js.map +1 -0
  271. package/protocol/types/michelson/primitives/MichelsonBool.d.ts +12 -0
  272. package/protocol/types/michelson/primitives/MichelsonBool.js +57 -0
  273. package/protocol/types/michelson/primitives/MichelsonBool.js.map +1 -0
  274. package/protocol/types/michelson/primitives/MichelsonBytes.d.ts +14 -0
  275. package/protocol/types/michelson/primitives/MichelsonBytes.js +75 -0
  276. package/protocol/types/michelson/primitives/MichelsonBytes.js.map +1 -0
  277. package/protocol/types/michelson/primitives/MichelsonInt.d.ts +14 -0
  278. package/protocol/types/michelson/primitives/MichelsonInt.js +72 -0
  279. package/protocol/types/michelson/primitives/MichelsonInt.js.map +1 -0
  280. package/protocol/types/michelson/primitives/MichelsonString.d.ts +14 -0
  281. package/protocol/types/michelson/primitives/MichelsonString.js +74 -0
  282. package/protocol/types/michelson/primitives/MichelsonString.js.map +1 -0
  283. package/protocol/types/michelson/primitives/MichelsonUnit.d.ts +9 -0
  284. package/protocol/types/michelson/primitives/MichelsonUnit.js +53 -0
  285. package/protocol/types/michelson/primitives/MichelsonUnit.js.map +1 -0
  286. package/protocol/types/operations/ActivateAccount.d.ts +7 -0
  287. package/protocol/types/operations/ActivateAccount.js +3 -0
  288. package/protocol/types/operations/ActivateAccount.js.map +1 -0
  289. package/protocol/types/operations/Ballot.d.ts +9 -0
  290. package/protocol/types/operations/Ballot.js +3 -0
  291. package/protocol/types/operations/Ballot.js.map +1 -0
  292. package/protocol/types/operations/Delegation.d.ts +11 -0
  293. package/protocol/types/operations/Delegation.js +3 -0
  294. package/protocol/types/operations/Delegation.js.map +1 -0
  295. package/protocol/types/operations/DoubleBakingEvidence.d.ts +8 -0
  296. package/protocol/types/operations/DoubleBakingEvidence.js +3 -0
  297. package/protocol/types/operations/DoubleBakingEvidence.js.map +1 -0
  298. package/protocol/types/operations/DoubleEndorsementEvidence.d.ts +16 -0
  299. package/protocol/types/operations/DoubleEndorsementEvidence.js +3 -0
  300. package/protocol/types/operations/DoubleEndorsementEvidence.js.map +1 -0
  301. package/protocol/types/operations/Endorsement.d.ts +6 -0
  302. package/protocol/types/operations/Endorsement.js +3 -0
  303. package/protocol/types/operations/Endorsement.js.map +1 -0
  304. package/protocol/types/operations/Origination.d.ts +13 -0
  305. package/protocol/types/operations/Origination.js +3 -0
  306. package/protocol/types/operations/Origination.js.map +1 -0
  307. package/protocol/types/operations/Proposal.d.ts +7 -0
  308. package/protocol/types/operations/Proposal.js +3 -0
  309. package/protocol/types/operations/Proposal.js.map +1 -0
  310. package/protocol/types/operations/Reveal.d.ts +11 -0
  311. package/protocol/types/operations/Reveal.js +3 -0
  312. package/protocol/types/operations/Reveal.js.map +1 -0
  313. package/protocol/types/operations/SeedNonceRevelation.d.ts +7 -0
  314. package/protocol/types/operations/SeedNonceRevelation.js +3 -0
  315. package/protocol/types/operations/SeedNonceRevelation.js.map +1 -0
  316. package/protocol/types/operations/TezosOperation.d.ts +4 -0
  317. package/protocol/types/operations/TezosOperation.js +3 -0
  318. package/protocol/types/operations/TezosOperation.js.map +1 -0
  319. package/protocol/types/operations/Transaction.d.ts +23 -0
  320. package/protocol/types/operations/Transaction.js +3 -0
  321. package/protocol/types/operations/Transaction.js.map +1 -0
  322. package/protocol/types/sapling/TezosSaplingAddressCursor.d.ts +4 -0
  323. package/protocol/types/sapling/TezosSaplingAddressCursor.js +3 -0
  324. package/protocol/types/sapling/TezosSaplingAddressCursor.js.map +1 -0
  325. package/protocol/types/sapling/TezosSaplingAddressResult.d.ts +4 -0
  326. package/protocol/types/sapling/TezosSaplingAddressResult.js +3 -0
  327. package/protocol/types/sapling/TezosSaplingAddressResult.js.map +1 -0
  328. package/protocol/types/sapling/TezosSaplingCiphertext.d.ts +8 -0
  329. package/protocol/types/sapling/TezosSaplingCiphertext.js +3 -0
  330. package/protocol/types/sapling/TezosSaplingCiphertext.js.map +1 -0
  331. package/protocol/types/sapling/TezosSaplingInput.d.ts +6 -0
  332. package/protocol/types/sapling/TezosSaplingInput.js +3 -0
  333. package/protocol/types/sapling/TezosSaplingInput.js.map +1 -0
  334. package/protocol/types/sapling/TezosSaplingOutput.d.ts +6 -0
  335. package/protocol/types/sapling/TezosSaplingOutput.js +3 -0
  336. package/protocol/types/sapling/TezosSaplingOutput.js.map +1 -0
  337. package/protocol/types/sapling/TezosSaplingStateDiff.d.ts +6 -0
  338. package/protocol/types/sapling/TezosSaplingStateDiff.js +3 -0
  339. package/protocol/types/sapling/TezosSaplingStateDiff.js.map +1 -0
  340. package/protocol/types/sapling/TezosSaplingStateTree.d.ts +7 -0
  341. package/protocol/types/sapling/TezosSaplingStateTree.js +3 -0
  342. package/protocol/types/sapling/TezosSaplingStateTree.js.map +1 -0
  343. package/protocol/types/sapling/TezosSaplingTransaction.d.ts +23 -0
  344. package/protocol/types/sapling/TezosSaplingTransaction.js +3 -0
  345. package/protocol/types/sapling/TezosSaplingTransaction.js.map +1 -0
  346. package/protocol/types/sapling/TezosSaplingTransactionCursor.d.ts +3 -0
  347. package/protocol/types/sapling/TezosSaplingTransactionCursor.js +3 -0
  348. package/protocol/types/sapling/TezosSaplingTransactionCursor.js.map +1 -0
  349. package/protocol/types/sapling/TezosSaplingTransactionResult.d.ts +6 -0
  350. package/protocol/types/sapling/TezosSaplingTransactionResult.js +3 -0
  351. package/protocol/types/sapling/TezosSaplingTransactionResult.js.map +1 -0
  352. package/protocol/types/utils.d.ts +8 -0
  353. package/protocol/types/utils.js +41 -0
  354. package/protocol/types/utils.js.map +1 -0
  355. package/readme.md +121 -0
  356. package/types/signed-transaction-tezos-sapling.d.ts +3 -0
  357. package/types/signed-transaction-tezos-sapling.js +3 -0
  358. package/types/signed-transaction-tezos-sapling.js.map +1 -0
  359. package/types/signed-transaction-tezos.d.ts +5 -0
  360. package/types/signed-transaction-tezos.js +3 -0
  361. package/types/signed-transaction-tezos.js.map +1 -0
  362. package/types/transaction-tezos.d.ts +14 -0
  363. package/types/transaction-tezos.js +3 -0
  364. package/types/transaction-tezos.js.map +1 -0
  365. package/types/unsigned-transaction-tezos-sapling.d.ts +38 -0
  366. package/types/unsigned-transaction-tezos-sapling.js +3 -0
  367. package/types/unsigned-transaction-tezos-sapling.js.map +1 -0
  368. package/types/unsigned-transaction-tezos.d.ts +8 -0
  369. package/types/unsigned-transaction-tezos.js +3 -0
  370. package/types/unsigned-transaction-tezos.js.map +1 -0
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.TezosSaplingEncoder = void 0;
7
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
8
+ var hex_1 = require("@airgap/coinlib-core/utils/hex");
9
+ // REFACTORME: more generic?
10
+ var TezosSaplingEncoder = /** @class */ (function () {
11
+ function TezosSaplingEncoder() {
12
+ }
13
+ TezosSaplingEncoder.prototype.encodeTransaction = function (transaction) {
14
+ var spendBytes = this.encodeSpendDescriptions(transaction.spendDescriptions);
15
+ var spendEncoded = Buffer.concat([hex_1.toHexBuffer(spendBytes.length, 32), spendBytes]);
16
+ var outBytes = this.encodeOutputDescriptions(transaction.outputDescriptions);
17
+ var outEncoded = Buffer.concat([hex_1.toHexBuffer(outBytes.length, 32), outBytes]);
18
+ var bindingSignatureEncoded = hex_1.hexToBytes(transaction.bindingSignature, 128);
19
+ var balanceEncoded = hex_1.toHexBuffer(transaction.balance, 64, '2sComplement');
20
+ var boundDataBytes = hex_1.hexToBytes(transaction.boundData);
21
+ var boundDataEncoded = Buffer.concat([hex_1.toHexBuffer(boundDataBytes.length, 32), boundDataBytes]);
22
+ return Buffer.concat([
23
+ spendEncoded,
24
+ outEncoded,
25
+ bindingSignatureEncoded,
26
+ balanceEncoded,
27
+ Buffer.from(transaction.root, 'hex'),
28
+ boundDataEncoded
29
+ ]);
30
+ };
31
+ TezosSaplingEncoder.prototype.encodeSpendDescriptions = function (descriptions) {
32
+ return this.encodeDescriptions(descriptions, this.encodeSpendDescription.bind(this));
33
+ };
34
+ TezosSaplingEncoder.prototype.encodeSpendDescription = function (description) {
35
+ return Buffer.concat([description.cv, description.nf, description.rk, description.proof, description.signature]);
36
+ };
37
+ TezosSaplingEncoder.prototype.encodeOutputDescriptions = function (descriptions) {
38
+ return this.encodeDescriptions(descriptions, this.encodeOutputDescription.bind(this));
39
+ };
40
+ TezosSaplingEncoder.prototype.encodeOutputDescription = function (description) {
41
+ var ciphertextBytes = this.encodeCiphertext(description.ciphertext);
42
+ return Buffer.concat([description.cm, description.proof, ciphertextBytes]);
43
+ };
44
+ TezosSaplingEncoder.prototype.encodeDescriptions = function (descriptions, encoder) {
45
+ return Buffer.concat(descriptions.map(encoder));
46
+ };
47
+ TezosSaplingEncoder.prototype.encodeCiphertext = function (ciphertext) {
48
+ var cv = Buffer.from(ciphertext.cv, 'hex');
49
+ var epk = Buffer.from(ciphertext.epk, 'hex');
50
+ var payloadEnc = Buffer.from(ciphertext.payload_enc, 'hex');
51
+ var nonceEnc = Buffer.from(ciphertext.nonce_enc, 'hex');
52
+ var payloadOut = Buffer.from(ciphertext.payload_out, 'hex');
53
+ var nonceOut = Buffer.from(ciphertext.nonce_out, 'hex');
54
+ return Buffer.concat([cv, epk, hex_1.toHexBuffer(payloadEnc.length, 32), payloadEnc, nonceEnc, payloadOut, nonceOut]);
55
+ };
56
+ TezosSaplingEncoder.prototype.decodeTransaction = function (transaction) {
57
+ var spendLength = transaction.readInt32BE(0);
58
+ var spendStart = 4;
59
+ var spendEnd = spendStart + spendLength;
60
+ var spendDescriptions = this.decodeSpendDescriptions(transaction.slice(spendStart, spendEnd));
61
+ var outLength = transaction.readInt32BE(spendEnd);
62
+ var outStart = spendEnd + 4;
63
+ var outEnd = outStart + outLength;
64
+ var outputDescriptions = this.decodeOutputDescriptions(transaction.slice(outStart, outEnd));
65
+ var sigStart = outEnd;
66
+ var sigEnd = sigStart + 64;
67
+ var bindingSignature = transaction.slice(sigStart, sigEnd);
68
+ var balanceStart = sigEnd;
69
+ var balanceEnd = balanceStart + 8;
70
+ var balance = this.decodeBalance(transaction.slice(balanceStart, balanceEnd));
71
+ var rootStart = balanceEnd;
72
+ var rootEnd = rootStart + 32;
73
+ var root = transaction.slice(rootStart, rootEnd).toString('hex');
74
+ var boundDataLength = transaction.readInt32BE(rootEnd);
75
+ var boundDataStart = rootEnd + 4;
76
+ var boundDataEnd = boundDataStart + boundDataLength;
77
+ var boundData = transaction.slice(boundDataStart, boundDataEnd).toString('hex');
78
+ return {
79
+ spendDescriptions: spendDescriptions,
80
+ outputDescriptions: outputDescriptions,
81
+ bindingSignature: bindingSignature,
82
+ balance: balance,
83
+ root: root,
84
+ boundData: boundData
85
+ };
86
+ };
87
+ TezosSaplingEncoder.prototype.decodeSpendDescriptions = function (bytes) {
88
+ return this.decodeDescriptions(bytes, this.decodeSpendDescription.bind(this), this.encodeSpendDescription.bind(this));
89
+ };
90
+ TezosSaplingEncoder.prototype.decodeSpendDescription = function (bytes) {
91
+ return {
92
+ cv: bytes.slice(0, 32) /* 32 bytes */,
93
+ nf: bytes.slice(32, 64) /* 32 bytes */,
94
+ rk: bytes.slice(64, 96) /* 32 bytes */,
95
+ proof: bytes.slice(96, 288) /* 48 + 96 + 48 bytes */,
96
+ signature: bytes.slice(288, 352) /* 64 bytes */
97
+ };
98
+ };
99
+ TezosSaplingEncoder.prototype.decodeOutputDescriptions = function (bytes) {
100
+ return this.decodeDescriptions(bytes, this.decodeOutputDescription.bind(this), this.encodeOutputDescription.bind(this));
101
+ };
102
+ TezosSaplingEncoder.prototype.decodeDescriptions = function (bytes, decoder, encoder) {
103
+ var descriptions = [];
104
+ var next = 0;
105
+ while (next < bytes.length) {
106
+ var decoded = decoder(bytes.slice(next));
107
+ descriptions.push(decoded);
108
+ next += encoder(decoded).length;
109
+ }
110
+ return descriptions;
111
+ };
112
+ TezosSaplingEncoder.prototype.decodeOutputDescription = function (bytes) {
113
+ return {
114
+ cm: bytes.slice(0, 32) /* 32 bytes */,
115
+ proof: bytes.slice(32, 224) /* 48 + 96 + 48 bytes */,
116
+ ciphertext: this.decodeCiphertext(bytes.slice(224))
117
+ };
118
+ };
119
+ TezosSaplingEncoder.prototype.decodeCiphertext = function (bytes) {
120
+ var cv = bytes.slice(0, 32); /* 32 xbytes */
121
+ var epk = bytes.slice(32, 64); /* 32 bytes */
122
+ var payloadEncLength = bytes.readInt32BE(64);
123
+ var payloadEncStart = 68;
124
+ var payloadEncEnd = payloadEncStart + payloadEncLength;
125
+ var payloadEnc = bytes.slice(payloadEncStart, payloadEncEnd);
126
+ var nonceEncStart = payloadEncEnd;
127
+ var nonceEncEnd = nonceEncStart + 24; /* 24 bytes */
128
+ var nonceEnc = bytes.slice(nonceEncStart, nonceEncEnd);
129
+ var payloadOutStart = nonceEncEnd;
130
+ var payloadOutEnd = payloadOutStart + 32 + 32 + 16;
131
+ var payloadOut = bytes.slice(payloadOutStart, payloadOutEnd);
132
+ var nonceOutStart = payloadOutEnd;
133
+ var nonceOutEnd = nonceOutStart + 24; /* 24 bytes */
134
+ var nonceOut = bytes.slice(nonceOutStart, nonceOutEnd);
135
+ return {
136
+ cv: cv.toString('hex'),
137
+ epk: epk.toString('hex'),
138
+ payload_enc: payloadEnc.toString('hex'),
139
+ nonce_enc: nonceEnc.toString('hex'),
140
+ payload_out: payloadOut.toString('hex'),
141
+ nonce_out: nonceOut.toString('hex')
142
+ };
143
+ };
144
+ TezosSaplingEncoder.prototype.decodeBalanceFromTransaction = function (bytes) {
145
+ var transaction = this.decodeTransaction(bytes);
146
+ return transaction.balance;
147
+ };
148
+ TezosSaplingEncoder.prototype.decodeBalance = function (encoded) {
149
+ var hex = encoded.toString('hex');
150
+ var bigNumber = new bignumber_1.default(hex, 16);
151
+ var msb = (parseInt(hex.slice(0, 2), 16) & 0xff) >> 7;
152
+ var isPositive = msb === 0;
153
+ return isPositive ? bigNumber : new bignumber_1.default(2).pow(64).minus(bigNumber).negated();
154
+ };
155
+ return TezosSaplingEncoder;
156
+ }());
157
+ exports.TezosSaplingEncoder = TezosSaplingEncoder;
158
+ //# sourceMappingURL=TezosSaplingEncoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TezosSaplingEncoder.js","sourceRoot":"","sources":["../../../../src/protocol/sapling/utils/TezosSaplingEncoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /// <reference types="node" />
2
+ import { TezosSaplingInput } from '../../types/sapling/TezosSaplingInput';
3
+ import { TezosSaplingOutput } from '../../types/sapling/TezosSaplingOutput';
4
+ import { TezosSaplingStateTree } from '../../types/sapling/TezosSaplingStateTree';
5
+ import { TezosSaplingTransaction } from '../../types/sapling/TezosSaplingTransaction';
6
+ import { TezosSaplingCryptoClient } from '../TezosSaplingCryptoClient';
7
+ import { TezosSaplingExternalMethodProvider } from '../TezosSaplingProtocolOptions';
8
+ import { TezosSaplingEncoder } from './TezosSaplingEncoder';
9
+ import { TezosSaplingState } from './TezosSaplingState';
10
+ export declare class TezosSaplingForger {
11
+ private readonly cryptoClient;
12
+ private readonly state;
13
+ private readonly encoder;
14
+ private readonly externalProvider?;
15
+ constructor(cryptoClient: TezosSaplingCryptoClient, state: TezosSaplingState, encoder: TezosSaplingEncoder, externalProvider?: TezosSaplingExternalMethodProvider | undefined);
16
+ forgeSaplingTransaction(inputs: TezosSaplingInput[], outputs: TezosSaplingOutput[], merkleTree: TezosSaplingStateTree, antiReplay: string, boundData?: string, spendingKey?: Buffer): Promise<TezosSaplingTransaction>;
17
+ private forgeSaplingInputs;
18
+ private forgeSaplingOutputs;
19
+ private createTransactionSighash;
20
+ private createInputSighash;
21
+ private calculateTransactionBalance;
22
+ private withProvingContext;
23
+ private prepareSpendDescription;
24
+ private preparePartialOutputDescription;
25
+ private createBindingSignature;
26
+ }
@@ -0,0 +1,278 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
22
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
23
+ return new (P || (P = Promise))(function (resolve, reject) {
24
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
25
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
26
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
27
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
28
+ });
29
+ };
30
+ var __generator = (this && this.__generator) || function (thisArg, body) {
31
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
32
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
33
+ function verb(n) { return function (v) { return step([n, v]); }; }
34
+ function step(op) {
35
+ if (f) throw new TypeError("Generator is already executing.");
36
+ while (_) try {
37
+ 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;
38
+ if (y = 0, t) op = [op[0] & 2, t.value];
39
+ switch (op[0]) {
40
+ case 0: case 1: t = op; break;
41
+ case 4: _.label++; return { value: op[1], done: false };
42
+ case 5: _.label++; y = op[1]; op = [0]; continue;
43
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
44
+ default:
45
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
46
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
47
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
48
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
49
+ if (t[2]) _.ops.pop();
50
+ _.trys.pop(); continue;
51
+ }
52
+ op = body.call(thisArg, _);
53
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
54
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
55
+ }
56
+ };
57
+ var __importDefault = (this && this.__importDefault) || function (mod) {
58
+ return (mod && mod.__esModule) ? mod : { "default": mod };
59
+ };
60
+ Object.defineProperty(exports, "__esModule", { value: true });
61
+ exports.TezosSaplingForger = void 0;
62
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
63
+ var blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
64
+ var hex_1 = require("@airgap/coinlib-core/utils/hex");
65
+ var sapling = __importStar(require("@airgap/sapling-wasm"));
66
+ var TezosSaplingAddress_1 = require("../TezosSaplingAddress");
67
+ var TezosSaplingForger = /** @class */ (function () {
68
+ function TezosSaplingForger(cryptoClient, state, encoder, externalProvider) {
69
+ this.cryptoClient = cryptoClient;
70
+ this.state = state;
71
+ this.encoder = encoder;
72
+ this.externalProvider = externalProvider;
73
+ }
74
+ TezosSaplingForger.prototype.forgeSaplingTransaction = function (inputs, outputs, merkleTree, antiReplay, boundData, spendingKey) {
75
+ if (boundData === void 0) { boundData = ''; }
76
+ return __awaiter(this, void 0, void 0, function () {
77
+ var _this = this;
78
+ return __generator(this, function (_a) {
79
+ return [2 /*return*/, this.withProvingContext(function (context) { return __awaiter(_this, void 0, void 0, function () {
80
+ var viewingKey, _a, spendDescriptions, _b, outputDescriptions, balance, sighash, bindingSignature;
81
+ return __generator(this, function (_c) {
82
+ switch (_c.label) {
83
+ case 0:
84
+ if (!(spendingKey !== undefined)) return [3 /*break*/, 2];
85
+ return [4 /*yield*/, sapling.getExtendedFullViewingKeyFromSpendingKey(spendingKey)];
86
+ case 1:
87
+ _a = _c.sent();
88
+ return [3 /*break*/, 3];
89
+ case 2:
90
+ _a = undefined;
91
+ _c.label = 3;
92
+ case 3:
93
+ viewingKey = _a;
94
+ if (!(spendingKey !== undefined)) return [3 /*break*/, 5];
95
+ return [4 /*yield*/, this.forgeSaplingInputs(context, spendingKey, inputs, merkleTree, antiReplay)];
96
+ case 4:
97
+ _b = _c.sent();
98
+ return [3 /*break*/, 6];
99
+ case 5:
100
+ _b = [];
101
+ _c.label = 6;
102
+ case 6:
103
+ spendDescriptions = _b;
104
+ return [4 /*yield*/, this.forgeSaplingOutputs(context, viewingKey, outputs)];
105
+ case 7:
106
+ outputDescriptions = _c.sent();
107
+ balance = this.calculateTransactionBalance(inputs, outputs);
108
+ sighash = this.createTransactionSighash(spendDescriptions, outputDescriptions, antiReplay, boundData);
109
+ return [4 /*yield*/, this.createBindingSignature(context, balance.toFixed(), sighash)];
110
+ case 8:
111
+ bindingSignature = _c.sent();
112
+ return [2 /*return*/, {
113
+ spendDescriptions: spendDescriptions,
114
+ outputDescriptions: outputDescriptions,
115
+ bindingSignature: bindingSignature,
116
+ balance: balance,
117
+ root: merkleTree.root,
118
+ boundData: boundData
119
+ }];
120
+ }
121
+ });
122
+ }); })];
123
+ });
124
+ });
125
+ };
126
+ TezosSaplingForger.prototype.forgeSaplingInputs = function (context, spendingKey, inputs, merkleTree, antiReplay) {
127
+ return __awaiter(this, void 0, void 0, function () {
128
+ var ar, descriptions, _i, inputs_1, input, unsignedSpendDescription, _a, _b, sighash, signedSpendDescription;
129
+ return __generator(this, function (_c) {
130
+ switch (_c.label) {
131
+ case 0: return [4 /*yield*/, sapling.randR()];
132
+ case 1:
133
+ ar = _c.sent();
134
+ descriptions = [];
135
+ _i = 0, inputs_1 = inputs;
136
+ _c.label = 2;
137
+ case 2:
138
+ if (!(_i < inputs_1.length)) return [3 /*break*/, 8];
139
+ input = inputs_1[_i];
140
+ _a = this.prepareSpendDescription;
141
+ _b = [context,
142
+ spendingKey];
143
+ return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(input.address)];
144
+ case 3:
145
+ _b = _b.concat([(_c.sent()).raw, input.rcm,
146
+ ar,
147
+ input.value,
148
+ merkleTree.root]);
149
+ return [4 /*yield*/, this.state.getWitness(merkleTree, new bignumber_1.default(input.pos))];
150
+ case 4: return [4 /*yield*/, _a.apply(this, _b.concat([_c.sent()]))];
151
+ case 5:
152
+ unsignedSpendDescription = _c.sent();
153
+ sighash = this.createInputSighash(unsignedSpendDescription, antiReplay);
154
+ return [4 /*yield*/, sapling.signSpendDescription(unsignedSpendDescription, spendingKey, ar, sighash)];
155
+ case 6:
156
+ signedSpendDescription = _c.sent();
157
+ if (signedSpendDescription.spendAuthSig === undefined) {
158
+ throw new Error('Spend signing failed');
159
+ }
160
+ descriptions.push({
161
+ cv: signedSpendDescription.cv,
162
+ nf: signedSpendDescription.nf,
163
+ rk: signedSpendDescription.rk,
164
+ proof: signedSpendDescription.proof,
165
+ signature: signedSpendDescription.spendAuthSig
166
+ });
167
+ _c.label = 7;
168
+ case 7:
169
+ _i++;
170
+ return [3 /*break*/, 2];
171
+ case 8: return [2 /*return*/, descriptions];
172
+ }
173
+ });
174
+ });
175
+ };
176
+ TezosSaplingForger.prototype.forgeSaplingOutputs = function (context, viewingKey, outputs) {
177
+ return __awaiter(this, void 0, void 0, function () {
178
+ var rcm, descriptions, _i, outputs_1, output, esk, outputDescription, _a, _b, ciphertext;
179
+ return __generator(this, function (_c) {
180
+ switch (_c.label) {
181
+ case 0: return [4 /*yield*/, sapling.randR()];
182
+ case 1:
183
+ rcm = _c.sent();
184
+ descriptions = [];
185
+ _i = 0, outputs_1 = outputs;
186
+ _c.label = 2;
187
+ case 2:
188
+ if (!(_i < outputs_1.length)) return [3 /*break*/, 8];
189
+ output = outputs_1[_i];
190
+ return [4 /*yield*/, sapling.randR()];
191
+ case 3:
192
+ esk = _c.sent();
193
+ _a = this.preparePartialOutputDescription;
194
+ _b = [context];
195
+ return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(output.address)];
196
+ case 4: return [4 /*yield*/, _a.apply(this, _b.concat([(_c.sent()).raw, rcm,
197
+ esk,
198
+ output.value]))];
199
+ case 5:
200
+ outputDescription = _c.sent();
201
+ return [4 /*yield*/, this.cryptoClient.encryptCiphertext(output, outputDescription, rcm, esk, output.browsable ? viewingKey : undefined)];
202
+ case 6:
203
+ ciphertext = _c.sent();
204
+ descriptions.push({
205
+ cm: outputDescription.cm,
206
+ proof: outputDescription.proof,
207
+ ciphertext: ciphertext
208
+ });
209
+ _c.label = 7;
210
+ case 7:
211
+ _i++;
212
+ return [3 /*break*/, 2];
213
+ case 8: return [2 /*return*/, descriptions];
214
+ }
215
+ });
216
+ });
217
+ };
218
+ TezosSaplingForger.prototype.createTransactionSighash = function (spends, outputs, antiReplay, boundData) {
219
+ var spendBytes = this.encoder.encodeSpendDescriptions(spends);
220
+ var outputBytes = this.encoder.encodeOutputDescriptions(outputs);
221
+ var boundDataBytes = hex_1.hexToBytes(boundData);
222
+ return Buffer.from(blake2b_1.blake2bAsBytes(Buffer.concat([spendBytes, outputBytes, boundDataBytes]), 256, {
223
+ key: Buffer.from(antiReplay)
224
+ }));
225
+ };
226
+ TezosSaplingForger.prototype.createInputSighash = function (spend, antiReplay) {
227
+ var toSign = Buffer.concat([spend.cv, spend.nf, spend.rk, spend.proof]);
228
+ return Buffer.from(blake2b_1.blake2bAsBytes(toSign, 256, { key: Buffer.from(antiReplay) }));
229
+ };
230
+ TezosSaplingForger.prototype.calculateTransactionBalance = function (inputs, outputs) {
231
+ var spendBalance = inputs.reduce(function (sum, next) { return sum.plus(next.value); }, new bignumber_1.default(0));
232
+ var outBalance = outputs.reduce(function (sum, next) { return sum.plus(next.value); }, new bignumber_1.default(0));
233
+ return spendBalance.minus(outBalance);
234
+ };
235
+ TezosSaplingForger.prototype.withProvingContext = function (action) {
236
+ var _a, _b;
237
+ return __awaiter(this, void 0, void 0, function () {
238
+ var method;
239
+ return __generator(this, function (_c) {
240
+ method = (_b = (_a = this.externalProvider) === null || _a === void 0 ? void 0 : _a.withProvingContext) !== null && _b !== void 0 ? _b : sapling.withProvingContext;
241
+ return [2 /*return*/, method(action)];
242
+ });
243
+ });
244
+ };
245
+ TezosSaplingForger.prototype.prepareSpendDescription = function (context, spendingKey, address, rcm, ar, value, root, merklePath) {
246
+ var _a, _b;
247
+ return __awaiter(this, void 0, void 0, function () {
248
+ var method;
249
+ return __generator(this, function (_c) {
250
+ method = (_b = (_a = this.externalProvider) === null || _a === void 0 ? void 0 : _a.prepareSpendDescription) !== null && _b !== void 0 ? _b : sapling.prepareSpendDescription;
251
+ return [2 /*return*/, method(context, spendingKey, address, rcm, ar, value, root, merklePath)];
252
+ });
253
+ });
254
+ };
255
+ TezosSaplingForger.prototype.preparePartialOutputDescription = function (context, address, rcm, esk, value) {
256
+ var _a, _b;
257
+ return __awaiter(this, void 0, void 0, function () {
258
+ var method;
259
+ return __generator(this, function (_c) {
260
+ method = (_b = (_a = this.externalProvider) === null || _a === void 0 ? void 0 : _a.preparePartialOutputDescription) !== null && _b !== void 0 ? _b : sapling.preparePartialOutputDescription;
261
+ return [2 /*return*/, method(context, address, rcm, esk, value)];
262
+ });
263
+ });
264
+ };
265
+ TezosSaplingForger.prototype.createBindingSignature = function (context, balance, sighash) {
266
+ var _a, _b;
267
+ return __awaiter(this, void 0, void 0, function () {
268
+ var method;
269
+ return __generator(this, function (_c) {
270
+ method = (_b = (_a = this.externalProvider) === null || _a === void 0 ? void 0 : _a.createBindingSignature) !== null && _b !== void 0 ? _b : sapling.createBindingSignature;
271
+ return [2 /*return*/, method(context, balance, sighash)];
272
+ });
273
+ });
274
+ };
275
+ return TezosSaplingForger;
276
+ }());
277
+ exports.TezosSaplingForger = TezosSaplingForger;
278
+ //# sourceMappingURL=TezosSaplingForger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TezosSaplingForger.js","sourceRoot":"","sources":["../../../../src/protocol/sapling/utils/TezosSaplingForger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import BigNumber from '@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber';
2
+ import { TezosSaplingStateDiff } from '../../types/sapling/TezosSaplingStateDiff';
3
+ import { TezosSaplingStateTree } from '../../types/sapling/TezosSaplingStateTree';
4
+ export declare class TezosSaplingState {
5
+ readonly treeHeight: number;
6
+ private readonly uncommitedMerkleHash;
7
+ private readonly uncommitedMerkleHashes;
8
+ private stateTree;
9
+ constructor(treeHeight: number);
10
+ getStateTreeFromStateDiff(saplingStateDiff: TezosSaplingStateDiff, skipConstruction?: boolean): Promise<TezosSaplingStateTree>;
11
+ getWitness(stateTree: TezosSaplingStateTree, position: BigNumber): Promise<string>;
12
+ private constructMerkleTree;
13
+ private verifyMerkleTree;
14
+ private getMerkleHash;
15
+ private createUncommitedMerkleHashes;
16
+ private getNeighboringHashes;
17
+ }