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

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 (395) 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 +94 -23
  5. package/v0/protocol/SubstrateCryptoClient.js.map +1 -1
  6. package/v0/protocol/SubstrateDelegateProtocol.js +542 -297
  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 +672 -333
  11. package/v0/protocol/SubstrateProtocol.js.map +1 -1
  12. package/v0/protocol/SubstrateProtocolOptions.js +93 -25
  13. package/v0/protocol/SubstrateProtocolOptions.js.map +1 -1
  14. package/v0/protocol/astar/AstarAddress.js +27 -7
  15. package/v0/protocol/astar/AstarAddress.js.map +1 -1
  16. package/v0/protocol/common/SubstrateAccountController.js +687 -400
  17. package/v0/protocol/common/SubstrateAccountController.js.map +1 -1
  18. package/v0/protocol/common/SubstrateTransactionController.d.ts +1 -0
  19. package/v0/protocol/common/SubstrateTransactionController.js +346 -185
  20. package/v0/protocol/common/SubstrateTransactionController.js.map +1 -1
  21. package/v0/protocol/common/blockexplorer/SubstrateBlockExplorerClient.js +100 -52
  22. package/v0/protocol/common/blockexplorer/SubstrateBlockExplorerClient.js.map +1 -1
  23. package/v0/protocol/common/data/account/SubstrateAccountInfo.js +29 -27
  24. package/v0/protocol/common/data/account/SubstrateAccountInfo.js.map +1 -1
  25. package/v0/protocol/common/data/account/SubstrateAddress.d.ts +1 -0
  26. package/v0/protocol/common/data/account/SubstrateAddress.js +46 -43
  27. package/v0/protocol/common/data/account/SubstrateAddress.js.map +1 -1
  28. package/v0/protocol/common/data/account/SubstrateRegistration.js +56 -50
  29. package/v0/protocol/common/data/account/SubstrateRegistration.js.map +1 -1
  30. package/v0/protocol/common/data/metadata/Metadata.js +25 -24
  31. package/v0/protocol/common/data/metadata/Metadata.js.map +1 -1
  32. package/v0/protocol/common/data/metadata/MetadataVersioned.js +5 -2
  33. package/v0/protocol/common/data/metadata/MetadataVersioned.js.map +1 -1
  34. package/v0/protocol/common/data/metadata/decorator/MetadataDecorator.js +20 -18
  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 +1 -0
  37. package/v0/protocol/common/data/metadata/decorator/storage/SubstrateStorageEntry.js +237 -89
  38. package/v0/protocol/common/data/metadata/decorator/storage/SubstrateStorageEntry.js.map +1 -1
  39. package/v0/protocol/common/data/metadata/v11/MetadataV11.js +63 -43
  40. package/v0/protocol/common/data/metadata/v11/MetadataV11.js.map +1 -1
  41. package/v0/protocol/common/data/metadata/v11/module/MetadataV11Call.js +51 -30
  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 +38 -20
  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 +34 -16
  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 +36 -18
  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 +51 -29
  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 +35 -17
  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 +41 -23
  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 +114 -72
  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 +61 -41
  58. package/v0/protocol/common/data/metadata/v12/MetadataV12.js.map +1 -1
  59. package/v0/protocol/common/data/metadata/v12/module/MetadataV12Module.js +32 -14
  60. package/v0/protocol/common/data/metadata/v12/module/MetadataV12Module.js.map +1 -1
  61. package/v0/protocol/common/data/metadata/v13/MetadataV13.js +61 -41
  62. package/v0/protocol/common/data/metadata/v13/MetadataV13.js.map +1 -1
  63. package/v0/protocol/common/data/metadata/v13/module/MetadataV13Module.js +53 -31
  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 +35 -17
  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 +41 -23
  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 +130 -83
  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 +74 -53
  72. package/v0/protocol/common/data/metadata/v14/MetadataV14.js.map +1 -1
  73. package/v0/protocol/common/data/metadata/v14/MetadataV14Component.js +25 -7
  74. package/v0/protocol/common/data/metadata/v14/MetadataV14Component.js.map +1 -1
  75. package/v0/protocol/common/data/metadata/v14/extrinsic/MetadataV14Extrinsic.js +35 -17
  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 +34 -16
  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 +28 -8
  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 +37 -19
  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 +28 -8
  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 +28 -8
  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 +48 -30
  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 +34 -16
  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 +41 -23
  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 +90 -49
  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 +41 -20
  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 +35 -17
  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 +38 -20
  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 +40 -22
  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 +34 -16
  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 +39 -21
  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 +150 -106
  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 +3 -2
  110. package/v0/protocol/common/data/scale/SCALEDecoder.js +74 -69
  111. package/v0/protocol/common/data/scale/SCALEDecoder.js.map +1 -1
  112. package/v0/protocol/common/data/scale/type/SCALEAccountId.d.ts +1 -0
  113. package/v0/protocol/common/data/scale/type/SCALEAccountId.js +44 -25
  114. package/v0/protocol/common/data/scale/type/SCALEAccountId.js.map +1 -1
  115. package/v0/protocol/common/data/scale/type/SCALEArray.js +45 -27
  116. package/v0/protocol/common/data/scale/type/SCALEArray.js.map +1 -1
  117. package/v0/protocol/common/data/scale/type/SCALEBoolean.js +36 -18
  118. package/v0/protocol/common/data/scale/type/SCALEBoolean.js.map +1 -1
  119. package/v0/protocol/common/data/scale/type/SCALEBytes.d.ts +1 -0
  120. package/v0/protocol/common/data/scale/type/SCALEBytes.js +42 -23
  121. package/v0/protocol/common/data/scale/type/SCALEBytes.js.map +1 -1
  122. package/v0/protocol/common/data/scale/type/SCALEClass.js +28 -8
  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 +73 -54
  126. package/v0/protocol/common/data/scale/type/SCALECompactInt.js.map +1 -1
  127. package/v0/protocol/common/data/scale/type/SCALEData.d.ts +1 -0
  128. package/v0/protocol/common/data/scale/type/SCALEData.js +51 -33
  129. package/v0/protocol/common/data/scale/type/SCALEData.js.map +1 -1
  130. package/v0/protocol/common/data/scale/type/SCALEEnum.js +39 -21
  131. package/v0/protocol/common/data/scale/type/SCALEEnum.js.map +1 -1
  132. package/v0/protocol/common/data/scale/type/SCALEEra.js +68 -46
  133. package/v0/protocol/common/data/scale/type/SCALEEra.js.map +1 -1
  134. package/v0/protocol/common/data/scale/type/SCALEHash.d.ts +1 -0
  135. package/v0/protocol/common/data/scale/type/SCALEHash.js +53 -29
  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 +65 -46
  139. package/v0/protocol/common/data/scale/type/SCALEInt.js.map +1 -1
  140. package/v0/protocol/common/data/scale/type/SCALEMultiAddress.d.ts +2 -1
  141. package/v0/protocol/common/data/scale/type/SCALEMultiAddress.js +59 -40
  142. package/v0/protocol/common/data/scale/type/SCALEMultiAddress.js.map +1 -1
  143. package/v0/protocol/common/data/scale/type/SCALEOptional.js +47 -27
  144. package/v0/protocol/common/data/scale/type/SCALEOptional.js.map +1 -1
  145. package/v0/protocol/common/data/scale/type/SCALEString.js +44 -25
  146. package/v0/protocol/common/data/scale/type/SCALEString.js.map +1 -1
  147. package/v0/protocol/common/data/scale/type/SCALETuple.js +40 -22
  148. package/v0/protocol/common/data/scale/type/SCALETuple.js.map +1 -1
  149. package/v0/protocol/common/data/scale/type/SCALEType.js +9 -6
  150. package/v0/protocol/common/data/scale/type/SCALEType.js.map +1 -1
  151. package/v0/protocol/common/data/staking/SubstrateActiveEraInfo.js +12 -11
  152. package/v0/protocol/common/data/staking/SubstrateActiveEraInfo.js.map +1 -1
  153. package/v0/protocol/common/data/staking/SubstrateEraElectionStatus.js +15 -14
  154. package/v0/protocol/common/data/staking/SubstrateEraElectionStatus.js.map +1 -1
  155. package/v0/protocol/common/data/staking/SubstrateEraRewardPoints.js +16 -13
  156. package/v0/protocol/common/data/staking/SubstrateEraRewardPoints.js.map +1 -1
  157. package/v0/protocol/common/data/staking/SubstrateExposure.js +17 -14
  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 +13 -12
  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 +14 -13
  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 +19 -16
  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 +10 -9
  174. package/v0/protocol/common/data/staking/SubstrateValidatorPrefs.js.map +1 -1
  175. package/v0/protocol/common/data/transaction/SubstrateSignature.d.ts +1 -0
  176. package/v0/protocol/common/data/transaction/SubstrateSignature.js +53 -30
  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 +73 -53
  180. package/v0/protocol/common/data/transaction/SubstrateTransaction.js.map +1 -1
  181. package/v0/protocol/common/data/transaction/SubstrateTransactionPayload.js +76 -44
  182. package/v0/protocol/common/data/transaction/SubstrateTransactionPayload.js.map +1 -1
  183. package/v0/protocol/common/data/transaction/method/SubstrateTransactionMethod.js +76 -40
  184. package/v0/protocol/common/data/transaction/method/SubstrateTransactionMethod.js.map +1 -1
  185. package/v0/protocol/common/data/transaction/method/SubstrateTransactionMethodArgs.js +631 -360
  186. package/v0/protocol/common/data/transaction/method/SubstrateTransactionMethodArgs.js.map +1 -1
  187. package/v0/protocol/common/node/SubstrateNodeClient.js +533 -226
  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 +2 -1
  193. package/v0/protocol/compat/SubstrateCompatAddress.js +30 -17
  194. package/v0/protocol/compat/SubstrateCompatAddress.js.map +1 -1
  195. package/v0/protocol/compat/SubstrateCompatSignature.d.ts +1 -0
  196. package/v0/protocol/compat/SubstrateCompatSignature.js +5 -4
  197. package/v0/protocol/compat/SubstrateCompatSignature.js.map +1 -1
  198. package/v0/protocol/kusama/KusamaAddress.js +27 -7
  199. package/v0/protocol/kusama/KusamaAddress.js.map +1 -1
  200. package/v0/protocol/moonbeam/MoonbeamAddress.d.ts +1 -0
  201. package/v0/protocol/moonbeam/MoonbeamAddress.js +36 -45
  202. package/v0/protocol/moonbeam/MoonbeamAddress.js.map +1 -1
  203. package/v0/protocol/moonbeam/MoonbeamSignature.d.ts +1 -0
  204. package/v0/protocol/moonbeam/MoonbeamSignature.js +35 -16
  205. package/v0/protocol/moonbeam/MoonbeamSignature.js.map +1 -1
  206. package/v0/protocol/polkadot/PolkadotAddress.js +27 -7
  207. package/v0/protocol/polkadot/PolkadotAddress.js.map +1 -1
  208. package/v0/serializer/validators/transaction-validator.js +83 -30
  209. package/v0/serializer/validators/transaction-validator.js.map +1 -1
  210. package/v0/serializer/validators/validators.js +133 -54
  211. package/v0/serializer/validators/validators.js.map +1 -1
  212. package/v0/utils/sr25519.js +74 -26
  213. package/v0/utils/sr25519.js.map +1 -1
  214. package/v1/block-explorer/subscan/SubscanBlockExplorer.js +61 -12
  215. package/v1/block-explorer/subscan/SubscanBlockExplorer.js.map +1 -1
  216. package/v1/block-explorer/subscan/SubscanBlockExplorerClient.js +103 -55
  217. package/v1/block-explorer/subscan/SubscanBlockExplorerClient.js.map +1 -1
  218. package/v1/controller/account/SubstrateCommonAccountController.js +132 -65
  219. package/v1/controller/account/SubstrateCommonAccountController.js.map +1 -1
  220. package/v1/controller/transaction/SubstrateCommonTransactionController.js +356 -194
  221. package/v1/controller/transaction/SubstrateCommonTransactionController.js.map +1 -1
  222. package/v1/crypto/SubstrateCryptoClient.js +94 -23
  223. package/v1/crypto/SubstrateCryptoClient.js.map +1 -1
  224. package/v1/data/account/SubstrateAccountInfo.js +29 -27
  225. package/v1/data/account/SubstrateAccountInfo.js.map +1 -1
  226. package/v1/data/account/SubstrateRegistration.js +56 -50
  227. package/v1/data/account/SubstrateRegistration.js.map +1 -1
  228. package/v1/data/account/address/SubstrateAddress.d.ts +2 -1
  229. package/v1/data/account/address/SubstrateAddress.js +3 -2
  230. package/v1/data/account/address/SubstrateAddress.js.map +1 -1
  231. package/v1/data/account/address/SubstrateAddressFactory.d.ts +3 -2
  232. package/v1/data/account/address/SubstrateAddressFactory.js +23 -16
  233. package/v1/data/account/address/SubstrateAddressFactory.js.map +1 -1
  234. package/v1/data/account/address/SubstrateEthAddress.d.ts +1 -0
  235. package/v1/data/account/address/SubstrateEthAddress.js +39 -48
  236. package/v1/data/account/address/SubstrateEthAddress.js.map +1 -1
  237. package/v1/data/account/address/SubstrateSS58Address.d.ts +1 -0
  238. package/v1/data/account/address/SubstrateSS58Address.js +50 -47
  239. package/v1/data/account/address/SubstrateSS58Address.js.map +1 -1
  240. package/v1/data/metadata/Metadata.js +25 -24
  241. package/v1/data/metadata/Metadata.js.map +1 -1
  242. package/v1/data/metadata/MetadataVersioned.js +5 -2
  243. package/v1/data/metadata/MetadataVersioned.js.map +1 -1
  244. package/v1/data/metadata/decorator/MetadataDecorator.js +20 -18
  245. package/v1/data/metadata/decorator/MetadataDecorator.js.map +1 -1
  246. package/v1/data/metadata/decorator/constant/SubstrateConstant.d.ts +1 -0
  247. package/v1/data/metadata/decorator/storage/SubstrateStorageEntry.js +237 -89
  248. package/v1/data/metadata/decorator/storage/SubstrateStorageEntry.js.map +1 -1
  249. package/v1/data/metadata/v11/MetadataV11.js +63 -43
  250. package/v1/data/metadata/v11/MetadataV11.js.map +1 -1
  251. package/v1/data/metadata/v11/module/MetadataV11Call.js +51 -30
  252. package/v1/data/metadata/v11/module/MetadataV11Call.js.map +1 -1
  253. package/v1/data/metadata/v11/module/MetadataV11Constant.js +38 -20
  254. package/v1/data/metadata/v11/module/MetadataV11Constant.js.map +1 -1
  255. package/v1/data/metadata/v11/module/MetadataV11Error.js +34 -16
  256. package/v1/data/metadata/v11/module/MetadataV11Error.js.map +1 -1
  257. package/v1/data/metadata/v11/module/MetadataV11Event.js +36 -18
  258. package/v1/data/metadata/v11/module/MetadataV11Event.js.map +1 -1
  259. package/v1/data/metadata/v11/module/MetadataV11Module.js +51 -29
  260. package/v1/data/metadata/v11/module/MetadataV11Module.js.map +1 -1
  261. package/v1/data/metadata/v11/module/storage/MetadataV11Storage.js +35 -17
  262. package/v1/data/metadata/v11/module/storage/MetadataV11Storage.js.map +1 -1
  263. package/v1/data/metadata/v11/module/storage/MetadataV11StorageEntry.js +41 -23
  264. package/v1/data/metadata/v11/module/storage/MetadataV11StorageEntry.js.map +1 -1
  265. package/v1/data/metadata/v11/module/storage/MetadataV11StorageEntryType.js +114 -72
  266. package/v1/data/metadata/v11/module/storage/MetadataV11StorageEntryType.js.map +1 -1
  267. package/v1/data/metadata/v12/MetadataV12.js +61 -41
  268. package/v1/data/metadata/v12/MetadataV12.js.map +1 -1
  269. package/v1/data/metadata/v12/module/MetadataV12Module.js +32 -14
  270. package/v1/data/metadata/v12/module/MetadataV12Module.js.map +1 -1
  271. package/v1/data/metadata/v13/MetadataV13.js +61 -41
  272. package/v1/data/metadata/v13/MetadataV13.js.map +1 -1
  273. package/v1/data/metadata/v13/module/MetadataV13Module.js +53 -31
  274. package/v1/data/metadata/v13/module/MetadataV13Module.js.map +1 -1
  275. package/v1/data/metadata/v13/module/storage/MetadataV13Storage.js +35 -17
  276. package/v1/data/metadata/v13/module/storage/MetadataV13Storage.js.map +1 -1
  277. package/v1/data/metadata/v13/module/storage/MetadataV13StorageEntry.js +41 -23
  278. package/v1/data/metadata/v13/module/storage/MetadataV13StorageEntry.js.map +1 -1
  279. package/v1/data/metadata/v13/module/storage/MetadataV13StorageEntryType.js +130 -83
  280. package/v1/data/metadata/v13/module/storage/MetadataV13StorageEntryType.js.map +1 -1
  281. package/v1/data/metadata/v14/MetadataV14.js +74 -53
  282. package/v1/data/metadata/v14/MetadataV14.js.map +1 -1
  283. package/v1/data/metadata/v14/MetadataV14Component.js +25 -7
  284. package/v1/data/metadata/v14/MetadataV14Component.js.map +1 -1
  285. package/v1/data/metadata/v14/extrinsic/MetadataV14Extrinsic.js +35 -17
  286. package/v1/data/metadata/v14/extrinsic/MetadataV14Extrinsic.js.map +1 -1
  287. package/v1/data/metadata/v14/extrinsic/MetadataV14SignedExtension.js +34 -16
  288. package/v1/data/metadata/v14/extrinsic/MetadataV14SignedExtension.js.map +1 -1
  289. package/v1/data/metadata/v14/pallet/MetadataV14Call.js +28 -8
  290. package/v1/data/metadata/v14/pallet/MetadataV14Call.js.map +1 -1
  291. package/v1/data/metadata/v14/pallet/MetadataV14Constant.js +37 -19
  292. package/v1/data/metadata/v14/pallet/MetadataV14Constant.js.map +1 -1
  293. package/v1/data/metadata/v14/pallet/MetadataV14Error.js +28 -8
  294. package/v1/data/metadata/v14/pallet/MetadataV14Error.js.map +1 -1
  295. package/v1/data/metadata/v14/pallet/MetadataV14Event.js +28 -8
  296. package/v1/data/metadata/v14/pallet/MetadataV14Event.js.map +1 -1
  297. package/v1/data/metadata/v14/pallet/MetadataV14Pallet.js +48 -30
  298. package/v1/data/metadata/v14/pallet/MetadataV14Pallet.js.map +1 -1
  299. package/v1/data/metadata/v14/pallet/storage/MetadataV14Storage.js +34 -16
  300. package/v1/data/metadata/v14/pallet/storage/MetadataV14Storage.js.map +1 -1
  301. package/v1/data/metadata/v14/pallet/storage/MetadataV14StorageEntry.js +41 -23
  302. package/v1/data/metadata/v14/pallet/storage/MetadataV14StorageEntry.js.map +1 -1
  303. package/v1/data/metadata/v14/pallet/storage/MetadataV14StorageEntryType.js +90 -49
  304. package/v1/data/metadata/v14/pallet/storage/MetadataV14StorageEntryType.js.map +1 -1
  305. package/v1/data/metadata/v14/registry/MetadataV14PortableRegistry.js +41 -20
  306. package/v1/data/metadata/v14/registry/MetadataV14PortableRegistry.js.map +1 -1
  307. package/v1/data/metadata/v14/registry/MetadataV14PortableType.js +35 -17
  308. package/v1/data/metadata/v14/registry/MetadataV14PortableType.js.map +1 -1
  309. package/v1/data/metadata/v14/registry/si/MetadataV14SiField.js +38 -20
  310. package/v1/data/metadata/v14/registry/si/MetadataV14SiField.js.map +1 -1
  311. package/v1/data/metadata/v14/registry/si/MetadataV14SiType.js +40 -22
  312. package/v1/data/metadata/v14/registry/si/MetadataV14SiType.js.map +1 -1
  313. package/v1/data/metadata/v14/registry/si/MetadataV14SiTypeParameter.js +34 -16
  314. package/v1/data/metadata/v14/registry/si/MetadataV14SiTypeParameter.js.map +1 -1
  315. package/v1/data/metadata/v14/registry/si/MetadataV14SiVariant.js +39 -21
  316. package/v1/data/metadata/v14/registry/si/MetadataV14SiVariant.js.map +1 -1
  317. package/v1/data/metadata/v14/registry/si/MetadataV14TypeDef.js +150 -106
  318. package/v1/data/metadata/v14/registry/si/MetadataV14TypeDef.js.map +1 -1
  319. package/v1/data/scale/SCALEDecoder.d.ts +3 -2
  320. package/v1/data/scale/SCALEDecoder.js +80 -69
  321. package/v1/data/scale/SCALEDecoder.js.map +1 -1
  322. package/v1/data/scale/type/SCALEAccountId.d.ts +1 -0
  323. package/v1/data/scale/type/SCALEAccountId.js +46 -27
  324. package/v1/data/scale/type/SCALEAccountId.js.map +1 -1
  325. package/v1/data/scale/type/SCALEArray.js +45 -27
  326. package/v1/data/scale/type/SCALEArray.js.map +1 -1
  327. package/v1/data/scale/type/SCALEBoolean.js +36 -18
  328. package/v1/data/scale/type/SCALEBoolean.js.map +1 -1
  329. package/v1/data/scale/type/SCALEBytes.d.ts +1 -0
  330. package/v1/data/scale/type/SCALEBytes.js +42 -23
  331. package/v1/data/scale/type/SCALEBytes.js.map +1 -1
  332. package/v1/data/scale/type/SCALEClass.js +28 -8
  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 +73 -54
  336. package/v1/data/scale/type/SCALECompactInt.js.map +1 -1
  337. package/v1/data/scale/type/SCALEData.d.ts +1 -0
  338. package/v1/data/scale/type/SCALEData.js +51 -33
  339. package/v1/data/scale/type/SCALEData.js.map +1 -1
  340. package/v1/data/scale/type/SCALEEnum.js +39 -21
  341. package/v1/data/scale/type/SCALEEnum.js.map +1 -1
  342. package/v1/data/scale/type/SCALEEra.js +68 -46
  343. package/v1/data/scale/type/SCALEEra.js.map +1 -1
  344. package/v1/data/scale/type/SCALEHash.d.ts +1 -0
  345. package/v1/data/scale/type/SCALEHash.js +53 -29
  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 +65 -46
  349. package/v1/data/scale/type/SCALEInt.js.map +1 -1
  350. package/v1/data/scale/type/SCALEMultiAddress.d.ts +2 -1
  351. package/v1/data/scale/type/SCALEMultiAddress.js +59 -40
  352. package/v1/data/scale/type/SCALEMultiAddress.js.map +1 -1
  353. package/v1/data/scale/type/SCALEOptional.js +47 -27
  354. package/v1/data/scale/type/SCALEOptional.js.map +1 -1
  355. package/v1/data/scale/type/SCALEString.js +44 -25
  356. package/v1/data/scale/type/SCALEString.js.map +1 -1
  357. package/v1/data/scale/type/SCALETuple.js +40 -22
  358. package/v1/data/scale/type/SCALETuple.js.map +1 -1
  359. package/v1/data/scale/type/SCALEType.js +9 -6
  360. package/v1/data/scale/type/SCALEType.js.map +1 -1
  361. package/v1/data/transaction/SubstrateSignature.d.ts +1 -0
  362. package/v1/data/transaction/SubstrateSignature.js +61 -36
  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 +87 -66
  366. package/v1/data/transaction/SubstrateTransaction.js.map +1 -1
  367. package/v1/data/transaction/SubstrateTransactionPayload.js +114 -81
  368. package/v1/data/transaction/SubstrateTransactionPayload.js.map +1 -1
  369. package/v1/data/transaction/method/SubstrateTransactionMethod.js +76 -40
  370. package/v1/data/transaction/method/SubstrateTransactionMethod.js.map +1 -1
  371. package/v1/data/transaction/method/SubstrateTransactionMethodArgs.js +65 -35
  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 +357 -159
  377. package/v1/node/SubstrateCommonNodeClient.js.map +1 -1
  378. package/v1/protocol/SubstrateProtocol.js +388 -182
  379. package/v1/protocol/SubstrateProtocol.js.map +1 -1
  380. package/v1/protocol/SubstrateStakingProtocol.js +82 -15
  381. package/v1/protocol/SubstrateStakingProtocol.js.map +1 -1
  382. package/v1/serializer/v3/schemas/converter/transaction-converter.js +20 -8
  383. package/v1/serializer/v3/schemas/converter/transaction-converter.js.map +1 -1
  384. package/v1/serializer/v3/validators/transaction-validator.js +63 -15
  385. package/v1/serializer/v3/validators/transaction-validator.js.map +1 -1
  386. package/v1/serializer/v3/validators/validators.js +129 -48
  387. package/v1/serializer/v3/validators/validators.js.map +1 -1
  388. package/v1/types/configuration.d.ts +6 -6
  389. package/v1/types/crypto.d.ts +1 -1
  390. package/v1/utils/keys.js +5 -4
  391. package/v1/utils/keys.js.map +1 -1
  392. package/v1/utils/protocol.js +15 -14
  393. package/v1/utils/protocol.js.map +1 -1
  394. package/v1/utils/signature.js +4 -3
  395. package/v1/utils/signature.js.map +1 -1
@@ -1,321 +1,566 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ 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;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
2
62
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
63
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
64
  };
5
65
  Object.defineProperty(exports, "__esModule", { value: true });
6
66
  exports.SubstrateDelegateProtocol = void 0;
7
- const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
8
- const assert_1 = require("@airgap/coinlib-core/utils/assert");
9
- const SubstratePayee_1 = require("./common/data/staking/SubstratePayee");
10
- const SubstrateStakingActionType_1 = require("./common/data/staking/SubstrateStakingActionType");
11
- const SubstrateTransaction_1 = require("./common/data/transaction/SubstrateTransaction");
12
- const SubstrateProtocol_1 = require("./SubstrateProtocol");
13
- class SubstrateDelegateProtocol extends SubstrateProtocol_1.SubstrateProtocol {
14
- async getDefaultDelegatee() {
15
- if (this.defaultValidator) {
16
- return this.defaultValidator;
17
- }
18
- const validators = await this.options.nodeClient.getValidators();
19
- return validators ? validators[0].asString() : '';
20
- }
21
- async getCurrentDelegateesForPublicKey(publicKey) {
22
- return this.options.accountController.getCurrentValidators(publicKey);
23
- }
24
- async getCurrentDelegateesForAddress(address) {
25
- return this.options.accountController.getCurrentValidators(address);
26
- }
27
- async getDelegateeDetails(address) {
28
- const validatorDetails = await this.options.accountController.getValidatorDetails(address);
29
- return {
30
- name: validatorDetails.name || '',
31
- status: validatorDetails.status || '',
32
- address
33
- };
34
- }
35
- async isPublicKeyDelegating(publicKey) {
36
- return this.options.accountController.isDelegating(publicKey);
67
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
68
+ var assert_1 = require("@airgap/coinlib-core/utils/assert");
69
+ var SubstratePayee_1 = require("./common/data/staking/SubstratePayee");
70
+ var SubstrateStakingActionType_1 = require("./common/data/staking/SubstrateStakingActionType");
71
+ var SubstrateTransaction_1 = require("./common/data/transaction/SubstrateTransaction");
72
+ var SubstrateProtocol_1 = require("./SubstrateProtocol");
73
+ var SubstrateDelegateProtocol = /** @class */ (function (_super) {
74
+ __extends(SubstrateDelegateProtocol, _super);
75
+ function SubstrateDelegateProtocol() {
76
+ return _super !== null && _super.apply(this, arguments) || this;
37
77
  }
38
- async isAddressDelegating(address) {
39
- return this.options.accountController.isDelegating(address);
40
- }
41
- async getDelegatorDetailsFromPublicKey(publicKey) {
42
- const address = await this.getAddressFromPublicKey(publicKey);
43
- return this.getDelegatorDetailsFromAddress(address.address);
44
- }
45
- async getDelegatorDetailsFromAddress(address) {
46
- return this.options.accountController.getNominatorDetails(address);
47
- }
48
- async getDelegationDetailsFromPublicKey(publicKey, delegatees) {
49
- const address = await this.getAddressFromPublicKey(publicKey);
50
- return this.getDelegationDetailsFromAddress(address.address, delegatees);
51
- }
52
- async getDelegationDetailsFromAddress(address, delegatees) {
53
- const [nominatorDetails, validatorsDetails] = await Promise.all([
54
- this.options.accountController.getNominatorDetails(address, delegatees),
55
- Promise.all(delegatees.map((validator) => this.options.accountController.getValidatorDetails(validator)))
56
- ]);
57
- nominatorDetails.rewards =
58
- nominatorDetails.delegatees.length > 0 && nominatorDetails.stakingDetails
59
- ? nominatorDetails.stakingDetails.rewards.map((reward) => ({
60
- index: reward.eraIndex,
61
- amount: reward.amount,
62
- timestamp: reward.timestamp
63
- }))
64
- : [];
65
- return {
66
- delegator: nominatorDetails,
67
- delegatees: validatorsDetails
68
- };
69
- }
70
- // tslint:disable-next-line: cyclomatic-complexity
71
- async prepareDelegatorActionFromPublicKey(publicKey, type, data) {
72
- if (!data) {
73
- data = {};
74
- }
75
- switch (type) {
76
- case SubstrateStakingActionType_1.SubstrateStakingActionType.BOND_NOMINATE:
77
- (0, assert_1.assertFields)(`${type} action`, data, 'targets', 'value', 'payee');
78
- return this.prepareNomination(publicKey, data.tip || 0, data.targets, data.controller || publicKey, data.value, data.payee);
79
- case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND_NOMINATE:
80
- (0, assert_1.assertFields)(`${type} action`, data, 'targets', 'value');
81
- return this.prepareRebondNominate(publicKey, data.tip || 0, data.targets, data.value);
82
- case SubstrateStakingActionType_1.SubstrateStakingActionType.NOMINATE:
83
- (0, assert_1.assertFields)(`${type} action`, data, 'targets');
84
- return this.prepareNomination(publicKey, data.tip || 0, data.targets);
85
- case SubstrateStakingActionType_1.SubstrateStakingActionType.CANCEL_NOMINATION:
86
- return this.prepareScheduleUndelegate(publicKey, data.tip || 0, data.value);
87
- case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_NOMINATION:
88
- (0, assert_1.assertFields)(`${type} action`, data, 'targets');
89
- return this.prepareChangeValidator(publicKey, data.tip || 0, data.targets);
90
- case SubstrateStakingActionType_1.SubstrateStakingActionType.UNBOND:
91
- (0, assert_1.assertFields)(`${type} action`, data, 'value');
92
- return this.prepareUnbond(publicKey, data.tip || 0, data.value);
93
- case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND:
94
- (0, assert_1.assertFields)(`${type} action`, data, 'value');
95
- return this.prepareRebond(publicKey, data.tip || 0, data.value);
96
- case SubstrateStakingActionType_1.SubstrateStakingActionType.BOND_EXTRA:
97
- (0, assert_1.assertFields)(`${type} action`, data, 'value');
98
- return this.prepareBondExtra(publicKey, data.tip || 0, data.value);
99
- case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND_EXTRA:
100
- (0, assert_1.assertFields)(`${type} action`, data, 'value');
101
- return this.prepareRebondExtra(publicKey, data.tip || 0, data.value);
102
- case SubstrateStakingActionType_1.SubstrateStakingActionType.WITHDRAW_UNBONDED:
103
- return this.prepareWithdrawUnbonded(publicKey, data.tip || 0);
104
- case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_REWARD_DESTINATION:
105
- return Promise.reject('Unsupported delegator action.');
106
- case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_CONTROLLER:
107
- return Promise.reject('Unsupported delegator action.');
108
- default:
109
- return Promise.reject('Unsupported delegator action.');
110
- }
111
- }
112
- async prepareNomination(publicKey, tip, targets, controller, value, payee) {
113
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
114
- const available = new bignumber_1.default(transferableBalance).minus(value || 0);
115
- const bondFirst = controller !== undefined && value !== undefined && payee !== undefined;
116
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, available, [
117
- ...(bondFirst
118
- ? [
119
- {
120
- type: SubstrateTransaction_1.SubstrateTransactionType.BOND,
121
- tip,
122
- args: {
123
- controller,
124
- value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value),
125
- payee: typeof payee === 'string' ? SubstratePayee_1.SubstratePayee[payee] : payee
78
+ SubstrateDelegateProtocol.prototype.getDefaultDelegatee = function () {
79
+ return __awaiter(this, void 0, void 0, function () {
80
+ var validators;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0:
84
+ if (this.defaultValidator) {
85
+ return [2 /*return*/, this.defaultValidator];
126
86
  }
127
- }
128
- ]
129
- : []),
130
- {
131
- type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
132
- tip,
133
- args: {
134
- targets: typeof targets === 'string' ? [targets] : targets
87
+ return [4 /*yield*/, this.options.nodeClient.getValidators()];
88
+ case 1:
89
+ validators = _a.sent();
90
+ return [2 /*return*/, validators ? validators[0].asString() : ''];
135
91
  }
136
- }
137
- ]);
138
- return [{ encoded }];
139
- }
140
- async prepareRebondNominate(publicKey, tip, targets, value) {
141
- const [transferableBalance, lockedBalance] = await Promise.all([
142
- this.options.accountController.getTransferableBalance(publicKey, false, false),
143
- this.options.accountController.getUnlockingBalance(publicKey)
144
- ]);
145
- const toDelegate = bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value);
146
- const configs = [];
147
- if (toDelegate.gt(lockedBalance)) {
148
- configs.push({
149
- type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
150
- tip,
151
- args: {
152
- value: lockedBalance
92
+ });
93
+ });
94
+ };
95
+ SubstrateDelegateProtocol.prototype.getCurrentDelegateesForPublicKey = function (publicKey) {
96
+ return __awaiter(this, void 0, void 0, function () {
97
+ return __generator(this, function (_a) {
98
+ return [2 /*return*/, this.options.accountController.getCurrentValidators(publicKey)];
99
+ });
100
+ });
101
+ };
102
+ SubstrateDelegateProtocol.prototype.getCurrentDelegateesForAddress = function (address) {
103
+ return __awaiter(this, void 0, void 0, function () {
104
+ return __generator(this, function (_a) {
105
+ return [2 /*return*/, this.options.accountController.getCurrentValidators(address)];
106
+ });
107
+ });
108
+ };
109
+ SubstrateDelegateProtocol.prototype.getDelegateeDetails = function (address) {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ var validatorDetails;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0: return [4 /*yield*/, this.options.accountController.getValidatorDetails(address)];
115
+ case 1:
116
+ validatorDetails = _a.sent();
117
+ return [2 /*return*/, {
118
+ name: validatorDetails.name || '',
119
+ status: validatorDetails.status || '',
120
+ address: address
121
+ }];
122
+ }
123
+ });
124
+ });
125
+ };
126
+ SubstrateDelegateProtocol.prototype.isPublicKeyDelegating = function (publicKey) {
127
+ return __awaiter(this, void 0, void 0, function () {
128
+ return __generator(this, function (_a) {
129
+ return [2 /*return*/, this.options.accountController.isDelegating(publicKey)];
130
+ });
131
+ });
132
+ };
133
+ SubstrateDelegateProtocol.prototype.isAddressDelegating = function (address) {
134
+ return __awaiter(this, void 0, void 0, function () {
135
+ return __generator(this, function (_a) {
136
+ return [2 /*return*/, this.options.accountController.isDelegating(address)];
137
+ });
138
+ });
139
+ };
140
+ SubstrateDelegateProtocol.prototype.getDelegatorDetailsFromPublicKey = function (publicKey) {
141
+ return __awaiter(this, void 0, void 0, function () {
142
+ var address;
143
+ return __generator(this, function (_a) {
144
+ switch (_a.label) {
145
+ case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
146
+ case 1:
147
+ address = _a.sent();
148
+ return [2 /*return*/, this.getDelegatorDetailsFromAddress(address.address)];
153
149
  }
154
- }, {
155
- type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
156
- tip,
157
- args: {
158
- value: toDelegate.minus(lockedBalance)
150
+ });
151
+ });
152
+ };
153
+ SubstrateDelegateProtocol.prototype.getDelegatorDetailsFromAddress = function (address) {
154
+ return __awaiter(this, void 0, void 0, function () {
155
+ return __generator(this, function (_a) {
156
+ return [2 /*return*/, this.options.accountController.getNominatorDetails(address)];
157
+ });
158
+ });
159
+ };
160
+ SubstrateDelegateProtocol.prototype.getDelegationDetailsFromPublicKey = function (publicKey, delegatees) {
161
+ return __awaiter(this, void 0, void 0, function () {
162
+ var address;
163
+ return __generator(this, function (_a) {
164
+ switch (_a.label) {
165
+ case 0: return [4 /*yield*/, this.getAddressFromPublicKey(publicKey)];
166
+ case 1:
167
+ address = _a.sent();
168
+ return [2 /*return*/, this.getDelegationDetailsFromAddress(address.address, delegatees)];
159
169
  }
160
170
  });
161
- }
162
- else {
163
- configs.push({
164
- type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
165
- tip,
166
- args: {
167
- value: toDelegate
171
+ });
172
+ };
173
+ SubstrateDelegateProtocol.prototype.getDelegationDetailsFromAddress = function (address, delegatees) {
174
+ return __awaiter(this, void 0, void 0, function () {
175
+ var _a, nominatorDetails, validatorsDetails;
176
+ var _this = this;
177
+ return __generator(this, function (_b) {
178
+ switch (_b.label) {
179
+ case 0: return [4 /*yield*/, Promise.all([
180
+ this.options.accountController.getNominatorDetails(address, delegatees),
181
+ Promise.all(delegatees.map(function (validator) { return _this.options.accountController.getValidatorDetails(validator); }))
182
+ ])];
183
+ case 1:
184
+ _a = _b.sent(), nominatorDetails = _a[0], validatorsDetails = _a[1];
185
+ nominatorDetails.rewards =
186
+ nominatorDetails.delegatees.length > 0 && nominatorDetails.stakingDetails
187
+ ? nominatorDetails.stakingDetails.rewards.map(function (reward) { return ({
188
+ index: reward.eraIndex,
189
+ amount: reward.amount,
190
+ timestamp: reward.timestamp
191
+ }); })
192
+ : [];
193
+ return [2 /*return*/, {
194
+ delegator: nominatorDetails,
195
+ delegatees: validatorsDetails
196
+ }];
168
197
  }
169
198
  });
170
- }
171
- configs.push({
172
- type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
173
- tip,
174
- args: {
175
- targets: typeof targets === 'string' ? [targets] : targets
176
- }
177
199
  });
178
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, configs);
179
- return [{ encoded }];
180
- }
181
- async prepareScheduleUndelegate(publicKey, tip, value) {
182
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
183
- const keepController = value === undefined;
184
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
185
- {
186
- type: SubstrateTransaction_1.SubstrateTransactionType.CANCEL_NOMINATION,
187
- tip,
188
- args: {}
189
- },
190
- ...(keepController
191
- ? []
192
- : [
193
- {
194
- type: SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
195
- tip,
196
- args: {
197
- value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
200
+ };
201
+ // tslint:disable-next-line: cyclomatic-complexity
202
+ SubstrateDelegateProtocol.prototype.prepareDelegatorActionFromPublicKey = function (publicKey, type, data) {
203
+ return __awaiter(this, void 0, void 0, function () {
204
+ return __generator(this, function (_a) {
205
+ if (!data) {
206
+ data = {};
207
+ }
208
+ switch (type) {
209
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.BOND_NOMINATE:
210
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'targets', 'value', 'payee');
211
+ return [2 /*return*/, this.prepareNomination(publicKey, data.tip || 0, data.targets, data.controller || publicKey, data.value, data.payee)];
212
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND_NOMINATE:
213
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'targets', 'value');
214
+ return [2 /*return*/, this.prepareRebondNominate(publicKey, data.tip || 0, data.targets, data.value)];
215
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.NOMINATE:
216
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'targets');
217
+ return [2 /*return*/, this.prepareNomination(publicKey, data.tip || 0, data.targets)];
218
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.CANCEL_NOMINATION:
219
+ return [2 /*return*/, this.prepareScheduleUndelegate(publicKey, data.tip || 0, data.value)];
220
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_NOMINATION:
221
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'targets');
222
+ return [2 /*return*/, this.prepareChangeValidator(publicKey, data.tip || 0, data.targets)];
223
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.UNBOND:
224
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'value');
225
+ return [2 /*return*/, this.prepareUnbond(publicKey, data.tip || 0, data.value)];
226
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND:
227
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'value');
228
+ return [2 /*return*/, this.prepareRebond(publicKey, data.tip || 0, data.value)];
229
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.BOND_EXTRA:
230
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'value');
231
+ return [2 /*return*/, this.prepareBondExtra(publicKey, data.tip || 0, data.value)];
232
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.REBOND_EXTRA:
233
+ (0, assert_1.assertFields)("".concat(type, " action"), data, 'value');
234
+ return [2 /*return*/, this.prepareRebondExtra(publicKey, data.tip || 0, data.value)];
235
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.WITHDRAW_UNBONDED:
236
+ return [2 /*return*/, this.prepareWithdrawUnbonded(publicKey, data.tip || 0)];
237
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_REWARD_DESTINATION:
238
+ return [2 /*return*/, Promise.reject('Unsupported delegator action.')];
239
+ case SubstrateStakingActionType_1.SubstrateStakingActionType.CHANGE_CONTROLLER:
240
+ return [2 /*return*/, Promise.reject('Unsupported delegator action.')];
241
+ default:
242
+ return [2 /*return*/, Promise.reject('Unsupported delegator action.')];
243
+ }
244
+ return [2 /*return*/];
245
+ });
246
+ });
247
+ };
248
+ SubstrateDelegateProtocol.prototype.prepareNomination = function (publicKey, tip, targets, controller, value, payee) {
249
+ return __awaiter(this, void 0, void 0, function () {
250
+ var transferableBalance, available, bondFirst, encoded;
251
+ return __generator(this, function (_a) {
252
+ switch (_a.label) {
253
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
254
+ case 1:
255
+ transferableBalance = _a.sent();
256
+ available = new bignumber_1.default(transferableBalance).minus(value || 0);
257
+ bondFirst = controller !== undefined && value !== undefined && payee !== undefined;
258
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, available, __spreadArray(__spreadArray([], (bondFirst
259
+ ? [
260
+ {
261
+ type: SubstrateTransaction_1.SubstrateTransactionType.BOND,
262
+ tip: tip,
263
+ args: {
264
+ controller: controller,
265
+ value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value),
266
+ payee: typeof payee === 'string' ? SubstratePayee_1.SubstratePayee[payee] : payee
267
+ }
268
+ }
269
+ ]
270
+ : []), true), [
271
+ {
272
+ type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
273
+ tip: tip,
274
+ args: {
275
+ targets: typeof targets === 'string' ? [targets] : targets
276
+ }
277
+ }
278
+ ], false))];
279
+ case 2:
280
+ encoded = _a.sent();
281
+ return [2 /*return*/, [{ encoded: encoded }]];
282
+ }
283
+ });
284
+ });
285
+ };
286
+ SubstrateDelegateProtocol.prototype.prepareRebondNominate = function (publicKey, tip, targets, value) {
287
+ return __awaiter(this, void 0, void 0, function () {
288
+ var _a, transferableBalance, lockedBalance, toDelegate, configs, encoded;
289
+ return __generator(this, function (_b) {
290
+ switch (_b.label) {
291
+ case 0: return [4 /*yield*/, Promise.all([
292
+ this.options.accountController.getTransferableBalance(publicKey, false, false),
293
+ this.options.accountController.getUnlockingBalance(publicKey)
294
+ ])];
295
+ case 1:
296
+ _a = _b.sent(), transferableBalance = _a[0], lockedBalance = _a[1];
297
+ toDelegate = bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value);
298
+ configs = [];
299
+ if (toDelegate.gt(lockedBalance)) {
300
+ configs.push({
301
+ type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
302
+ tip: tip,
303
+ args: {
304
+ value: lockedBalance
305
+ }
306
+ }, {
307
+ type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
308
+ tip: tip,
309
+ args: {
310
+ value: toDelegate.minus(lockedBalance)
311
+ }
312
+ });
198
313
  }
199
- }
200
- ])
201
- ]);
202
- return [{ encoded }];
203
- }
204
- async prepareChangeValidator(publicKey, tip, targets) {
205
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
206
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
207
- {
208
- type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
209
- tip,
210
- args: {
211
- targets: typeof targets === 'string' ? [targets] : targets
314
+ else {
315
+ configs.push({
316
+ type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
317
+ tip: tip,
318
+ args: {
319
+ value: toDelegate
320
+ }
321
+ });
322
+ }
323
+ configs.push({
324
+ type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
325
+ tip: tip,
326
+ args: {
327
+ targets: typeof targets === 'string' ? [targets] : targets
328
+ }
329
+ });
330
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, configs)];
331
+ case 2:
332
+ encoded = _b.sent();
333
+ return [2 /*return*/, [{ encoded: encoded }]];
212
334
  }
213
- }
214
- ]);
215
- return [{ encoded }];
216
- }
217
- async prepareUnbond(publicKey, tip, value) {
218
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
219
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
220
- {
221
- type: SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
222
- tip,
223
- args: {
224
- value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
335
+ });
336
+ });
337
+ };
338
+ SubstrateDelegateProtocol.prototype.prepareScheduleUndelegate = function (publicKey, tip, value) {
339
+ return __awaiter(this, void 0, void 0, function () {
340
+ var transferableBalance, keepController, encoded;
341
+ return __generator(this, function (_a) {
342
+ switch (_a.label) {
343
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
344
+ case 1:
345
+ transferableBalance = _a.sent();
346
+ keepController = value === undefined;
347
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, __spreadArray([
348
+ {
349
+ type: SubstrateTransaction_1.SubstrateTransactionType.CANCEL_NOMINATION,
350
+ tip: tip,
351
+ args: {}
352
+ }
353
+ ], (keepController
354
+ ? []
355
+ : [
356
+ {
357
+ type: SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
358
+ tip: tip,
359
+ args: {
360
+ value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
361
+ }
362
+ }
363
+ ]), true))];
364
+ case 2:
365
+ encoded = _a.sent();
366
+ return [2 /*return*/, [{ encoded: encoded }]];
225
367
  }
226
- }
227
- ]);
228
- return [{ encoded }];
229
- }
230
- async prepareRebond(publicKey, tip, value) {
231
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
232
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
233
- {
234
- type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
235
- tip,
236
- args: {
237
- value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
368
+ });
369
+ });
370
+ };
371
+ SubstrateDelegateProtocol.prototype.prepareChangeValidator = function (publicKey, tip, targets) {
372
+ return __awaiter(this, void 0, void 0, function () {
373
+ var transferableBalance, encoded;
374
+ return __generator(this, function (_a) {
375
+ switch (_a.label) {
376
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
377
+ case 1:
378
+ transferableBalance = _a.sent();
379
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
380
+ {
381
+ type: SubstrateTransaction_1.SubstrateTransactionType.NOMINATE,
382
+ tip: tip,
383
+ args: {
384
+ targets: typeof targets === 'string' ? [targets] : targets
385
+ }
386
+ }
387
+ ])];
388
+ case 2:
389
+ encoded = _a.sent();
390
+ return [2 /*return*/, [{ encoded: encoded }]];
238
391
  }
239
- }
240
- ]);
241
- return [{ encoded }];
242
- }
243
- async prepareBondExtra(publicKey, tip, value) {
244
- const transferableBalance = await this.options.accountController.getTransferableBalance(publicKey, false, false);
245
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
246
- {
247
- type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
248
- tip,
249
- args: {
250
- value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
392
+ });
393
+ });
394
+ };
395
+ SubstrateDelegateProtocol.prototype.prepareUnbond = function (publicKey, tip, value) {
396
+ return __awaiter(this, void 0, void 0, function () {
397
+ var transferableBalance, encoded;
398
+ return __generator(this, function (_a) {
399
+ switch (_a.label) {
400
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
401
+ case 1:
402
+ transferableBalance = _a.sent();
403
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
404
+ {
405
+ type: SubstrateTransaction_1.SubstrateTransactionType.UNBOND,
406
+ tip: tip,
407
+ args: {
408
+ value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
409
+ }
410
+ }
411
+ ])];
412
+ case 2:
413
+ encoded = _a.sent();
414
+ return [2 /*return*/, [{ encoded: encoded }]];
251
415
  }
252
- }
253
- ]);
254
- return [{ encoded }];
255
- }
256
- async prepareRebondExtra(publicKey, tip, value) {
257
- const [transferableBalance, lockedBalance] = await Promise.all([
258
- this.options.accountController.getTransferableBalance(publicKey, false, false),
259
- this.options.accountController.getUnlockingBalance(publicKey)
260
- ]);
261
- const toDelegate = bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value);
262
- const configs = toDelegate.gt(lockedBalance)
263
- ? [
264
- {
265
- type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
266
- tip,
267
- args: {
268
- value: lockedBalance
269
- }
270
- },
271
- {
272
- type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
273
- tip,
274
- args: {
275
- value: toDelegate.minus(lockedBalance)
276
- }
416
+ });
417
+ });
418
+ };
419
+ SubstrateDelegateProtocol.prototype.prepareRebond = function (publicKey, tip, value) {
420
+ return __awaiter(this, void 0, void 0, function () {
421
+ var transferableBalance, encoded;
422
+ return __generator(this, function (_a) {
423
+ switch (_a.label) {
424
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
425
+ case 1:
426
+ transferableBalance = _a.sent();
427
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
428
+ {
429
+ type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
430
+ tip: tip,
431
+ args: {
432
+ value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
433
+ }
434
+ }
435
+ ])];
436
+ case 2:
437
+ encoded = _a.sent();
438
+ return [2 /*return*/, [{ encoded: encoded }]];
277
439
  }
278
- ]
279
- : [
280
- {
281
- type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
282
- tip,
283
- args: {
284
- value: toDelegate
285
- }
440
+ });
441
+ });
442
+ };
443
+ SubstrateDelegateProtocol.prototype.prepareBondExtra = function (publicKey, tip, value) {
444
+ return __awaiter(this, void 0, void 0, function () {
445
+ var transferableBalance, encoded;
446
+ return __generator(this, function (_a) {
447
+ switch (_a.label) {
448
+ case 0: return [4 /*yield*/, this.options.accountController.getTransferableBalance(publicKey, false, false)];
449
+ case 1:
450
+ transferableBalance = _a.sent();
451
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
452
+ {
453
+ type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
454
+ tip: tip,
455
+ args: {
456
+ value: bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value)
457
+ }
458
+ }
459
+ ])];
460
+ case 2:
461
+ encoded = _a.sent();
462
+ return [2 /*return*/, [{ encoded: encoded }]];
286
463
  }
287
- ];
288
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, configs);
289
- return [{ encoded }];
290
- }
291
- async prepareWithdrawUnbonded(publicKey, tip) {
292
- const [transferableBalance, slashingSpansNumber] = await Promise.all([
293
- this.options.accountController.getTransferableBalance(publicKey, false, false),
294
- this.options.accountController.getSlashingSpansNumber(publicKey)
295
- ]);
296
- const encoded = await this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
297
- {
298
- type: SubstrateTransaction_1.SubstrateTransactionType.WITHDRAW_UNBONDED,
299
- tip,
300
- args: { slashingSpansNumber }
301
- }
302
- ]);
303
- return [{ encoded }];
304
- }
305
- async estimateMaxDelegationValueFromAddress(address) {
306
- const results = await Promise.all([
307
- this.options.accountController.getTransferableBalance(address, false, false),
308
- this.getFutureRequiredTransactions(address, 'delegate')
309
- ]);
310
- const transferableBalance = results[0];
311
- const futureTransactions = results[1];
312
- const feeEstimate = await this.options.transactionController.estimateTransactionFees(address, futureTransactions);
313
- if (!feeEstimate) {
314
- return Promise.reject('Could not estimate max value.');
315
- }
316
- const maxValue = transferableBalance.minus(feeEstimate);
317
- return (maxValue.gte(0) ? maxValue : new bignumber_1.default(0)).toString(10);
318
- }
319
- }
464
+ });
465
+ });
466
+ };
467
+ SubstrateDelegateProtocol.prototype.prepareRebondExtra = function (publicKey, tip, value) {
468
+ return __awaiter(this, void 0, void 0, function () {
469
+ var _a, transferableBalance, lockedBalance, toDelegate, configs, encoded;
470
+ return __generator(this, function (_b) {
471
+ switch (_b.label) {
472
+ case 0: return [4 /*yield*/, Promise.all([
473
+ this.options.accountController.getTransferableBalance(publicKey, false, false),
474
+ this.options.accountController.getUnlockingBalance(publicKey)
475
+ ])];
476
+ case 1:
477
+ _a = _b.sent(), transferableBalance = _a[0], lockedBalance = _a[1];
478
+ toDelegate = bignumber_1.default.isBigNumber(value) ? value : new bignumber_1.default(value);
479
+ configs = toDelegate.gt(lockedBalance)
480
+ ? [
481
+ {
482
+ type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
483
+ tip: tip,
484
+ args: {
485
+ value: lockedBalance
486
+ }
487
+ },
488
+ {
489
+ type: SubstrateTransaction_1.SubstrateTransactionType.BOND_EXTRA,
490
+ tip: tip,
491
+ args: {
492
+ value: toDelegate.minus(lockedBalance)
493
+ }
494
+ }
495
+ ]
496
+ : [
497
+ {
498
+ type: SubstrateTransaction_1.SubstrateTransactionType.REBOND,
499
+ tip: tip,
500
+ args: {
501
+ value: toDelegate
502
+ }
503
+ }
504
+ ];
505
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, configs)];
506
+ case 2:
507
+ encoded = _b.sent();
508
+ return [2 /*return*/, [{ encoded: encoded }]];
509
+ }
510
+ });
511
+ });
512
+ };
513
+ SubstrateDelegateProtocol.prototype.prepareWithdrawUnbonded = function (publicKey, tip) {
514
+ return __awaiter(this, void 0, void 0, function () {
515
+ var _a, transferableBalance, slashingSpansNumber, encoded;
516
+ return __generator(this, function (_b) {
517
+ switch (_b.label) {
518
+ case 0: return [4 /*yield*/, Promise.all([
519
+ this.options.accountController.getTransferableBalance(publicKey, false, false),
520
+ this.options.accountController.getSlashingSpansNumber(publicKey)
521
+ ])];
522
+ case 1:
523
+ _a = _b.sent(), transferableBalance = _a[0], slashingSpansNumber = _a[1];
524
+ return [4 /*yield*/, this.options.transactionController.prepareSubmittableTransactions(publicKey, transferableBalance, [
525
+ {
526
+ type: SubstrateTransaction_1.SubstrateTransactionType.WITHDRAW_UNBONDED,
527
+ tip: tip,
528
+ args: { slashingSpansNumber: slashingSpansNumber }
529
+ }
530
+ ])];
531
+ case 2:
532
+ encoded = _b.sent();
533
+ return [2 /*return*/, [{ encoded: encoded }]];
534
+ }
535
+ });
536
+ });
537
+ };
538
+ SubstrateDelegateProtocol.prototype.estimateMaxDelegationValueFromAddress = function (address) {
539
+ return __awaiter(this, void 0, void 0, function () {
540
+ var results, transferableBalance, futureTransactions, feeEstimate, maxValue;
541
+ return __generator(this, function (_a) {
542
+ switch (_a.label) {
543
+ case 0: return [4 /*yield*/, Promise.all([
544
+ this.options.accountController.getTransferableBalance(address, false, false),
545
+ this.getFutureRequiredTransactions(address, 'delegate')
546
+ ])];
547
+ case 1:
548
+ results = _a.sent();
549
+ transferableBalance = results[0];
550
+ futureTransactions = results[1];
551
+ return [4 /*yield*/, this.options.transactionController.estimateTransactionFees(address, futureTransactions)];
552
+ case 2:
553
+ feeEstimate = _a.sent();
554
+ if (!feeEstimate) {
555
+ return [2 /*return*/, Promise.reject('Could not estimate max value.')];
556
+ }
557
+ maxValue = transferableBalance.minus(feeEstimate);
558
+ return [2 /*return*/, (maxValue.gte(0) ? maxValue : new bignumber_1.default(0)).toString(10)];
559
+ }
560
+ });
561
+ });
562
+ };
563
+ return SubstrateDelegateProtocol;
564
+ }(SubstrateProtocol_1.SubstrateProtocol));
320
565
  exports.SubstrateDelegateProtocol = SubstrateDelegateProtocol;
321
566
  //# sourceMappingURL=SubstrateDelegateProtocol.js.map