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

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,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
14
  if (k2 === undefined) k2 = k;
4
15
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -15,208 +26,316 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
26
  }) : function(o, v) {
16
27
  o["default"] = v;
17
28
  });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (_) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
35
72
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
73
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
74
  };
38
75
  Object.defineProperty(exports, "__esModule", { value: true });
39
76
  exports.SubstrateCommonTransactionController = void 0;
40
- const coinlib_core_1 = require("@airgap/coinlib-core");
41
- const bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
77
+ var coinlib_core_1 = require("@airgap/coinlib-core");
78
+ var bignumber_1 = __importDefault(require("@airgap/coinlib-core/dependencies/src/bignumber.js-9.0.0/bignumber"));
42
79
  // @ts-ignore
43
- const keccak = require("@airgap/coinlib-core/dependencies/src/keccak-1.0.2/js");
80
+ var keccak = require("@airgap/coinlib-core/dependencies/src/keccak-1.0.2/js");
44
81
  // @ts-ignore
45
- const secp256k1 = __importStar(require("@airgap/coinlib-core/dependencies/src/secp256k1-4.0.2/elliptic"));
46
- const errors_1 = require("@airgap/coinlib-core/errors");
47
- const blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
48
- const wasm_crypto_1 = require("@polkadot/wasm-crypto");
49
- const SubstrateAddressFactory_1 = require("../../data/account/address/SubstrateAddressFactory");
50
- const SCALEDecoder_1 = require("../../data/scale/SCALEDecoder");
51
- const SCALEArray_1 = require("../../data/scale/type/SCALEArray");
52
- const SCALEBytes_1 = require("../../data/scale/type/SCALEBytes");
53
- const SCALECompactInt_1 = require("../../data/scale/type/SCALECompactInt");
54
- const SCALEEnum_1 = require("../../data/scale/type/SCALEEnum");
55
- const SCALEInt_1 = require("../../data/scale/type/SCALEInt");
56
- const SCALEOptional_1 = require("../../data/scale/type/SCALEOptional");
57
- const SCALEString_1 = require("../../data/scale/type/SCALEString");
58
- const SubstrateSignature_1 = require("../../data/transaction/SubstrateSignature");
59
- const SubstrateTransaction_1 = require("../../data/transaction/SubstrateTransaction");
60
- const SubstrateTransactionPayload_1 = require("../../data/transaction/SubstrateTransactionPayload");
61
- const keys_1 = require("../../utils/keys");
62
- class SubstrateCommonTransactionController {
63
- constructor(configuration, nodeClient) {
82
+ var secp256k1 = __importStar(require("@airgap/coinlib-core/dependencies/src/secp256k1-4.0.2/elliptic"));
83
+ var errors_1 = require("@airgap/coinlib-core/errors");
84
+ var blake2b_1 = require("@airgap/coinlib-core/utils/blake2b");
85
+ var wasm_crypto_1 = require("@polkadot/wasm-crypto");
86
+ var SubstrateAddressFactory_1 = require("../../data/account/address/SubstrateAddressFactory");
87
+ var SCALEDecoder_1 = require("../../data/scale/SCALEDecoder");
88
+ var SCALEArray_1 = require("../../data/scale/type/SCALEArray");
89
+ var SCALEBytes_1 = require("../../data/scale/type/SCALEBytes");
90
+ var SCALECompactInt_1 = require("../../data/scale/type/SCALECompactInt");
91
+ var SCALEEnum_1 = require("../../data/scale/type/SCALEEnum");
92
+ var SCALEInt_1 = require("../../data/scale/type/SCALEInt");
93
+ var SCALEOptional_1 = require("../../data/scale/type/SCALEOptional");
94
+ var SCALEString_1 = require("../../data/scale/type/SCALEString");
95
+ var SubstrateSignature_1 = require("../../data/transaction/SubstrateSignature");
96
+ var SubstrateTransaction_1 = require("../../data/transaction/SubstrateTransaction");
97
+ var SubstrateTransactionPayload_1 = require("../../data/transaction/SubstrateTransactionPayload");
98
+ var keys_1 = require("../../utils/keys");
99
+ var SubstrateCommonTransactionController = /** @class */ (function () {
100
+ function SubstrateCommonTransactionController(configuration, nodeClient) {
64
101
  this.configuration = configuration;
65
102
  this.nodeClient = nodeClient;
66
103
  }
67
- async prepareSubmittableTransactions(accountId, available, params) {
68
- const accountInfo = await this.nodeClient.getAccountInfo(this.substrateAddressFrom(accountId));
69
- if (!accountInfo) {
70
- return Promise.reject('Could not fetch all necessary data');
71
- }
72
- const nonce = accountInfo.nonce.value;
73
- const txs = await Promise.all(params.map((tx, index) => this.prepareTransactionDetails(tx.type, accountId, tx.tip, nonce.plus(index), tx.args)));
74
- const totalFee = txs.map((tx) => tx.fee).reduce((total, next) => total.plus(next), new bignumber_1.default(0));
75
- if (new bignumber_1.default(available).lt(totalFee)) {
76
- throw new coinlib_core_1.BalanceError(coinlib_core_1.Domain.SUBSTRATE, `Not enough balance`);
77
- }
78
- return this.encodeDetails(txs);
79
- }
80
- async prepareTransactionDetails(type, accountId, tip, nonce, args = {}) {
81
- const chainHeight = await this.nodeClient.getCurrentHeight();
82
- const results = await Promise.all([
83
- this.createTransaction(type, accountId, tip, args, chainHeight, nonce),
84
- this.nodeClient.getLastBlockHash(),
85
- this.nodeClient.getFirstBlockHash(),
86
- this.nodeClient.getRuntimeVersion()
87
- ]);
88
- if (results.some((result) => result === null)) {
89
- return Promise.reject('Could not fetch all necessary data.');
90
- }
91
- const transaction = results[0];
92
- const fee = await this.calculateTransactionFee(transaction);
93
- if (!fee) {
94
- return Promise.reject('Could not fetch all necessary data.');
95
- }
96
- const lastHash = results[1];
97
- const genesisHash = results[2];
98
- const runtimeVersion = results[3];
99
- const payload = SubstrateTransactionPayload_1.SubstrateTransactionPayload.create(transaction, {
100
- specVersion: runtimeVersion.specVersion,
101
- transactionVersion: runtimeVersion.transactionVersion,
102
- genesisHash,
103
- lastHash
104
+ SubstrateCommonTransactionController.prototype.prepareSubmittableTransactions = function (accountId, available, params) {
105
+ return __awaiter(this, void 0, void 0, function () {
106
+ var accountInfo, nonce, txs, totalFee;
107
+ var _this = this;
108
+ return __generator(this, function (_a) {
109
+ switch (_a.label) {
110
+ case 0: return [4 /*yield*/, this.nodeClient.getAccountInfo(this.substrateAddressFrom(accountId))];
111
+ case 1:
112
+ accountInfo = _a.sent();
113
+ if (!accountInfo) {
114
+ return [2 /*return*/, Promise.reject('Could not fetch all necessary data')];
115
+ }
116
+ nonce = accountInfo.nonce.value;
117
+ return [4 /*yield*/, Promise.all(params.map(function (tx, index) { return _this.prepareTransactionDetails(tx.type, accountId, tx.tip, nonce.plus(index), tx.args); }))];
118
+ case 2:
119
+ txs = _a.sent();
120
+ totalFee = txs.map(function (tx) { return tx.fee; }).reduce(function (total, next) { return total.plus(next); }, new bignumber_1.default(0));
121
+ if (new bignumber_1.default(available).lt(totalFee)) {
122
+ throw new coinlib_core_1.BalanceError(coinlib_core_1.Domain.SUBSTRATE, "Not enough balance");
123
+ }
124
+ return [2 /*return*/, this.encodeDetails(txs)];
125
+ }
126
+ });
104
127
  });
105
- return {
106
- runtimeVersion: runtimeVersion.specVersion,
107
- fee,
108
- transaction,
109
- payload: payload.encode({ configuration: this.configuration, runtimeVersion: runtimeVersion.specVersion })
110
- };
111
- }
112
- async createTransaction(type, accountId, tip = 0, args = {}, chainHeight = 1, nonce = 0) {
113
- const methodId = await this.nodeClient.getTransactionMetadata(type);
114
- const signatureType = this.getSignatureType('placeholder');
115
- return SubstrateTransaction_1.SubstrateTransaction.create(this.configuration, type, {
116
- from: accountId,
117
- tip: bignumber_1.default.isBigNumber(tip) ? tip : new bignumber_1.default(tip),
118
- methodId,
119
- args,
120
- era: { chainHeight },
121
- nonce,
122
- signatureType
128
+ };
129
+ SubstrateCommonTransactionController.prototype.prepareTransactionDetails = function (type, accountId, tip, nonce, args) {
130
+ if (args === void 0) { args = {}; }
131
+ return __awaiter(this, void 0, void 0, function () {
132
+ var chainHeight, results, transaction, fee, lastHash, genesisHash, runtimeVersion, payload;
133
+ return __generator(this, function (_a) {
134
+ switch (_a.label) {
135
+ case 0: return [4 /*yield*/, this.nodeClient.getCurrentHeight()];
136
+ case 1:
137
+ chainHeight = _a.sent();
138
+ return [4 /*yield*/, Promise.all([
139
+ this.createTransaction(type, accountId, tip, args, chainHeight, nonce),
140
+ this.nodeClient.getLastBlockHash(),
141
+ this.nodeClient.getFirstBlockHash(),
142
+ this.nodeClient.getRuntimeVersion()
143
+ ])];
144
+ case 2:
145
+ results = _a.sent();
146
+ if (results.some(function (result) { return result === null; })) {
147
+ return [2 /*return*/, Promise.reject('Could not fetch all necessary data.')];
148
+ }
149
+ transaction = results[0];
150
+ return [4 /*yield*/, this.calculateTransactionFee(transaction)];
151
+ case 3:
152
+ fee = _a.sent();
153
+ if (!fee) {
154
+ return [2 /*return*/, Promise.reject('Could not fetch all necessary data.')];
155
+ }
156
+ lastHash = results[1];
157
+ genesisHash = results[2];
158
+ runtimeVersion = results[3];
159
+ payload = SubstrateTransactionPayload_1.SubstrateTransactionPayload.create(transaction, {
160
+ specVersion: runtimeVersion.specVersion,
161
+ transactionVersion: runtimeVersion.transactionVersion,
162
+ genesisHash: genesisHash,
163
+ lastHash: lastHash
164
+ });
165
+ return [2 /*return*/, {
166
+ runtimeVersion: runtimeVersion.specVersion,
167
+ fee: fee,
168
+ transaction: transaction,
169
+ payload: payload.encode({ configuration: this.configuration, runtimeVersion: runtimeVersion.specVersion })
170
+ }];
171
+ }
172
+ });
123
173
  });
124
- }
125
- getSignatureType(purpose) {
174
+ };
175
+ SubstrateCommonTransactionController.prototype.createTransaction = function (type, accountId, tip, args, chainHeight, nonce) {
176
+ if (tip === void 0) { tip = 0; }
177
+ if (args === void 0) { args = {}; }
178
+ if (chainHeight === void 0) { chainHeight = 1; }
179
+ if (nonce === void 0) { nonce = 0; }
180
+ return __awaiter(this, void 0, void 0, function () {
181
+ var methodId, signatureType;
182
+ return __generator(this, function (_a) {
183
+ switch (_a.label) {
184
+ case 0: return [4 /*yield*/, this.nodeClient.getTransactionMetadata(type)];
185
+ case 1:
186
+ methodId = _a.sent();
187
+ signatureType = this.getSignatureType('placeholder');
188
+ return [2 /*return*/, SubstrateTransaction_1.SubstrateTransaction.create(this.configuration, type, {
189
+ from: accountId,
190
+ tip: bignumber_1.default.isBigNumber(tip) ? tip : new bignumber_1.default(tip),
191
+ methodId: methodId,
192
+ args: args,
193
+ era: { chainHeight: chainHeight },
194
+ nonce: nonce,
195
+ signatureType: signatureType
196
+ })];
197
+ }
198
+ });
199
+ });
200
+ };
201
+ SubstrateCommonTransactionController.prototype.getSignatureType = function (purpose) {
126
202
  switch (this.configuration.account.type) {
127
203
  case 'eth':
128
204
  return SubstrateSignature_1.SubstrateSignatureType.Ecdsa;
129
205
  case 'ss58':
130
206
  return purpose === 'sign' ? SubstrateSignature_1.SubstrateSignatureType.Sr25519 : SubstrateSignature_1.SubstrateSignatureType.Ed25519;
131
207
  }
132
- }
133
- async signTransaction(secretKey, transaction, payload) {
134
- const hexSecretKey = (0, keys_1.convertSecretKey)(secretKey, 'hex');
135
- const signatureType = this.getSignatureType('sign');
136
- const signature = await this.signPayload(Buffer.from(hexSecretKey.value, 'hex'), transaction.signer.asBytes(), payload, signatureType);
137
- return SubstrateTransaction_1.SubstrateTransaction.fromTransaction(transaction, { signature });
138
- }
139
- async signPayload(privateKey, publicKey, payload, signatureType) {
140
- switch (signatureType) {
141
- case SubstrateSignature_1.SubstrateSignatureType.Ed25519:
142
- return this.signEd25519Payload(privateKey, publicKey, payload);
143
- case SubstrateSignature_1.SubstrateSignatureType.Sr25519:
144
- return this.signSr25519Payload(privateKey, publicKey, payload);
145
- case SubstrateSignature_1.SubstrateSignatureType.Ecdsa:
146
- return this.signEcdsaPayload(privateKey, payload);
147
- default:
148
- return Promise.reject('Signature type not supported.');
149
- }
150
- }
151
- async signEd25519Payload(privateKey, publicKey, payload) {
152
- throw new Error('signEd25519Payload not implemented');
153
- }
154
- async signSr25519Payload(privateKey, publicKey, payload) {
155
- await (0, wasm_crypto_1.waitReady)();
156
- const payloadBuffer = Buffer.from(payload, 'hex');
157
- const message = payloadBuffer.length > 256 ? Buffer.from((0, blake2b_1.blake2bAsBytes)(payloadBuffer, 256)) : payloadBuffer;
158
- const signature = (0, wasm_crypto_1.sr25519Sign)(publicKey, privateKey, message);
159
- return SubstrateSignature_1.SubstrateSignature.create(SubstrateSignature_1.SubstrateSignatureType.Sr25519, signature);
160
- }
161
- async signEcdsaPayload(privateKey, payload) {
162
- const message = keccak('keccak256').update(Buffer.from(payload, 'hex')).digest();
163
- const signatureObj = secp256k1.ecdsaSign(message, privateKey);
164
- const signature = Buffer.concat([Buffer.from(signatureObj.signature), Buffer.from([signatureObj.recid ?? 0])]);
165
- return SubstrateSignature_1.SubstrateSignature.create(SubstrateSignature_1.SubstrateSignatureType.Ecdsa, signature);
166
- }
167
- encodeDetails(txs) {
168
- const bytesEncoded = txs.map((tx) => {
169
- const scaleRuntimeVersion = tx.runtimeVersion !== undefined ? SCALEOptional_1.SCALEOptional.from(SCALEInt_1.SCALEInt.from(tx.runtimeVersion, 32)) : SCALEOptional_1.SCALEOptional.empty();
170
- const scaleType = this.encodeTransactionType(tx.transaction.type);
171
- const scaleFee = SCALECompactInt_1.SCALECompactInt.from(tx.fee);
208
+ };
209
+ SubstrateCommonTransactionController.prototype.signTransaction = function (secretKey, transaction, payload) {
210
+ return __awaiter(this, void 0, void 0, function () {
211
+ var hexSecretKey, signatureType, signature;
212
+ return __generator(this, function (_a) {
213
+ switch (_a.label) {
214
+ case 0:
215
+ hexSecretKey = (0, keys_1.convertSecretKey)(secretKey, 'hex');
216
+ signatureType = this.getSignatureType('sign');
217
+ return [4 /*yield*/, this.signPayload(Buffer.from(hexSecretKey.value, 'hex'), transaction.signer.asBytes(), payload, signatureType)];
218
+ case 1:
219
+ signature = _a.sent();
220
+ return [2 /*return*/, SubstrateTransaction_1.SubstrateTransaction.fromTransaction(transaction, { signature: signature })];
221
+ }
222
+ });
223
+ });
224
+ };
225
+ SubstrateCommonTransactionController.prototype.signPayload = function (privateKey, publicKey, payload, signatureType) {
226
+ return __awaiter(this, void 0, void 0, function () {
227
+ return __generator(this, function (_a) {
228
+ switch (signatureType) {
229
+ case SubstrateSignature_1.SubstrateSignatureType.Ed25519:
230
+ return [2 /*return*/, this.signEd25519Payload(privateKey, publicKey, payload)];
231
+ case SubstrateSignature_1.SubstrateSignatureType.Sr25519:
232
+ return [2 /*return*/, this.signSr25519Payload(privateKey, publicKey, payload)];
233
+ case SubstrateSignature_1.SubstrateSignatureType.Ecdsa:
234
+ return [2 /*return*/, this.signEcdsaPayload(privateKey, payload)];
235
+ default:
236
+ return [2 /*return*/, Promise.reject('Signature type not supported.')];
237
+ }
238
+ return [2 /*return*/];
239
+ });
240
+ });
241
+ };
242
+ SubstrateCommonTransactionController.prototype.signEd25519Payload = function (privateKey, publicKey, payload) {
243
+ return __awaiter(this, void 0, void 0, function () {
244
+ return __generator(this, function (_a) {
245
+ throw new Error('signEd25519Payload not implemented');
246
+ });
247
+ });
248
+ };
249
+ SubstrateCommonTransactionController.prototype.signSr25519Payload = function (privateKey, publicKey, payload) {
250
+ return __awaiter(this, void 0, void 0, function () {
251
+ var payloadBuffer, message, signature;
252
+ return __generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0: return [4 /*yield*/, (0, wasm_crypto_1.waitReady)()];
255
+ case 1:
256
+ _a.sent();
257
+ payloadBuffer = Buffer.from(payload, 'hex');
258
+ message = payloadBuffer.length > 256 ? Buffer.from((0, blake2b_1.blake2bAsBytes)(payloadBuffer, 256)) : payloadBuffer;
259
+ signature = (0, wasm_crypto_1.sr25519Sign)(publicKey, privateKey, message);
260
+ return [2 /*return*/, SubstrateSignature_1.SubstrateSignature.create(SubstrateSignature_1.SubstrateSignatureType.Sr25519, signature)];
261
+ }
262
+ });
263
+ });
264
+ };
265
+ SubstrateCommonTransactionController.prototype.signEcdsaPayload = function (privateKey, payload) {
266
+ var _a;
267
+ return __awaiter(this, void 0, void 0, function () {
268
+ var message, signatureObj, signature;
269
+ return __generator(this, function (_b) {
270
+ message = keccak('keccak256').update(Buffer.from(payload, 'hex')).digest();
271
+ signatureObj = secp256k1.ecdsaSign(message, privateKey);
272
+ signature = Buffer.concat([Buffer.from(signatureObj.signature), Buffer.from([(_a = signatureObj.recid) !== null && _a !== void 0 ? _a : 0])]);
273
+ return [2 /*return*/, SubstrateSignature_1.SubstrateSignature.create(SubstrateSignature_1.SubstrateSignatureType.Ecdsa, signature)];
274
+ });
275
+ });
276
+ };
277
+ SubstrateCommonTransactionController.prototype.encodeDetails = function (txs) {
278
+ var _this = this;
279
+ var bytesEncoded = txs.map(function (tx) {
280
+ var scaleRuntimeVersion = tx.runtimeVersion !== undefined ? SCALEOptional_1.SCALEOptional.from(SCALEInt_1.SCALEInt.from(tx.runtimeVersion, 32)) : SCALEOptional_1.SCALEOptional.empty();
281
+ var scaleType = _this.encodeTransactionType(tx.transaction.type);
282
+ var scaleFee = SCALECompactInt_1.SCALECompactInt.from(tx.fee);
172
283
  return SCALEBytes_1.SCALEBytes.from(scaleRuntimeVersion.encode() +
173
- scaleType.reduce((hex, next) => hex + next.encode({ configuration: this.configuration, runtimeVersion: tx.runtimeVersion }), '') +
174
- scaleFee.encode({ configuration: this.configuration, runtimeVersion: tx.runtimeVersion }) +
175
- tx.transaction.encode({ configuration: this.configuration, runtimeVersion: tx.runtimeVersion }) +
176
- SCALEString_1.SCALEString.from(tx.payload).encode({ configuration: this.configuration, runtimeVersion: tx.runtimeVersion }));
284
+ scaleType.reduce(function (hex, next) { return hex + next.encode({ configuration: _this.configuration, runtimeVersion: tx.runtimeVersion }); }, '') +
285
+ scaleFee.encode({ configuration: _this.configuration, runtimeVersion: tx.runtimeVersion }) +
286
+ tx.transaction.encode({ configuration: _this.configuration, runtimeVersion: tx.runtimeVersion }) +
287
+ SCALEString_1.SCALEString.from(tx.payload).encode({ configuration: _this.configuration, runtimeVersion: tx.runtimeVersion }));
177
288
  });
178
289
  return SCALEArray_1.SCALEArray.from(bytesEncoded).encode();
179
- }
180
- encodeTransactionType(type) {
181
- const enumType = transactionTypeAsEnum(this.configuration, type);
290
+ };
291
+ SubstrateCommonTransactionController.prototype.encodeTransactionType = function (type) {
292
+ var enumType = transactionTypeAsEnum(this.configuration, type);
182
293
  if (enumType !== undefined) {
183
294
  // legacy
184
295
  return [SCALEEnum_1.SCALEEnum.from(transactionTypeAsEnum(this.configuration, type))];
185
296
  }
186
297
  return [SCALEEnum_1.SCALEEnum.from(255), SCALEString_1.SCALEString.from(type)];
187
- }
188
- decodeDetails(serialized) {
189
- const decoder = new SCALEDecoder_1.SCALEDecoder(this.configuration, undefined, serialized);
190
- const encodedTxs = decoder
191
- .decodeNextArray((_configuration, _runtimeVersion, hex) => SCALEBytes_1.SCALEBytes.decode(hex))
192
- .decoded.elements.map((bytesEncoded) => bytesEncoded.bytes.toString('hex'));
193
- return encodedTxs.map((encodedTx) => {
194
- const runtimeVersionOptional = SCALEOptional_1.SCALEOptional.decode(this.configuration, undefined, encodedTx, (_configuration, _runtimeVersion, hex) => SCALEInt_1.SCALEInt.decode(hex, 32));
195
- const _encodedTx = encodedTx.slice(runtimeVersionOptional.bytesDecoded * 2);
196
- const runtimeVersion = runtimeVersionOptional.decoded.value?.toNumber();
197
- const txDecoder = new SCALEDecoder_1.SCALEDecoder(this.configuration, runtimeVersion, _encodedTx);
198
- const type = this.decodeTransactionType(txDecoder);
199
- const fee = txDecoder.decodeNextCompactInt();
200
- const transaction = txDecoder.decodeNextObject((configuration, runtimeVersion, hex) => SubstrateTransaction_1.SubstrateTransaction.decode(configuration, runtimeVersion, type.decoded, hex));
201
- const payload = txDecoder.decodeNextString();
298
+ };
299
+ SubstrateCommonTransactionController.prototype.decodeDetails = function (serialized) {
300
+ var _this = this;
301
+ var decoder = new SCALEDecoder_1.SCALEDecoder(this.configuration, undefined, serialized);
302
+ var encodedTxs = decoder
303
+ .decodeNextArray(function (_configuration, _runtimeVersion, hex) { return SCALEBytes_1.SCALEBytes.decode(hex); })
304
+ .decoded.elements.map(function (bytesEncoded) { return bytesEncoded.bytes.toString('hex'); });
305
+ return encodedTxs.map(function (encodedTx) {
306
+ var _a;
307
+ var runtimeVersionOptional = SCALEOptional_1.SCALEOptional.decode(_this.configuration, undefined, encodedTx, function (_configuration, _runtimeVersion, hex) { return SCALEInt_1.SCALEInt.decode(hex, 32); });
308
+ var _encodedTx = encodedTx.slice(runtimeVersionOptional.bytesDecoded * 2);
309
+ var runtimeVersion = (_a = runtimeVersionOptional.decoded.value) === null || _a === void 0 ? void 0 : _a.toNumber();
310
+ var txDecoder = new SCALEDecoder_1.SCALEDecoder(_this.configuration, runtimeVersion, _encodedTx);
311
+ var type = _this.decodeTransactionType(txDecoder);
312
+ var fee = txDecoder.decodeNextCompactInt();
313
+ var transaction = txDecoder.decodeNextObject(function (configuration, runtimeVersion, hex) {
314
+ return SubstrateTransaction_1.SubstrateTransaction.decode(configuration, runtimeVersion, type.decoded, hex);
315
+ });
316
+ var payload = txDecoder.decodeNextString();
202
317
  return {
203
- runtimeVersion,
318
+ runtimeVersion: runtimeVersion,
204
319
  fee: fee.decoded.value,
205
320
  transaction: transaction.decoded,
206
321
  payload: payload.decoded.value
207
322
  };
208
323
  });
209
- }
210
- decodeTransactionType(decoder) {
211
- const enumValue = decoder.decodeNextEnum((value) => value);
324
+ };
325
+ SubstrateCommonTransactionController.prototype.decodeTransactionType = function (decoder) {
326
+ var _a;
327
+ var enumValue = decoder.decodeNextEnum(function (value) { return value; });
212
328
  if (enumValue.decoded.value === 255) {
213
- const type = decoder.decodeNextString();
329
+ var type_1 = decoder.decodeNextString();
214
330
  return {
215
- bytesDecoded: enumValue.bytesDecoded + type.bytesDecoded,
216
- decoded: type.decoded.value
331
+ bytesDecoded: enumValue.bytesDecoded + type_1.bytesDecoded,
332
+ decoded: type_1.decoded.value
217
333
  };
218
334
  }
219
- const type = Object.entries(transactionTypeIndices(this.configuration)).find(([_, index]) => index === enumValue.decoded.value)?.[0];
335
+ var type = (_a = Object.entries(transactionTypeIndices(this.configuration)).find(function (_a) {
336
+ var _ = _a[0], index = _a[1];
337
+ return index === enumValue.decoded.value;
338
+ })) === null || _a === void 0 ? void 0 : _a[0];
220
339
  if (type === undefined) {
221
340
  throw new errors_1.UnsupportedError(coinlib_core_1.Domain.SUBSTRATE, 'Unknown substrate transaction type');
222
341
  }
@@ -224,39 +343,82 @@ class SubstrateCommonTransactionController {
224
343
  bytesDecoded: enumValue.bytesDecoded,
225
344
  decoded: type
226
345
  };
227
- }
228
- async calculateTransactionFee(transaction) {
229
- const runtimeVersion = await this.nodeClient.getRuntimeVersion();
230
- const encoded = transaction.encode({ configuration: this.configuration, runtimeVersion: runtimeVersion?.specVersion });
231
- const partialEstimate = await this.nodeClient.getTransferFeeEstimate(encoded);
232
- if (partialEstimate) {
233
- this.nodeClient.saveLastFee(transaction.type, partialEstimate);
234
- }
235
- return partialEstimate?.plus(transaction.tip.value);
236
- }
237
- async estimateTransactionFees(accountId, transationTypes) {
238
- const fees = await Promise.all(transationTypes
239
- .map(([type, args]) => [type, args, this.nodeClient.getSavedLastFee(type, 'largest')])
240
- .map(async ([type, args, fee]) => fee ? fee : this.calculateTransactionFee(await this.createTransaction(type, this.substrateAddressFrom(accountId), 0, args))));
241
- if (fees.some((fee) => fee === undefined)) {
242
- return Promise.reject('Could not estimate transaction fees.');
243
- }
244
- const safetyFactor = 1.2;
245
- return fees.reduce((sum, next) => sum.plus(next), new bignumber_1.default(0)).multipliedBy(safetyFactor);
246
- }
247
- substrateAddressFrom(accountId) {
346
+ };
347
+ SubstrateCommonTransactionController.prototype.calculateTransactionFee = function (transaction) {
348
+ return __awaiter(this, void 0, void 0, function () {
349
+ var runtimeVersion, encoded, partialEstimate;
350
+ return __generator(this, function (_a) {
351
+ switch (_a.label) {
352
+ case 0: return [4 /*yield*/, this.nodeClient.getRuntimeVersion()];
353
+ case 1:
354
+ runtimeVersion = _a.sent();
355
+ encoded = transaction.encode({ configuration: this.configuration, runtimeVersion: runtimeVersion === null || runtimeVersion === void 0 ? void 0 : runtimeVersion.specVersion });
356
+ return [4 /*yield*/, this.nodeClient.getTransferFeeEstimate(encoded)];
357
+ case 2:
358
+ partialEstimate = _a.sent();
359
+ if (partialEstimate) {
360
+ this.nodeClient.saveLastFee(transaction.type, partialEstimate);
361
+ }
362
+ return [2 /*return*/, partialEstimate === null || partialEstimate === void 0 ? void 0 : partialEstimate.plus(transaction.tip.value)];
363
+ }
364
+ });
365
+ });
366
+ };
367
+ SubstrateCommonTransactionController.prototype.estimateTransactionFees = function (accountId, transationTypes) {
368
+ return __awaiter(this, void 0, void 0, function () {
369
+ var fees, safetyFactor;
370
+ var _this = this;
371
+ return __generator(this, function (_a) {
372
+ switch (_a.label) {
373
+ case 0: return [4 /*yield*/, Promise.all(transationTypes
374
+ .map(function (_a) {
375
+ var type = _a[0], args = _a[1];
376
+ return [type, args, _this.nodeClient.getSavedLastFee(type, 'largest')];
377
+ })
378
+ .map(function (_a) {
379
+ var type = _a[0], args = _a[1], fee = _a[2];
380
+ return __awaiter(_this, void 0, void 0, function () { var _b, _c; return __generator(this, function (_d) {
381
+ switch (_d.label) {
382
+ case 0:
383
+ if (!fee) return [3 /*break*/, 1];
384
+ _b = fee;
385
+ return [3 /*break*/, 3];
386
+ case 1:
387
+ _c = this.calculateTransactionFee;
388
+ return [4 /*yield*/, this.createTransaction(type, this.substrateAddressFrom(accountId), 0, args)];
389
+ case 2:
390
+ _b = _c.apply(this, [_d.sent()]);
391
+ _d.label = 3;
392
+ case 3: return [2 /*return*/, _b];
393
+ }
394
+ }); });
395
+ }))];
396
+ case 1:
397
+ fees = _a.sent();
398
+ if (fees.some(function (fee) { return fee === undefined; })) {
399
+ return [2 /*return*/, Promise.reject('Could not estimate transaction fees.')];
400
+ }
401
+ safetyFactor = 1.2;
402
+ return [2 /*return*/, fees.reduce(function (sum, next) { return sum.plus(next); }, new bignumber_1.default(0)).multipliedBy(safetyFactor)];
403
+ }
404
+ });
405
+ });
406
+ };
407
+ SubstrateCommonTransactionController.prototype.substrateAddressFrom = function (accountId) {
248
408
  return (0, SubstrateAddressFactory_1.substrateAddressFactory)(this.configuration).from(accountId);
249
- }
250
- }
409
+ };
410
+ return SubstrateCommonTransactionController;
411
+ }());
251
412
  exports.SubstrateCommonTransactionController = SubstrateCommonTransactionController;
252
413
  function transactionTypeAsEnum(configuration, type) {
253
414
  return transactionTypeIndices(configuration)[type];
254
415
  }
255
416
  function transactionTypeIndices(configuration) {
256
- const configuredIndices = Object.entries(configuration.transaction.types).reduce((obj, [type, metadata]) => Object.assign(obj, { [type]: metadata.index }), {});
257
- return {
258
- ...configuredIndices,
259
- transfer: 0
260
- };
417
+ var configuredIndices = Object.entries(configuration.transaction.types).reduce(function (obj, _a) {
418
+ var _b;
419
+ var type = _a[0], metadata = _a[1];
420
+ return Object.assign(obj, (_b = {}, _b[type] = metadata.index, _b));
421
+ }, {});
422
+ return __assign(__assign({}, configuredIndices), { transfer: 0 });
261
423
  }
262
424
  //# sourceMappingURL=SubstrateCommonTransactionController.js.map