polkadot-api 0.10.0 → 0.11.0

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 (325) hide show
  1. package/bin/cli.mjs +2 -3
  2. package/bin/cli.mjs.map +1 -1
  3. package/chains/ksmcc3/package.json +2 -2
  4. package/chains/ksmcc3_asset_hub/package.json +2 -2
  5. package/chains/ksmcc3_bridge_hub/package.json +2 -2
  6. package/chains/package.json +2 -2
  7. package/chains/paseo/package.json +8 -0
  8. package/chains/polkadot/package.json +2 -2
  9. package/chains/polkadot_asset_hub/package.json +2 -2
  10. package/chains/polkadot_bridge_hub/package.json +2 -2
  11. package/chains/polkadot_collectives/package.json +2 -2
  12. package/chains/rococo_v2_2/package.json +2 -2
  13. package/chains/rococo_v2_2_asset_hub/package.json +2 -2
  14. package/chains/rococo_v2_2_bridge_hub/package.json +2 -2
  15. package/chains/westend2/package.json +2 -2
  16. package/chains/westend2_asset_hub/package.json +2 -2
  17. package/chains/westend2_bridge_hub/package.json +2 -2
  18. package/chains/westend2_collectives/package.json +2 -2
  19. package/dist/esm/client.mjs +150 -0
  20. package/dist/esm/client.mjs.map +1 -0
  21. package/dist/esm/compatibility.mjs +132 -0
  22. package/dist/esm/compatibility.mjs.map +1 -0
  23. package/dist/esm/constants.mjs +37 -0
  24. package/dist/esm/constants.mjs.map +1 -0
  25. package/dist/esm/event.mjs +48 -0
  26. package/dist/esm/event.mjs.map +1 -0
  27. package/dist/esm/index.mjs +4 -0
  28. package/dist/esm/index.mjs.map +1 -0
  29. package/dist/esm/reexports/chains.mjs +2 -0
  30. package/dist/esm/reexports/chains.mjs.map +1 -0
  31. package/dist/{min/reexports/chains_ksmcc3.d.ts → esm/reexports/chains_ksmcc3.mjs} +1 -0
  32. package/dist/esm/reexports/chains_ksmcc3.mjs.map +1 -0
  33. package/dist/{min/reexports/chains_ksmcc3_asset_hub.d.ts → esm/reexports/chains_ksmcc3_asset_hub.mjs} +1 -0
  34. package/dist/esm/reexports/chains_ksmcc3_asset_hub.mjs.map +1 -0
  35. package/dist/{min/reexports/chains_ksmcc3_bridge_hub.d.ts → esm/reexports/chains_ksmcc3_bridge_hub.mjs} +1 -0
  36. package/dist/esm/reexports/chains_ksmcc3_bridge_hub.mjs.map +1 -0
  37. package/dist/esm/reexports/chains_paseo.mjs +2 -0
  38. package/dist/esm/reexports/chains_paseo.mjs.map +1 -0
  39. package/dist/{min/reexports/chains_polkadot.d.ts → esm/reexports/chains_polkadot.mjs} +1 -0
  40. package/dist/esm/reexports/chains_polkadot.mjs.map +1 -0
  41. package/dist/{min/reexports/chains_polkadot_asset_hub.d.ts → esm/reexports/chains_polkadot_asset_hub.mjs} +1 -0
  42. package/dist/esm/reexports/chains_polkadot_asset_hub.mjs.map +1 -0
  43. package/dist/{min/reexports/chains_polkadot_bridge_hub.d.ts → esm/reexports/chains_polkadot_bridge_hub.mjs} +1 -0
  44. package/dist/esm/reexports/chains_polkadot_bridge_hub.mjs.map +1 -0
  45. package/dist/{min/reexports/chains_polkadot_collectives.d.ts → esm/reexports/chains_polkadot_collectives.mjs} +1 -0
  46. package/dist/esm/reexports/chains_polkadot_collectives.mjs.map +1 -0
  47. package/dist/{min/reexports/chains_rococo_v2_2.d.ts → esm/reexports/chains_rococo_v2_2.mjs} +1 -0
  48. package/dist/esm/reexports/chains_rococo_v2_2.mjs.map +1 -0
  49. package/dist/{min/reexports/chains_rococo_v2_2_asset_hub.d.ts → esm/reexports/chains_rococo_v2_2_asset_hub.mjs} +1 -0
  50. package/dist/esm/reexports/chains_rococo_v2_2_asset_hub.mjs.map +1 -0
  51. package/dist/{min/reexports/chains_rococo_v2_2_bridge_hub.d.ts → esm/reexports/chains_rococo_v2_2_bridge_hub.mjs} +1 -0
  52. package/dist/esm/reexports/chains_rococo_v2_2_bridge_hub.mjs.map +1 -0
  53. package/dist/{min/reexports/chains_westend2.d.ts → esm/reexports/chains_westend2.mjs} +1 -0
  54. package/dist/esm/reexports/chains_westend2.mjs.map +1 -0
  55. package/dist/{min/reexports/chains_westend2_asset_hub.d.ts → esm/reexports/chains_westend2_asset_hub.mjs} +1 -0
  56. package/dist/esm/reexports/chains_westend2_asset_hub.mjs.map +1 -0
  57. package/dist/{min/reexports/chains_westend2_bridge_hub.d.ts → esm/reexports/chains_westend2_bridge_hub.mjs} +1 -0
  58. package/dist/esm/reexports/chains_westend2_bridge_hub.mjs.map +1 -0
  59. package/dist/{min/reexports/chains_westend2_collectives.d.ts → esm/reexports/chains_westend2_collectives.mjs} +1 -0
  60. package/dist/esm/reexports/chains_westend2_collectives.mjs.map +1 -0
  61. package/dist/{min/reexports/logs-provider.d.ts → esm/reexports/logs-provider.mjs} +1 -0
  62. package/dist/esm/reexports/logs-provider.mjs.map +1 -0
  63. package/dist/{min/reexports/pjs-signer.d.ts → esm/reexports/pjs-signer.mjs} +1 -0
  64. package/dist/esm/reexports/pjs-signer.mjs.map +1 -0
  65. package/dist/esm/reexports/polkadot-sdk-compat.mjs +2 -0
  66. package/dist/esm/reexports/polkadot-sdk-compat.mjs.map +1 -0
  67. package/dist/{min/reexports/signer.d.ts → esm/reexports/signer.mjs} +1 -0
  68. package/dist/esm/reexports/signer.mjs.map +1 -0
  69. package/dist/{min/reexports/sm-provider.d.ts → esm/reexports/sm-provider.mjs} +1 -0
  70. package/dist/esm/reexports/sm-provider.mjs.map +1 -0
  71. package/dist/{min/reexports/smoldot.d.ts → esm/reexports/smoldot.mjs} +1 -0
  72. package/dist/esm/reexports/smoldot.mjs.map +1 -0
  73. package/dist/{min/reexports/smoldot_from-worker.d.ts → esm/reexports/smoldot_from-worker.mjs} +1 -0
  74. package/dist/esm/reexports/smoldot_from-worker.mjs.map +1 -0
  75. package/dist/{min/reexports/smoldot_worker.d.ts → esm/reexports/smoldot_worker.mjs} +1 -0
  76. package/dist/esm/reexports/smoldot_worker.mjs.map +1 -0
  77. package/dist/{min/reexports/utils.d.ts → esm/reexports/utils.mjs} +1 -0
  78. package/dist/esm/reexports/utils.mjs.map +1 -0
  79. package/dist/{min/reexports/ws-provider_node.d.ts → esm/reexports/ws-provider_node.mjs} +1 -0
  80. package/dist/esm/reexports/ws-provider_node.mjs.map +1 -0
  81. package/dist/{min/reexports/ws-provider_web.d.ts → esm/reexports/ws-provider_web.mjs} +1 -0
  82. package/dist/esm/reexports/ws-provider_web.mjs.map +1 -0
  83. package/dist/esm/runtime-call.mjs +45 -0
  84. package/dist/esm/runtime-call.mjs.map +1 -0
  85. package/dist/esm/storage.mjs +146 -0
  86. package/dist/esm/storage.mjs.map +1 -0
  87. package/dist/esm/tx/create-tx.mjs +65 -0
  88. package/dist/esm/tx/create-tx.mjs.map +1 -0
  89. package/dist/esm/tx/signed-extensions/chain/CheckGenesis.mjs +9 -0
  90. package/dist/esm/tx/signed-extensions/chain/CheckGenesis.mjs.map +1 -0
  91. package/dist/esm/tx/signed-extensions/chain/CheckMetadataHash.mjs +9 -0
  92. package/dist/esm/tx/signed-extensions/chain/CheckMetadataHash.mjs.map +1 -0
  93. package/dist/esm/tx/signed-extensions/chain/CheckNonce.mjs +25 -0
  94. package/dist/esm/tx/signed-extensions/chain/CheckNonce.mjs.map +1 -0
  95. package/dist/esm/tx/signed-extensions/chain/CheckSpecVersion.mjs +9 -0
  96. package/dist/esm/tx/signed-extensions/chain/CheckSpecVersion.mjs.map +1 -0
  97. package/dist/esm/tx/signed-extensions/chain/CheckTxVersion.mjs +9 -0
  98. package/dist/esm/tx/signed-extensions/chain/CheckTxVersion.mjs.map +1 -0
  99. package/dist/esm/tx/signed-extensions/chain/index.mjs +6 -0
  100. package/dist/esm/tx/signed-extensions/chain/index.mjs.map +1 -0
  101. package/dist/esm/tx/signed-extensions/user/ChargeAssetTxPayment.mjs +18 -0
  102. package/dist/esm/tx/signed-extensions/user/ChargeAssetTxPayment.mjs.map +1 -0
  103. package/dist/esm/tx/signed-extensions/user/ChargeTransactionPayment.mjs +11 -0
  104. package/dist/esm/tx/signed-extensions/user/ChargeTransactionPayment.mjs.map +1 -0
  105. package/dist/esm/tx/signed-extensions/user/CheckMortality.mjs +43 -0
  106. package/dist/esm/tx/signed-extensions/user/CheckMortality.mjs.map +1 -0
  107. package/dist/esm/tx/signed-extensions/utils.mjs +25 -0
  108. package/dist/esm/tx/signed-extensions/utils.mjs.map +1 -0
  109. package/dist/esm/tx/submit-fns.mjs +142 -0
  110. package/dist/esm/tx/submit-fns.mjs.map +1 -0
  111. package/dist/esm/tx/tx.mjs +113 -0
  112. package/dist/esm/tx/tx.mjs.map +1 -0
  113. package/dist/esm/utils/concatMapEager.mjs +84 -0
  114. package/dist/esm/utils/concatMapEager.mjs.map +1 -0
  115. package/dist/esm/utils/continue-with.mjs +24 -0
  116. package/dist/esm/utils/continue-with.mjs.map +1 -0
  117. package/dist/esm/utils/firstValueFromWithSignal.mjs +32 -0
  118. package/dist/esm/utils/firstValueFromWithSignal.mjs.map +1 -0
  119. package/dist/esm/utils/raceMap.mjs +51 -0
  120. package/dist/esm/utils/raceMap.mjs.map +1 -0
  121. package/dist/esm/utils/shareLatest.mjs +11 -0
  122. package/dist/esm/utils/shareLatest.mjs.map +1 -0
  123. package/dist/index.d.ts +71 -113
  124. package/dist/index.js +464 -415
  125. package/dist/index.js.map +1 -1
  126. package/dist/reexports/chains.d.ts +2 -0
  127. package/dist/reexports/chains.js +12 -20
  128. package/dist/reexports/chains.js.map +1 -1
  129. package/dist/reexports/chains_ksmcc3.js +12 -20
  130. package/dist/reexports/chains_ksmcc3.js.map +1 -1
  131. package/dist/reexports/chains_ksmcc3_asset_hub.js +12 -20
  132. package/dist/reexports/chains_ksmcc3_asset_hub.js.map +1 -1
  133. package/dist/reexports/chains_ksmcc3_bridge_hub.js +12 -20
  134. package/dist/reexports/chains_ksmcc3_bridge_hub.js.map +1 -1
  135. package/dist/reexports/chains_paseo.d.ts +1 -0
  136. package/dist/reexports/chains_paseo.js +13 -0
  137. package/dist/reexports/chains_paseo.js.map +1 -0
  138. package/dist/reexports/chains_polkadot.js +12 -20
  139. package/dist/reexports/chains_polkadot.js.map +1 -1
  140. package/dist/reexports/chains_polkadot_asset_hub.js +12 -20
  141. package/dist/reexports/chains_polkadot_asset_hub.js.map +1 -1
  142. package/dist/reexports/chains_polkadot_bridge_hub.js +12 -20
  143. package/dist/reexports/chains_polkadot_bridge_hub.js.map +1 -1
  144. package/dist/reexports/chains_polkadot_collectives.js +12 -20
  145. package/dist/reexports/chains_polkadot_collectives.js.map +1 -1
  146. package/dist/reexports/chains_rococo_v2_2.js +12 -20
  147. package/dist/reexports/chains_rococo_v2_2.js.map +1 -1
  148. package/dist/reexports/chains_rococo_v2_2_asset_hub.js +12 -20
  149. package/dist/reexports/chains_rococo_v2_2_asset_hub.js.map +1 -1
  150. package/dist/reexports/chains_rococo_v2_2_bridge_hub.js +12 -20
  151. package/dist/reexports/chains_rococo_v2_2_bridge_hub.js.map +1 -1
  152. package/dist/reexports/chains_westend2.js +12 -20
  153. package/dist/reexports/chains_westend2.js.map +1 -1
  154. package/dist/reexports/chains_westend2_asset_hub.js +12 -20
  155. package/dist/reexports/chains_westend2_asset_hub.js.map +1 -1
  156. package/dist/reexports/chains_westend2_bridge_hub.js +12 -20
  157. package/dist/reexports/chains_westend2_bridge_hub.js.map +1 -1
  158. package/dist/reexports/chains_westend2_collectives.js +12 -20
  159. package/dist/reexports/chains_westend2_collectives.js.map +1 -1
  160. package/dist/reexports/logs-provider.js +12 -20
  161. package/dist/reexports/logs-provider.js.map +1 -1
  162. package/dist/reexports/pjs-signer.js +12 -20
  163. package/dist/reexports/pjs-signer.js.map +1 -1
  164. package/dist/reexports/polkadot-sdk-compat.d.ts +1 -0
  165. package/dist/reexports/polkadot-sdk-compat.js +13 -0
  166. package/dist/reexports/polkadot-sdk-compat.js.map +1 -0
  167. package/dist/reexports/signer.js +12 -20
  168. package/dist/reexports/signer.js.map +1 -1
  169. package/dist/reexports/sm-provider.js +12 -20
  170. package/dist/reexports/sm-provider.js.map +1 -1
  171. package/dist/reexports/smoldot.js +12 -20
  172. package/dist/reexports/smoldot.js.map +1 -1
  173. package/dist/reexports/smoldot_from-worker.js +12 -20
  174. package/dist/reexports/smoldot_from-worker.js.map +1 -1
  175. package/dist/reexports/smoldot_worker.js +12 -20
  176. package/dist/reexports/smoldot_worker.js.map +1 -1
  177. package/dist/reexports/utils.js +12 -20
  178. package/dist/reexports/utils.js.map +1 -1
  179. package/dist/reexports/ws-provider_node.js +12 -20
  180. package/dist/reexports/ws-provider_node.js.map +1 -1
  181. package/dist/reexports/ws-provider_web.js +12 -20
  182. package/dist/reexports/ws-provider_web.js.map +1 -1
  183. package/logs-provider/package.json +2 -2
  184. package/package.json +111 -228
  185. package/pjs-signer/package.json +2 -2
  186. package/signer/package.json +2 -2
  187. package/sm-provider/package.json +2 -2
  188. package/smoldot/from-worker/package.json +2 -2
  189. package/smoldot/package.json +2 -2
  190. package/smoldot/worker/package.json +2 -2
  191. package/utils/package.json +2 -2
  192. package/ws-provider/node/package.json +2 -2
  193. package/ws-provider/web/package.json +2 -2
  194. package/dist/index.d.mts +0 -699
  195. package/dist/index.mjs +0 -1123
  196. package/dist/index.mjs.map +0 -1
  197. package/dist/min/index.d.ts +0 -699
  198. package/dist/min/index.js +0 -2
  199. package/dist/min/index.js.map +0 -1
  200. package/dist/min/reexports/chains.d.ts +0 -25
  201. package/dist/min/reexports/chains.js +0 -2
  202. package/dist/min/reexports/chains.js.map +0 -1
  203. package/dist/min/reexports/chains_ksmcc3.js +0 -2
  204. package/dist/min/reexports/chains_ksmcc3.js.map +0 -1
  205. package/dist/min/reexports/chains_ksmcc3_asset_hub.js +0 -2
  206. package/dist/min/reexports/chains_ksmcc3_asset_hub.js.map +0 -1
  207. package/dist/min/reexports/chains_ksmcc3_bridge_hub.js +0 -2
  208. package/dist/min/reexports/chains_ksmcc3_bridge_hub.js.map +0 -1
  209. package/dist/min/reexports/chains_polkadot.js +0 -2
  210. package/dist/min/reexports/chains_polkadot.js.map +0 -1
  211. package/dist/min/reexports/chains_polkadot_asset_hub.js +0 -2
  212. package/dist/min/reexports/chains_polkadot_asset_hub.js.map +0 -1
  213. package/dist/min/reexports/chains_polkadot_bridge_hub.js +0 -2
  214. package/dist/min/reexports/chains_polkadot_bridge_hub.js.map +0 -1
  215. package/dist/min/reexports/chains_polkadot_collectives.js +0 -2
  216. package/dist/min/reexports/chains_polkadot_collectives.js.map +0 -1
  217. package/dist/min/reexports/chains_rococo_v2_2.js +0 -2
  218. package/dist/min/reexports/chains_rococo_v2_2.js.map +0 -1
  219. package/dist/min/reexports/chains_rococo_v2_2_asset_hub.js +0 -2
  220. package/dist/min/reexports/chains_rococo_v2_2_asset_hub.js.map +0 -1
  221. package/dist/min/reexports/chains_rococo_v2_2_bridge_hub.js +0 -2
  222. package/dist/min/reexports/chains_rococo_v2_2_bridge_hub.js.map +0 -1
  223. package/dist/min/reexports/chains_westend2.js +0 -2
  224. package/dist/min/reexports/chains_westend2.js.map +0 -1
  225. package/dist/min/reexports/chains_westend2_asset_hub.js +0 -2
  226. package/dist/min/reexports/chains_westend2_asset_hub.js.map +0 -1
  227. package/dist/min/reexports/chains_westend2_bridge_hub.js +0 -2
  228. package/dist/min/reexports/chains_westend2_bridge_hub.js.map +0 -1
  229. package/dist/min/reexports/chains_westend2_collectives.js +0 -2
  230. package/dist/min/reexports/chains_westend2_collectives.js.map +0 -1
  231. package/dist/min/reexports/logs-provider.js +0 -2
  232. package/dist/min/reexports/logs-provider.js.map +0 -1
  233. package/dist/min/reexports/pjs-signer.js +0 -2
  234. package/dist/min/reexports/pjs-signer.js.map +0 -1
  235. package/dist/min/reexports/signer.js +0 -2
  236. package/dist/min/reexports/signer.js.map +0 -1
  237. package/dist/min/reexports/sm-provider.js +0 -2
  238. package/dist/min/reexports/sm-provider.js.map +0 -1
  239. package/dist/min/reexports/smoldot.js +0 -2
  240. package/dist/min/reexports/smoldot.js.map +0 -1
  241. package/dist/min/reexports/smoldot_from-worker.js +0 -2
  242. package/dist/min/reexports/smoldot_from-worker.js.map +0 -1
  243. package/dist/min/reexports/smoldot_worker.js +0 -2
  244. package/dist/min/reexports/smoldot_worker.js.map +0 -1
  245. package/dist/min/reexports/utils.js +0 -2
  246. package/dist/min/reexports/utils.js.map +0 -1
  247. package/dist/min/reexports/ws-provider_node.js +0 -2
  248. package/dist/min/reexports/ws-provider_node.js.map +0 -1
  249. package/dist/min/reexports/ws-provider_web.js +0 -2
  250. package/dist/min/reexports/ws-provider_web.js.map +0 -1
  251. package/dist/reexports/chains.d.mts +0 -25
  252. package/dist/reexports/chains.mjs +0 -3
  253. package/dist/reexports/chains.mjs.map +0 -1
  254. package/dist/reexports/chains_ksmcc3.d.mts +0 -1
  255. package/dist/reexports/chains_ksmcc3.mjs +0 -3
  256. package/dist/reexports/chains_ksmcc3.mjs.map +0 -1
  257. package/dist/reexports/chains_ksmcc3_asset_hub.d.mts +0 -1
  258. package/dist/reexports/chains_ksmcc3_asset_hub.mjs +0 -3
  259. package/dist/reexports/chains_ksmcc3_asset_hub.mjs.map +0 -1
  260. package/dist/reexports/chains_ksmcc3_bridge_hub.d.mts +0 -1
  261. package/dist/reexports/chains_ksmcc3_bridge_hub.mjs +0 -3
  262. package/dist/reexports/chains_ksmcc3_bridge_hub.mjs.map +0 -1
  263. package/dist/reexports/chains_polkadot.d.mts +0 -1
  264. package/dist/reexports/chains_polkadot.mjs +0 -3
  265. package/dist/reexports/chains_polkadot.mjs.map +0 -1
  266. package/dist/reexports/chains_polkadot_asset_hub.d.mts +0 -1
  267. package/dist/reexports/chains_polkadot_asset_hub.mjs +0 -3
  268. package/dist/reexports/chains_polkadot_asset_hub.mjs.map +0 -1
  269. package/dist/reexports/chains_polkadot_bridge_hub.d.mts +0 -1
  270. package/dist/reexports/chains_polkadot_bridge_hub.mjs +0 -3
  271. package/dist/reexports/chains_polkadot_bridge_hub.mjs.map +0 -1
  272. package/dist/reexports/chains_polkadot_collectives.d.mts +0 -1
  273. package/dist/reexports/chains_polkadot_collectives.mjs +0 -3
  274. package/dist/reexports/chains_polkadot_collectives.mjs.map +0 -1
  275. package/dist/reexports/chains_rococo_v2_2.d.mts +0 -1
  276. package/dist/reexports/chains_rococo_v2_2.mjs +0 -3
  277. package/dist/reexports/chains_rococo_v2_2.mjs.map +0 -1
  278. package/dist/reexports/chains_rococo_v2_2_asset_hub.d.mts +0 -1
  279. package/dist/reexports/chains_rococo_v2_2_asset_hub.mjs +0 -3
  280. package/dist/reexports/chains_rococo_v2_2_asset_hub.mjs.map +0 -1
  281. package/dist/reexports/chains_rococo_v2_2_bridge_hub.d.mts +0 -1
  282. package/dist/reexports/chains_rococo_v2_2_bridge_hub.mjs +0 -3
  283. package/dist/reexports/chains_rococo_v2_2_bridge_hub.mjs.map +0 -1
  284. package/dist/reexports/chains_westend2.d.mts +0 -1
  285. package/dist/reexports/chains_westend2.mjs +0 -3
  286. package/dist/reexports/chains_westend2.mjs.map +0 -1
  287. package/dist/reexports/chains_westend2_asset_hub.d.mts +0 -1
  288. package/dist/reexports/chains_westend2_asset_hub.mjs +0 -3
  289. package/dist/reexports/chains_westend2_asset_hub.mjs.map +0 -1
  290. package/dist/reexports/chains_westend2_bridge_hub.d.mts +0 -1
  291. package/dist/reexports/chains_westend2_bridge_hub.mjs +0 -3
  292. package/dist/reexports/chains_westend2_bridge_hub.mjs.map +0 -1
  293. package/dist/reexports/chains_westend2_collectives.d.mts +0 -1
  294. package/dist/reexports/chains_westend2_collectives.mjs +0 -3
  295. package/dist/reexports/chains_westend2_collectives.mjs.map +0 -1
  296. package/dist/reexports/logs-provider.d.mts +0 -1
  297. package/dist/reexports/logs-provider.mjs +0 -3
  298. package/dist/reexports/logs-provider.mjs.map +0 -1
  299. package/dist/reexports/pjs-signer.d.mts +0 -1
  300. package/dist/reexports/pjs-signer.mjs +0 -3
  301. package/dist/reexports/pjs-signer.mjs.map +0 -1
  302. package/dist/reexports/signer.d.mts +0 -1
  303. package/dist/reexports/signer.mjs +0 -3
  304. package/dist/reexports/signer.mjs.map +0 -1
  305. package/dist/reexports/sm-provider.d.mts +0 -1
  306. package/dist/reexports/sm-provider.mjs +0 -3
  307. package/dist/reexports/sm-provider.mjs.map +0 -1
  308. package/dist/reexports/smoldot.d.mts +0 -1
  309. package/dist/reexports/smoldot.mjs +0 -3
  310. package/dist/reexports/smoldot.mjs.map +0 -1
  311. package/dist/reexports/smoldot_from-worker.d.mts +0 -1
  312. package/dist/reexports/smoldot_from-worker.mjs +0 -3
  313. package/dist/reexports/smoldot_from-worker.mjs.map +0 -1
  314. package/dist/reexports/smoldot_worker.d.mts +0 -1
  315. package/dist/reexports/smoldot_worker.mjs +0 -3
  316. package/dist/reexports/smoldot_worker.mjs.map +0 -1
  317. package/dist/reexports/utils.d.mts +0 -1
  318. package/dist/reexports/utils.mjs +0 -3
  319. package/dist/reexports/utils.mjs.map +0 -1
  320. package/dist/reexports/ws-provider_node.d.mts +0 -1
  321. package/dist/reexports/ws-provider_node.mjs +0 -3
  322. package/dist/reexports/ws-provider_node.mjs.map +0 -1
  323. package/dist/reexports/ws-provider_web.d.mts +0 -1
  324. package/dist/reexports/ws-provider_web.mjs +0 -3
  325. package/dist/reexports/ws-provider_web.mjs.map +0 -1
package/bin/cli.mjs CHANGED
@@ -1,11 +1,10 @@
1
1
  #!/usr/bin/env node
2
+ import { getCli, add, generate, remove, update } from '@polkadot-api/cli';
2
3
 
3
- // src/cli.ts
4
- import { add, generate, getCli, remove, update } from "@polkadot-api/cli";
5
4
  getCli({
6
5
  add,
7
6
  generate,
8
7
  remove,
9
8
  update
10
9
  }).parse();
11
- //# sourceMappingURL=cli.mjs.map
10
+ //# sourceMappingURL=cli.mjs.map
package/bin/cli.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { add, generate, getCli, remove, update } from \"@polkadot-api/cli\"\n\ngetCli({\n add,\n generate,\n remove,\n update,\n}).parse()\n"],"mappings":";;;AAEA,SAAS,KAAK,UAAU,QAAQ,QAAQ,cAAc;AAEtD,OAAO;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC,EAAE,MAAM;","names":[]}
1
+ {"version":3,"file":"cli.mjs","sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { add, generate, getCli, remove, update } from \"@polkadot-api/cli\"\n\ngetCli({\n add,\n generate,\n remove,\n update,\n}).parse()\n"],"names":[],"mappings":";;;AAIA,MAAO,CAAA;AAAA,EACL,GAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AACF,CAAC,EAAE,KAAM,EAAA"}
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_ksmcc3",
3
3
  "types": "../../dist/reexports/chains_ksmcc3.d.ts",
4
- "module": "../../dist/reexports/chains_ksmcc3.mjs",
5
- "import": "../../dist/reexports/chains_ksmcc3.mjs",
4
+ "module": "../../dist/esm/reexports/chains_ksmcc3.mjs",
5
+ "import": "../../dist/esm/reexports/chains_ksmcc3.mjs",
6
6
  "require": "../../dist/reexports/chains_ksmcc3.js",
7
7
  "default": "../../dist/reexports/chains_ksmcc3.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_ksmcc3_asset_hub",
3
3
  "types": "../../dist/reexports/chains_ksmcc3_asset_hub.d.ts",
4
- "module": "../../dist/reexports/chains_ksmcc3_asset_hub.mjs",
5
- "import": "../../dist/reexports/chains_ksmcc3_asset_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_ksmcc3_asset_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_ksmcc3_asset_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_ksmcc3_asset_hub.js",
7
7
  "default": "../../dist/reexports/chains_ksmcc3_asset_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_ksmcc3_bridge_hub",
3
3
  "types": "../../dist/reexports/chains_ksmcc3_bridge_hub.d.ts",
4
- "module": "../../dist/reexports/chains_ksmcc3_bridge_hub.mjs",
5
- "import": "../../dist/reexports/chains_ksmcc3_bridge_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_ksmcc3_bridge_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_ksmcc3_bridge_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_ksmcc3_bridge_hub.js",
7
7
  "default": "../../dist/reexports/chains_ksmcc3_bridge_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains",
3
3
  "types": "../dist/reexports/chains.d.ts",
4
- "module": "../dist/reexports/chains.mjs",
5
- "import": "../dist/reexports/chains.mjs",
4
+ "module": "../dist/esm/reexports/chains.mjs",
5
+ "import": "../dist/esm/reexports/chains.mjs",
6
6
  "require": "../dist/reexports/chains.js",
7
7
  "default": "../dist/reexports/chains.js"
8
8
  }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "polkadot-api_chains_paseo",
3
+ "types": "../../dist/reexports/chains_paseo.d.ts",
4
+ "module": "../../dist/esm/reexports/chains_paseo.mjs",
5
+ "import": "../../dist/esm/reexports/chains_paseo.mjs",
6
+ "require": "../../dist/reexports/chains_paseo.js",
7
+ "default": "../../dist/reexports/chains_paseo.js"
8
+ }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_polkadot",
3
3
  "types": "../../dist/reexports/chains_polkadot.d.ts",
4
- "module": "../../dist/reexports/chains_polkadot.mjs",
5
- "import": "../../dist/reexports/chains_polkadot.mjs",
4
+ "module": "../../dist/esm/reexports/chains_polkadot.mjs",
5
+ "import": "../../dist/esm/reexports/chains_polkadot.mjs",
6
6
  "require": "../../dist/reexports/chains_polkadot.js",
7
7
  "default": "../../dist/reexports/chains_polkadot.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_polkadot_asset_hub",
3
3
  "types": "../../dist/reexports/chains_polkadot_asset_hub.d.ts",
4
- "module": "../../dist/reexports/chains_polkadot_asset_hub.mjs",
5
- "import": "../../dist/reexports/chains_polkadot_asset_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_polkadot_asset_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_polkadot_asset_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_polkadot_asset_hub.js",
7
7
  "default": "../../dist/reexports/chains_polkadot_asset_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_polkadot_bridge_hub",
3
3
  "types": "../../dist/reexports/chains_polkadot_bridge_hub.d.ts",
4
- "module": "../../dist/reexports/chains_polkadot_bridge_hub.mjs",
5
- "import": "../../dist/reexports/chains_polkadot_bridge_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_polkadot_bridge_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_polkadot_bridge_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_polkadot_bridge_hub.js",
7
7
  "default": "../../dist/reexports/chains_polkadot_bridge_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_polkadot_collectives",
3
3
  "types": "../../dist/reexports/chains_polkadot_collectives.d.ts",
4
- "module": "../../dist/reexports/chains_polkadot_collectives.mjs",
5
- "import": "../../dist/reexports/chains_polkadot_collectives.mjs",
4
+ "module": "../../dist/esm/reexports/chains_polkadot_collectives.mjs",
5
+ "import": "../../dist/esm/reexports/chains_polkadot_collectives.mjs",
6
6
  "require": "../../dist/reexports/chains_polkadot_collectives.js",
7
7
  "default": "../../dist/reexports/chains_polkadot_collectives.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_rococo_v2_2",
3
3
  "types": "../../dist/reexports/chains_rococo_v2_2.d.ts",
4
- "module": "../../dist/reexports/chains_rococo_v2_2.mjs",
5
- "import": "../../dist/reexports/chains_rococo_v2_2.mjs",
4
+ "module": "../../dist/esm/reexports/chains_rococo_v2_2.mjs",
5
+ "import": "../../dist/esm/reexports/chains_rococo_v2_2.mjs",
6
6
  "require": "../../dist/reexports/chains_rococo_v2_2.js",
7
7
  "default": "../../dist/reexports/chains_rococo_v2_2.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_rococo_v2_2_asset_hub",
3
3
  "types": "../../dist/reexports/chains_rococo_v2_2_asset_hub.d.ts",
4
- "module": "../../dist/reexports/chains_rococo_v2_2_asset_hub.mjs",
5
- "import": "../../dist/reexports/chains_rococo_v2_2_asset_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_rococo_v2_2_asset_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_rococo_v2_2_asset_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_rococo_v2_2_asset_hub.js",
7
7
  "default": "../../dist/reexports/chains_rococo_v2_2_asset_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_rococo_v2_2_bridge_hub",
3
3
  "types": "../../dist/reexports/chains_rococo_v2_2_bridge_hub.d.ts",
4
- "module": "../../dist/reexports/chains_rococo_v2_2_bridge_hub.mjs",
5
- "import": "../../dist/reexports/chains_rococo_v2_2_bridge_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_rococo_v2_2_bridge_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_rococo_v2_2_bridge_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_rococo_v2_2_bridge_hub.js",
7
7
  "default": "../../dist/reexports/chains_rococo_v2_2_bridge_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_westend2",
3
3
  "types": "../../dist/reexports/chains_westend2.d.ts",
4
- "module": "../../dist/reexports/chains_westend2.mjs",
5
- "import": "../../dist/reexports/chains_westend2.mjs",
4
+ "module": "../../dist/esm/reexports/chains_westend2.mjs",
5
+ "import": "../../dist/esm/reexports/chains_westend2.mjs",
6
6
  "require": "../../dist/reexports/chains_westend2.js",
7
7
  "default": "../../dist/reexports/chains_westend2.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_westend2_asset_hub",
3
3
  "types": "../../dist/reexports/chains_westend2_asset_hub.d.ts",
4
- "module": "../../dist/reexports/chains_westend2_asset_hub.mjs",
5
- "import": "../../dist/reexports/chains_westend2_asset_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_westend2_asset_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_westend2_asset_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_westend2_asset_hub.js",
7
7
  "default": "../../dist/reexports/chains_westend2_asset_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_westend2_bridge_hub",
3
3
  "types": "../../dist/reexports/chains_westend2_bridge_hub.d.ts",
4
- "module": "../../dist/reexports/chains_westend2_bridge_hub.mjs",
5
- "import": "../../dist/reexports/chains_westend2_bridge_hub.mjs",
4
+ "module": "../../dist/esm/reexports/chains_westend2_bridge_hub.mjs",
5
+ "import": "../../dist/esm/reexports/chains_westend2_bridge_hub.mjs",
6
6
  "require": "../../dist/reexports/chains_westend2_bridge_hub.js",
7
7
  "default": "../../dist/reexports/chains_westend2_bridge_hub.js"
8
8
  }
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "polkadot-api_chains_westend2_collectives",
3
3
  "types": "../../dist/reexports/chains_westend2_collectives.d.ts",
4
- "module": "../../dist/reexports/chains_westend2_collectives.mjs",
5
- "import": "../../dist/reexports/chains_westend2_collectives.mjs",
4
+ "module": "../../dist/esm/reexports/chains_westend2_collectives.mjs",
5
+ "import": "../../dist/esm/reexports/chains_westend2_collectives.mjs",
6
6
  "require": "../../dist/reexports/chains_westend2_collectives.js",
7
7
  "default": "../../dist/reexports/chains_westend2_collectives.js"
8
8
  }
@@ -0,0 +1,150 @@
1
+ import { storageEntryPoint, singleValueEntryPoint, runtimeCallEntryPoint, enumValueEntryPointNode, voidEntryPointNode } from '@polkadot-api/metadata-compatibility';
2
+ import { getObservableClient } from '@polkadot-api/observable-client';
3
+ import { createClient as createClient$1 } from '@polkadot-api/substrate-client';
4
+ import { firstValueFrom } from 'rxjs';
5
+ import { createCompatibilityToken, compatibilityHelper, OpType } from './compatibility.mjs';
6
+ import { createConstantEntry } from './constants.mjs';
7
+ import { createEventEntry } from './event.mjs';
8
+ import { createRuntimeCallEntry } from './runtime-call.mjs';
9
+ import { createStorageEntry } from './storage.mjs';
10
+ import { createTxEntry } from './tx/tx.mjs';
11
+ import { submit, submit$ } from './tx/submit-fns.mjs';
12
+
13
+ const createTypedApi = (compatibilityToken, chainHead, broadcast$) => {
14
+ const target = {};
15
+ const createProxy = (propCall) => new Proxy(target, {
16
+ get(_, prop) {
17
+ return propCall(prop);
18
+ }
19
+ });
20
+ const createProxyPath = (pathCall) => {
21
+ const cache = {};
22
+ return createProxy((a) => {
23
+ if (!cache[a]) cache[a] = {};
24
+ return createProxy((b) => {
25
+ if (!cache[a][b]) cache[a][b] = pathCall(a, b);
26
+ return cache[a][b];
27
+ });
28
+ });
29
+ };
30
+ const getPallet = (ctx, name) => ctx.lookup.metadata.pallets.find((p) => p.name === name);
31
+ const query = createProxyPath(
32
+ (pallet, name) => createStorageEntry(
33
+ pallet,
34
+ name,
35
+ chainHead,
36
+ compatibilityHelper(
37
+ compatibilityToken,
38
+ (r) => r.getPalletEntryPoint(OpType.Storage, pallet, name),
39
+ // TODO this is way sub-optimal. Needs some rethought - maybe a builder for entry points?.
40
+ (ctx) => storageEntryPoint(
41
+ getPallet(ctx, pallet).storage.items.find((s) => s.name === name)
42
+ )
43
+ )
44
+ )
45
+ );
46
+ const getEnumEntry = (ctx, side, id, name) => {
47
+ const entry = ctx.lookup(id);
48
+ if (entry.type !== "enum") throw new Error("Expected enum");
49
+ const node = enumValueEntryPointNode(entry.value[name]);
50
+ return {
51
+ args: side === "args" ? node : voidEntryPointNode,
52
+ values: side === "args" ? voidEntryPointNode : node
53
+ };
54
+ };
55
+ const tx = createProxyPath(
56
+ (pallet, name) => createTxEntry(
57
+ pallet,
58
+ name,
59
+ chainHead,
60
+ broadcast$,
61
+ compatibilityHelper(
62
+ compatibilityToken,
63
+ (r) => r.getPalletEntryPoint(OpType.Tx, pallet, name),
64
+ (ctx) => getEnumEntry(ctx, "args", getPallet(ctx, pallet).calls, name)
65
+ )
66
+ )
67
+ );
68
+ const event = createProxyPath(
69
+ (pallet, name) => createEventEntry(
70
+ pallet,
71
+ name,
72
+ chainHead,
73
+ compatibilityHelper(
74
+ compatibilityToken,
75
+ (r) => r.getPalletEntryPoint(OpType.Event, pallet, name),
76
+ (ctx) => getEnumEntry(ctx, "values", getPallet(ctx, pallet).events, name)
77
+ )
78
+ )
79
+ );
80
+ const constants = createProxyPath(
81
+ (pallet, name) => createConstantEntry(
82
+ pallet,
83
+ name,
84
+ compatibilityHelper(
85
+ compatibilityToken,
86
+ (r) => r.getPalletEntryPoint(OpType.Const, pallet, name),
87
+ (ctx) => singleValueEntryPoint(
88
+ getPallet(ctx, pallet).constants.find((c) => c.name === name).type
89
+ )
90
+ )
91
+ )
92
+ );
93
+ const apis = createProxyPath(
94
+ (api, method) => createRuntimeCallEntry(
95
+ api,
96
+ method,
97
+ chainHead,
98
+ compatibilityHelper(
99
+ compatibilityToken,
100
+ (r) => r.getApiEntryPoint(api, method),
101
+ (ctx) => runtimeCallEntryPoint(
102
+ ctx.lookup.metadata.apis.find((a) => a.name === api).methods.find((m) => m.name === method)
103
+ )
104
+ )
105
+ )
106
+ );
107
+ return {
108
+ query,
109
+ tx,
110
+ event,
111
+ apis,
112
+ constants,
113
+ compatibilityToken
114
+ };
115
+ };
116
+ function createClient(provider) {
117
+ const rawClient = createClient$1(provider);
118
+ const client = getObservableClient(rawClient);
119
+ const chainHead = client.chainHead$();
120
+ const { getChainSpecData } = rawClient;
121
+ const _request = rawClient.request;
122
+ const compatibilityToken = /* @__PURE__ */ new WeakMap();
123
+ const getChainToken = (chainDefinition) => {
124
+ const result = compatibilityToken.get(chainDefinition) || createCompatibilityToken(chainDefinition, chainHead);
125
+ compatibilityToken.set(chainDefinition, result);
126
+ return result;
127
+ };
128
+ const { broadcastTx$ } = client;
129
+ return {
130
+ getChainSpecData,
131
+ finalizedBlock$: chainHead.finalized$,
132
+ getFinalizedBlock: () => firstValueFrom(chainHead.finalized$),
133
+ bestBlocks$: chainHead.bestBlocks$,
134
+ getBestBlocks: () => firstValueFrom(chainHead.bestBlocks$),
135
+ watchBlockBody: chainHead.body$,
136
+ getBlockBody: (hash) => firstValueFrom(chainHead.body$(hash)),
137
+ getBlockHeader: (hash) => firstValueFrom(chainHead.header$(hash ?? null)),
138
+ submit: (...args) => submit(chainHead, broadcastTx$, ...args),
139
+ submitAndWatch: (...args) => submit$(chainHead, broadcastTx$, ...args),
140
+ getTypedApi: (chainDefinition) => createTypedApi(getChainToken(chainDefinition), chainHead, broadcastTx$),
141
+ destroy: () => {
142
+ chainHead.unfollow();
143
+ client.destroy();
144
+ },
145
+ _request
146
+ };
147
+ }
148
+
149
+ export { createClient };
150
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","sources":["../../src/client.ts"],"sourcesContent":["import { JsonRpcProvider } from \"@polkadot-api/json-rpc-provider\"\nimport {\n enumValueEntryPointNode,\n runtimeCallEntryPoint,\n singleValueEntryPoint,\n storageEntryPoint,\n voidEntryPointNode,\n} from \"@polkadot-api/metadata-compatibility\"\nimport {\n RuntimeContext,\n getObservableClient,\n} from \"@polkadot-api/observable-client\"\nimport {\n SubstrateClient,\n createClient as createRawClient,\n} from \"@polkadot-api/substrate-client\"\nimport { Observable, firstValueFrom } from \"rxjs\"\nimport {\n CompatibilityToken,\n OpType,\n compatibilityHelper,\n createCompatibilityToken,\n} from \"./compatibility\"\nimport { createConstantEntry } from \"./constants\"\nimport { ChainDefinition } from \"./descriptors\"\nimport { createEventEntry } from \"./event\"\nimport { createRuntimeCallEntry } from \"./runtime-call\"\nimport { createStorageEntry } from \"./storage\"\nimport { createTxEntry, submit, submit$ } from \"./tx\"\nimport { PolkadotClient, TypedApi } from \"./types\"\n\nconst createTypedApi = <D extends ChainDefinition>(\n compatibilityToken: Promise<CompatibilityToken>,\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n broadcast$: (tx: string) => Observable<never>,\n): TypedApi<D> => {\n const target = {}\n const createProxy = (propCall: (prop: string) => unknown) =>\n new Proxy(target, {\n get(_, prop) {\n return propCall(prop as string)\n },\n })\n const createProxyPath = <T>(pathCall: (a: string, b: string) => T) => {\n const cache: Record<string, Record<string, T>> = {}\n return createProxy((a) => {\n if (!cache[a]) cache[a] = {}\n return createProxy((b) => {\n if (!cache[a][b]) cache[a][b] = pathCall(a, b)\n return cache[a][b]\n })\n }) as Record<string, Record<string, T>>\n }\n\n const getPallet = (ctx: RuntimeContext, name: string) =>\n ctx.lookup.metadata.pallets.find((p) => p.name === name)!\n const query = createProxyPath((pallet, name) =>\n createStorageEntry(\n pallet,\n name,\n chainHead,\n compatibilityHelper(\n compatibilityToken,\n (r) => r.getPalletEntryPoint(OpType.Storage, pallet, name),\n // TODO this is way sub-optimal. Needs some rethought - maybe a builder for entry points?.\n (ctx) =>\n storageEntryPoint(\n getPallet(ctx, pallet).storage!.items.find((s) => s.name === name)!,\n ),\n ),\n ),\n )\n\n const getEnumEntry = (\n ctx: RuntimeContext,\n side: \"args\" | \"values\",\n id: number,\n name: string,\n ) => {\n const entry = ctx.lookup(id)\n if (entry.type !== \"enum\") throw new Error(\"Expected enum\")\n\n const node = enumValueEntryPointNode(entry.value[name])\n return {\n args: side === \"args\" ? node : voidEntryPointNode,\n values: side === \"args\" ? voidEntryPointNode : node,\n }\n }\n const tx = createProxyPath((pallet, name) =>\n createTxEntry(\n pallet,\n name,\n chainHead,\n broadcast$,\n compatibilityHelper(\n compatibilityToken,\n (r) => r.getPalletEntryPoint(OpType.Tx, pallet, name),\n (ctx) => getEnumEntry(ctx, \"args\", getPallet(ctx, pallet).calls!, name),\n ),\n ),\n )\n\n const event = createProxyPath((pallet, name) =>\n createEventEntry(\n pallet,\n name,\n chainHead,\n compatibilityHelper(\n compatibilityToken,\n (r) => r.getPalletEntryPoint(OpType.Event, pallet, name),\n (ctx) =>\n getEnumEntry(ctx, \"values\", getPallet(ctx, pallet).events!, name),\n ),\n ),\n )\n\n const constants = createProxyPath((pallet, name) =>\n createConstantEntry(\n pallet,\n name,\n compatibilityHelper(\n compatibilityToken,\n (r) => r.getPalletEntryPoint(OpType.Const, pallet, name),\n (ctx) =>\n singleValueEntryPoint(\n getPallet(ctx, pallet).constants.find((c) => c.name === name)!.type,\n ),\n ),\n ),\n )\n\n const apis = createProxyPath((api, method) =>\n createRuntimeCallEntry(\n api,\n method,\n chainHead,\n compatibilityHelper(\n compatibilityToken,\n (r) => r.getApiEntryPoint(api, method),\n (ctx) =>\n runtimeCallEntryPoint(\n ctx.lookup.metadata.apis\n .find((a) => a.name === api)!\n .methods.find((m) => m.name === method)!,\n ),\n ),\n ),\n )\n\n return {\n query,\n tx,\n event,\n apis,\n constants,\n compatibilityToken,\n } as any\n}\n\n/**\n * This is the top-level export for `polkadot-api`.\n *\n * @param provider A `JsonRpcProvider` compliant with the [JSON-RPC\n * spec](https://paritytech.github.io/json-rpc-interface-spec/),\n * which must support the `chainHead`, `transaction` and\n * `chainSpec` groups.\n * @example\n *\n * import { createClient } from \"polkadot-api\"\n * import { getSmProvider } from \"polkadot-api/sm-provider\"\n * import { chainSpec } from \"polkadot-api/chains/polkadot\"\n * import { start } from \"polkadot-api/smoldot\"\n *\n * const smoldot = start()\n * const chain = await smoldot.addChain({ chainSpec })\n *\n * // Connect to the polkadot relay chain.\n * const client = createClient(getSmProvider(chain))\n *\n */\nexport function createClient(provider: JsonRpcProvider): PolkadotClient {\n const rawClient: SubstrateClient = createRawClient(provider)\n const client = getObservableClient(rawClient)\n const chainHead = client.chainHead$()\n\n const { getChainSpecData } = rawClient\n\n const _request: <Reply = any, Params extends Array<any> = any[]>(\n method: string,\n params: Params,\n ) => Promise<Reply> = rawClient.request\n\n const compatibilityToken = new WeakMap<\n ChainDefinition,\n Promise<CompatibilityToken<any>>\n >()\n const getChainToken = (chainDefinition: ChainDefinition) => {\n const result =\n compatibilityToken.get(chainDefinition) ||\n createCompatibilityToken(chainDefinition, chainHead)\n compatibilityToken.set(chainDefinition, result)\n return result\n }\n\n const { broadcastTx$ } = client\n return {\n getChainSpecData,\n\n finalizedBlock$: chainHead.finalized$,\n getFinalizedBlock: () => firstValueFrom(chainHead.finalized$),\n\n bestBlocks$: chainHead.bestBlocks$,\n getBestBlocks: () => firstValueFrom(chainHead.bestBlocks$),\n\n watchBlockBody: chainHead.body$,\n getBlockBody: (hash: string) => firstValueFrom(chainHead.body$(hash)),\n\n getBlockHeader: (hash?: string) =>\n firstValueFrom(chainHead.header$(hash ?? null)),\n\n submit: (...args) => submit(chainHead, broadcastTx$, ...args),\n submitAndWatch: (...args) => submit$(chainHead, broadcastTx$, ...args),\n\n getTypedApi: <D extends ChainDefinition>(chainDefinition: D) =>\n createTypedApi(getChainToken(chainDefinition), chainHead, broadcastTx$),\n\n destroy: () => {\n chainHead.unfollow()\n client.destroy()\n },\n\n _request,\n }\n}\n"],"names":["createRawClient"],"mappings":"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"}
@@ -0,0 +1,132 @@
1
+ import { EntryPointCodec, TypedefCodec, mapLookupToTypedef, entryPointsAreCompatible, CompatibilityLevel, valueIsCompatibleWithDest } from '@polkadot-api/metadata-compatibility';
2
+ import { Vector, Tuple } from '@polkadot-api/substrate-bindings';
3
+ import { filter, firstValueFrom, combineLatest, map } from 'rxjs';
4
+
5
+ class CompatibilityToken {
6
+ // @ts-ignore
7
+ constructor(_descriptors) {
8
+ this._descriptors = _descriptors;
9
+ }
10
+ }
11
+ const compatibilityTokenApi = /* @__PURE__ */ new WeakMap();
12
+ const getCompatibilityApi = (token) => compatibilityTokenApi.get(token);
13
+ var OpType = /* @__PURE__ */ ((OpType2) => {
14
+ OpType2["Storage"] = "storage";
15
+ OpType2["Tx"] = "tx";
16
+ OpType2["Event"] = "events";
17
+ OpType2["Error"] = "errors";
18
+ OpType2["Const"] = "constants";
19
+ return OpType2;
20
+ })(OpType || {});
21
+ const EntryPointsCodec = Vector(EntryPointCodec);
22
+ const TypedefsCodec = Vector(TypedefCodec);
23
+ const TypesCodec = Tuple(EntryPointsCodec, TypedefsCodec);
24
+ const createCompatibilityToken = (chainDefinition, chainHead) => {
25
+ const awaitedRuntime = new Promise(async (resolve) => {
26
+ const loadedRuntime$ = chainHead.runtime$.pipe(filter((v) => v != null));
27
+ let latest = await firstValueFrom(loadedRuntime$);
28
+ loadedRuntime$.subscribe((v) => latest = v);
29
+ resolve(() => latest);
30
+ });
31
+ const promise = Promise.all([
32
+ chainDefinition.metadataTypes.then(TypesCodec.dec),
33
+ chainDefinition.descriptors,
34
+ awaitedRuntime
35
+ ]).then(([[entryPoints, typedefNodes], descriptors, runtime]) => {
36
+ const token = new CompatibilityToken();
37
+ compatibilityTokenApi.set(token, {
38
+ runtime,
39
+ getPalletEntryPoint(opType, pallet, name) {
40
+ return entryPoints[descriptors[opType][pallet][name]];
41
+ },
42
+ getApiEntryPoint(name, method) {
43
+ return entryPoints[descriptors.apis[name][method]];
44
+ },
45
+ typedefNodes
46
+ });
47
+ return token;
48
+ });
49
+ return promise;
50
+ };
51
+ const metadataCache = /* @__PURE__ */ new WeakMap();
52
+ const getMetadataCache = (ctx) => {
53
+ if (!metadataCache.has(ctx.metadataRaw)) {
54
+ metadataCache.set(ctx.metadataRaw, {
55
+ compat: /* @__PURE__ */ new Map(),
56
+ lookup: ctx.lookup,
57
+ typeNodes: []
58
+ });
59
+ }
60
+ return metadataCache.get(ctx.metadataRaw);
61
+ };
62
+ const compatibilityHelper = (descriptors, getDescriptorEntryPoint, getRuntimeEntryPoint) => {
63
+ const getRuntimeTypedef = (ctx, id) => {
64
+ var _a;
65
+ const cache = getMetadataCache(ctx);
66
+ return (_a = cache.typeNodes)[id] || (_a[id] = mapLookupToTypedef(cache.lookup(id)));
67
+ };
68
+ function getCompatibilityLevels(descriptors2, ctx) {
69
+ const compatibilityApi = compatibilityTokenApi.get(descriptors2);
70
+ ctx || (ctx = compatibilityApi.runtime());
71
+ const descriptorEntryPoint = getDescriptorEntryPoint(compatibilityApi);
72
+ const runtimeEntryPoint = getRuntimeEntryPoint(ctx);
73
+ const descriptorNodes = compatibilityApi.typedefNodes;
74
+ const cache = getMetadataCache(ctx);
75
+ return entryPointsAreCompatible(
76
+ descriptorEntryPoint,
77
+ (id) => descriptorNodes[id],
78
+ runtimeEntryPoint,
79
+ (id) => getRuntimeTypedef(ctx, id),
80
+ cache.compat
81
+ );
82
+ }
83
+ const getCompatibilityLevel = withOptionalToken(
84
+ descriptors,
85
+ (runtime) => minCompatLevel(getCompatibilityLevels(runtime))
86
+ );
87
+ const waitDescriptors = () => descriptors;
88
+ const compatibleRuntime$ = (chainHead, hash) => combineLatest([waitDescriptors(), chainHead.getRuntimeContext$(hash)]);
89
+ const withCompatibleRuntime = (chainHead, mapper) => (source$) => combineLatest([
90
+ source$.pipe(chainHead.withRuntime(mapper)),
91
+ waitDescriptors()
92
+ ]).pipe(map(([[x, ctx], descriptors2]) => [x, descriptors2, ctx]));
93
+ const argsAreCompatible = (descriptors2, ctx, args) => {
94
+ const levels = getCompatibilityLevels(descriptors2, ctx);
95
+ if (levels.args === CompatibilityLevel.Incompatible) return false;
96
+ if (levels.args > CompatibilityLevel.Partial) return true;
97
+ if (levels.values === CompatibilityLevel.Incompatible) return false;
98
+ const entryPoint = getRuntimeEntryPoint(ctx);
99
+ return valueIsCompatibleWithDest(
100
+ entryPoint.args,
101
+ (id) => getRuntimeTypedef(ctx, id),
102
+ args
103
+ );
104
+ };
105
+ const valuesAreCompatible = (descriptors2, ctx, values) => {
106
+ const level = getCompatibilityLevels(descriptors2, ctx).values;
107
+ if (level === CompatibilityLevel.Incompatible) return false;
108
+ if (level > CompatibilityLevel.Partial) return true;
109
+ const compatibilityApi = compatibilityTokenApi.get(descriptors2);
110
+ const entryPoint = getDescriptorEntryPoint(compatibilityApi);
111
+ return valueIsCompatibleWithDest(
112
+ entryPoint.values,
113
+ (id) => compatibilityApi.typedefNodes[id],
114
+ values
115
+ );
116
+ };
117
+ return {
118
+ getCompatibilityLevel,
119
+ getCompatibilityLevels,
120
+ waitDescriptors,
121
+ withCompatibleRuntime,
122
+ compatibleRuntime$,
123
+ argsAreCompatible,
124
+ valuesAreCompatible,
125
+ getRuntimeTypedef
126
+ };
127
+ };
128
+ const minCompatLevel = (levels) => Math.min(levels.args, levels.values);
129
+ const withOptionalToken = (compatibilityToken, fn) => (runtime) => runtime ? fn(runtime) : compatibilityToken.then(fn);
130
+
131
+ export { CompatibilityToken, OpType, compatibilityHelper, createCompatibilityToken, getCompatibilityApi, minCompatLevel };
132
+ //# sourceMappingURL=compatibility.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.mjs","sources":["../../src/compatibility.ts"],"sourcesContent":["import { MetadataLookup } from \"@polkadot-api/metadata-builders\"\nimport {\n CompatibilityCache,\n CompatibilityLevel,\n EntryPoint,\n EntryPointCodec,\n TypedefCodec,\n TypedefNode,\n entryPointsAreCompatible,\n mapLookupToTypedef,\n valueIsCompatibleWithDest,\n} from \"@polkadot-api/metadata-compatibility\"\nimport {\n ChainHead$,\n getObservableClient,\n RuntimeContext,\n} from \"@polkadot-api/observable-client\"\nimport { Tuple, Vector } from \"@polkadot-api/substrate-bindings\"\nimport { Observable, combineLatest, filter, firstValueFrom, map } from \"rxjs\"\nimport { ChainDefinition } from \"./descriptors\"\n\nexport class CompatibilityToken<D = unknown> {\n // @ts-ignore\n private constructor(protected _descriptors: D) {}\n}\n\ninterface CompatibilityTokenApi {\n runtime: () => RuntimeContext\n typedefNodes: TypedefNode[]\n getPalletEntryPoint: (\n opType: OpType,\n pallet: string,\n name: string,\n ) => EntryPoint\n getApiEntryPoint: (name: string, method: string) => EntryPoint\n}\nconst compatibilityTokenApi = new WeakMap<\n CompatibilityToken,\n CompatibilityTokenApi\n>()\nexport const getCompatibilityApi = (token: CompatibilityToken) =>\n compatibilityTokenApi.get(token)!\n\nexport const enum OpType {\n Storage = \"storage\",\n Tx = \"tx\",\n Event = \"events\",\n Error = \"errors\",\n Const = \"constants\",\n}\n\nconst EntryPointsCodec = Vector(EntryPointCodec)\nconst TypedefsCodec = Vector(TypedefCodec)\nconst TypesCodec = Tuple(EntryPointsCodec, TypedefsCodec)\n\nexport const createCompatibilityToken = <D extends ChainDefinition>(\n chainDefinition: D,\n chainHead: ReturnType<ReturnType<typeof getObservableClient>[\"chainHead$\"]>,\n): Promise<CompatibilityToken<D>> => {\n const awaitedRuntime = new Promise<() => RuntimeContext>(async (resolve) => {\n const loadedRuntime$ = chainHead.runtime$.pipe(filter((v) => v != null))\n\n let latest = await firstValueFrom(loadedRuntime$)\n loadedRuntime$.subscribe((v) => (latest = v))\n\n resolve(() => latest)\n })\n\n const promise = Promise.all([\n chainDefinition.metadataTypes.then(TypesCodec.dec),\n chainDefinition.descriptors,\n awaitedRuntime,\n ]).then(([[entryPoints, typedefNodes], descriptors, runtime]) => {\n const token = new (CompatibilityToken as any)()\n compatibilityTokenApi.set(token, {\n runtime,\n getPalletEntryPoint(opType, pallet, name) {\n return entryPoints[descriptors[opType][pallet][name]]\n },\n getApiEntryPoint(name, method) {\n return entryPoints[descriptors.apis[name][method]]\n },\n typedefNodes,\n })\n\n return token\n })\n\n return promise\n}\n\n// metadataRaw -> cache\nconst metadataCache = new WeakMap<\n Uint8Array,\n {\n compat: CompatibilityCache\n lookup: MetadataLookup\n typeNodes: (TypedefNode | null)[]\n }\n>()\nconst getMetadataCache = (ctx: RuntimeContext) => {\n if (!metadataCache.has(ctx.metadataRaw)) {\n metadataCache.set(ctx.metadataRaw, {\n compat: new Map(),\n lookup: ctx.lookup,\n typeNodes: [],\n })\n }\n return metadataCache.get(ctx.metadataRaw)!\n}\nexport const compatibilityHelper = (\n descriptors: Promise<CompatibilityToken>,\n getDescriptorEntryPoint: (descriptorApi: CompatibilityTokenApi) => EntryPoint,\n getRuntimeEntryPoint: (ctx: RuntimeContext) => EntryPoint,\n) => {\n const getRuntimeTypedef = (ctx: RuntimeContext, id: number) => {\n const cache = getMetadataCache(ctx)\n return (cache.typeNodes[id] ||= mapLookupToTypedef(cache.lookup(id)))\n }\n\n function getCompatibilityLevels(\n descriptors: CompatibilityToken,\n /**\n * The `Runtime` of runtimeWithDescriptors already has a RuntimeContext,\n * which is the runtime of the finalized block.\n * But on some cases, the user wants to perform an action on a specific\n * block hash, which has a different RuntimeContext.\n */\n ctx?: RuntimeContext,\n ) {\n const compatibilityApi = compatibilityTokenApi.get(descriptors)!\n ctx ||= compatibilityApi.runtime()\n const descriptorEntryPoint = getDescriptorEntryPoint(compatibilityApi)\n const runtimeEntryPoint = getRuntimeEntryPoint(ctx)\n const descriptorNodes = compatibilityApi.typedefNodes\n\n const cache = getMetadataCache(ctx)\n\n return entryPointsAreCompatible(\n descriptorEntryPoint,\n (id) => descriptorNodes[id],\n runtimeEntryPoint,\n (id) => getRuntimeTypedef(ctx, id),\n cache.compat,\n )\n }\n\n const getCompatibilityLevel = withOptionalToken(descriptors, (runtime) =>\n minCompatLevel(getCompatibilityLevels(runtime)),\n )\n\n const waitDescriptors = () => descriptors\n const compatibleRuntime$ = (chainHead: ChainHead$, hash: string | null) =>\n combineLatest([waitDescriptors(), chainHead.getRuntimeContext$(hash)])\n\n const withCompatibleRuntime =\n <T>(chainHead: ChainHead$, mapper: (x: T) => string) =>\n (\n source$: Observable<T>,\n ): Observable<[T, CompatibilityToken, RuntimeContext]> =>\n combineLatest([\n source$.pipe(chainHead.withRuntime(mapper)),\n waitDescriptors(),\n ]).pipe(map(([[x, ctx], descriptors]) => [x, descriptors, ctx]))\n\n const argsAreCompatible = (\n descriptors: CompatibilityToken,\n ctx: RuntimeContext,\n args: unknown,\n ) => {\n const levels = getCompatibilityLevels(descriptors, ctx)\n if (levels.args === CompatibilityLevel.Incompatible) return false\n if (levels.args > CompatibilityLevel.Partial) return true\n // Although technically args could still be compatible, if the output will be incompatible we might as well just return false to skip sending the request.\n if (levels.values === CompatibilityLevel.Incompatible) return false\n\n const entryPoint = getRuntimeEntryPoint(ctx)\n\n return valueIsCompatibleWithDest(\n entryPoint.args,\n (id) => getRuntimeTypedef(ctx, id),\n args,\n )\n }\n const valuesAreCompatible = (\n descriptors: CompatibilityToken,\n ctx: RuntimeContext,\n values: unknown,\n ) => {\n const level = getCompatibilityLevels(descriptors, ctx).values\n if (level === CompatibilityLevel.Incompatible) return false\n if (level > CompatibilityLevel.Partial) return true\n\n const compatibilityApi = compatibilityTokenApi.get(descriptors)!\n\n const entryPoint = getDescriptorEntryPoint(compatibilityApi)\n\n return valueIsCompatibleWithDest(\n entryPoint.values,\n (id) => compatibilityApi.typedefNodes[id],\n values,\n )\n }\n\n return {\n getCompatibilityLevel,\n getCompatibilityLevels,\n waitDescriptors,\n withCompatibleRuntime,\n compatibleRuntime$,\n argsAreCompatible,\n valuesAreCompatible,\n getRuntimeTypedef,\n }\n}\nexport type CompatibilityHelper = ReturnType<typeof compatibilityHelper>\n\nexport const minCompatLevel = (levels: {\n args: CompatibilityLevel\n values: CompatibilityLevel\n}) => Math.min(levels.args, levels.values)\n\nconst withOptionalToken =\n <T, D>(\n compatibilityToken: Promise<CompatibilityToken<D>>,\n fn: (runtime: CompatibilityToken) => T,\n ): WithOptionalRuntime<T, D> =>\n (runtime?: CompatibilityToken): any =>\n runtime ? fn(runtime) : compatibilityToken.then(fn)\n\nexport type WithOptionalRuntime<T, D> = {\n /**\n * Returns the result after waiting for the runtime to load.\n */\n (): Promise<T>\n /**\n * Returns the result synchronously with the loaded runtime.\n */\n (runtime: CompatibilityToken<D>): T\n}\n\nexport interface CompatibilityFunctions<D> {\n /**\n * Returns the `CompatibilityLevel` for this call comparing the descriptors\n * generated on dev time with the current live metadata.\n */\n getCompatibilityLevel: WithOptionalRuntime<CompatibilityLevel, D>\n}\n"],"names":["OpType","descriptors"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { getCompatibilityApi } from './compatibility.mjs';
2
+
3
+ const createConstantEntry = (palletName, name, {
4
+ valuesAreCompatible,
5
+ waitDescriptors,
6
+ getCompatibilityLevel
7
+ }) => {
8
+ const cachedResults = /* @__PURE__ */ new WeakMap();
9
+ const getValueWithContext = (ctx) => {
10
+ if (cachedResults.has(ctx)) {
11
+ return cachedResults.get(ctx);
12
+ }
13
+ const pallet = ctx.lookup.metadata.pallets.find(
14
+ (p) => p.name === palletName
15
+ );
16
+ const constant = pallet?.constants.find((c) => c.name === name);
17
+ const result = ctx.dynamicBuilder.buildConstant(palletName, name).dec(constant.value);
18
+ cachedResults.set(ctx, result);
19
+ return result;
20
+ };
21
+ const fn = (compatibilityToken) => {
22
+ if (compatibilityToken) {
23
+ const ctx = getCompatibilityApi(compatibilityToken).runtime();
24
+ const value = getValueWithContext(ctx);
25
+ if (!valuesAreCompatible(compatibilityToken, ctx, value))
26
+ throw new Error(
27
+ `Incompatible runtime entry Constant(${palletName}.${name})`
28
+ );
29
+ return value;
30
+ }
31
+ return waitDescriptors().then(fn);
32
+ };
33
+ return Object.assign(fn, { getCompatibilityLevel });
34
+ };
35
+
36
+ export { createConstantEntry };
37
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../src/constants.ts"],"sourcesContent":["import { RuntimeContext } from \"@polkadot-api/observable-client\"\nimport {\n CompatibilityFunctions,\n CompatibilityHelper,\n CompatibilityToken,\n getCompatibilityApi,\n} from \"./compatibility\"\n\nexport interface ConstantEntry<D, T> extends CompatibilityFunctions<D> {\n /**\n * Constants are simple key-value structures found in the runtime metadata.\n *\n * @returns Promise that will resolve in the value of the constant.\n */\n (): Promise<T>\n /**\n * @param compatibilityToken Token from got with `await\n * typedApi.compatibilityToken`\n * @returns Synchronously returns value of the constant.\n */\n (compatibilityToken: CompatibilityToken): T\n}\n\nexport const createConstantEntry = <D, T>(\n palletName: string,\n name: string,\n {\n valuesAreCompatible,\n waitDescriptors,\n getCompatibilityLevel,\n }: CompatibilityHelper,\n): ConstantEntry<D, T> => {\n const cachedResults = new WeakMap<RuntimeContext, T>()\n const getValueWithContext = (ctx: RuntimeContext) => {\n if (cachedResults.has(ctx)) {\n return cachedResults.get(ctx)!\n }\n\n const pallet = ctx.lookup.metadata.pallets.find(\n (p) => p.name === palletName,\n )\n const constant = pallet?.constants.find((c) => c.name === name)!\n const result = ctx.dynamicBuilder\n .buildConstant(palletName, name)\n .dec(constant.value)\n cachedResults.set(ctx, result)\n return result\n }\n\n const fn = (compatibilityToken?: CompatibilityToken): any => {\n if (compatibilityToken) {\n const ctx = getCompatibilityApi(compatibilityToken).runtime()\n const value = getValueWithContext(ctx)\n if (!valuesAreCompatible(compatibilityToken, ctx, value))\n throw new Error(\n `Incompatible runtime entry Constant(${palletName}.${name})`,\n )\n return value\n }\n return waitDescriptors().then(fn)\n }\n\n return Object.assign(fn, { getCompatibilityLevel })\n}\n"],"names":[],"mappings":";;AAuBa,MAAA,mBAAA,GAAsB,CACjC,UAAA,EACA,IACA,EAAA;AAAA,EACE,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,qBAAA;AACF,CACwB,KAAA;AACxB,EAAM,MAAA,aAAA,uBAAoB,OAA2B,EAAA,CAAA;AACrD,EAAM,MAAA,mBAAA,GAAsB,CAAC,GAAwB,KAAA;AACnD,IAAI,IAAA,aAAA,CAAc,GAAI,CAAA,GAAG,CAAG,EAAA;AAC1B,MAAO,OAAA,aAAA,CAAc,IAAI,GAAG,CAAA,CAAA;AAAA,KAC9B;AAEA,IAAA,MAAM,MAAS,GAAA,GAAA,CAAI,MAAO,CAAA,QAAA,CAAS,OAAQ,CAAA,IAAA;AAAA,MACzC,CAAC,CAAM,KAAA,CAAA,CAAE,IAAS,KAAA,UAAA;AAAA,KACpB,CAAA;AACA,IAAM,MAAA,QAAA,GAAW,QAAQ,SAAU,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,SAAS,IAAI,CAAA,CAAA;AAC9D,IAAM,MAAA,MAAA,GAAS,IAAI,cAChB,CAAA,aAAA,CAAc,YAAY,IAAI,CAAA,CAC9B,GAAI,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACrB,IAAc,aAAA,CAAA,GAAA,CAAI,KAAK,MAAM,CAAA,CAAA;AAC7B,IAAO,OAAA,MAAA,CAAA;AAAA,GACT,CAAA;AAEA,EAAM,MAAA,EAAA,GAAK,CAAC,kBAAiD,KAAA;AAC3D,IAAA,IAAI,kBAAoB,EAAA;AACtB,MAAA,MAAM,GAAM,GAAA,mBAAA,CAAoB,kBAAkB,CAAA,CAAE,OAAQ,EAAA,CAAA;AAC5D,MAAM,MAAA,KAAA,GAAQ,oBAAoB,GAAG,CAAA,CAAA;AACrC,MAAA,IAAI,CAAC,mBAAA,CAAoB,kBAAoB,EAAA,GAAA,EAAK,KAAK,CAAA;AACrD,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,CAAA,oCAAA,EAAuC,UAAU,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,CAAA;AAAA,SAC3D,CAAA;AACF,MAAO,OAAA,KAAA,CAAA;AAAA,KACT;AACA,IAAO,OAAA,eAAA,EAAkB,CAAA,IAAA,CAAK,EAAE,CAAA,CAAA;AAAA,GAClC,CAAA;AAEA,EAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAI,EAAA,EAAE,uBAAuB,CAAA,CAAA;AACpD;;;;"}