@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,38 @@
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
+ import { LRUCache } from 'lru-cache';
10
+
11
+ import type { AppKitCache } from '../types/app-kit-cache';
12
+
13
+ export class LruAppKitCache implements AppKitCache {
14
+ private readonly cache: LRUCache<string, { value: unknown }>;
15
+
16
+ constructor(options?: { max?: number; ttl?: number }) {
17
+ this.cache = new LRUCache({
18
+ max: options?.max ?? 1000,
19
+ ttl: options?.ttl ?? 1000 * 60 * 10,
20
+ });
21
+ }
22
+
23
+ async get<T = unknown>(key: string): Promise<T | undefined> {
24
+ return this.cache.get(key)?.value as T | undefined;
25
+ }
26
+
27
+ async set(key: string, value: unknown): Promise<void> {
28
+ this.cache.set(key, { value });
29
+ }
30
+
31
+ async remove(key: string): Promise<void> {
32
+ this.cache.delete(key);
33
+ }
34
+
35
+ async clear(): Promise<void> {
36
+ this.cache.clear();
37
+ }
38
+ }
@@ -0,0 +1,12 @@
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
+ export { LruAppKitCache } from './adapters/lru-app-kit-cache';
10
+ export { getCacheKey } from './utils/get-cache-key';
11
+
12
+ export type { AppKitCache } from './types/app-kit-cache';
@@ -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
+
9
+ export interface AppKitCache {
10
+ get<T = unknown>(key: string): Promise<T | undefined>;
11
+ set(key: string, value: unknown): Promise<void>;
12
+ remove(key: string): Promise<void>;
13
+ clear(): Promise<void>;
14
+ }
@@ -0,0 +1,34 @@
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
+ import { describe, expect, it } from 'vitest';
10
+
11
+ import { getCacheKey } from './get-cache-key';
12
+
13
+ describe('getCacheKey', () => {
14
+ it('should build a key with a single param', () => {
15
+ const key = getCacheKey('jetton-info');
16
+ expect(key('EQabc')).toBe('jetton-info:EQabc');
17
+ });
18
+
19
+ it('should build a key with multiple params', () => {
20
+ const key = getCacheKey('jetton-info');
21
+ expect(key('mainnet', 'EQabc')).toBe('jetton-info:mainnet:EQabc');
22
+ });
23
+
24
+ it('should build a key with no params', () => {
25
+ const key = getCacheKey('jetton-info');
26
+ expect(key()).toBe('jetton-info:');
27
+ });
28
+
29
+ it('should scope keys independently per prefix', () => {
30
+ const infoKey = getCacheKey('jetton-info');
31
+ const walletKey = getCacheKey('jetton-wallet');
32
+ expect(infoKey('EQabc')).not.toBe(walletKey('EQabc'));
33
+ });
34
+ });
@@ -0,0 +1,12 @@
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
+ export const getCacheKey =
10
+ (prefix: string) =>
11
+ (...params: string[]): string =>
12
+ `${prefix}:${params.join(':')}`;
package/src/index.ts CHANGED
@@ -27,6 +27,7 @@
27
27
 
28
28
  // Core
29
29
  export * from './core/app-kit';
30
+ export * from './core/cache';
30
31
  export * from './core/emitter';
31
32
  export * from './core/network';
32
33
  export * from './core/streaming';
@@ -13,7 +13,7 @@ import { getBalanceByAddress } from '../../actions/balances/get-balance-by-addre
13
13
  import type { GetBalanceByAddressOptions } from '../../actions/balances/get-balance-by-address';
14
14
  import type { QueryOptions, QueryParameter } from '../../types/query';
15
15
  import type { Compute, ExactPartial } from '../../types/utils';
16
- import { filterQueryOptions, resolveNetwork, sleep } from '../../utils';
16
+ import { filterQueryOptions, resolveNetwork, sleep, tryToBounceableAddress } from '../../utils';
17
17
  import type { GetBalanceByAddressReturnType } from '../../actions/balances/get-balance-by-address';
18
18
  import type { BalanceUpdate } from '../../core/streaming';
19
19
  import type { Network } from '../../types/network';
@@ -32,7 +32,11 @@ export const getBalanceByAddressQueryOptions = <selectData = GetBalanceByAddress
32
32
  initialOptions: GetBalanceByAddressQueryConfig<selectData> = {},
33
33
  ): GetBalanceByAddressQueryOptions<selectData> => {
34
34
  const network = resolveNetwork(appKit, initialOptions.network);
35
- const options = { ...initialOptions, network };
35
+ const options = {
36
+ ...initialOptions,
37
+ network,
38
+ address: tryToBounceableAddress(initialOptions.address) ?? initialOptions.address,
39
+ };
36
40
 
37
41
  return {
38
42
  ...options.query,
@@ -72,14 +76,17 @@ export const handleBalanceUpdate = (
72
76
  { address, network }: { address: string; network: Network },
73
77
  update: BalanceUpdate,
74
78
  ) => {
79
+ const queryKey = getBalanceByAddressQueryKey({
80
+ address: tryToBounceableAddress(address) ?? address,
81
+ network,
82
+ });
83
+
75
84
  if (update.status === 'finalized') {
76
- const queryKey = getBalanceByAddressQueryKey({ address, network });
77
85
  queryClient.setQueryData(queryKey, update.balance);
78
86
  sleep(5000).then(() => queryClient.invalidateQueries({ queryKey }));
79
87
  }
80
88
 
81
89
  if (update.status === 'invalidated') {
82
- const queryKey = getBalanceByAddressQueryKey({ address, network });
83
90
  queryClient.invalidateQueries({ queryKey });
84
91
  }
85
92
  };
@@ -166,12 +166,6 @@ export {
166
166
  } from './swap/build-swap-transaction';
167
167
 
168
168
  // Staking
169
- export {
170
- getStakingProvidersQueryOptions,
171
- type GetStakingProvidersData,
172
- type GetStakingProvidersErrorType,
173
- type GetStakingProvidersQueryConfig,
174
- } from './staking/get-staking-providers';
175
169
  export {
176
170
  getStakingQuoteQueryOptions,
177
171
  type GetStakingQuoteQueryConfig,
@@ -14,7 +14,7 @@ import { getJettonBalance } from '../../actions/jettons/get-jetton-balance';
14
14
  import type { GetJettonBalanceOptions as GetJettonBalanceParameters } from '../../actions/jettons/get-jetton-balance';
15
15
  import type { QueryOptions, QueryParameter } from '../../types/query';
16
16
  import type { Compute, ExactPartial } from '../../types/utils';
17
- import { filterQueryOptions, resolveNetwork, sleep } from '../../utils';
17
+ import { filterQueryOptions, resolveNetwork, sleep, tryToBounceableAddress } from '../../utils';
18
18
  import type { JettonUpdate } from '../../core/streaming';
19
19
  import type { Network } from '../../types/network';
20
20
 
@@ -37,7 +37,12 @@ export const getJettonBalanceByAddressQueryOptions = <selectData = GetJettonBala
37
37
  initialOptions: GetJettonBalanceByAddressQueryConfig<selectData> = {},
38
38
  ): GetJettonBalanceByAddressQueryOptions<selectData> => {
39
39
  const network = resolveNetwork(appKit, initialOptions.network);
40
- const options = { ...initialOptions, network };
40
+ const options = {
41
+ ...initialOptions,
42
+ network,
43
+ jettonAddress: tryToBounceableAddress(initialOptions.jettonAddress) ?? initialOptions.jettonAddress,
44
+ ownerAddress: tryToBounceableAddress(initialOptions.ownerAddress) ?? initialOptions.ownerAddress,
45
+ };
41
46
 
42
47
  return {
43
48
  ...options.query,
@@ -82,22 +87,18 @@ export const handleJettonBalanceUpdate = (
82
87
  { ownerAddress, jettonAddress, network }: { ownerAddress: string; jettonAddress: string; network: Network },
83
88
  update: JettonUpdate,
84
89
  ) => {
90
+ const queryKey = getJettonBalanceByAddressQueryKey({
91
+ ownerAddress: tryToBounceableAddress(ownerAddress) ?? ownerAddress,
92
+ jettonAddress: tryToBounceableAddress(jettonAddress) ?? jettonAddress,
93
+ network,
94
+ });
95
+
85
96
  if (update.status === 'finalized') {
86
- const queryKey = getJettonBalanceByAddressQueryKey({
87
- ownerAddress,
88
- jettonAddress,
89
- network,
90
- });
91
97
  queryClient.setQueryData(queryKey, update.balance);
92
98
  sleep(5000).then(() => queryClient.invalidateQueries({ queryKey }));
93
99
  }
94
100
 
95
101
  if (update.status === 'invalidated') {
96
- const queryKey = getJettonBalanceByAddressQueryKey({
97
- ownerAddress,
98
- jettonAddress,
99
- network,
100
- });
101
102
  queryClient.invalidateQueries({ queryKey });
102
103
  }
103
104
  };
@@ -12,7 +12,7 @@ import type { GetJettonInfoOptions } from '../../actions/jettons/get-jetton-info
12
12
  import type { GetJettonInfoReturnType } from '../../actions/jettons/get-jetton-info';
13
13
  import type { QueryOptions, QueryParameter } from '../../types/query';
14
14
  import type { Compute, ExactPartial } from '../../types/utils';
15
- import { filterQueryOptions, resolveNetwork } from '../../utils';
15
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
16
16
 
17
17
  export type GetJettonInfoErrorType = Error;
18
18
 
@@ -24,7 +24,11 @@ export const getJettonInfoQueryOptions = <selectData = GetJettonInfoData>(
24
24
  initialOptions: GetJettonInfoQueryConfig<selectData> = {},
25
25
  ): GetJettonInfoQueryOptions<selectData> => {
26
26
  const network = resolveNetwork(appKit, initialOptions.network);
27
- const options = { ...initialOptions, network };
27
+ const options = {
28
+ ...initialOptions,
29
+ network,
30
+ address: tryToBounceableAddress(initialOptions.address) ?? initialOptions.address,
31
+ };
28
32
 
29
33
  return {
30
34
  ...options.query,
@@ -13,7 +13,7 @@ import { getJettonWalletAddress } from '../../actions/jettons/get-jetton-wallet-
13
13
  import type { GetJettonWalletAddressOptions as GetJettonWalletAddressParameters } from '../../actions/jettons/get-jetton-wallet-address';
14
14
  import type { QueryOptions, QueryParameter } from '../../types/query';
15
15
  import type { Compute, ExactPartial } from '../../types/utils';
16
- import { filterQueryOptions, resolveNetwork } from '../../utils';
16
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
17
17
 
18
18
  export type GetJettonWalletAddressErrorType = Error;
19
19
 
@@ -32,7 +32,12 @@ export const getJettonWalletAddressQueryOptions = <selectData = GetJettonWalletA
32
32
  initialOptions: GetJettonWalletAddressQueryConfig<selectData> = {},
33
33
  ): GetJettonWalletAddressQueryOptions<selectData> => {
34
34
  const network = resolveNetwork(appKit, initialOptions.network);
35
- const options = { ...initialOptions, network };
35
+ const options = {
36
+ ...initialOptions,
37
+ network,
38
+ jettonAddress: tryToBounceableAddress(initialOptions.jettonAddress) ?? initialOptions.jettonAddress,
39
+ ownerAddress: tryToBounceableAddress(initialOptions.ownerAddress) ?? initialOptions.ownerAddress,
40
+ };
36
41
 
37
42
  return {
38
43
  ...options.query,
@@ -13,7 +13,14 @@ import { getJettonsByAddress } from '../../actions/jettons/get-jettons-by-addres
13
13
  import type { GetJettonsByAddressOptions } from '../../actions/jettons/get-jettons-by-address';
14
14
  import type { QueryOptions, QueryParameter } from '../../types/query';
15
15
  import type { Compute, ExactPartial } from '../../types/utils';
16
- import { filterQueryOptions, resolveNetwork, compareAddress, formatUnits, sleep } from '../../utils';
16
+ import {
17
+ filterQueryOptions,
18
+ resolveNetwork,
19
+ compareAddress,
20
+ formatUnits,
21
+ sleep,
22
+ tryToBounceableAddress,
23
+ } from '../../utils';
17
24
  import type { GetJettonsByAddressReturnType } from '../../actions/jettons/get-jettons-by-address';
18
25
  import type { JettonUpdate } from '../../core/streaming';
19
26
  import type { Network } from '../../types/network';
@@ -32,7 +39,11 @@ export const getJettonsByAddressQueryOptions = <selectData = GetJettonsByAddress
32
39
  initialOptions: GetJettonsByAddressQueryConfig<selectData> = {},
33
40
  ): GetJettonsByAddressQueryOptions<selectData> => {
34
41
  const network = resolveNetwork(appKit, initialOptions.network);
35
- const options = { ...initialOptions, network };
42
+ const options = {
43
+ ...initialOptions,
44
+ network,
45
+ address: tryToBounceableAddress(initialOptions.address) ?? initialOptions.address,
46
+ };
36
47
 
37
48
  return {
38
49
  ...options.query,
@@ -73,8 +84,12 @@ export const handleJettonsUpdate = (
73
84
  { address, network }: { address: string; network: Network },
74
85
  update: JettonUpdate,
75
86
  ) => {
87
+ const queryKey = getJettonsByAddressQueryKey({
88
+ address: tryToBounceableAddress(address) ?? address,
89
+ network,
90
+ });
91
+
76
92
  if (update.status === 'finalized') {
77
- const queryKey = getJettonsByAddressQueryKey({ address, network });
78
93
  const currentData = queryClient.getQueryData(queryKey) as GetJettonsByAddressData | undefined;
79
94
 
80
95
  if (currentData?.jettons) {
@@ -99,7 +114,6 @@ export const handleJettonsUpdate = (
99
114
  }
100
115
 
101
116
  if (update.status === 'invalidated') {
102
- const queryKey = getJettonsByAddressQueryKey({ address, network });
103
117
  queryClient.invalidateQueries({ queryKey });
104
118
  }
105
119
  };
@@ -13,7 +13,7 @@ import { getNft } from '../../actions/nft/get-nft';
13
13
  import type { GetNftOptions as GetNftParameters } from '../../actions/nft/get-nft';
14
14
  import type { QueryOptions, QueryParameter } from '../../types/query';
15
15
  import type { Compute, ExactPartial } from '../../types/utils';
16
- import { filterQueryOptions, resolveNetwork } from '../../utils';
16
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
17
17
 
18
18
  export type GetNftErrorType = Error;
19
19
 
@@ -25,7 +25,11 @@ export const getNftQueryOptions = <selectData = GetNftData>(
25
25
  initialOptions: GetNftQueryConfig<selectData> = {},
26
26
  ): GetNftQueryOptions<selectData> => {
27
27
  const network = resolveNetwork(appKit, initialOptions.network);
28
- const options = { ...initialOptions, network };
28
+ const options = {
29
+ ...initialOptions,
30
+ network,
31
+ address: tryToBounceableAddress(initialOptions.address) ?? initialOptions.address,
32
+ };
29
33
 
30
34
  return {
31
35
  ...options.query,
@@ -41,7 +45,7 @@ export const getNftQueryOptions = <selectData = GetNftData>(
41
45
  };
42
46
  };
43
47
 
44
- export type GetNftQueryFnData = Compute<NFT | null>;
48
+ export type GetNftQueryFnData = Compute<NFT | undefined>;
45
49
 
46
50
  export type GetNftData = GetNftQueryFnData;
47
51
 
@@ -11,7 +11,7 @@ import { getNftsByAddress } from '../../actions/nft/get-nfts-by-address';
11
11
  import type { GetNftsByAddressOptions } from '../../actions/nft/get-nfts-by-address';
12
12
  import type { QueryOptions, QueryParameter } from '../../types/query';
13
13
  import type { Compute, ExactPartial } from '../../types/utils';
14
- import { filterQueryOptions, resolveNetwork } from '../../utils';
14
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
15
15
  import type { GetNftsByAddressReturnType } from '../../actions/nft/get-nfts-by-address';
16
16
 
17
17
  export type GetNFTsErrorType = Error;
@@ -28,7 +28,11 @@ export const getNFTsByAddressQueryOptions = <selectData = GetNFTsByAddressData>(
28
28
  initialOptions: GetNFTsByAddressQueryConfig<selectData> = {},
29
29
  ): GetNFTsByAddressQueryOptions<selectData> => {
30
30
  const network = resolveNetwork(appKit, initialOptions.network);
31
- const options = { ...initialOptions, network };
31
+ const options = {
32
+ ...initialOptions,
33
+ network,
34
+ address: tryToBounceableAddress(initialOptions.address) ?? initialOptions.address,
35
+ };
32
36
 
33
37
  return {
34
38
  ...options.query,
@@ -12,7 +12,7 @@ import type { GetStakedBalanceReturnType } from '../../actions/staking/get-stake
12
12
  import type { AppKit } from '../../core/app-kit';
13
13
  import type { QueryOptions, QueryParameter } from '../../types/query';
14
14
  import type { Compute, ExactPartial } from '../../types/utils';
15
- import { filterQueryOptions } from '../../utils';
15
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
16
16
 
17
17
  export type GetStakedBalanceErrorType = Error;
18
18
 
@@ -23,8 +23,15 @@ export type GetStakedBalanceQueryConfig<selectData = GetStakedBalanceData> = Com
23
23
 
24
24
  export const getStakedBalanceQueryOptions = <selectData = GetStakedBalanceData>(
25
25
  appKit: AppKit,
26
- options: GetStakedBalanceQueryConfig<selectData> = {},
26
+ initialOptions: GetStakedBalanceQueryConfig<selectData> = {},
27
27
  ): GetStakedBalanceQueryOptions<selectData> => {
28
+ const network = resolveNetwork(appKit, initialOptions.network);
29
+ const options = {
30
+ ...initialOptions,
31
+ network,
32
+ userAddress: tryToBounceableAddress(initialOptions.userAddress) ?? initialOptions.userAddress,
33
+ };
34
+
28
35
  return {
29
36
  ...options.query,
30
37
  enabled: Boolean(options.userAddress && (options.query?.enabled ?? true)),
@@ -47,7 +54,7 @@ export type GetStakedBalanceData = GetStakedBalanceQueryFnData;
47
54
  export const getStakedBalanceQueryKey = (
48
55
  options: Compute<ExactPartial<GetStakedBalanceOptions>> = {},
49
56
  ): GetStakedBalanceQueryKey => {
50
- return ['stakedBalance', filterQueryOptions(options as unknown as Record<string, unknown>)] as const;
57
+ return ['stakedBalance', filterQueryOptions(options)] as const;
51
58
  };
52
59
 
53
60
  export type GetStakedBalanceQueryKey = readonly ['stakedBalance', Compute<ExactPartial<GetStakedBalanceOptions>>];
@@ -12,7 +12,7 @@ import type { GetStakingProviderInfoReturnType } from '../../actions/staking/get
12
12
  import type { AppKit } from '../../core/app-kit';
13
13
  import type { QueryOptions, QueryParameter } from '../../types/query';
14
14
  import type { Compute, ExactPartial } from '../../types/utils';
15
- import { filterQueryOptions } from '../../utils';
15
+ import { filterQueryOptions, resolveNetwork } from '../../utils';
16
16
 
17
17
  export type GetStakingProviderInfoErrorType = Error;
18
18
 
@@ -28,8 +28,11 @@ export type GetStakingProviderInfoQueryConfig<selectData = GetStakingProviderInf
28
28
 
29
29
  export const getStakingProviderInfoQueryOptions = <selectData = GetStakingProviderInfoData>(
30
30
  appKit: AppKit,
31
- options: GetStakingProviderInfoQueryConfig<selectData> = {},
31
+ initialOptions: GetStakingProviderInfoQueryConfig<selectData> = {},
32
32
  ): GetStakingProviderInfoQueryOptions<selectData> => {
33
+ const network = resolveNetwork(appKit, initialOptions.network);
34
+ const options = { ...initialOptions, network };
35
+
33
36
  return {
34
37
  ...options.query,
35
38
  queryFn: async (context) => {
@@ -12,7 +12,7 @@ import type { GetStakingQuoteReturnType } from '../../actions/staking/get-stakin
12
12
  import type { AppKit } from '../../core/app-kit';
13
13
  import type { QueryOptions, QueryParameter } from '../../types/query';
14
14
  import type { Compute, ExactPartial } from '../../types/utils';
15
- import { filterQueryOptions } from '../../utils';
15
+ import { filterQueryOptions, resolveNetwork, tryToBounceableAddress } from '../../utils';
16
16
 
17
17
  export type GetStakingQuoteErrorType = Error;
18
18
 
@@ -23,11 +23,20 @@ export type GetStakingQuoteQueryConfig<selectData = GetStakingQuoteData> = Compu
23
23
 
24
24
  export const getStakingQuoteQueryOptions = <selectData = GetStakingQuoteData>(
25
25
  appKit: AppKit,
26
- options: GetStakingQuoteQueryConfig<selectData> = {},
26
+ initialOptions: GetStakingQuoteQueryConfig<selectData> = {},
27
27
  ): GetStakingQuoteQueryOptions<selectData> => {
28
+ const network = resolveNetwork(appKit, initialOptions.network);
29
+ const options = {
30
+ ...initialOptions,
31
+ network,
32
+ userAddress: tryToBounceableAddress(initialOptions.userAddress) ?? initialOptions.userAddress,
33
+ };
34
+
28
35
  return {
29
36
  ...options.query,
30
- enabled: Boolean(options.amount && options.direction && (options.query?.enabled ?? true)),
37
+ enabled: Boolean(
38
+ options.amount && options.amount !== '0' && options.direction && (options.query?.enabled ?? true),
39
+ ),
31
40
  queryFn: async (context) => {
32
41
  const [, parameters] = context.queryKey as [string, GetStakingQuoteOptions];
33
42
  if (!parameters.amount || !parameters.direction) {
@@ -47,7 +56,7 @@ export type GetStakingQuoteData = GetStakingQuoteQueryFnData;
47
56
  export const getStakingQuoteQueryKey = (
48
57
  options: Compute<ExactPartial<GetStakingQuoteOptions>> = {},
49
58
  ): GetStakingQuoteQueryKey => {
50
- return ['stakingQuote', filterQueryOptions(options as unknown as Record<string, unknown>)] as const;
59
+ return ['stakingQuote', filterQueryOptions(options)] as const;
51
60
  };
52
61
 
53
62
  export type GetStakingQuoteQueryKey = readonly ['stakingQuote', Compute<ExactPartial<GetStakingQuoteOptions>>];
@@ -28,7 +28,9 @@ export const getSwapQuoteQueryOptions = <selectData = GetSwapQuoteData>(
28
28
 
29
29
  return {
30
30
  ...options.query,
31
- enabled: Boolean(options.amount && options.from && options.to && (options.query?.enabled ?? true)),
31
+ enabled: Boolean(
32
+ options.amount && options.amount !== '0' && options.from && options.to && (options.query?.enabled ?? true),
33
+ ),
32
34
  queryFn: async (context) => {
33
35
  const [, parameters] = context.queryKey as [string, GetSwapQuoteOptions];
34
36
  if (!parameters.amount || !parameters.from || !parameters.to) {
@@ -6,7 +6,14 @@
6
6
  *
7
7
  */
8
8
 
9
- export { StakingProvider, UnstakeMode, StakingError, StakingManager } from '@ton/walletkit';
9
+ export {
10
+ DefiError,
11
+ StakingProvider,
12
+ UnstakeMode,
13
+ StakingError,
14
+ StakingErrorCode,
15
+ StakingManager,
16
+ } from '@ton/walletkit';
10
17
 
11
18
  export type {
12
19
  UnstakeModes,
@@ -18,4 +25,6 @@ export type {
18
25
  StakingProviderInfo,
19
26
  StakingProviderInterface,
20
27
  StakingQuoteDirection,
28
+ StakingProviderMetadata,
29
+ StakingTokenInfo,
21
30
  } from '@ton/walletkit';
package/src/swap/index.ts CHANGED
@@ -6,17 +6,15 @@
6
6
  *
7
7
  */
8
8
 
9
+ export { DefiError, DefiErrorCode, SwapError, SwapErrorCode, SwapProvider, SwapManager } from '@ton/walletkit';
10
+
9
11
  export type {
10
12
  SwapToken,
11
13
  TokenAmount,
12
14
  SwapParams,
13
15
  SwapAPI,
14
- SwapFee,
15
16
  SwapQuote,
16
17
  SwapQuoteParams,
17
18
  DefiManagerAPI,
18
19
  DefiProvider,
19
- SwapProvider,
20
- SwapError,
21
- SwapManager,
22
20
  } from '@ton/walletkit';
@@ -21,8 +21,6 @@ export interface Connector {
21
21
  /** Protocol type (e.g. 'tonconnect') */
22
22
  readonly type: string;
23
23
 
24
- readonly metadata: ConnectorMetadata;
25
-
26
24
  /** Cleanup connector resources */
27
25
  destroy(): void;
28
26
 
@@ -36,18 +34,12 @@ export interface Connector {
36
34
  getConnectedWallets(): WalletInterface[];
37
35
  }
38
36
 
39
- export interface ConnectorMetadata {
40
- name: string;
41
- iconUrl?: string;
42
- }
43
-
44
37
  /**
45
38
  * Context passed to connector factory functions.
46
39
  */
47
40
  export interface ConnectorFactoryContext {
48
41
  networkManager: AppKitNetworkManager;
49
42
  eventEmitter: AppKitEmitter;
50
- ssr?: boolean;
51
43
  }
52
44
 
53
45
  /** Factory function that creates a connector from context */
@@ -6,4 +6,4 @@
6
6
  *
7
7
  */
8
8
 
9
- export type { Base64String } from '@ton/walletkit';
9
+ export type { Base64String, UserFriendlyAddress, Hex } from '@ton/walletkit';
@@ -6,9 +6,9 @@
6
6
  *
7
7
  */
8
8
 
9
- import type { SwapProviderInterface, StakingProviderInterface } from '@ton/walletkit';
9
+ import type { SwapProviderInterface, StakingProviderInterface, StreamingProvider } from '@ton/walletkit';
10
10
 
11
11
  /**
12
- * Provider configuration
12
+ * Available provider types in AppKit.
13
13
  */
14
- export type Provider = SwapProviderInterface | StakingProviderInterface;
14
+ export type AppKitProvider = SwapProviderInterface | StakingProviderInterface | StreamingProvider;
@@ -0,0 +1,40 @@
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
+ import { Address } from '@ton/core';
10
+
11
+ import type { UserFriendlyAddress } from '../../types/primitives';
12
+ import { isString } from '../predicate/is-string';
13
+
14
+ export const isValidAddress = (address: unknown): address is string => {
15
+ if (typeof address !== 'string') {
16
+ return false;
17
+ }
18
+
19
+ try {
20
+ Address.parse(address);
21
+ } catch (_) {
22
+ return false;
23
+ }
24
+
25
+ return true;
26
+ };
27
+
28
+ export const isFriendlyTonAddress = (address: unknown): address is UserFriendlyAddress => {
29
+ if (!isString(address)) {
30
+ return false;
31
+ }
32
+
33
+ try {
34
+ Address.parseFriendly(address);
35
+ } catch (_) {
36
+ return false;
37
+ }
38
+
39
+ return true;
40
+ };