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

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