@airgap/substrate 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 (313) hide show
  1. package/LICENSE.md +7 -0
  2. package/airgap-coinlib-substrate.min.js +70760 -0
  3. package/index.d.ts +18 -0
  4. package/index.js +31 -0
  5. package/index.js.map +1 -0
  6. package/package.json +65 -0
  7. package/protocol/SubstrateCryptoClient.d.ts +9 -0
  8. package/protocol/SubstrateCryptoClient.js +98 -0
  9. package/protocol/SubstrateCryptoClient.js.map +1 -0
  10. package/protocol/SubstrateDelegateProtocol.d.ts +31 -0
  11. package/protocol/SubstrateDelegateProtocol.js +562 -0
  12. package/protocol/SubstrateDelegateProtocol.js.map +1 -0
  13. package/protocol/SubstrateNetwork.d.ts +6 -0
  14. package/protocol/SubstrateNetwork.js +11 -0
  15. package/protocol/SubstrateNetwork.js.map +1 -0
  16. package/protocol/SubstrateProtocol.d.ts +88 -0
  17. package/protocol/SubstrateProtocol.js +682 -0
  18. package/protocol/SubstrateProtocol.js.map +1 -0
  19. package/protocol/SubstrateProtocolOptions.d.ts +34 -0
  20. package/protocol/SubstrateProtocolOptions.js +114 -0
  21. package/protocol/SubstrateProtocolOptions.js.map +1 -0
  22. package/protocol/SubstrateTypes.d.ts +14 -0
  23. package/protocol/SubstrateTypes.js +3 -0
  24. package/protocol/SubstrateTypes.js.map +1 -0
  25. package/protocol/astar/AstarAddress.d.ts +6 -0
  26. package/protocol/astar/AstarAddress.js +32 -0
  27. package/protocol/astar/AstarAddress.js.map +1 -0
  28. package/protocol/common/SubstrateAccountController.d.ts +38 -0
  29. package/protocol/common/SubstrateAccountController.js +717 -0
  30. package/protocol/common/SubstrateAccountController.js.map +1 -0
  31. package/protocol/common/SubstrateTransactionController.d.ts +40 -0
  32. package/protocol/common/SubstrateTransactionController.js +382 -0
  33. package/protocol/common/SubstrateTransactionController.js.map +1 -0
  34. package/protocol/common/blockexplorer/SubstrateBlockExplorerClient.d.ts +9 -0
  35. package/protocol/common/blockexplorer/SubstrateBlockExplorerClient.js +111 -0
  36. package/protocol/common/blockexplorer/SubstrateBlockExplorerClient.js.map +1 -0
  37. package/protocol/common/data/account/SubstrateAccountInfo.d.ts +21 -0
  38. package/protocol/common/data/account/SubstrateAccountInfo.js +45 -0
  39. package/protocol/common/data/account/SubstrateAccountInfo.js.map +1 -0
  40. package/protocol/common/data/account/SubstrateAddress.d.ts +21 -0
  41. package/protocol/common/data/account/SubstrateAddress.js +93 -0
  42. package/protocol/common/data/account/SubstrateAddress.js.map +1 -0
  43. package/protocol/common/data/account/SubstrateRegistration.d.ts +35 -0
  44. package/protocol/common/data/account/SubstrateRegistration.js +88 -0
  45. package/protocol/common/data/account/SubstrateRegistration.js.map +1 -0
  46. package/protocol/common/data/metadata/Metadata.d.ts +10 -0
  47. package/protocol/common/data/metadata/Metadata.js +51 -0
  48. package/protocol/common/data/metadata/Metadata.js.map +1 -0
  49. package/protocol/common/data/metadata/MetadataVersioned.d.ts +6 -0
  50. package/protocol/common/data/metadata/MetadataVersioned.js +10 -0
  51. package/protocol/common/data/metadata/MetadataVersioned.js.map +1 -0
  52. package/protocol/common/data/metadata/decorator/MetadataDecorator.d.ts +13 -0
  53. package/protocol/common/data/metadata/decorator/MetadataDecorator.js +29 -0
  54. package/protocol/common/data/metadata/decorator/MetadataDecorator.js.map +1 -0
  55. package/protocol/common/data/metadata/decorator/call/SubstrateCall.d.ts +6 -0
  56. package/protocol/common/data/metadata/decorator/call/SubstrateCall.js +3 -0
  57. package/protocol/common/data/metadata/decorator/call/SubstrateCall.js.map +1 -0
  58. package/protocol/common/data/metadata/decorator/constant/SubstrateConstant.d.ts +7 -0
  59. package/protocol/common/data/metadata/decorator/constant/SubstrateConstant.js +3 -0
  60. package/protocol/common/data/metadata/decorator/constant/SubstrateConstant.js.map +1 -0
  61. package/protocol/common/data/metadata/decorator/storage/SubstrateStorageEntry.d.ts +43 -0
  62. package/protocol/common/data/metadata/decorator/storage/SubstrateStorageEntry.js +265 -0
  63. package/protocol/common/data/metadata/decorator/storage/SubstrateStorageEntry.js.map +1 -0
  64. package/protocol/common/data/metadata/v11/MetadataV11.d.ts +19 -0
  65. package/protocol/common/data/metadata/v11/MetadataV11.js +99 -0
  66. package/protocol/common/data/metadata/v11/MetadataV11.js.map +1 -0
  67. package/protocol/common/data/metadata/v11/module/MetadataV11Call.d.ts +21 -0
  68. package/protocol/common/data/metadata/v11/module/MetadataV11Call.js +63 -0
  69. package/protocol/common/data/metadata/v11/module/MetadataV11Call.js.map +1 -0
  70. package/protocol/common/data/metadata/v11/module/MetadataV11Constant.d.ts +15 -0
  71. package/protocol/common/data/metadata/v11/module/MetadataV11Constant.js +45 -0
  72. package/protocol/common/data/metadata/v11/module/MetadataV11Constant.js.map +1 -0
  73. package/protocol/common/data/metadata/v11/module/MetadataV11Error.d.ts +12 -0
  74. package/protocol/common/data/metadata/v11/module/MetadataV11Error.js +41 -0
  75. package/protocol/common/data/metadata/v11/module/MetadataV11Error.js.map +1 -0
  76. package/protocol/common/data/metadata/v11/module/MetadataV11Event.d.ts +13 -0
  77. package/protocol/common/data/metadata/v11/module/MetadataV11Event.js +43 -0
  78. package/protocol/common/data/metadata/v11/module/MetadataV11Event.js.map +1 -0
  79. package/protocol/common/data/metadata/v11/module/MetadataV11Module.d.ts +23 -0
  80. package/protocol/common/data/metadata/v11/module/MetadataV11Module.js +58 -0
  81. package/protocol/common/data/metadata/v11/module/MetadataV11Module.js.map +1 -0
  82. package/protocol/common/data/metadata/v11/module/storage/MetadataV11Storage.d.ts +13 -0
  83. package/protocol/common/data/metadata/v11/module/storage/MetadataV11Storage.js +42 -0
  84. package/protocol/common/data/metadata/v11/module/storage/MetadataV11Storage.js.map +1 -0
  85. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntry.d.ts +23 -0
  86. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntry.js +53 -0
  87. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntry.js.map +1 -0
  88. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntryType.d.ts +52 -0
  89. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntryType.js +157 -0
  90. package/protocol/common/data/metadata/v11/module/storage/MetadataV11StorageEntryType.js.map +1 -0
  91. package/protocol/common/data/metadata/v12/MetadataV12.d.ts +18 -0
  92. package/protocol/common/data/metadata/v12/MetadataV12.js +95 -0
  93. package/protocol/common/data/metadata/v12/MetadataV12.js.map +1 -0
  94. package/protocol/common/data/metadata/v12/module/MetadataV12Module.d.ts +19 -0
  95. package/protocol/common/data/metadata/v12/module/MetadataV12Module.js +39 -0
  96. package/protocol/common/data/metadata/v12/module/MetadataV12Module.js.map +1 -0
  97. package/protocol/common/data/metadata/v13/MetadataV13.d.ts +18 -0
  98. package/protocol/common/data/metadata/v13/MetadataV13.js +95 -0
  99. package/protocol/common/data/metadata/v13/MetadataV13.js.map +1 -0
  100. package/protocol/common/data/metadata/v13/module/MetadataV13Module.d.ts +25 -0
  101. package/protocol/common/data/metadata/v13/module/MetadataV13Module.js +66 -0
  102. package/protocol/common/data/metadata/v13/module/MetadataV13Module.js.map +1 -0
  103. package/protocol/common/data/metadata/v13/module/storage/MetadataV13Storage.d.ts +13 -0
  104. package/protocol/common/data/metadata/v13/module/storage/MetadataV13Storage.js +42 -0
  105. package/protocol/common/data/metadata/v13/module/storage/MetadataV13Storage.js.map +1 -0
  106. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntry.d.ts +23 -0
  107. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntry.js +53 -0
  108. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntry.js.map +1 -0
  109. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntryType.d.ts +64 -0
  110. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntryType.js +182 -0
  111. package/protocol/common/data/metadata/v13/module/storage/MetadataV13StorageEntryType.js.map +1 -0
  112. package/protocol/common/data/metadata/v14/MetadataV14.d.ts +23 -0
  113. package/protocol/common/data/metadata/v14/MetadataV14.js +113 -0
  114. package/protocol/common/data/metadata/v14/MetadataV14.js.map +1 -0
  115. package/protocol/common/data/metadata/v14/MetadataV14Component.d.ts +8 -0
  116. package/protocol/common/data/metadata/v14/MetadataV14Component.js +29 -0
  117. package/protocol/common/data/metadata/v14/MetadataV14Component.js.map +1 -0
  118. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14Extrinsic.d.ts +14 -0
  119. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14Extrinsic.js +42 -0
  120. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14Extrinsic.js.map +1 -0
  121. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14SignedExtension.d.ts +13 -0
  122. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14SignedExtension.js +41 -0
  123. package/protocol/common/data/metadata/v14/extrinsic/MetadataV14SignedExtension.js.map +1 -0
  124. package/protocol/common/data/metadata/v14/pallet/MetadataV14Call.d.ts +6 -0
  125. package/protocol/common/data/metadata/v14/pallet/MetadataV14Call.js +35 -0
  126. package/protocol/common/data/metadata/v14/pallet/MetadataV14Call.js.map +1 -0
  127. package/protocol/common/data/metadata/v14/pallet/MetadataV14Constant.d.ts +15 -0
  128. package/protocol/common/data/metadata/v14/pallet/MetadataV14Constant.js +44 -0
  129. package/protocol/common/data/metadata/v14/pallet/MetadataV14Constant.js.map +1 -0
  130. package/protocol/common/data/metadata/v14/pallet/MetadataV14Error.d.ts +6 -0
  131. package/protocol/common/data/metadata/v14/pallet/MetadataV14Error.js +35 -0
  132. package/protocol/common/data/metadata/v14/pallet/MetadataV14Error.js.map +1 -0
  133. package/protocol/common/data/metadata/v14/pallet/MetadataV14Event.d.ts +6 -0
  134. package/protocol/common/data/metadata/v14/pallet/MetadataV14Event.js +35 -0
  135. package/protocol/common/data/metadata/v14/pallet/MetadataV14Event.js.map +1 -0
  136. package/protocol/common/data/metadata/v14/pallet/MetadataV14Pallet.d.ts +25 -0
  137. package/protocol/common/data/metadata/v14/pallet/MetadataV14Pallet.js +61 -0
  138. package/protocol/common/data/metadata/v14/pallet/MetadataV14Pallet.js.map +1 -0
  139. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14Storage.d.ts +13 -0
  140. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14Storage.js +41 -0
  141. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14Storage.js.map +1 -0
  142. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntry.d.ts +23 -0
  143. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntry.js +53 -0
  144. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntry.js.map +1 -0
  145. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntryType.d.ts +38 -0
  146. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntryType.js +122 -0
  147. package/protocol/common/data/metadata/v14/pallet/storage/MetadataV14StorageEntryType.js.map +1 -0
  148. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableRegistry.d.ts +15 -0
  149. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableRegistry.js +52 -0
  150. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableRegistry.js.map +1 -0
  151. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableType.d.ts +13 -0
  152. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableType.js +42 -0
  153. package/protocol/common/data/metadata/v14/registry/MetadataV14PortableType.js.map +1 -0
  154. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiField.d.ts +17 -0
  155. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiField.js +45 -0
  156. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiField.js.map +1 -0
  157. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiType.d.ts +17 -0
  158. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiType.js +47 -0
  159. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiType.js.map +1 -0
  160. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiTypeParameter.d.ts +14 -0
  161. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiTypeParameter.js +41 -0
  162. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiTypeParameter.js.map +1 -0
  163. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiVariant.d.ts +17 -0
  164. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiVariant.js +46 -0
  165. package/protocol/common/data/metadata/v14/registry/si/MetadataV14SiVariant.js.map +1 -0
  166. package/protocol/common/data/metadata/v14/registry/si/MetadataV14TypeDef.d.ts +81 -0
  167. package/protocol/common/data/metadata/v14/registry/si/MetadataV14TypeDef.js +255 -0
  168. package/protocol/common/data/metadata/v14/registry/si/MetadataV14TypeDef.js.map +1 -0
  169. package/protocol/common/data/scale/SCALEDecoder.d.ts +49 -0
  170. package/protocol/common/data/scale/SCALEDecoder.js +92 -0
  171. package/protocol/common/data/scale/SCALEDecoder.js.map +1 -0
  172. package/protocol/common/data/scale/type/SCALEAccountId.d.ts +16 -0
  173. package/protocol/common/data/scale/type/SCALEAccountId.js +64 -0
  174. package/protocol/common/data/scale/type/SCALEAccountId.js.map +1 -0
  175. package/protocol/common/data/scale/type/SCALEArray.d.ts +11 -0
  176. package/protocol/common/data/scale/type/SCALEArray.js +63 -0
  177. package/protocol/common/data/scale/type/SCALEArray.js.map +1 -0
  178. package/protocol/common/data/scale/type/SCALEBoolean.d.ts +10 -0
  179. package/protocol/common/data/scale/type/SCALEBoolean.js +46 -0
  180. package/protocol/common/data/scale/type/SCALEBoolean.js.map +1 -0
  181. package/protocol/common/data/scale/type/SCALEBytes.d.ts +11 -0
  182. package/protocol/common/data/scale/type/SCALEBytes.js +61 -0
  183. package/protocol/common/data/scale/type/SCALEBytes.js.map +1 -0
  184. package/protocol/common/data/scale/type/SCALEClass.d.ts +6 -0
  185. package/protocol/common/data/scale/type/SCALEClass.js +32 -0
  186. package/protocol/common/data/scale/type/SCALEClass.js.map +1 -0
  187. package/protocol/common/data/scale/type/SCALECompactInt.d.ts +26 -0
  188. package/protocol/common/data/scale/type/SCALECompactInt.js +129 -0
  189. package/protocol/common/data/scale/type/SCALECompactInt.js.map +1 -0
  190. package/protocol/common/data/scale/type/SCALEData.d.ts +20 -0
  191. package/protocol/common/data/scale/type/SCALEData.js +110 -0
  192. package/protocol/common/data/scale/type/SCALEData.js.map +1 -0
  193. package/protocol/common/data/scale/type/SCALEEnum.d.ts +10 -0
  194. package/protocol/common/data/scale/type/SCALEEnum.js +55 -0
  195. package/protocol/common/data/scale/type/SCALEEnum.js.map +1 -0
  196. package/protocol/common/data/scale/type/SCALEEra.d.ts +21 -0
  197. package/protocol/common/data/scale/type/SCALEEra.js +100 -0
  198. package/protocol/common/data/scale/type/SCALEEra.js.map +1 -0
  199. package/protocol/common/data/scale/type/SCALEHash.d.ts +13 -0
  200. package/protocol/common/data/scale/type/SCALEHash.js +74 -0
  201. package/protocol/common/data/scale/type/SCALEHash.js.map +1 -0
  202. package/protocol/common/data/scale/type/SCALEInt.d.ts +27 -0
  203. package/protocol/common/data/scale/type/SCALEInt.js +96 -0
  204. package/protocol/common/data/scale/type/SCALEInt.js.map +1 -0
  205. package/protocol/common/data/scale/type/SCALEMultiAddress.d.ts +32 -0
  206. package/protocol/common/data/scale/type/SCALEMultiAddress.js +139 -0
  207. package/protocol/common/data/scale/type/SCALEMultiAddress.js.map +1 -0
  208. package/protocol/common/data/scale/type/SCALEOptional.d.ts +17 -0
  209. package/protocol/common/data/scale/type/SCALEOptional.js +70 -0
  210. package/protocol/common/data/scale/type/SCALEOptional.js.map +1 -0
  211. package/protocol/common/data/scale/type/SCALEString.d.ts +13 -0
  212. package/protocol/common/data/scale/type/SCALEString.js +59 -0
  213. package/protocol/common/data/scale/type/SCALEString.js.map +1 -0
  214. package/protocol/common/data/scale/type/SCALETuple.d.ts +13 -0
  215. package/protocol/common/data/scale/type/SCALETuple.js +53 -0
  216. package/protocol/common/data/scale/type/SCALETuple.js.map +1 -0
  217. package/protocol/common/data/scale/type/SCALEType.d.ts +11 -0
  218. package/protocol/common/data/scale/type/SCALEType.js +15 -0
  219. package/protocol/common/data/scale/type/SCALEType.js.map +1 -0
  220. package/protocol/common/data/staking/SubstrateActiveEraInfo.d.ts +9 -0
  221. package/protocol/common/data/staking/SubstrateActiveEraInfo.js +20 -0
  222. package/protocol/common/data/staking/SubstrateActiveEraInfo.js.map +1 -0
  223. package/protocol/common/data/staking/SubstrateEraElectionStatus.d.ts +13 -0
  224. package/protocol/common/data/staking/SubstrateEraElectionStatus.js +27 -0
  225. package/protocol/common/data/staking/SubstrateEraElectionStatus.js.map +1 -0
  226. package/protocol/common/data/staking/SubstrateEraRewardPoints.d.ts +11 -0
  227. package/protocol/common/data/staking/SubstrateEraRewardPoints.js +24 -0
  228. package/protocol/common/data/staking/SubstrateEraRewardPoints.js.map +1 -0
  229. package/protocol/common/data/staking/SubstrateExposure.d.ts +12 -0
  230. package/protocol/common/data/staking/SubstrateExposure.js +26 -0
  231. package/protocol/common/data/staking/SubstrateExposure.js.map +1 -0
  232. package/protocol/common/data/staking/SubstrateNominationStatus.d.ts +5 -0
  233. package/protocol/common/data/staking/SubstrateNominationStatus.js +10 -0
  234. package/protocol/common/data/staking/SubstrateNominationStatus.js.map +1 -0
  235. package/protocol/common/data/staking/SubstrateNominations.d.ts +12 -0
  236. package/protocol/common/data/staking/SubstrateNominations.js +22 -0
  237. package/protocol/common/data/staking/SubstrateNominations.js.map +1 -0
  238. package/protocol/common/data/staking/SubstrateNominatorDetails.d.ts +24 -0
  239. package/protocol/common/data/staking/SubstrateNominatorDetails.js +3 -0
  240. package/protocol/common/data/staking/SubstrateNominatorDetails.js.map +1 -0
  241. package/protocol/common/data/staking/SubstratePayee.d.ts +5 -0
  242. package/protocol/common/data/staking/SubstratePayee.js +10 -0
  243. package/protocol/common/data/staking/SubstratePayee.js.map +1 -0
  244. package/protocol/common/data/staking/SubstrateSlashingSpans.d.ts +11 -0
  245. package/protocol/common/data/staking/SubstrateSlashingSpans.js +24 -0
  246. package/protocol/common/data/staking/SubstrateSlashingSpans.js.map +1 -0
  247. package/protocol/common/data/staking/SubstrateStakingActionType.d.ts +14 -0
  248. package/protocol/common/data/staking/SubstrateStakingActionType.js +19 -0
  249. package/protocol/common/data/staking/SubstrateStakingActionType.js.map +1 -0
  250. package/protocol/common/data/staking/SubstrateStakingLedger.d.ts +15 -0
  251. package/protocol/common/data/staking/SubstrateStakingLedger.js +30 -0
  252. package/protocol/common/data/staking/SubstrateStakingLedger.js.map +1 -0
  253. package/protocol/common/data/staking/SubstrateValidatorDetails.d.ts +16 -0
  254. package/protocol/common/data/staking/SubstrateValidatorDetails.js +3 -0
  255. package/protocol/common/data/staking/SubstrateValidatorDetails.js.map +1 -0
  256. package/protocol/common/data/staking/SubstrateValidatorPrefs.d.ts +7 -0
  257. package/protocol/common/data/staking/SubstrateValidatorPrefs.js +17 -0
  258. package/protocol/common/data/staking/SubstrateValidatorPrefs.js.map +1 -0
  259. package/protocol/common/data/state/SubstrateRuntimeVersion.d.ts +9 -0
  260. package/protocol/common/data/state/SubstrateRuntimeVersion.js +3 -0
  261. package/protocol/common/data/state/SubstrateRuntimeVersion.js.map +1 -0
  262. package/protocol/common/data/transaction/SubstrateSignature.d.ts +22 -0
  263. package/protocol/common/data/transaction/SubstrateSignature.js +71 -0
  264. package/protocol/common/data/transaction/SubstrateSignature.js.map +1 -0
  265. package/protocol/common/data/transaction/SubstrateTransaction.d.ts +72 -0
  266. package/protocol/common/data/transaction/SubstrateTransaction.js +129 -0
  267. package/protocol/common/data/transaction/SubstrateTransaction.js.map +1 -0
  268. package/protocol/common/data/transaction/SubstrateTransactionPayload.d.ts +33 -0
  269. package/protocol/common/data/transaction/SubstrateTransactionPayload.js +91 -0
  270. package/protocol/common/data/transaction/SubstrateTransactionPayload.js.map +1 -0
  271. package/protocol/common/data/transaction/method/SubstrateTransactionMethod.d.ts +18 -0
  272. package/protocol/common/data/transaction/method/SubstrateTransactionMethod.js +82 -0
  273. package/protocol/common/data/transaction/method/SubstrateTransactionMethod.js.map +1 -0
  274. package/protocol/common/data/transaction/method/SubstrateTransactionMethodArgs.d.ts +18 -0
  275. package/protocol/common/data/transaction/method/SubstrateTransactionMethodArgs.js +963 -0
  276. package/protocol/common/data/transaction/method/SubstrateTransactionMethodArgs.js.map +1 -0
  277. package/protocol/common/node/SubstrateNodeClient.d.ts +81 -0
  278. package/protocol/common/node/SubstrateNodeClient.js +560 -0
  279. package/protocol/common/node/SubstrateNodeClient.js.map +1 -0
  280. package/protocol/common/node/supported.d.ts +44 -0
  281. package/protocol/common/node/supported.js +119 -0
  282. package/protocol/common/node/supported.js.map +1 -0
  283. package/protocol/compat/SubstrateCompatAddress.d.ts +40 -0
  284. package/protocol/compat/SubstrateCompatAddress.js +81 -0
  285. package/protocol/compat/SubstrateCompatAddress.js.map +1 -0
  286. package/protocol/compat/SubstrateCompatSignature.d.ts +16 -0
  287. package/protocol/compat/SubstrateCompatSignature.js +34 -0
  288. package/protocol/compat/SubstrateCompatSignature.js.map +1 -0
  289. package/protocol/kusama/KusamaAddress.d.ts +6 -0
  290. package/protocol/kusama/KusamaAddress.js +32 -0
  291. package/protocol/kusama/KusamaAddress.js.map +1 -0
  292. package/protocol/moonbeam/MoonbeamAddress.d.ts +14 -0
  293. package/protocol/moonbeam/MoonbeamAddress.js +75 -0
  294. package/protocol/moonbeam/MoonbeamAddress.js.map +1 -0
  295. package/protocol/moonbeam/MoonbeamSignature.d.ts +10 -0
  296. package/protocol/moonbeam/MoonbeamSignature.js +44 -0
  297. package/protocol/moonbeam/MoonbeamSignature.js.map +1 -0
  298. package/protocol/polkadot/PolkadotAddress.d.ts +6 -0
  299. package/protocol/polkadot/PolkadotAddress.js +32 -0
  300. package/protocol/polkadot/PolkadotAddress.js.map +1 -0
  301. package/readme.md +121 -0
  302. package/types/signed-transaction-substrate.d.ts +3 -0
  303. package/types/signed-transaction-substrate.js +3 -0
  304. package/types/signed-transaction-substrate.js.map +1 -0
  305. package/types/transaction-substrate.d.ts +3 -0
  306. package/types/transaction-substrate.js +3 -0
  307. package/types/transaction-substrate.js.map +1 -0
  308. package/types/unsigned-transaction-substrate.d.ts +8 -0
  309. package/types/unsigned-transaction-substrate.js +3 -0
  310. package/types/unsigned-transaction-substrate.js.map +1 -0
  311. package/utils/sr25519.d.ts +2 -0
  312. package/utils/sr25519.js +99 -0
  313. package/utils/sr25519.js.map +1 -0
@@ -0,0 +1,682 @@
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
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
27
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
28
+ return new (P || (P = Promise))(function (resolve, reject) {
29
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
30
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
31
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
32
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
33
+ });
34
+ };
35
+ var __generator = (this && this.__generator) || function (thisArg, body) {
36
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
37
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
38
+ function verb(n) { return function (v) { return step([n, v]); }; }
39
+ function step(op) {
40
+ if (f) throw new TypeError("Generator is already executing.");
41
+ while (_) try {
42
+ 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;
43
+ if (y = 0, t) op = [op[0] & 2, t.value];
44
+ switch (op[0]) {
45
+ case 0: case 1: t = op; break;
46
+ case 4: _.label++; return { value: op[1], done: false };
47
+ case 5: _.label++; y = op[1]; op = [0]; continue;
48
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
49
+ default:
50
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
51
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
52
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
53
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
54
+ if (t[2]) _.ops.pop();
55
+ _.trys.pop(); continue;
56
+ }
57
+ op = body.call(thisArg, _);
58
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
59
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
60
+ }
61
+ };
62
+ var __importDefault = (this && this.__importDefault) || function (mod) {
63
+ return (mod && mod.__esModule) ? mod : { "default": mod };
64
+ };
65
+ Object.defineProperty(exports, "__esModule", { value: true });
66
+ exports.SubstrateProtocol = void 0;
67
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
68
+ var errors_1 = require("@airgap/coinlib-core/errors");
69
+ var coinlib_error_1 = require("@airgap/coinlib-core/errors/coinlib-error");
70
+ var NonExtendedProtocol_1 = require("@airgap/coinlib-core/protocols/NonExtendedProtocol");
71
+ var SubstrateAddress_1 = require("./common/data/account/SubstrateAddress");
72
+ var SubstrateTransaction_1 = require("./common/data/transaction/SubstrateTransaction");
73
+ var SubstrateCryptoClient_1 = require("./SubstrateCryptoClient");
74
+ var SubstrateProtocol = /** @class */ (function (_super) {
75
+ __extends(SubstrateProtocol, _super);
76
+ function SubstrateProtocol(options) {
77
+ var _this = _super.call(this) || this;
78
+ _this.options = options;
79
+ _this.supportsHD = false;
80
+ _this.addressIsCaseSensitive = true;
81
+ _this.addressValidationPattern = '^5[a-km-zA-HJ-NP-Z1-9]+$';
82
+ _this.addressPlaceholder = "5ABC...";
83
+ _this.cryptoClient = new SubstrateCryptoClient_1.SubstrateCryptoClient();
84
+ return _this;
85
+ }
86
+ SubstrateProtocol.prototype.getSymbol = function () {
87
+ return __awaiter(this, void 0, void 0, function () {
88
+ return __generator(this, function (_a) {
89
+ return [2 /*return*/, this.symbol];
90
+ });
91
+ });
92
+ };
93
+ SubstrateProtocol.prototype.getName = function () {
94
+ return __awaiter(this, void 0, void 0, function () {
95
+ return __generator(this, function (_a) {
96
+ return [2 /*return*/, this.name];
97
+ });
98
+ });
99
+ };
100
+ SubstrateProtocol.prototype.getMarketSymbol = function () {
101
+ return __awaiter(this, void 0, void 0, function () {
102
+ return __generator(this, function (_a) {
103
+ return [2 /*return*/, this.marketSymbol];
104
+ });
105
+ });
106
+ };
107
+ SubstrateProtocol.prototype.getFeeSymbol = function () {
108
+ return __awaiter(this, void 0, void 0, function () {
109
+ return __generator(this, function (_a) {
110
+ return [2 /*return*/, this.feeSymbol];
111
+ });
112
+ });
113
+ };
114
+ SubstrateProtocol.prototype.getDecimals = function () {
115
+ return __awaiter(this, void 0, void 0, function () {
116
+ return __generator(this, function (_a) {
117
+ return [2 /*return*/, this.decimals];
118
+ });
119
+ });
120
+ };
121
+ SubstrateProtocol.prototype.getFeeDecimals = function () {
122
+ return __awaiter(this, void 0, void 0, function () {
123
+ return __generator(this, function (_a) {
124
+ return [2 /*return*/, this.feeDecimals];
125
+ });
126
+ });
127
+ };
128
+ SubstrateProtocol.prototype.getIdentifier = function () {
129
+ return __awaiter(this, void 0, void 0, function () {
130
+ return __generator(this, function (_a) {
131
+ return [2 /*return*/, this.identifier];
132
+ });
133
+ });
134
+ };
135
+ SubstrateProtocol.prototype.getFeeDefaults = function () {
136
+ return __awaiter(this, void 0, void 0, function () {
137
+ return __generator(this, function (_a) {
138
+ return [2 /*return*/, this.feeDefaults];
139
+ });
140
+ });
141
+ };
142
+ SubstrateProtocol.prototype.getUnits = function () {
143
+ return __awaiter(this, void 0, void 0, function () {
144
+ return __generator(this, function (_a) {
145
+ return [2 /*return*/, this.units];
146
+ });
147
+ });
148
+ };
149
+ SubstrateProtocol.prototype.getStandardDerivationPath = function () {
150
+ return __awaiter(this, void 0, void 0, function () {
151
+ return __generator(this, function (_a) {
152
+ return [2 /*return*/, this.standardDerivationPath];
153
+ });
154
+ });
155
+ };
156
+ SubstrateProtocol.prototype.getSupportsHD = function () {
157
+ return __awaiter(this, void 0, void 0, function () {
158
+ return __generator(this, function (_a) {
159
+ return [2 /*return*/, this.supportsHD];
160
+ });
161
+ });
162
+ };
163
+ SubstrateProtocol.prototype.getAddressIsCaseSensitive = function () {
164
+ return __awaiter(this, void 0, void 0, function () {
165
+ return __generator(this, function (_a) {
166
+ return [2 /*return*/, this.addressIsCaseSensitive];
167
+ });
168
+ });
169
+ };
170
+ SubstrateProtocol.prototype.getAddressValidationPattern = function () {
171
+ return __awaiter(this, void 0, void 0, function () {
172
+ return __generator(this, function (_a) {
173
+ return [2 /*return*/, this.addressValidationPattern];
174
+ });
175
+ });
176
+ };
177
+ SubstrateProtocol.prototype.getAddressPlaceholder = function () {
178
+ return __awaiter(this, void 0, void 0, function () {
179
+ return __generator(this, function (_a) {
180
+ return [2 /*return*/, this.addressPlaceholder];
181
+ });
182
+ });
183
+ };
184
+ SubstrateProtocol.prototype.getOptions = function () {
185
+ return __awaiter(this, void 0, void 0, function () {
186
+ return __generator(this, function (_a) {
187
+ return [2 /*return*/, this.options];
188
+ });
189
+ });
190
+ };
191
+ SubstrateProtocol.prototype.getBlockExplorerLinkForAddress = function (address) {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ return __generator(this, function (_a) {
194
+ return [2 /*return*/, this.options.network.blockExplorer.getAddressLink(address)];
195
+ });
196
+ });
197
+ };
198
+ SubstrateProtocol.prototype.getBlockExplorerLinkForTxId = function (txId) {
199
+ return __awaiter(this, void 0, void 0, function () {
200
+ return __generator(this, function (_a) {
201
+ return [2 /*return*/, this.options.network.blockExplorer.getTransactionLink(txId)];
202
+ });
203
+ });
204
+ };
205
+ SubstrateProtocol.prototype.getPublicKeyFromMnemonic = function (mnemonic, derivationPath, password) {
206
+ return __awaiter(this, void 0, void 0, function () {
207
+ var keyPair;
208
+ return __generator(this, function (_a) {
209
+ switch (_a.label) {
210
+ case 0: return [4 /*yield*/, this.options.accountController.createKeyPairFromMnemonic(mnemonic, derivationPath, password)];
211
+ case 1:
212
+ keyPair = _a.sent();
213
+ return [2 /*return*/, keyPair.publicKey.toString('hex')];
214
+ }
215
+ });
216
+ });
217
+ };
218
+ SubstrateProtocol.prototype.getPrivateKeyFromMnemonic = function (mnemonic, derivationPath, password) {
219
+ return __awaiter(this, void 0, void 0, function () {
220
+ var keyPair;
221
+ return __generator(this, function (_a) {
222
+ switch (_a.label) {
223
+ case 0: return [4 /*yield*/, this.options.accountController.createKeyPairFromMnemonic(mnemonic, derivationPath, password)];
224
+ case 1:
225
+ keyPair = _a.sent();
226
+ return [2 /*return*/, keyPair.privateKey.toString('hex')];
227
+ }
228
+ });
229
+ });
230
+ };
231
+ SubstrateProtocol.prototype.getPublicKeyFromHexSecret = function (secret, derivationPath) {
232
+ return __awaiter(this, void 0, void 0, function () {
233
+ var keyPair;
234
+ return __generator(this, function (_a) {
235
+ switch (_a.label) {
236
+ case 0: return [4 /*yield*/, this.options.accountController.createKeyPairFromHexSecret(secret, derivationPath)];
237
+ case 1:
238
+ keyPair = _a.sent();
239
+ return [2 /*return*/, keyPair.publicKey.toString('hex')];
240
+ }
241
+ });
242
+ });
243
+ };
244
+ SubstrateProtocol.prototype.getPrivateKeyFromHexSecret = function (secret, derivationPath) {
245
+ return __awaiter(this, void 0, void 0, function () {
246
+ var keyPair;
247
+ return __generator(this, function (_a) {
248
+ switch (_a.label) {
249
+ case 0: return [4 /*yield*/, this.options.accountController.createKeyPairFromHexSecret(secret, derivationPath)];
250
+ case 1:
251
+ keyPair = _a.sent();
252
+ return [2 /*return*/, keyPair.privateKey.toString('hex')];
253
+ }
254
+ });
255
+ });
256
+ };
257
+ SubstrateProtocol.prototype.getAddressFromPublicKey = function (publicKey, cursor) {
258
+ return __awaiter(this, void 0, void 0, function () {
259
+ var address;
260
+ return __generator(this, function (_a) {
261
+ switch (_a.label) {
262
+ case 0: return [4 /*yield*/, this.options.accountController.createAddressFromPublicKey(publicKey)];
263
+ case 1:
264
+ address = _a.sent();
265
+ return [2 /*return*/, {
266
+ address: address.asString(),
267
+ cursor: { hasNext: false }
268
+ }];
269
+ }
270
+ });
271
+ });
272
+ };
273
+ SubstrateProtocol.prototype.getAddressesFromPublicKey = function (publicKey, cursor) {
274
+ return __awaiter(this, void 0, void 0, function () {
275
+ return __generator(this, function (_a) {
276
+ switch (_a.label) {
277
+ case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey, cursor)];
278
+ case 1: return [2 /*return*/, [_a.sent()]];
279
+ }
280
+ });
281
+ });
282
+ };
283
+ SubstrateProtocol.prototype.getTransactionsFromPublicKey = function (publicKey, limit, cursor) {
284
+ return __awaiter(this, void 0, void 0, function () {
285
+ var addresses;
286
+ return __generator(this, function (_a) {
287
+ switch (_a.label) {
288
+ case 0: return [4 /*yield*/, this.getAddressesFromPublicKey(publicKey).then(function (addresses) {
289
+ return addresses.map(function (address) { return address.address; });
290
+ })];
291
+ case 1:
292
+ addresses = _a.sent();
293
+ return [2 /*return*/, this.getTransactionsFromAddresses(addresses, limit, cursor)];
294
+ }
295
+ });
296
+ });
297
+ };
298
+ SubstrateProtocol.prototype.getTransactionsFromAddresses = function (addresses, limit, cursor) {
299
+ return __awaiter(this, void 0, void 0, function () {
300
+ var txs, transactions;
301
+ var _this = this;
302
+ return __generator(this, function (_a) {
303
+ switch (_a.label) {
304
+ case 0: return [4 /*yield*/, Promise.all(addresses.map(function (address) { return _this.options.blockExplorerClient.getTransactions(address, limit, _this.decimals, cursor); }))];
305
+ case 1:
306
+ txs = _a.sent();
307
+ transactions = txs
308
+ .reduce(function (flatten, toFlatten) { return flatten.concat(toFlatten); }, [])
309
+ .map(function (tx) { return (__assign({ protocolIdentifier: _this.identifier, network: _this.options.network, from: [], to: [], isInbound: false, amount: '', fee: '' }, tx)); });
310
+ return [2 /*return*/, { transactions: transactions, cursor: { page: cursor ? cursor.page + 1 : 1 } }];
311
+ }
312
+ });
313
+ });
314
+ };
315
+ SubstrateProtocol.prototype.signWithPrivateKey = function (privateKey, rawTransaction) {
316
+ return __awaiter(this, void 0, void 0, function () {
317
+ var txs, signed;
318
+ var _this = this;
319
+ return __generator(this, function (_a) {
320
+ switch (_a.label) {
321
+ case 0:
322
+ txs = this.options.transactionController.decodeDetails(rawTransaction.encoded);
323
+ return [4 /*yield*/, Promise.all(txs.map(function (tx) { return _this.options.transactionController.signTransaction(Buffer.from(privateKey, 'hex'), tx.transaction, tx.payload); }))];
324
+ case 1:
325
+ signed = _a.sent();
326
+ txs.forEach(function (tx, index) { return (tx.transaction = signed[index]); });
327
+ return [2 /*return*/, this.options.transactionController.encodeDetails(txs)];
328
+ }
329
+ });
330
+ });
331
+ };
332
+ SubstrateProtocol.prototype.getTransactionDetails = function (transaction) {
333
+ return __awaiter(this, void 0, void 0, function () {
334
+ return __generator(this, function (_a) {
335
+ return [2 /*return*/, this.getTransactionDetailsFromEncoded(transaction.transaction.encoded)];
336
+ });
337
+ });
338
+ };
339
+ SubstrateProtocol.prototype.getTransactionDetailsFromSigned = function (transaction) {
340
+ return __awaiter(this, void 0, void 0, function () {
341
+ return __generator(this, function (_a) {
342
+ return [2 /*return*/, this.getTransactionDetailsFromEncoded(transaction.transaction)];
343
+ });
344
+ });
345
+ };
346
+ SubstrateProtocol.prototype.getBalanceOfAddresses = function (addresses) {
347
+ return __awaiter(this, void 0, void 0, function () {
348
+ var balances, balance;
349
+ var _this = this;
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0: return [4 /*yield*/, Promise.all(addresses.map(function (address) { return _this.options.accountController.getBalance(address); }))];
353
+ case 1:
354
+ balances = _a.sent();
355
+ balance = balances.reduce(function (current, next) { return current.plus(next); });
356
+ return [2 /*return*/, balance.toString(10)];
357
+ }
358
+ });
359
+ });
360
+ };
361
+ SubstrateProtocol.prototype.getAvailableBalanceOfAddresses = function (addresses) {
362
+ return __awaiter(this, void 0, void 0, function () {
363
+ var balances, balance;
364
+ var _this = this;
365
+ return __generator(this, function (_a) {
366
+ switch (_a.label) {
367
+ case 0: return [4 /*yield*/, Promise.all(addresses.map(function (address) { return _this.options.accountController.getTransferableBalance(address, false); }))];
368
+ case 1:
369
+ balances = _a.sent();
370
+ balance = balances.reduce(function (current, next) { return current.plus(next); });
371
+ return [2 /*return*/, balance.toString(10)];
372
+ }
373
+ });
374
+ });
375
+ };
376
+ SubstrateProtocol.prototype.getBalanceOfPublicKey = function (publicKey) {
377
+ return __awaiter(this, void 0, void 0, function () {
378
+ var address;
379
+ return __generator(this, function (_a) {
380
+ switch (_a.label) {
381
+ case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
382
+ case 1:
383
+ address = _a.sent();
384
+ return [2 /*return*/, this.getBalanceOfAddresses([address.address])];
385
+ }
386
+ });
387
+ });
388
+ };
389
+ SubstrateProtocol.prototype.getBalanceOfPublicKeyForSubProtocols = function (publicKey, subProtocols) {
390
+ return __awaiter(this, void 0, void 0, function () {
391
+ return __generator(this, function (_a) {
392
+ throw Promise.reject('get balance of sub protocols not supported');
393
+ });
394
+ });
395
+ };
396
+ SubstrateProtocol.prototype.estimateMaxTransactionValueFromPublicKey = function (publicKey, _recipients, fee, data) {
397
+ return __awaiter(this, void 0, void 0, function () {
398
+ var results, transferableBalance, futureTransactions, feeEstimate, maxAmount;
399
+ return __generator(this, function (_a) {
400
+ switch (_a.label) {
401
+ case 0: return [4 /*yield*/, Promise.all([
402
+ this.options.accountController.getTransferableBalance(publicKey, data === null || data === void 0 ? void 0 : data.excludeExistentialDeposit),
403
+ this.getFutureRequiredTransactions(publicKey, 'transfer')
404
+ ])];
405
+ case 1:
406
+ results = _a.sent();
407
+ transferableBalance = results[0];
408
+ futureTransactions = results[1];
409
+ return [4 /*yield*/, this.options.transactionController.estimateTransactionFees(publicKey, futureTransactions)];
410
+ case 2:
411
+ feeEstimate = _a.sent();
412
+ if (!feeEstimate) {
413
+ return [2 /*return*/, Promise.reject('Could not estimate max value.')];
414
+ }
415
+ maxAmount = transferableBalance.minus(feeEstimate).minus(new bignumber_1.default(fee || 0));
416
+ if (maxAmount.lt(0)) {
417
+ maxAmount = new bignumber_1.default(0);
418
+ }
419
+ return [2 /*return*/, maxAmount.toFixed()];
420
+ }
421
+ });
422
+ });
423
+ };
424
+ SubstrateProtocol.prototype.estimateFeeDefaultsFromPublicKey = function (publicKey, recipients, values, data) {
425
+ return __awaiter(this, void 0, void 0, function () {
426
+ var destination, value, transaction, fee;
427
+ return __generator(this, function (_a) {
428
+ switch (_a.label) {
429
+ case 0:
430
+ destination = recipients[0];
431
+ value = values[0];
432
+ return [4 /*yield*/, this.options.transactionController.createTransaction(SubstrateTransaction_1.SubstrateTransactionType.TRANSFER, publicKey, 0, {
433
+ to: destination && destination.length > 0 ? destination : publicKey,
434
+ value: new bignumber_1.default(value)
435
+ })];
436
+ case 1:
437
+ transaction = _a.sent();
438
+ return [4 /*yield*/, this.options.transactionController.calculateTransactionFee(transaction)];
439
+ case 2:
440
+ fee = _a.sent();
441
+ if (!fee) {
442
+ return [2 /*return*/, Promise.reject('Could not fetch all necessary data.')];
443
+ }
444
+ return [2 /*return*/, {
445
+ low: fee.shiftedBy(-this.feeDecimals).toFixed(),
446
+ medium: fee.shiftedBy(-this.feeDecimals).toFixed(),
447
+ high: fee.shiftedBy(-this.feeDecimals).toFixed()
448
+ }];
449
+ }
450
+ });
451
+ });
452
+ };
453
+ SubstrateProtocol.prototype.prepareTransactionFromPublicKey = function (publicKey, recipients, values, fee, data) {
454
+ return __awaiter(this, void 0, void 0, function () {
455
+ var recipientsWithValues, excludeExistentialDeposit, transferableBalance, totalValue, available, encoded;
456
+ return __generator(this, function (_a) {
457
+ switch (_a.label) {
458
+ case 0:
459
+ if (recipients.length !== values.length) {
460
+ return [2 /*return*/, Promise.reject("Recipients length doesn't match values length.")];
461
+ }
462
+ recipientsWithValues = recipients.map(function (recipient, index) { return [recipient, values[index]]; });
463
+ excludeExistentialDeposit = data === null || data === void 0 ? void 0 : data.excludeExistentialDeposit;
464
+ return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, excludeExistentialDeposit)];
465
+ case 1:
466
+ transferableBalance = _a.sent();
467
+ totalValue = values.map(function (value) { return new bignumber_1.default(value); }).reduce(function (total, next) { return total.plus(next); }, new bignumber_1.default(0));
468
+ available = new bignumber_1.default(transferableBalance).minus(totalValue);
469
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, available, recipientsWithValues.map(function (_a) {
470
+ var recipient = _a[0], value = _a[1];
471
+ return ({
472
+ type: SubstrateTransaction_1.SubstrateTransactionType.TRANSFER,
473
+ tip: 0,
474
+ args: {
475
+ to: recipient,
476
+ value: new bignumber_1.default(value)
477
+ }
478
+ });
479
+ }))];
480
+ case 2:
481
+ encoded = _a.sent();
482
+ return [2 /*return*/, { encoded: encoded }];
483
+ }
484
+ });
485
+ });
486
+ };
487
+ SubstrateProtocol.prototype.broadcastTransaction = function (encoded) {
488
+ var _a;
489
+ return __awaiter(this, void 0, void 0, function () {
490
+ var txs, txHashes;
491
+ var _this = this;
492
+ return __generator(this, function (_b) {
493
+ switch (_b.label) {
494
+ case 0:
495
+ txs = this.options.transactionController
496
+ .decodeDetails(encoded)
497
+ .map(function (tx) { return [tx.runtimeVersion, tx.transaction]; });
498
+ return [4 /*yield*/, Promise.all(txs.map(function (tx) {
499
+ return _this.options.nodeClient.submitTransaction(tx[1].encode({ network: _this.options.network.extras.network, runtimeVersion: tx[0] }));
500
+ })).catch(function (error) {
501
+ throw new errors_1.NetworkError(coinlib_error_1.Domain.SUBSTRATE, error);
502
+ })];
503
+ case 1:
504
+ txHashes = _b.sent();
505
+ return [2 /*return*/, ((_a = txs[0][1]) === null || _a === void 0 ? void 0 : _a.type) !== SubstrateTransaction_1.SubstrateTransactionType.SUBMIT_BATCH ? txHashes[0] : ''];
506
+ }
507
+ });
508
+ });
509
+ };
510
+ SubstrateProtocol.prototype.getFutureRequiredTransactions = function (accountId, intention) {
511
+ return __awaiter(this, void 0, void 0, function () {
512
+ var results, isBonded, isNominating, transferableBalance, stakingBalance, unlockingBalance, isUnbonding, requiredTransactions;
513
+ return __generator(this, function (_a) {
514
+ switch (_a.label) {
515
+ case 0: return [4 /*yield*/, Promise.all([
516
+ this.options.accountController.isBonded(accountId),
517
+ this.options.accountController.isDelegating(accountId),
518
+ this.options.accountController.getTransferableBalance(accountId),
519
+ this.options.accountController.getTransferableBalance(accountId, false, false),
520
+ this.options.accountController.getUnlockingBalance(accountId)
521
+ ])];
522
+ case 1:
523
+ results = _a.sent();
524
+ isBonded = results[0];
525
+ isNominating = results[1];
526
+ transferableBalance = results[2];
527
+ stakingBalance = results[3];
528
+ unlockingBalance = results[4];
529
+ isUnbonding = unlockingBalance.gt(0);
530
+ requiredTransactions = [];
531
+ if (intention === 'transfer') {
532
+ requiredTransactions.push([
533
+ SubstrateTransaction_1.SubstrateTransactionType.TRANSFER,
534
+ {
535
+ to: SubstrateAddress_1.SubstrateAddress.createPlaceholder(),
536
+ value: transferableBalance
537
+ }
538
+ ]);
539
+ }
540
+ if (!isBonded && !isUnbonding && intention === 'delegate') {
541
+ // not delegated & unbond
542
+ requiredTransactions.push([
543
+ SubstrateTransaction_1.SubstrateTransactionType.BOND,
544
+ {
545
+ controller: SubstrateAddress_1.SubstrateAddress.createPlaceholder(),
546
+ value: stakingBalance,
547
+ payee: 0
548
+ }
549
+ ], [
550
+ SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
551
+ {
552
+ targets: [SubstrateAddress_1.SubstrateAddress.createPlaceholder()]
553
+ }
554
+ ], [SubstrateTransaction_1.SubstrateTransactionType.CANCEL_NOMINATION, {}], [
555
+ SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
556
+ {
557
+ value: stakingBalance
558
+ }
559
+ ], [
560
+ SubstrateTransaction_1.SubstrateTransactionType.WITHDRAW_UNBONDED,
561
+ {
562
+ slashingSpansNumber: 0
563
+ }
564
+ ]);
565
+ }
566
+ else if (isUnbonding && intention === 'delegate') {
567
+ requiredTransactions.push([
568
+ SubstrateTransaction_1.SubstrateTransactionType.REBOND,
569
+ {
570
+ value: unlockingBalance
571
+ }
572
+ ], [
573
+ SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
574
+ {
575
+ targets: [SubstrateAddress_1.SubstrateAddress.createPlaceholder()]
576
+ }
577
+ ], [SubstrateTransaction_1.SubstrateTransactionType.CANCEL_NOMINATION, {}], [
578
+ SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
579
+ {
580
+ value: stakingBalance.plus(unlockingBalance)
581
+ }
582
+ ], [
583
+ SubstrateTransaction_1.SubstrateTransactionType.WITHDRAW_UNBONDED,
584
+ {
585
+ slashingSpansNumber: 0
586
+ }
587
+ ]);
588
+ }
589
+ else if (isBonded) {
590
+ requiredTransactions.push([
591
+ SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
592
+ {
593
+ value: stakingBalance
594
+ }
595
+ ], [
596
+ SubstrateTransaction_1.SubstrateTransactionType.WITHDRAW_UNBONDED,
597
+ {
598
+ slashingSpansNumber: 0
599
+ }
600
+ ]);
601
+ }
602
+ if (isNominating) {
603
+ requiredTransactions.push([SubstrateTransaction_1.SubstrateTransactionType.CANCEL_NOMINATION, {}]);
604
+ }
605
+ return [2 /*return*/, requiredTransactions];
606
+ }
607
+ });
608
+ });
609
+ };
610
+ SubstrateProtocol.prototype.getTransactionDetailsFromEncoded = function (encoded) {
611
+ return __awaiter(this, void 0, void 0, function () {
612
+ var txs;
613
+ var _this = this;
614
+ return __generator(this, function (_a) {
615
+ txs = this.options.transactionController.decodeDetails(encoded);
616
+ return [2 /*return*/, txs
617
+ .map(function (tx) {
618
+ return tx.transaction.toAirGapTransactions().map(function (part) { return (__assign({ from: [], to: [], amount: '', fee: tx.fee.toString(), protocolIdentifier: _this.identifier, network: _this.options.network, isInbound: false }, part)); });
619
+ })
620
+ .reduce(function (flatten, toFlatten) { return flatten.concat(toFlatten); }, [])];
621
+ });
622
+ });
623
+ };
624
+ SubstrateProtocol.prototype.signMessage = function (message, keypair) {
625
+ return __awaiter(this, void 0, void 0, function () {
626
+ return __generator(this, function (_a) {
627
+ return [2 /*return*/, this.cryptoClient.signMessage(message, keypair)];
628
+ });
629
+ });
630
+ };
631
+ SubstrateProtocol.prototype.verifyMessage = function (message, signature, publicKey) {
632
+ return __awaiter(this, void 0, void 0, function () {
633
+ return __generator(this, function (_a) {
634
+ return [2 /*return*/, this.cryptoClient.verifyMessage(message, signature, publicKey)];
635
+ });
636
+ });
637
+ };
638
+ SubstrateProtocol.prototype.encryptAsymmetric = function (message, publicKey) {
639
+ return __awaiter(this, void 0, void 0, function () {
640
+ return __generator(this, function (_a) {
641
+ return [2 /*return*/, this.cryptoClient.encryptAsymmetric(message, publicKey)];
642
+ });
643
+ });
644
+ };
645
+ SubstrateProtocol.prototype.decryptAsymmetric = function (message, keypair) {
646
+ return __awaiter(this, void 0, void 0, function () {
647
+ return __generator(this, function (_a) {
648
+ return [2 /*return*/, this.cryptoClient.decryptAsymmetric(message, keypair)];
649
+ });
650
+ });
651
+ };
652
+ SubstrateProtocol.prototype.encryptAES = function (message, privateKey) {
653
+ return __awaiter(this, void 0, void 0, function () {
654
+ var key;
655
+ return __generator(this, function (_a) {
656
+ key = Buffer.from(privateKey, 'hex').slice(0, 32) // Substrate key is 32 bytes key + 32 bytes nonce
657
+ ;
658
+ return [2 /*return*/, this.cryptoClient.encryptAES(message, key.toString('hex'))];
659
+ });
660
+ });
661
+ };
662
+ SubstrateProtocol.prototype.decryptAES = function (message, privateKey) {
663
+ return __awaiter(this, void 0, void 0, function () {
664
+ var key;
665
+ return __generator(this, function (_a) {
666
+ key = Buffer.from(privateKey, 'hex').slice(0, 32) // Substrate key is 32 bytes key + 32 bytes nonce
667
+ ;
668
+ return [2 /*return*/, this.cryptoClient.decryptAES(message, key.toString('hex'))];
669
+ });
670
+ });
671
+ };
672
+ SubstrateProtocol.prototype.getTransactionStatuses = function (transactionHashes) {
673
+ return __awaiter(this, void 0, void 0, function () {
674
+ return __generator(this, function (_a) {
675
+ return [2 /*return*/, Promise.reject('Transaction status not implemented')];
676
+ });
677
+ });
678
+ };
679
+ return SubstrateProtocol;
680
+ }(NonExtendedProtocol_1.NonExtendedProtocol));
681
+ exports.SubstrateProtocol = SubstrateProtocol;
682
+ //# sourceMappingURL=SubstrateProtocol.js.map