@ton/appkit 0.0.5-alpha.3 → 1.0.0-alpha.1

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 (455) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/CHANGELOG.md +144 -0
  3. package/README.md +8 -7
  4. package/dist/cjs/actions/connectors/watch-connector-by-id.d.ts.map +1 -1
  5. package/dist/cjs/actions/connectors/watch-connector-by-id.js +8 -3
  6. package/dist/cjs/actions/connectors/watch-connectors.d.ts.map +1 -1
  7. package/dist/cjs/actions/connectors/watch-connectors.js +8 -3
  8. package/dist/cjs/actions/index.d.ts +8 -0
  9. package/dist/cjs/actions/index.d.ts.map +1 -1
  10. package/dist/cjs/actions/index.js +18 -2
  11. package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.d.ts +1 -1
  12. package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.d.ts.map +1 -1
  13. package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.js +17 -5
  14. package/dist/cjs/actions/jettons/get-jetton-balance.d.ts +1 -1
  15. package/dist/cjs/actions/jettons/get-jetton-balance.d.ts.map +1 -1
  16. package/dist/cjs/actions/jettons/get-jetton-balance.js +8 -3
  17. package/dist/cjs/actions/jettons/get-jetton-info.d.ts.map +1 -1
  18. package/dist/cjs/actions/jettons/get-jetton-info.js +15 -6
  19. package/dist/cjs/actions/jettons/get-jetton-wallet-address.d.ts +1 -1
  20. package/dist/cjs/actions/jettons/get-jetton-wallet-address.d.ts.map +1 -1
  21. package/dist/cjs/actions/jettons/get-jetton-wallet-address.js +15 -4
  22. package/dist/cjs/actions/nft/get-nft.d.ts +1 -1
  23. package/dist/cjs/actions/nft/get-nft.d.ts.map +1 -1
  24. package/dist/cjs/actions/providers/register-provider.d.ts +2 -1
  25. package/dist/cjs/actions/providers/register-provider.d.ts.map +1 -1
  26. package/dist/cjs/actions/staking/get-staking-provider-metadata.d.ts +19 -0
  27. package/dist/cjs/actions/staking/get-staking-provider-metadata.d.ts.map +1 -0
  28. package/dist/cjs/actions/staking/get-staking-provider-metadata.js +18 -0
  29. package/dist/cjs/actions/staking/get-staking-provider.d.ts +21 -0
  30. package/dist/cjs/actions/staking/get-staking-provider.d.ts.map +1 -0
  31. package/dist/cjs/actions/staking/get-staking-provider.js +17 -0
  32. package/dist/cjs/actions/staking/get-staking-providers.d.ts +3 -2
  33. package/dist/cjs/actions/staking/get-staking-providers.d.ts.map +1 -1
  34. package/dist/cjs/actions/staking/get-staking-providers.js +2 -2
  35. package/dist/cjs/actions/staking/set-default-staking-provider.d.ts +18 -0
  36. package/dist/cjs/actions/staking/set-default-staking-provider.d.ts.map +1 -0
  37. package/dist/cjs/actions/staking/set-default-staking-provider.js +18 -0
  38. package/dist/cjs/actions/staking/watch-staking-providers.d.ts +17 -0
  39. package/dist/cjs/actions/staking/watch-staking-providers.d.ts.map +1 -0
  40. package/dist/cjs/actions/staking/watch-staking-providers.js +28 -0
  41. package/dist/cjs/actions/swap/get-swap-provider.d.ts +15 -0
  42. package/dist/cjs/actions/swap/get-swap-provider.d.ts.map +1 -0
  43. package/dist/cjs/actions/swap/get-swap-provider.js +14 -0
  44. package/dist/cjs/actions/swap/get-swap-providers.d.ts +15 -0
  45. package/dist/cjs/actions/swap/get-swap-providers.d.ts.map +1 -0
  46. package/dist/cjs/actions/swap/get-swap-providers.js +17 -0
  47. package/dist/cjs/actions/swap/get-swap-quote.d.ts.map +1 -1
  48. package/dist/cjs/actions/swap/get-swap-quote.js +6 -1
  49. package/dist/cjs/actions/swap/set-default-swap-provider.d.ts +18 -0
  50. package/dist/cjs/actions/swap/set-default-swap-provider.d.ts.map +1 -0
  51. package/dist/cjs/actions/swap/set-default-swap-provider.js +18 -0
  52. package/dist/cjs/actions/swap/watch-swap-providers.d.ts +17 -0
  53. package/dist/cjs/actions/swap/watch-swap-providers.d.ts.map +1 -0
  54. package/dist/cjs/actions/swap/watch-swap-providers.js +29 -0
  55. package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.d.ts +1 -2
  56. package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.d.ts.map +1 -1
  57. package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.js +16 -18
  58. package/dist/cjs/core/app-kit/constants/events.d.ts +3 -8
  59. package/dist/cjs/core/app-kit/constants/events.d.ts.map +1 -1
  60. package/dist/cjs/core/app-kit/constants/events.js +4 -9
  61. package/dist/cjs/core/app-kit/index.d.ts +2 -2
  62. package/dist/cjs/core/app-kit/index.d.ts.map +1 -1
  63. package/dist/cjs/core/app-kit/index.js +1 -2
  64. package/dist/cjs/core/app-kit/services/app-kit.d.ts +5 -2
  65. package/dist/cjs/core/app-kit/services/app-kit.d.ts.map +1 -1
  66. package/dist/cjs/core/app-kit/services/app-kit.js +12 -4
  67. package/dist/cjs/core/app-kit/types/config.d.ts +6 -3
  68. package/dist/cjs/core/app-kit/types/config.d.ts.map +1 -1
  69. package/dist/cjs/core/app-kit/types/events.d.ts +13 -13
  70. package/dist/cjs/core/app-kit/types/events.d.ts.map +1 -1
  71. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.d.ts +20 -0
  72. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.d.ts.map +1 -0
  73. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.js +32 -0
  74. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.d.ts +9 -0
  75. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.d.ts.map +1 -0
  76. package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.js +68 -0
  77. package/dist/cjs/core/cache/index.d.ts +11 -0
  78. package/dist/cjs/core/cache/index.d.ts.map +1 -0
  79. package/dist/cjs/core/cache/index.js +14 -0
  80. package/dist/cjs/core/cache/types/app-kit-cache.d.ts +14 -0
  81. package/dist/cjs/core/cache/types/app-kit-cache.d.ts.map +1 -0
  82. package/dist/cjs/core/cache/types/app-kit-cache.js +9 -0
  83. package/dist/cjs/core/cache/utils/get-cache-key.d.ts +9 -0
  84. package/dist/cjs/core/cache/utils/get-cache-key.d.ts.map +1 -0
  85. package/dist/cjs/core/cache/utils/get-cache-key.js +12 -0
  86. package/dist/cjs/core/cache/utils/get-cache-key.test.d.ts +9 -0
  87. package/dist/cjs/core/cache/utils/get-cache-key.test.d.ts.map +1 -0
  88. package/dist/cjs/core/cache/utils/get-cache-key.test.js +30 -0
  89. package/dist/cjs/index.d.ts +1 -0
  90. package/dist/cjs/index.d.ts.map +1 -1
  91. package/dist/cjs/index.js +1 -0
  92. package/dist/cjs/queries/balances/get-balance-by-address.d.ts.map +1 -1
  93. package/dist/cjs/queries/balances/get-balance-by-address.js +9 -3
  94. package/dist/cjs/queries/index.d.ts +0 -1
  95. package/dist/cjs/queries/index.d.ts.map +1 -1
  96. package/dist/cjs/queries/index.js +1 -3
  97. package/dist/cjs/queries/jettons/get-jetton-balance-by-address.d.ts.map +1 -1
  98. package/dist/cjs/queries/jettons/get-jetton-balance-by-address.js +11 -11
  99. package/dist/cjs/queries/jettons/get-jetton-info.d.ts.map +1 -1
  100. package/dist/cjs/queries/jettons/get-jetton-info.js +5 -1
  101. package/dist/cjs/queries/jettons/get-jetton-wallet-address.d.ts.map +1 -1
  102. package/dist/cjs/queries/jettons/get-jetton-wallet-address.js +6 -1
  103. package/dist/cjs/queries/jettons/get-jettons-by-address.d.ts.map +1 -1
  104. package/dist/cjs/queries/jettons/get-jettons-by-address.js +9 -3
  105. package/dist/cjs/queries/nft/get-nft.d.ts +1 -1
  106. package/dist/cjs/queries/nft/get-nft.d.ts.map +1 -1
  107. package/dist/cjs/queries/nft/get-nft.js +5 -1
  108. package/dist/cjs/queries/nft/get-nfts-by-address.d.ts.map +1 -1
  109. package/dist/cjs/queries/nft/get-nfts-by-address.js +5 -1
  110. package/dist/cjs/queries/staking/get-staked-balance.d.ts +1 -1
  111. package/dist/cjs/queries/staking/get-staked-balance.d.ts.map +1 -1
  112. package/dist/cjs/queries/staking/get-staked-balance.js +7 -1
  113. package/dist/cjs/queries/staking/get-staking-provider-info.d.ts +1 -1
  114. package/dist/cjs/queries/staking/get-staking-provider-info.d.ts.map +1 -1
  115. package/dist/cjs/queries/staking/get-staking-provider-info.js +3 -1
  116. package/dist/cjs/queries/staking/get-staking-quote.d.ts +1 -1
  117. package/dist/cjs/queries/staking/get-staking-quote.d.ts.map +1 -1
  118. package/dist/cjs/queries/staking/get-staking-quote.js +8 -2
  119. package/dist/cjs/queries/swap/get-swap-quote.d.ts.map +1 -1
  120. package/dist/cjs/queries/swap/get-swap-quote.js +1 -1
  121. package/dist/cjs/staking/index.d.ts +2 -2
  122. package/dist/cjs/staking/index.d.ts.map +1 -1
  123. package/dist/cjs/staking/index.js +3 -1
  124. package/dist/cjs/swap/index.d.ts +2 -1
  125. package/dist/cjs/swap/index.d.ts.map +1 -1
  126. package/dist/cjs/swap/index.js +8 -0
  127. package/dist/cjs/types/connector.d.ts +0 -6
  128. package/dist/cjs/types/connector.d.ts.map +1 -1
  129. package/dist/cjs/types/primitives.d.ts +1 -1
  130. package/dist/cjs/types/primitives.d.ts.map +1 -1
  131. package/dist/cjs/types/provider.d.ts +3 -3
  132. package/dist/cjs/types/provider.d.ts.map +1 -1
  133. package/dist/cjs/utils/address/is-valid-address.d.ts +11 -0
  134. package/dist/cjs/utils/address/is-valid-address.d.ts.map +1 -0
  135. package/dist/cjs/utils/address/is-valid-address.js +38 -0
  136. package/dist/cjs/utils/address/to-bounceble-address.d.ts +11 -0
  137. package/dist/cjs/utils/address/to-bounceble-address.d.ts.map +1 -0
  138. package/dist/cjs/utils/address/to-bounceble-address.js +36 -0
  139. package/dist/cjs/utils/address/to-non-bounceble-address.d.ts +11 -0
  140. package/dist/cjs/utils/address/to-non-bounceble-address.d.ts.map +1 -0
  141. package/dist/cjs/utils/address/to-non-bounceble-address.js +36 -0
  142. package/dist/cjs/utils/amount/calc-fiat-value.d.ts +13 -0
  143. package/dist/cjs/utils/amount/calc-fiat-value.d.ts.map +1 -0
  144. package/dist/cjs/utils/amount/calc-fiat-value.js +22 -0
  145. package/dist/cjs/utils/amount/calc-fiat-value.test.d.ts +9 -0
  146. package/dist/cjs/utils/amount/calc-fiat-value.test.d.ts.map +1 -0
  147. package/dist/cjs/utils/amount/calc-fiat-value.test.js +39 -0
  148. package/dist/cjs/utils/amount/format-large-value.d.ts +9 -0
  149. package/dist/cjs/utils/amount/format-large-value.d.ts.map +1 -0
  150. package/dist/cjs/utils/amount/format-large-value.js +40 -0
  151. package/dist/cjs/utils/amount/format-large-value.test.d.ts +9 -0
  152. package/dist/cjs/utils/amount/format-large-value.test.d.ts.map +1 -0
  153. package/dist/cjs/utils/amount/format-large-value.test.js +43 -0
  154. package/dist/cjs/utils/amount/truncate-decimals.d.ts +9 -0
  155. package/dist/cjs/utils/amount/truncate-decimals.d.ts.map +1 -0
  156. package/dist/cjs/utils/amount/truncate-decimals.js +59 -0
  157. package/dist/cjs/utils/amount/truncate-decimals.test.d.ts +9 -0
  158. package/dist/cjs/utils/amount/truncate-decimals.test.d.ts.map +1 -0
  159. package/dist/cjs/utils/amount/truncate-decimals.test.js +83 -0
  160. package/dist/cjs/utils/balance/calc-max-spendable.d.ts +33 -0
  161. package/dist/cjs/utils/balance/calc-max-spendable.d.ts.map +1 -0
  162. package/dist/cjs/utils/balance/calc-max-spendable.js +29 -0
  163. package/dist/cjs/utils/balance/calc-max-spendable.test.d.ts +9 -0
  164. package/dist/cjs/utils/balance/calc-max-spendable.test.d.ts.map +1 -0
  165. package/dist/cjs/utils/balance/calc-max-spendable.test.js +38 -0
  166. package/dist/cjs/utils/balance/get-ton-shortfall.d.ts +58 -0
  167. package/dist/cjs/utils/balance/get-ton-shortfall.d.ts.map +1 -0
  168. package/dist/cjs/utils/balance/get-ton-shortfall.js +46 -0
  169. package/dist/cjs/utils/balance/get-ton-shortfall.test.d.ts +9 -0
  170. package/dist/cjs/utils/balance/get-ton-shortfall.test.d.ts.map +1 -0
  171. package/dist/cjs/utils/balance/get-ton-shortfall.test.js +133 -0
  172. package/dist/cjs/utils/functions/debounce.d.ts +80 -0
  173. package/dist/cjs/utils/functions/debounce.d.ts.map +1 -0
  174. package/dist/cjs/utils/functions/debounce.js +107 -0
  175. package/dist/cjs/utils/index.d.ts +10 -0
  176. package/dist/cjs/utils/index.d.ts.map +1 -1
  177. package/dist/cjs/utils/index.js +10 -0
  178. package/dist/cjs/utils/jetton/jetton-info.d.ts +2 -1
  179. package/dist/cjs/utils/jetton/jetton-info.d.ts.map +1 -1
  180. package/dist/cjs/utils/jetton/jetton-info.js +11 -1
  181. package/dist/cjs/utils/jetton/jetton-info.test.d.ts +9 -0
  182. package/dist/cjs/utils/jetton/jetton-info.test.d.ts.map +1 -0
  183. package/dist/cjs/utils/jetton/jetton-info.test.js +54 -0
  184. package/dist/cjs/utils/predicate/is-number.d.ts +9 -0
  185. package/dist/cjs/utils/predicate/is-number.d.ts.map +1 -0
  186. package/dist/cjs/utils/predicate/is-number.js +20 -0
  187. package/dist/cjs/utils/predicate/is-string.d.ts +1 -1
  188. package/dist/cjs/utils/predicate/is-string.d.ts.map +1 -1
  189. package/dist/cjs/utils/predicate/is-string.js +4 -3
  190. package/dist/esm/actions/connectors/watch-connector-by-id.d.ts.map +1 -1
  191. package/dist/esm/actions/connectors/watch-connector-by-id.js +8 -3
  192. package/dist/esm/actions/connectors/watch-connectors.d.ts.map +1 -1
  193. package/dist/esm/actions/connectors/watch-connectors.js +8 -3
  194. package/dist/esm/actions/index.d.ts +8 -0
  195. package/dist/esm/actions/index.d.ts.map +1 -1
  196. package/dist/esm/actions/index.js +8 -0
  197. package/dist/esm/actions/jettons/create-transfer-jetton-transaction.d.ts +1 -1
  198. package/dist/esm/actions/jettons/create-transfer-jetton-transaction.d.ts.map +1 -1
  199. package/dist/esm/actions/jettons/create-transfer-jetton-transaction.js +17 -5
  200. package/dist/esm/actions/jettons/get-jetton-balance.d.ts +1 -1
  201. package/dist/esm/actions/jettons/get-jetton-balance.d.ts.map +1 -1
  202. package/dist/esm/actions/jettons/get-jetton-balance.js +7 -2
  203. package/dist/esm/actions/jettons/get-jetton-info.d.ts.map +1 -1
  204. package/dist/esm/actions/jettons/get-jetton-info.js +15 -6
  205. package/dist/esm/actions/jettons/get-jetton-wallet-address.d.ts +1 -1
  206. package/dist/esm/actions/jettons/get-jetton-wallet-address.d.ts.map +1 -1
  207. package/dist/esm/actions/jettons/get-jetton-wallet-address.js +15 -4
  208. package/dist/esm/actions/nft/get-nft.d.ts +1 -1
  209. package/dist/esm/actions/nft/get-nft.d.ts.map +1 -1
  210. package/dist/esm/actions/providers/register-provider.d.ts +2 -1
  211. package/dist/esm/actions/providers/register-provider.d.ts.map +1 -1
  212. package/dist/esm/actions/staking/get-staking-provider-metadata.d.ts +19 -0
  213. package/dist/esm/actions/staking/get-staking-provider-metadata.d.ts.map +1 -0
  214. package/dist/esm/actions/staking/get-staking-provider-metadata.js +14 -0
  215. package/dist/esm/actions/staking/get-staking-provider.d.ts +21 -0
  216. package/dist/esm/actions/staking/get-staking-provider.d.ts.map +1 -0
  217. package/dist/esm/actions/staking/get-staking-provider.js +13 -0
  218. package/dist/esm/actions/staking/get-staking-providers.d.ts +3 -2
  219. package/dist/esm/actions/staking/get-staking-providers.d.ts.map +1 -1
  220. package/dist/esm/actions/staking/get-staking-providers.js +2 -2
  221. package/dist/esm/actions/staking/set-default-staking-provider.d.ts +18 -0
  222. package/dist/esm/actions/staking/set-default-staking-provider.d.ts.map +1 -0
  223. package/dist/esm/actions/staking/set-default-staking-provider.js +14 -0
  224. package/dist/esm/actions/staking/watch-staking-providers.d.ts +17 -0
  225. package/dist/esm/actions/staking/watch-staking-providers.d.ts.map +1 -0
  226. package/dist/esm/actions/staking/watch-staking-providers.js +24 -0
  227. package/dist/esm/actions/swap/get-swap-provider.d.ts +15 -0
  228. package/dist/esm/actions/swap/get-swap-provider.d.ts.map +1 -0
  229. package/dist/esm/actions/swap/get-swap-provider.js +10 -0
  230. package/dist/esm/actions/swap/get-swap-providers.d.ts +15 -0
  231. package/dist/esm/actions/swap/get-swap-providers.d.ts.map +1 -0
  232. package/dist/esm/actions/swap/get-swap-providers.js +13 -0
  233. package/dist/esm/actions/swap/get-swap-quote.d.ts.map +1 -1
  234. package/dist/esm/actions/swap/get-swap-quote.js +6 -1
  235. package/dist/esm/actions/swap/set-default-swap-provider.d.ts +18 -0
  236. package/dist/esm/actions/swap/set-default-swap-provider.d.ts.map +1 -0
  237. package/dist/esm/actions/swap/set-default-swap-provider.js +14 -0
  238. package/dist/esm/actions/swap/watch-swap-providers.d.ts +17 -0
  239. package/dist/esm/actions/swap/watch-swap-providers.d.ts.map +1 -0
  240. package/dist/esm/actions/swap/watch-swap-providers.js +25 -0
  241. package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.d.ts +1 -2
  242. package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.d.ts.map +1 -1
  243. package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.js +16 -18
  244. package/dist/esm/core/app-kit/constants/events.d.ts +3 -8
  245. package/dist/esm/core/app-kit/constants/events.d.ts.map +1 -1
  246. package/dist/esm/core/app-kit/constants/events.js +3 -8
  247. package/dist/esm/core/app-kit/index.d.ts +2 -2
  248. package/dist/esm/core/app-kit/index.d.ts.map +1 -1
  249. package/dist/esm/core/app-kit/index.js +1 -1
  250. package/dist/esm/core/app-kit/services/app-kit.d.ts +5 -2
  251. package/dist/esm/core/app-kit/services/app-kit.d.ts.map +1 -1
  252. package/dist/esm/core/app-kit/services/app-kit.js +12 -4
  253. package/dist/esm/core/app-kit/types/config.d.ts +6 -3
  254. package/dist/esm/core/app-kit/types/config.d.ts.map +1 -1
  255. package/dist/esm/core/app-kit/types/events.d.ts +13 -13
  256. package/dist/esm/core/app-kit/types/events.d.ts.map +1 -1
  257. package/dist/esm/core/cache/adapters/lru-app-kit-cache.d.ts +20 -0
  258. package/dist/esm/core/cache/adapters/lru-app-kit-cache.d.ts.map +1 -0
  259. package/dist/esm/core/cache/adapters/lru-app-kit-cache.js +28 -0
  260. package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.d.ts +9 -0
  261. package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.d.ts.map +1 -0
  262. package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.js +66 -0
  263. package/dist/esm/core/cache/index.d.ts +11 -0
  264. package/dist/esm/core/cache/index.d.ts.map +1 -0
  265. package/dist/esm/core/cache/index.js +9 -0
  266. package/dist/esm/core/cache/types/app-kit-cache.d.ts +14 -0
  267. package/dist/esm/core/cache/types/app-kit-cache.d.ts.map +1 -0
  268. package/dist/esm/core/cache/types/app-kit-cache.js +8 -0
  269. package/dist/esm/core/cache/utils/get-cache-key.d.ts +9 -0
  270. package/dist/esm/core/cache/utils/get-cache-key.d.ts.map +1 -0
  271. package/dist/esm/core/cache/utils/get-cache-key.js +8 -0
  272. package/dist/esm/core/cache/utils/get-cache-key.test.d.ts +9 -0
  273. package/dist/esm/core/cache/utils/get-cache-key.test.d.ts.map +1 -0
  274. package/dist/esm/core/cache/utils/get-cache-key.test.js +28 -0
  275. package/dist/esm/index.d.ts +1 -0
  276. package/dist/esm/index.d.ts.map +1 -1
  277. package/dist/esm/index.js +1 -0
  278. package/dist/esm/queries/balances/get-balance-by-address.d.ts.map +1 -1
  279. package/dist/esm/queries/balances/get-balance-by-address.js +10 -4
  280. package/dist/esm/queries/index.d.ts +0 -1
  281. package/dist/esm/queries/index.d.ts.map +1 -1
  282. package/dist/esm/queries/index.js +0 -1
  283. package/dist/esm/queries/jettons/get-jetton-balance-by-address.d.ts.map +1 -1
  284. package/dist/esm/queries/jettons/get-jetton-balance-by-address.js +12 -12
  285. package/dist/esm/queries/jettons/get-jetton-info.d.ts.map +1 -1
  286. package/dist/esm/queries/jettons/get-jetton-info.js +6 -2
  287. package/dist/esm/queries/jettons/get-jetton-wallet-address.d.ts.map +1 -1
  288. package/dist/esm/queries/jettons/get-jetton-wallet-address.js +7 -2
  289. package/dist/esm/queries/jettons/get-jettons-by-address.d.ts.map +1 -1
  290. package/dist/esm/queries/jettons/get-jettons-by-address.js +10 -4
  291. package/dist/esm/queries/nft/get-nft.d.ts +1 -1
  292. package/dist/esm/queries/nft/get-nft.d.ts.map +1 -1
  293. package/dist/esm/queries/nft/get-nft.js +6 -2
  294. package/dist/esm/queries/nft/get-nfts-by-address.d.ts.map +1 -1
  295. package/dist/esm/queries/nft/get-nfts-by-address.js +6 -2
  296. package/dist/esm/queries/staking/get-staked-balance.d.ts +1 -1
  297. package/dist/esm/queries/staking/get-staked-balance.d.ts.map +1 -1
  298. package/dist/esm/queries/staking/get-staked-balance.js +8 -2
  299. package/dist/esm/queries/staking/get-staking-provider-info.d.ts +1 -1
  300. package/dist/esm/queries/staking/get-staking-provider-info.d.ts.map +1 -1
  301. package/dist/esm/queries/staking/get-staking-provider-info.js +4 -2
  302. package/dist/esm/queries/staking/get-staking-quote.d.ts +1 -1
  303. package/dist/esm/queries/staking/get-staking-quote.d.ts.map +1 -1
  304. package/dist/esm/queries/staking/get-staking-quote.js +9 -3
  305. package/dist/esm/queries/swap/get-swap-quote.d.ts.map +1 -1
  306. package/dist/esm/queries/swap/get-swap-quote.js +1 -1
  307. package/dist/esm/staking/index.d.ts +2 -2
  308. package/dist/esm/staking/index.d.ts.map +1 -1
  309. package/dist/esm/staking/index.js +1 -1
  310. package/dist/esm/swap/index.d.ts +2 -1
  311. package/dist/esm/swap/index.d.ts.map +1 -1
  312. package/dist/esm/swap/index.js +1 -1
  313. package/dist/esm/types/connector.d.ts +0 -6
  314. package/dist/esm/types/connector.d.ts.map +1 -1
  315. package/dist/esm/types/primitives.d.ts +1 -1
  316. package/dist/esm/types/primitives.d.ts.map +1 -1
  317. package/dist/esm/types/provider.d.ts +3 -3
  318. package/dist/esm/types/provider.d.ts.map +1 -1
  319. package/dist/esm/utils/address/is-valid-address.d.ts +11 -0
  320. package/dist/esm/utils/address/is-valid-address.d.ts.map +1 -0
  321. package/dist/esm/utils/address/is-valid-address.js +33 -0
  322. package/dist/esm/utils/address/to-bounceble-address.d.ts +11 -0
  323. package/dist/esm/utils/address/to-bounceble-address.d.ts.map +1 -0
  324. package/dist/esm/utils/address/to-bounceble-address.js +31 -0
  325. package/dist/esm/utils/address/to-non-bounceble-address.d.ts +11 -0
  326. package/dist/esm/utils/address/to-non-bounceble-address.d.ts.map +1 -0
  327. package/dist/esm/utils/address/to-non-bounceble-address.js +31 -0
  328. package/dist/esm/utils/amount/calc-fiat-value.d.ts +13 -0
  329. package/dist/esm/utils/amount/calc-fiat-value.d.ts.map +1 -0
  330. package/dist/esm/utils/amount/calc-fiat-value.js +19 -0
  331. package/dist/esm/utils/amount/calc-fiat-value.test.d.ts +9 -0
  332. package/dist/esm/utils/amount/calc-fiat-value.test.d.ts.map +1 -0
  333. package/dist/esm/utils/amount/calc-fiat-value.test.js +37 -0
  334. package/dist/esm/utils/amount/format-large-value.d.ts +9 -0
  335. package/dist/esm/utils/amount/format-large-value.d.ts.map +1 -0
  336. package/dist/esm/utils/amount/format-large-value.js +36 -0
  337. package/dist/esm/utils/amount/format-large-value.test.d.ts +9 -0
  338. package/dist/esm/utils/amount/format-large-value.test.d.ts.map +1 -0
  339. package/dist/esm/utils/amount/format-large-value.test.js +41 -0
  340. package/dist/esm/utils/amount/truncate-decimals.d.ts +9 -0
  341. package/dist/esm/utils/amount/truncate-decimals.d.ts.map +1 -0
  342. package/dist/esm/utils/amount/truncate-decimals.js +55 -0
  343. package/dist/esm/utils/amount/truncate-decimals.test.d.ts +9 -0
  344. package/dist/esm/utils/amount/truncate-decimals.test.d.ts.map +1 -0
  345. package/dist/esm/utils/amount/truncate-decimals.test.js +81 -0
  346. package/dist/esm/utils/balance/calc-max-spendable.d.ts +33 -0
  347. package/dist/esm/utils/balance/calc-max-spendable.d.ts.map +1 -0
  348. package/dist/esm/utils/balance/calc-max-spendable.js +25 -0
  349. package/dist/esm/utils/balance/calc-max-spendable.test.d.ts +9 -0
  350. package/dist/esm/utils/balance/calc-max-spendable.test.d.ts.map +1 -0
  351. package/dist/esm/utils/balance/calc-max-spendable.test.js +36 -0
  352. package/dist/esm/utils/balance/get-ton-shortfall.d.ts +58 -0
  353. package/dist/esm/utils/balance/get-ton-shortfall.d.ts.map +1 -0
  354. package/dist/esm/utils/balance/get-ton-shortfall.js +42 -0
  355. package/dist/esm/utils/balance/get-ton-shortfall.test.d.ts +9 -0
  356. package/dist/esm/utils/balance/get-ton-shortfall.test.d.ts.map +1 -0
  357. package/dist/esm/utils/balance/get-ton-shortfall.test.js +131 -0
  358. package/dist/esm/utils/functions/debounce.d.ts +80 -0
  359. package/dist/esm/utils/functions/debounce.d.ts.map +1 -0
  360. package/dist/esm/utils/functions/debounce.js +103 -0
  361. package/dist/esm/utils/index.d.ts +10 -0
  362. package/dist/esm/utils/index.d.ts.map +1 -1
  363. package/dist/esm/utils/index.js +10 -0
  364. package/dist/esm/utils/jetton/jetton-info.d.ts +2 -1
  365. package/dist/esm/utils/jetton/jetton-info.d.ts.map +1 -1
  366. package/dist/esm/utils/jetton/jetton-info.js +9 -0
  367. package/dist/esm/utils/jetton/jetton-info.test.d.ts +9 -0
  368. package/dist/esm/utils/jetton/jetton-info.test.d.ts.map +1 -0
  369. package/dist/esm/utils/jetton/jetton-info.test.js +52 -0
  370. package/dist/esm/utils/predicate/is-number.d.ts +9 -0
  371. package/dist/esm/utils/predicate/is-number.d.ts.map +1 -0
  372. package/dist/esm/utils/predicate/is-number.js +16 -0
  373. package/dist/esm/utils/predicate/is-string.d.ts +1 -1
  374. package/dist/esm/utils/predicate/is-string.d.ts.map +1 -1
  375. package/dist/esm/utils/predicate/is-string.js +2 -2
  376. package/docs/actions.md +64 -15
  377. package/docs/connectors.md +5 -25
  378. package/docs/staking.md +7 -6
  379. package/docs/swap.md +11 -10
  380. package/package.json +4 -3
  381. package/src/actions/connectors/watch-connector-by-id.ts +9 -3
  382. package/src/actions/connectors/watch-connectors.ts +9 -3
  383. package/src/actions/index.ts +32 -0
  384. package/src/actions/jettons/create-transfer-jetton-transaction.ts +22 -6
  385. package/src/actions/jettons/get-jetton-balance.ts +10 -3
  386. package/src/actions/jettons/get-jetton-info.ts +18 -6
  387. package/src/actions/jettons/get-jetton-wallet-address.ts +19 -5
  388. package/src/actions/nft/get-nft.ts +1 -1
  389. package/src/actions/providers/register-provider.ts +2 -1
  390. package/src/actions/staking/get-staking-provider-metadata.ts +32 -0
  391. package/src/actions/staking/get-staking-provider.ts +30 -0
  392. package/src/actions/staking/get-staking-providers.ts +5 -3
  393. package/src/actions/staking/set-default-staking-provider.ts +26 -0
  394. package/src/actions/staking/watch-staking-providers.ts +39 -0
  395. package/src/actions/swap/get-swap-provider.ts +21 -0
  396. package/src/actions/swap/get-swap-providers.ts +20 -0
  397. package/src/actions/swap/get-swap-quote.ts +7 -1
  398. package/src/actions/swap/set-default-swap-provider.ts +26 -0
  399. package/src/actions/swap/watch-swap-providers.ts +38 -0
  400. package/src/connectors/tonconnect/connectors/ton-connect-connector.ts +22 -20
  401. package/src/core/app-kit/constants/events.ts +3 -9
  402. package/src/core/app-kit/index.ts +4 -4
  403. package/src/core/app-kit/services/app-kit.ts +18 -7
  404. package/src/core/app-kit/types/config.ts +6 -3
  405. package/src/core/app-kit/types/events.ts +13 -15
  406. package/src/core/cache/adapters/lru-app-kit-cache.test.ts +77 -0
  407. package/src/core/cache/adapters/lru-app-kit-cache.ts +38 -0
  408. package/src/core/cache/index.ts +12 -0
  409. package/src/core/cache/types/app-kit-cache.ts +14 -0
  410. package/src/core/cache/utils/get-cache-key.test.ts +34 -0
  411. package/src/core/cache/utils/get-cache-key.ts +12 -0
  412. package/src/index.ts +1 -0
  413. package/src/queries/balances/get-balance-by-address.ts +11 -4
  414. package/src/queries/index.ts +0 -6
  415. package/src/queries/jettons/get-jetton-balance-by-address.ts +13 -12
  416. package/src/queries/jettons/get-jetton-info.ts +6 -2
  417. package/src/queries/jettons/get-jetton-wallet-address.ts +7 -2
  418. package/src/queries/jettons/get-jettons-by-address.ts +18 -4
  419. package/src/queries/nft/get-nft.ts +7 -3
  420. package/src/queries/nft/get-nfts-by-address.ts +6 -2
  421. package/src/queries/staking/get-staked-balance.ts +10 -3
  422. package/src/queries/staking/get-staking-provider-info.ts +5 -2
  423. package/src/queries/staking/get-staking-quote.ts +13 -4
  424. package/src/queries/swap/get-swap-quote.ts +3 -1
  425. package/src/staking/index.ts +10 -1
  426. package/src/swap/index.ts +2 -4
  427. package/src/types/connector.ts +0 -8
  428. package/src/types/primitives.ts +1 -1
  429. package/src/types/provider.ts +3 -3
  430. package/src/utils/address/is-valid-address.ts +40 -0
  431. package/src/utils/address/to-bounceble-address.ts +35 -0
  432. package/src/utils/address/to-non-bounceble-address.ts +35 -0
  433. package/src/utils/amount/calc-fiat-value.test.ts +46 -0
  434. package/src/utils/amount/calc-fiat-value.ts +18 -0
  435. package/src/utils/amount/format-large-value.test.ts +50 -0
  436. package/src/utils/amount/format-large-value.ts +43 -0
  437. package/src/utils/amount/truncate-decimals.test.ts +97 -0
  438. package/src/utils/amount/truncate-decimals.ts +56 -0
  439. package/src/utils/balance/calc-max-spendable.test.ts +46 -0
  440. package/src/utils/balance/calc-max-spendable.ts +44 -0
  441. package/src/utils/balance/get-ton-shortfall.test.ts +148 -0
  442. package/src/utils/balance/get-ton-shortfall.ts +82 -0
  443. package/src/utils/functions/debounce.ts +169 -0
  444. package/src/utils/index.ts +10 -0
  445. package/src/utils/jetton/jetton-info.test.ts +65 -0
  446. package/src/utils/jetton/jetton-info.ts +12 -1
  447. package/src/utils/predicate/is-number.ts +19 -0
  448. package/src/utils/predicate/is-string.ts +2 -2
  449. package/dist/cjs/queries/staking/get-staking-providers.d.ts +0 -20
  450. package/dist/cjs/queries/staking/get-staking-providers.d.ts.map +0 -1
  451. package/dist/cjs/queries/staking/get-staking-providers.js +0 -25
  452. package/dist/esm/queries/staking/get-staking-providers.d.ts +0 -20
  453. package/dist/esm/queries/staking/get-staking-providers.d.ts.map +0 -1
  454. package/dist/esm/queries/staking/get-staking-providers.js +0 -20
  455. package/src/queries/staking/get-staking-providers.ts +0 -52
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import type { AppKit } from '../../core/app-kit';
9
+ export interface WatchSwapProvidersParameters {
10
+ onChange: () => void;
11
+ }
12
+ export type WatchSwapProvidersReturnType = () => void;
13
+ /**
14
+ * Watch for new swap providers registration
15
+ */
16
+ export declare const watchSwapProviders: (appKit: AppKit, parameters: WatchSwapProvidersParameters) => WatchSwapProvidersReturnType;
17
+ //# sourceMappingURL=watch-swap-providers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch-swap-providers.d.ts","sourceRoot":"","sources":["../../../../src/actions/swap/watch-swap-providers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC3B,QAAQ,MAAM,EACd,YAAY,4BAA4B,KACzC,4BAeF,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ /**
9
+ * Watch for new swap providers registration
10
+ */
11
+ export const watchSwapProviders = (appKit, parameters) => {
12
+ const { onChange } = parameters;
13
+ const unsubscribeRegistered = appKit.emitter.on('provider:registered', (event) => {
14
+ if (event.payload.type === 'swap')
15
+ onChange();
16
+ });
17
+ const unsubscribeDefaultChanged = appKit.emitter.on('provider:default-changed', (event) => {
18
+ if (event.payload.type === 'swap')
19
+ onChange();
20
+ });
21
+ return () => {
22
+ unsubscribeRegistered();
23
+ unsubscribeDefaultChanged();
24
+ };
25
+ };
@@ -7,10 +7,9 @@
7
7
  */
8
8
  import { TonConnectUI } from '@tonconnect/ui';
9
9
  import type { TonConnectUiCreateOptions } from '@tonconnect/ui';
10
- import type { Connector, ConnectorMetadata } from '../../../types/connector';
10
+ import type { Connector } from '../../../types/connector';
11
11
  export interface TonConnectConnectorConfig {
12
12
  id?: string;
13
- metadata?: ConnectorMetadata;
14
13
  tonConnectOptions?: TonConnectUiCreateOptions;
15
14
  tonConnectUI?: TonConnectUI;
16
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ton-connect-connector.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/tonconnect/connectors/ton-connect-connector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAIhE,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAK7E,MAAM,WAAW,yBAAyB;IACtC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC1C,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,yBAAyB,wCAgH1E,CAAC"}
1
+ {"version":3,"file":"ton-connect-connector.d.ts","sourceRoot":"","sources":["../../../../../src/connectors/tonconnect/connectors/ton-connect-connector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAIhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAK1D,MAAM,WAAW,yBAAyB;IACtC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,yBAAyB,CAAC;IAC9C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG;IAC1C,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,QAAQ,yBAAyB,wCAmH1E,CAAC"}
@@ -11,15 +11,20 @@ import { CONNECTOR_EVENTS, NETWORKS_EVENTS } from '../../../core/app-kit';
11
11
  import { TONCONNECT_DEFAULT_CONNECTOR_ID } from '../constants/id';
12
12
  import { createConnector } from '../../../types/connector';
13
13
  export const createTonConnectConnector = (config) => {
14
- return createConnector(({ eventEmitter, networkManager, ssr }) => {
14
+ return createConnector(({ eventEmitter, networkManager }) => {
15
15
  let originalTonConnectUI = null;
16
16
  let unsubscribeTonConnect = null;
17
+ let unsubscribeDefaultNetwork = null;
18
+ let destroyed = false;
17
19
  const id = config.id ?? TONCONNECT_DEFAULT_CONNECTOR_ID;
18
- function getTonConnectUI() {
20
+ const getTonConnectUI = () => {
21
+ if (destroyed) {
22
+ return null;
23
+ }
19
24
  if (originalTonConnectUI) {
20
25
  return originalTonConnectUI;
21
26
  }
22
- if (ssr && typeof window === 'undefined') {
27
+ if (typeof window === 'undefined') {
23
28
  return null;
24
29
  }
25
30
  // check if we have pre-defined UI
@@ -35,7 +40,7 @@ export const createTonConnectConnector = (config) => {
35
40
  originalTonConnectUI.connector.restoreConnection();
36
41
  }
37
42
  return originalTonConnectUI;
38
- }
43
+ };
39
44
  function getConnectedWallets() {
40
45
  const ui = getTonConnectUI();
41
46
  if (ui && ui.connected && ui.wallet) {
@@ -54,18 +59,12 @@ export const createTonConnectConnector = (config) => {
54
59
  if (!originalTonConnectUI || unsubscribeTonConnect) {
55
60
  return;
56
61
  }
57
- unsubscribeTonConnect = originalTonConnectUI.onStatusChange((wallet) => {
58
- const wallets = getConnectedWallets();
59
- if (wallet) {
60
- eventEmitter.emit(CONNECTOR_EVENTS.CONNECTED, { wallets, connectorId: id }, id);
61
- }
62
- else {
63
- eventEmitter.emit(CONNECTOR_EVENTS.DISCONNECTED, { connectorId: id }, id);
64
- }
62
+ unsubscribeTonConnect = originalTonConnectUI.onStatusChange(() => {
63
+ eventEmitter.emit(CONNECTOR_EVENTS.WALLETS_UPDATED, { connectorId: id, wallets: getConnectedWallets() }, id);
65
64
  });
66
65
  // Set default network and subscribe to changes
67
66
  originalTonConnectUI.setConnectionNetwork(networkManager.getDefaultNetwork()?.chainId);
68
- eventEmitter.on(NETWORKS_EVENTS.DEFAULT_CHANGED, ({ payload }) => {
67
+ unsubscribeDefaultNetwork = eventEmitter.on(NETWORKS_EVENTS.DEFAULT_CHANGED, ({ payload }) => {
69
68
  if (originalTonConnectUI) {
70
69
  originalTonConnectUI.setConnectionNetwork(payload.network?.chainId);
71
70
  }
@@ -74,11 +73,6 @@ export const createTonConnectConnector = (config) => {
74
73
  return {
75
74
  id,
76
75
  type: 'tonconnect',
77
- metadata: {
78
- name: 'TonConnect',
79
- iconUrl: 'https://avatars.githubusercontent.com/u/113980577',
80
- ...config.metadata,
81
- },
82
76
  get tonConnectUI() {
83
77
  return getTonConnectUI();
84
78
  },
@@ -96,7 +90,11 @@ export const createTonConnectConnector = (config) => {
96
90
  }
97
91
  },
98
92
  destroy() {
93
+ destroyed = true;
99
94
  unsubscribeTonConnect?.();
95
+ unsubscribeDefaultNetwork?.();
96
+ unsubscribeTonConnect = null;
97
+ unsubscribeDefaultNetwork = null;
100
98
  originalTonConnectUI = null;
101
99
  },
102
100
  };
@@ -9,8 +9,9 @@
9
9
  * Connector events
10
10
  */
11
11
  export declare const CONNECTOR_EVENTS: {
12
- readonly CONNECTED: "connector:connected";
13
- readonly DISCONNECTED: "connector:disconnected";
12
+ readonly ADDED: "connector:added";
13
+ readonly REMOVED: "connector:removed";
14
+ readonly WALLETS_UPDATED: "connector:wallets-updated";
14
15
  };
15
16
  /**
16
17
  * Wallet events
@@ -26,10 +27,4 @@ export declare const NETWORKS_EVENTS: {
26
27
  readonly UPDATED: "networks:updated";
27
28
  readonly DEFAULT_CHANGED: "networks:default-changed";
28
29
  };
29
- /**
30
- * Plugin events
31
- */
32
- export declare const PLUGIN_EVENTS: {
33
- readonly REGISTERED: "plugin:registered";
34
- };
35
30
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/constants/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;CAGnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAGlB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;CAEhB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/constants/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;CAGlB,CAAC"}
@@ -9,8 +9,9 @@
9
9
  * Connector events
10
10
  */
11
11
  export const CONNECTOR_EVENTS = {
12
- CONNECTED: 'connector:connected',
13
- DISCONNECTED: 'connector:disconnected',
12
+ ADDED: 'connector:added',
13
+ REMOVED: 'connector:removed',
14
+ WALLETS_UPDATED: 'connector:wallets-updated',
14
15
  };
15
16
  /**
16
17
  * Wallet events
@@ -26,9 +27,3 @@ export const NETWORKS_EVENTS = {
26
27
  UPDATED: 'networks:updated',
27
28
  DEFAULT_CHANGED: 'networks:default-changed',
28
29
  };
29
- /**
30
- * Plugin events
31
- */
32
- export const PLUGIN_EVENTS = {
33
- REGISTERED: 'plugin:registered',
34
- };
@@ -6,7 +6,7 @@
6
6
  *
7
7
  */
8
8
  export { AppKit } from './services/app-kit';
9
- export { CONNECTOR_EVENTS, WALLETS_EVENTS, PLUGIN_EVENTS, NETWORKS_EVENTS } from './constants/events';
9
+ export { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from './constants/events';
10
10
  export type { AppKitConfig } from './types/config';
11
- export type { AppKitEmitter, AppKitEvents, WalletConnectedPayload, WalletDisconnectedPayload, PluginRegisteredPayload, DefaultNetworkChangedPayload, } from './types/events';
11
+ export type { AppKitEmitter, AppKitEvents, ConnectorAddedPayload, ConnectorRemovedPayload, ConnectorWalletsUpdatedPayload, DefaultNetworkChangedPayload, } from './types/events';
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/app-kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtG,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EACR,aAAa,EACb,YAAY,EACZ,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,4BAA4B,GAC/B,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/app-kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEvF,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,YAAY,EACR,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,8BAA8B,EAC9B,4BAA4B,GAC/B,MAAM,gBAAgB,CAAC"}
@@ -6,4 +6,4 @@
6
6
  *
7
7
  */
8
8
  export { AppKit } from './services/app-kit';
9
- export { CONNECTOR_EVENTS, WALLETS_EVENTS, PLUGIN_EVENTS, NETWORKS_EVENTS } from './constants/events';
9
+ export { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from './constants/events';
@@ -7,12 +7,14 @@
7
7
  */
8
8
  import { SwapManager, StreamingManager } from '@ton/walletkit';
9
9
  import type { ProviderInput } from '@ton/walletkit';
10
+ import type { AppKitConfig } from '../types/config';
10
11
  import { StakingManager } from '../../../staking';
11
12
  import type { Connector, ConnectorFactoryContext, ConnectorInput } from '../../../types/connector';
12
13
  import type { AppKitEmitter } from '../types/events';
13
14
  import { WalletsManager } from '../../wallets-manager';
14
15
  import { AppKitNetworkManager } from '../../network';
15
- import type { AppKitConfig } from '../types/config';
16
+ import type { AppKitCache } from '../../cache';
17
+ import type { AppKitProvider } from '../../../types/provider';
16
18
  /**
17
19
  * Central hub for wallet management.
18
20
  * Stores emitter, providers, and manages wallet connections.
@@ -26,6 +28,7 @@ export declare class AppKit {
26
28
  readonly networkManager: AppKitNetworkManager;
27
29
  readonly streamingManager: StreamingManager;
28
30
  readonly config: AppKitConfig;
31
+ readonly cache: AppKitCache;
29
32
  constructor(config: AppKitConfig);
30
33
  createFactoryContext(): ConnectorFactoryContext;
31
34
  /**
@@ -39,7 +42,7 @@ export declare class AppKit {
39
42
  /**
40
43
  * Add a provider
41
44
  */
42
- registerProvider(input: ProviderInput): void;
45
+ registerProvider(input: ProviderInput<AppKitProvider>): void;
43
46
  /**
44
47
  * Get all connected wallets from all connectors
45
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"app-kit.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/services/app-kit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAmD,MAAM,gBAAgB,CAAC;AAErG,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAGnG,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;GAGG;AACH,qBAAa,MAAM;IACf,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IACtC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;gBAElB,MAAM,EAAE,YAAY;IAgChC,oBAAoB,IAAI,uBAAuB;IAI/C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,IAAI;IAgB/C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAU3C;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAc5C;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAWtC"}
1
+ {"version":3,"file":"app-kit.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/services/app-kit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAsE,MAAM,gBAAgB,CAAC;AAExH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEnG,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;;GAGG;AACH,qBAAa,MAAM;IACf,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IACtC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;gBAEhB,MAAM,EAAE,YAAY;IAgChC,oBAAoB,IAAI,uBAAuB;IAI/C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,IAAI;IAkB/C;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAY3C;;OAEG;IACH,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,GAAG,IAAI;IAiB5D;;OAEG;IACH,OAAO,CAAC,2BAA2B;CAWtC"}
@@ -6,12 +6,13 @@
6
6
  *
7
7
  */
8
8
  import { SwapManager, StreamingManager } from '@ton/walletkit';
9
+ import { CONNECTOR_EVENTS, WALLETS_EVENTS } from '../constants/events';
9
10
  import { StakingManager } from '../../../staking';
10
11
  import { EventEmitter } from '../../emitter';
11
- import { CONNECTOR_EVENTS, WALLETS_EVENTS } from '../constants/events';
12
12
  import { WalletsManager } from '../../wallets-manager';
13
13
  import { AppKitNetworkManager } from '../../network';
14
14
  import { Network } from '../../../types/network';
15
+ import { LruAppKitCache } from '../../cache';
15
16
  /**
16
17
  * Central hub for wallet management.
17
18
  * Stores emitter, providers, and manages wallet connections.
@@ -20,9 +21,9 @@ export class AppKit {
20
21
  constructor(config) {
21
22
  this.connectors = [];
22
23
  this.config = config;
24
+ this.cache = config.cache ?? new LruAppKitCache();
23
25
  this.emitter = new EventEmitter();
24
- this.emitter.on(CONNECTOR_EVENTS.CONNECTED, this.updateWalletsFromConnectors.bind(this));
25
- this.emitter.on(CONNECTOR_EVENTS.DISCONNECTED, this.updateWalletsFromConnectors.bind(this));
26
+ this.emitter.on(CONNECTOR_EVENTS.WALLETS_UPDATED, this.updateWalletsFromConnectors.bind(this));
26
27
  // Use provided networks config or default to mainnet
27
28
  const networks = config.networks ?? {
28
29
  [Network.mainnet().chainId]: {},
@@ -44,7 +45,7 @@ export class AppKit {
44
45
  }
45
46
  }
46
47
  createFactoryContext() {
47
- return { eventEmitter: this.emitter, networkManager: this.networkManager, ssr: this.config?.ssr };
48
+ return { eventEmitter: this.emitter, networkManager: this.networkManager };
48
49
  }
49
50
  /**
50
51
  * Add a wallet connector
@@ -57,6 +58,8 @@ export class AppKit {
57
58
  this.removeConnector(oldConnector);
58
59
  }
59
60
  this.connectors.push(connector);
61
+ this.updateWalletsFromConnectors();
62
+ this.emitter.emit(CONNECTOR_EVENTS.ADDED, { connector }, 'appkit');
60
63
  return () => {
61
64
  this.removeConnector(connector);
62
65
  };
@@ -70,6 +73,8 @@ export class AppKit {
70
73
  if (oldConnector) {
71
74
  oldConnector.destroy();
72
75
  this.connectors.splice(this.connectors.indexOf(oldConnector), 1);
76
+ this.updateWalletsFromConnectors();
77
+ this.emitter.emit(CONNECTOR_EVENTS.REMOVED, { connector: oldConnector }, 'appkit');
73
78
  }
74
79
  }
75
80
  /**
@@ -84,6 +89,9 @@ export class AppKit {
84
89
  case 'staking':
85
90
  this.stakingManager.registerProvider(provider);
86
91
  break;
92
+ case 'streaming':
93
+ this.streamingManager.registerProvider(provider);
94
+ break;
87
95
  default:
88
96
  throw new Error('Unknown provider type');
89
97
  }
@@ -6,8 +6,10 @@
6
6
  *
7
7
  */
8
8
  import type { NetworkAdapters, ProviderInput } from '@ton/walletkit';
9
+ import type { AppKitCache } from '../../cache';
9
10
  import type { ConnectorInput } from '../../../types/connector';
10
11
  import type { Network } from '../../../types/network';
12
+ import type { AppKitProvider } from '../../../types/provider';
11
13
  /**
12
14
  * Configuration for AppKit
13
15
  */
@@ -30,10 +32,11 @@ export interface AppKitConfig {
30
32
  * Set to `undefined` to allow any network.
31
33
  */
32
34
  defaultNetwork?: Network;
33
- providers?: ProviderInput[];
35
+ providers?: ProviderInput<AppKitProvider>[];
34
36
  /**
35
- * Enable server-side rendering support
37
+ * Custom cache implementation.
38
+ * Defaults to an LRU cache with a 10-minute TTL and a maximum of 1000 entries.
36
39
  */
37
- ssr?: boolean;
40
+ cache?: AppKitCache;
38
41
  }
39
42
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5B;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/types/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAE9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,SAAS,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,EAAE,CAAC;IAE5C;;;OAGG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;CACvB"}
@@ -5,28 +5,29 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
- import type { SharedKitEvents } from '../../emitter';
9
- import type { CONNECTOR_EVENTS, WALLETS_EVENTS, PLUGIN_EVENTS, NETWORKS_EVENTS } from '../constants/events';
8
+ import type { Connector } from '../../../types/connector';
10
9
  import type { Network } from '../../../types/network';
10
+ import type { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from '../constants/events';
11
+ import type { SharedKitEvents } from '../../emitter';
11
12
  import type { EventEmitter } from '../../emitter';
12
13
  import type { WalletInterface } from '../../../types/wallet';
13
- export interface WalletConnectedPayload {
14
- wallets: WalletInterface[];
15
- connectorId: string;
14
+ export interface ConnectorAddedPayload {
15
+ connector: Connector;
16
16
  }
17
- export interface WalletDisconnectedPayload {
18
- connectorId: string;
17
+ export interface ConnectorRemovedPayload {
18
+ connector: Connector;
19
19
  }
20
- export interface PluginRegisteredPayload {
21
- pluginId: string;
22
- pluginType: string;
20
+ export interface ConnectorWalletsUpdatedPayload {
21
+ connectorId: string;
22
+ wallets: WalletInterface[];
23
23
  }
24
24
  export interface DefaultNetworkChangedPayload {
25
25
  network: Network | undefined;
26
26
  }
27
27
  export type AppKitEvents = {
28
- [CONNECTOR_EVENTS.CONNECTED]: WalletConnectedPayload;
29
- [CONNECTOR_EVENTS.DISCONNECTED]: WalletDisconnectedPayload;
28
+ [CONNECTOR_EVENTS.ADDED]: ConnectorAddedPayload;
29
+ [CONNECTOR_EVENTS.REMOVED]: ConnectorRemovedPayload;
30
+ [CONNECTOR_EVENTS.WALLETS_UPDATED]: ConnectorWalletsUpdatedPayload;
30
31
  [WALLETS_EVENTS.UPDATED]: {
31
32
  wallets: WalletInterface[];
32
33
  };
@@ -35,7 +36,6 @@ export type AppKitEvents = {
35
36
  };
36
37
  [NETWORKS_EVENTS.UPDATED]: Record<string, never>;
37
38
  [NETWORKS_EVENTS.DEFAULT_CHANGED]: DefaultNetworkChangedPayload;
38
- [PLUGIN_EVENTS.REGISTERED]: PluginRegisteredPayload;
39
39
  } & SharedKitEvents;
40
40
  export type AppKitEmitter = EventEmitter<AppKitEvents>;
41
41
  //# sourceMappingURL=events.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/types/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC5G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,sBAAsB;IACnC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,yBAAyB;IACtC,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG;IAEvB,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACrD,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IAG3D,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IACzD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAGhE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,4BAA4B,CAAC;IAGhE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,uBAAuB,CAAC;CACvD,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-kit/types/events.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACpC,SAAS,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,4BAA4B;IACzC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,MAAM,YAAY,GAAG;IAEvB,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAChD,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IACpD,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,8BAA8B,CAAC;IAGnE,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IACzD,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAGhE,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC,eAAe,CAAC,eAAe,CAAC,EAAE,4BAA4B,CAAC;CACnE,GAAG,eAAe,CAAC;AAEpB,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import type { AppKitCache } from '../types/app-kit-cache';
9
+ export declare class LruAppKitCache implements AppKitCache {
10
+ private readonly cache;
11
+ constructor(options?: {
12
+ max?: number;
13
+ ttl?: number;
14
+ });
15
+ get<T = unknown>(key: string): Promise<T | undefined>;
16
+ set(key: string, value: unknown): Promise<void>;
17
+ remove(key: string): Promise<void>;
18
+ clear(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=lru-app-kit-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-app-kit-cache.d.ts","sourceRoot":"","sources":["../../../../../src/core/cache/adapters/lru-app-kit-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,qBAAa,cAAe,YAAW,WAAW;IAC9C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;gBAEjD,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;IAO9C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAIrD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { LRUCache } from 'lru-cache';
9
+ export class LruAppKitCache {
10
+ constructor(options) {
11
+ this.cache = new LRUCache({
12
+ max: options?.max ?? 1000,
13
+ ttl: options?.ttl ?? 1000 * 60 * 10,
14
+ });
15
+ }
16
+ async get(key) {
17
+ return this.cache.get(key)?.value;
18
+ }
19
+ async set(key, value) {
20
+ this.cache.set(key, { value });
21
+ }
22
+ async remove(key) {
23
+ this.cache.delete(key);
24
+ }
25
+ async clear() {
26
+ this.cache.clear();
27
+ }
28
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=lru-app-kit-cache.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lru-app-kit-cache.test.d.ts","sourceRoot":"","sources":["../../../../../src/core/cache/adapters/lru-app-kit-cache.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ import { describe, expect, it } from 'vitest';
9
+ import { LruAppKitCache } from './lru-app-kit-cache';
10
+ describe('LruAppKitCache', () => {
11
+ it('should return undefined for a missing key', async () => {
12
+ const cache = new LruAppKitCache();
13
+ expect(await cache.get('missing')).toBeUndefined();
14
+ });
15
+ it('should store and retrieve a value', async () => {
16
+ const cache = new LruAppKitCache();
17
+ await cache.set('key', 'value');
18
+ expect(await cache.get('key')).toBe('value');
19
+ });
20
+ it('should store and retrieve null', async () => {
21
+ const cache = new LruAppKitCache();
22
+ await cache.set('key', null);
23
+ expect(await cache.get('key')).toBeNull();
24
+ });
25
+ it('should store and retrieve an object', async () => {
26
+ const cache = new LruAppKitCache();
27
+ const obj = { address: 'EQabc', name: 'Test', decimals: 6 };
28
+ await cache.set('key', obj);
29
+ expect(await cache.get('key')).toEqual(obj);
30
+ });
31
+ it('should overwrite an existing value', async () => {
32
+ const cache = new LruAppKitCache();
33
+ await cache.set('key', 'first');
34
+ await cache.set('key', 'second');
35
+ expect(await cache.get('key')).toBe('second');
36
+ });
37
+ it('should remove a key', async () => {
38
+ const cache = new LruAppKitCache();
39
+ await cache.set('key', 'value');
40
+ await cache.remove('key');
41
+ expect(await cache.get('key')).toBeUndefined();
42
+ });
43
+ it('should clear all keys', async () => {
44
+ const cache = new LruAppKitCache();
45
+ await cache.set('a', 1);
46
+ await cache.set('b', 2);
47
+ await cache.clear();
48
+ expect(await cache.get('a')).toBeUndefined();
49
+ expect(await cache.get('b')).toBeUndefined();
50
+ });
51
+ it('should evict entries when max is exceeded', async () => {
52
+ const cache = new LruAppKitCache({ max: 2 });
53
+ await cache.set('a', 1);
54
+ await cache.set('b', 2);
55
+ await cache.set('c', 3);
56
+ expect(await cache.get('a')).toBeUndefined();
57
+ expect(await cache.get('b')).toBe(2);
58
+ expect(await cache.get('c')).toBe(3);
59
+ });
60
+ it('should expire entries after ttl', async () => {
61
+ const cache = new LruAppKitCache({ ttl: 10 });
62
+ await cache.set('key', 'value');
63
+ await new Promise((resolve) => setTimeout(resolve, 20));
64
+ expect(await cache.get('key')).toBeUndefined();
65
+ });
66
+ });
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export { LruAppKitCache } from './adapters/lru-app-kit-cache';
9
+ export { getCacheKey } from './utils/get-cache-key';
10
+ export type { AppKitCache } from './types/app-kit-cache';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/cache/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export { LruAppKitCache } from './adapters/lru-app-kit-cache';
9
+ export { getCacheKey } from './utils/get-cache-key';
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export interface AppKitCache {
9
+ get<T = unknown>(key: string): Promise<T | undefined>;
10
+ set(key: string, value: unknown): Promise<void>;
11
+ remove(key: string): Promise<void>;
12
+ clear(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=app-kit-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-kit-cache.d.ts","sourceRoot":"","sources":["../../../../../src/core/cache/types/app-kit-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,WAAW;IACxB,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IACtD,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export {};
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export declare const getCacheKey: (prefix: string) => (...params: string[]) => string;
9
+ //# sourceMappingURL=get-cache-key.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cache-key.d.ts","sourceRoot":"","sources":["../../../../../src/core/cache/utils/get-cache-key.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,GACnB,QAAQ,MAAM,MACd,GAAG,QAAQ,MAAM,EAAE,KAAG,MACY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) TonTech.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ export const getCacheKey = (prefix) => (...params) => `${prefix}:${params.join(':')}`;