@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.
- package/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +144 -0
- package/README.md +8 -7
- package/dist/cjs/actions/connectors/watch-connector-by-id.d.ts.map +1 -1
- package/dist/cjs/actions/connectors/watch-connector-by-id.js +8 -3
- package/dist/cjs/actions/connectors/watch-connectors.d.ts.map +1 -1
- package/dist/cjs/actions/connectors/watch-connectors.js +8 -3
- package/dist/cjs/actions/index.d.ts +8 -0
- package/dist/cjs/actions/index.d.ts.map +1 -1
- package/dist/cjs/actions/index.js +18 -2
- package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.d.ts +1 -1
- package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.d.ts.map +1 -1
- package/dist/cjs/actions/jettons/create-transfer-jetton-transaction.js +17 -5
- package/dist/cjs/actions/jettons/get-jetton-balance.d.ts +1 -1
- package/dist/cjs/actions/jettons/get-jetton-balance.d.ts.map +1 -1
- package/dist/cjs/actions/jettons/get-jetton-balance.js +8 -3
- package/dist/cjs/actions/jettons/get-jetton-info.d.ts.map +1 -1
- package/dist/cjs/actions/jettons/get-jetton-info.js +15 -6
- package/dist/cjs/actions/jettons/get-jetton-wallet-address.d.ts +1 -1
- package/dist/cjs/actions/jettons/get-jetton-wallet-address.d.ts.map +1 -1
- package/dist/cjs/actions/jettons/get-jetton-wallet-address.js +15 -4
- package/dist/cjs/actions/nft/get-nft.d.ts +1 -1
- package/dist/cjs/actions/nft/get-nft.d.ts.map +1 -1
- package/dist/cjs/actions/providers/register-provider.d.ts +2 -1
- package/dist/cjs/actions/providers/register-provider.d.ts.map +1 -1
- package/dist/cjs/actions/staking/get-staking-provider-metadata.d.ts +19 -0
- package/dist/cjs/actions/staking/get-staking-provider-metadata.d.ts.map +1 -0
- package/dist/cjs/actions/staking/get-staking-provider-metadata.js +18 -0
- package/dist/cjs/actions/staking/get-staking-provider.d.ts +21 -0
- package/dist/cjs/actions/staking/get-staking-provider.d.ts.map +1 -0
- package/dist/cjs/actions/staking/get-staking-provider.js +17 -0
- package/dist/cjs/actions/staking/get-staking-providers.d.ts +3 -2
- package/dist/cjs/actions/staking/get-staking-providers.d.ts.map +1 -1
- package/dist/cjs/actions/staking/get-staking-providers.js +2 -2
- package/dist/cjs/actions/staking/set-default-staking-provider.d.ts +18 -0
- package/dist/cjs/actions/staking/set-default-staking-provider.d.ts.map +1 -0
- package/dist/cjs/actions/staking/set-default-staking-provider.js +18 -0
- package/dist/cjs/actions/staking/watch-staking-providers.d.ts +17 -0
- package/dist/cjs/actions/staking/watch-staking-providers.d.ts.map +1 -0
- package/dist/cjs/actions/staking/watch-staking-providers.js +28 -0
- package/dist/cjs/actions/swap/get-swap-provider.d.ts +15 -0
- package/dist/cjs/actions/swap/get-swap-provider.d.ts.map +1 -0
- package/dist/cjs/actions/swap/get-swap-provider.js +14 -0
- package/dist/cjs/actions/swap/get-swap-providers.d.ts +15 -0
- package/dist/cjs/actions/swap/get-swap-providers.d.ts.map +1 -0
- package/dist/cjs/actions/swap/get-swap-providers.js +17 -0
- package/dist/cjs/actions/swap/get-swap-quote.d.ts.map +1 -1
- package/dist/cjs/actions/swap/get-swap-quote.js +6 -1
- package/dist/cjs/actions/swap/set-default-swap-provider.d.ts +18 -0
- package/dist/cjs/actions/swap/set-default-swap-provider.d.ts.map +1 -0
- package/dist/cjs/actions/swap/set-default-swap-provider.js +18 -0
- package/dist/cjs/actions/swap/watch-swap-providers.d.ts +17 -0
- package/dist/cjs/actions/swap/watch-swap-providers.d.ts.map +1 -0
- package/dist/cjs/actions/swap/watch-swap-providers.js +29 -0
- package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.d.ts +1 -2
- package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.d.ts.map +1 -1
- package/dist/cjs/connectors/tonconnect/connectors/ton-connect-connector.js +16 -18
- package/dist/cjs/core/app-kit/constants/events.d.ts +3 -8
- package/dist/cjs/core/app-kit/constants/events.d.ts.map +1 -1
- package/dist/cjs/core/app-kit/constants/events.js +4 -9
- package/dist/cjs/core/app-kit/index.d.ts +2 -2
- package/dist/cjs/core/app-kit/index.d.ts.map +1 -1
- package/dist/cjs/core/app-kit/index.js +1 -2
- package/dist/cjs/core/app-kit/services/app-kit.d.ts +5 -2
- package/dist/cjs/core/app-kit/services/app-kit.d.ts.map +1 -1
- package/dist/cjs/core/app-kit/services/app-kit.js +12 -4
- package/dist/cjs/core/app-kit/types/config.d.ts +6 -3
- package/dist/cjs/core/app-kit/types/config.d.ts.map +1 -1
- package/dist/cjs/core/app-kit/types/events.d.ts +13 -13
- package/dist/cjs/core/app-kit/types/events.d.ts.map +1 -1
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.d.ts +20 -0
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.d.ts.map +1 -0
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.js +32 -0
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.d.ts +9 -0
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.d.ts.map +1 -0
- package/dist/cjs/core/cache/adapters/lru-app-kit-cache.test.js +68 -0
- package/dist/cjs/core/cache/index.d.ts +11 -0
- package/dist/cjs/core/cache/index.d.ts.map +1 -0
- package/dist/cjs/core/cache/index.js +14 -0
- package/dist/cjs/core/cache/types/app-kit-cache.d.ts +14 -0
- package/dist/cjs/core/cache/types/app-kit-cache.d.ts.map +1 -0
- package/dist/cjs/core/cache/types/app-kit-cache.js +9 -0
- package/dist/cjs/core/cache/utils/get-cache-key.d.ts +9 -0
- package/dist/cjs/core/cache/utils/get-cache-key.d.ts.map +1 -0
- package/dist/cjs/core/cache/utils/get-cache-key.js +12 -0
- package/dist/cjs/core/cache/utils/get-cache-key.test.d.ts +9 -0
- package/dist/cjs/core/cache/utils/get-cache-key.test.d.ts.map +1 -0
- package/dist/cjs/core/cache/utils/get-cache-key.test.js +30 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/queries/balances/get-balance-by-address.d.ts.map +1 -1
- package/dist/cjs/queries/balances/get-balance-by-address.js +9 -3
- package/dist/cjs/queries/index.d.ts +0 -1
- package/dist/cjs/queries/index.d.ts.map +1 -1
- package/dist/cjs/queries/index.js +1 -3
- package/dist/cjs/queries/jettons/get-jetton-balance-by-address.d.ts.map +1 -1
- package/dist/cjs/queries/jettons/get-jetton-balance-by-address.js +11 -11
- package/dist/cjs/queries/jettons/get-jetton-info.d.ts.map +1 -1
- package/dist/cjs/queries/jettons/get-jetton-info.js +5 -1
- package/dist/cjs/queries/jettons/get-jetton-wallet-address.d.ts.map +1 -1
- package/dist/cjs/queries/jettons/get-jetton-wallet-address.js +6 -1
- package/dist/cjs/queries/jettons/get-jettons-by-address.d.ts.map +1 -1
- package/dist/cjs/queries/jettons/get-jettons-by-address.js +9 -3
- package/dist/cjs/queries/nft/get-nft.d.ts +1 -1
- package/dist/cjs/queries/nft/get-nft.d.ts.map +1 -1
- package/dist/cjs/queries/nft/get-nft.js +5 -1
- package/dist/cjs/queries/nft/get-nfts-by-address.d.ts.map +1 -1
- package/dist/cjs/queries/nft/get-nfts-by-address.js +5 -1
- package/dist/cjs/queries/staking/get-staked-balance.d.ts +1 -1
- package/dist/cjs/queries/staking/get-staked-balance.d.ts.map +1 -1
- package/dist/cjs/queries/staking/get-staked-balance.js +7 -1
- package/dist/cjs/queries/staking/get-staking-provider-info.d.ts +1 -1
- package/dist/cjs/queries/staking/get-staking-provider-info.d.ts.map +1 -1
- package/dist/cjs/queries/staking/get-staking-provider-info.js +3 -1
- package/dist/cjs/queries/staking/get-staking-quote.d.ts +1 -1
- package/dist/cjs/queries/staking/get-staking-quote.d.ts.map +1 -1
- package/dist/cjs/queries/staking/get-staking-quote.js +8 -2
- package/dist/cjs/queries/swap/get-swap-quote.d.ts.map +1 -1
- package/dist/cjs/queries/swap/get-swap-quote.js +1 -1
- package/dist/cjs/staking/index.d.ts +2 -2
- package/dist/cjs/staking/index.d.ts.map +1 -1
- package/dist/cjs/staking/index.js +3 -1
- package/dist/cjs/swap/index.d.ts +2 -1
- package/dist/cjs/swap/index.d.ts.map +1 -1
- package/dist/cjs/swap/index.js +8 -0
- package/dist/cjs/types/connector.d.ts +0 -6
- package/dist/cjs/types/connector.d.ts.map +1 -1
- package/dist/cjs/types/primitives.d.ts +1 -1
- package/dist/cjs/types/primitives.d.ts.map +1 -1
- package/dist/cjs/types/provider.d.ts +3 -3
- package/dist/cjs/types/provider.d.ts.map +1 -1
- package/dist/cjs/utils/address/is-valid-address.d.ts +11 -0
- package/dist/cjs/utils/address/is-valid-address.d.ts.map +1 -0
- package/dist/cjs/utils/address/is-valid-address.js +38 -0
- package/dist/cjs/utils/address/to-bounceble-address.d.ts +11 -0
- package/dist/cjs/utils/address/to-bounceble-address.d.ts.map +1 -0
- package/dist/cjs/utils/address/to-bounceble-address.js +36 -0
- package/dist/cjs/utils/address/to-non-bounceble-address.d.ts +11 -0
- package/dist/cjs/utils/address/to-non-bounceble-address.d.ts.map +1 -0
- package/dist/cjs/utils/address/to-non-bounceble-address.js +36 -0
- package/dist/cjs/utils/amount/calc-fiat-value.d.ts +13 -0
- package/dist/cjs/utils/amount/calc-fiat-value.d.ts.map +1 -0
- package/dist/cjs/utils/amount/calc-fiat-value.js +22 -0
- package/dist/cjs/utils/amount/calc-fiat-value.test.d.ts +9 -0
- package/dist/cjs/utils/amount/calc-fiat-value.test.d.ts.map +1 -0
- package/dist/cjs/utils/amount/calc-fiat-value.test.js +39 -0
- package/dist/cjs/utils/amount/format-large-value.d.ts +9 -0
- package/dist/cjs/utils/amount/format-large-value.d.ts.map +1 -0
- package/dist/cjs/utils/amount/format-large-value.js +40 -0
- package/dist/cjs/utils/amount/format-large-value.test.d.ts +9 -0
- package/dist/cjs/utils/amount/format-large-value.test.d.ts.map +1 -0
- package/dist/cjs/utils/amount/format-large-value.test.js +43 -0
- package/dist/cjs/utils/amount/truncate-decimals.d.ts +9 -0
- package/dist/cjs/utils/amount/truncate-decimals.d.ts.map +1 -0
- package/dist/cjs/utils/amount/truncate-decimals.js +59 -0
- package/dist/cjs/utils/amount/truncate-decimals.test.d.ts +9 -0
- package/dist/cjs/utils/amount/truncate-decimals.test.d.ts.map +1 -0
- package/dist/cjs/utils/amount/truncate-decimals.test.js +83 -0
- package/dist/cjs/utils/balance/calc-max-spendable.d.ts +33 -0
- package/dist/cjs/utils/balance/calc-max-spendable.d.ts.map +1 -0
- package/dist/cjs/utils/balance/calc-max-spendable.js +29 -0
- package/dist/cjs/utils/balance/calc-max-spendable.test.d.ts +9 -0
- package/dist/cjs/utils/balance/calc-max-spendable.test.d.ts.map +1 -0
- package/dist/cjs/utils/balance/calc-max-spendable.test.js +38 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.d.ts +58 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.d.ts.map +1 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.js +46 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.test.d.ts +9 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.test.d.ts.map +1 -0
- package/dist/cjs/utils/balance/get-ton-shortfall.test.js +133 -0
- package/dist/cjs/utils/functions/debounce.d.ts +80 -0
- package/dist/cjs/utils/functions/debounce.d.ts.map +1 -0
- package/dist/cjs/utils/functions/debounce.js +107 -0
- package/dist/cjs/utils/index.d.ts +10 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +10 -0
- package/dist/cjs/utils/jetton/jetton-info.d.ts +2 -1
- package/dist/cjs/utils/jetton/jetton-info.d.ts.map +1 -1
- package/dist/cjs/utils/jetton/jetton-info.js +11 -1
- package/dist/cjs/utils/jetton/jetton-info.test.d.ts +9 -0
- package/dist/cjs/utils/jetton/jetton-info.test.d.ts.map +1 -0
- package/dist/cjs/utils/jetton/jetton-info.test.js +54 -0
- package/dist/cjs/utils/predicate/is-number.d.ts +9 -0
- package/dist/cjs/utils/predicate/is-number.d.ts.map +1 -0
- package/dist/cjs/utils/predicate/is-number.js +20 -0
- package/dist/cjs/utils/predicate/is-string.d.ts +1 -1
- package/dist/cjs/utils/predicate/is-string.d.ts.map +1 -1
- package/dist/cjs/utils/predicate/is-string.js +4 -3
- package/dist/esm/actions/connectors/watch-connector-by-id.d.ts.map +1 -1
- package/dist/esm/actions/connectors/watch-connector-by-id.js +8 -3
- package/dist/esm/actions/connectors/watch-connectors.d.ts.map +1 -1
- package/dist/esm/actions/connectors/watch-connectors.js +8 -3
- package/dist/esm/actions/index.d.ts +8 -0
- package/dist/esm/actions/index.d.ts.map +1 -1
- package/dist/esm/actions/index.js +8 -0
- package/dist/esm/actions/jettons/create-transfer-jetton-transaction.d.ts +1 -1
- package/dist/esm/actions/jettons/create-transfer-jetton-transaction.d.ts.map +1 -1
- package/dist/esm/actions/jettons/create-transfer-jetton-transaction.js +17 -5
- package/dist/esm/actions/jettons/get-jetton-balance.d.ts +1 -1
- package/dist/esm/actions/jettons/get-jetton-balance.d.ts.map +1 -1
- package/dist/esm/actions/jettons/get-jetton-balance.js +7 -2
- package/dist/esm/actions/jettons/get-jetton-info.d.ts.map +1 -1
- package/dist/esm/actions/jettons/get-jetton-info.js +15 -6
- package/dist/esm/actions/jettons/get-jetton-wallet-address.d.ts +1 -1
- package/dist/esm/actions/jettons/get-jetton-wallet-address.d.ts.map +1 -1
- package/dist/esm/actions/jettons/get-jetton-wallet-address.js +15 -4
- package/dist/esm/actions/nft/get-nft.d.ts +1 -1
- package/dist/esm/actions/nft/get-nft.d.ts.map +1 -1
- package/dist/esm/actions/providers/register-provider.d.ts +2 -1
- package/dist/esm/actions/providers/register-provider.d.ts.map +1 -1
- package/dist/esm/actions/staking/get-staking-provider-metadata.d.ts +19 -0
- package/dist/esm/actions/staking/get-staking-provider-metadata.d.ts.map +1 -0
- package/dist/esm/actions/staking/get-staking-provider-metadata.js +14 -0
- package/dist/esm/actions/staking/get-staking-provider.d.ts +21 -0
- package/dist/esm/actions/staking/get-staking-provider.d.ts.map +1 -0
- package/dist/esm/actions/staking/get-staking-provider.js +13 -0
- package/dist/esm/actions/staking/get-staking-providers.d.ts +3 -2
- package/dist/esm/actions/staking/get-staking-providers.d.ts.map +1 -1
- package/dist/esm/actions/staking/get-staking-providers.js +2 -2
- package/dist/esm/actions/staking/set-default-staking-provider.d.ts +18 -0
- package/dist/esm/actions/staking/set-default-staking-provider.d.ts.map +1 -0
- package/dist/esm/actions/staking/set-default-staking-provider.js +14 -0
- package/dist/esm/actions/staking/watch-staking-providers.d.ts +17 -0
- package/dist/esm/actions/staking/watch-staking-providers.d.ts.map +1 -0
- package/dist/esm/actions/staking/watch-staking-providers.js +24 -0
- package/dist/esm/actions/swap/get-swap-provider.d.ts +15 -0
- package/dist/esm/actions/swap/get-swap-provider.d.ts.map +1 -0
- package/dist/esm/actions/swap/get-swap-provider.js +10 -0
- package/dist/esm/actions/swap/get-swap-providers.d.ts +15 -0
- package/dist/esm/actions/swap/get-swap-providers.d.ts.map +1 -0
- package/dist/esm/actions/swap/get-swap-providers.js +13 -0
- package/dist/esm/actions/swap/get-swap-quote.d.ts.map +1 -1
- package/dist/esm/actions/swap/get-swap-quote.js +6 -1
- package/dist/esm/actions/swap/set-default-swap-provider.d.ts +18 -0
- package/dist/esm/actions/swap/set-default-swap-provider.d.ts.map +1 -0
- package/dist/esm/actions/swap/set-default-swap-provider.js +14 -0
- package/dist/esm/actions/swap/watch-swap-providers.d.ts +17 -0
- package/dist/esm/actions/swap/watch-swap-providers.d.ts.map +1 -0
- package/dist/esm/actions/swap/watch-swap-providers.js +25 -0
- package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.d.ts +1 -2
- package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.d.ts.map +1 -1
- package/dist/esm/connectors/tonconnect/connectors/ton-connect-connector.js +16 -18
- package/dist/esm/core/app-kit/constants/events.d.ts +3 -8
- package/dist/esm/core/app-kit/constants/events.d.ts.map +1 -1
- package/dist/esm/core/app-kit/constants/events.js +3 -8
- package/dist/esm/core/app-kit/index.d.ts +2 -2
- package/dist/esm/core/app-kit/index.d.ts.map +1 -1
- package/dist/esm/core/app-kit/index.js +1 -1
- package/dist/esm/core/app-kit/services/app-kit.d.ts +5 -2
- package/dist/esm/core/app-kit/services/app-kit.d.ts.map +1 -1
- package/dist/esm/core/app-kit/services/app-kit.js +12 -4
- package/dist/esm/core/app-kit/types/config.d.ts +6 -3
- package/dist/esm/core/app-kit/types/config.d.ts.map +1 -1
- package/dist/esm/core/app-kit/types/events.d.ts +13 -13
- package/dist/esm/core/app-kit/types/events.d.ts.map +1 -1
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.d.ts +20 -0
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.d.ts.map +1 -0
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.js +28 -0
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.d.ts +9 -0
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.d.ts.map +1 -0
- package/dist/esm/core/cache/adapters/lru-app-kit-cache.test.js +66 -0
- package/dist/esm/core/cache/index.d.ts +11 -0
- package/dist/esm/core/cache/index.d.ts.map +1 -0
- package/dist/esm/core/cache/index.js +9 -0
- package/dist/esm/core/cache/types/app-kit-cache.d.ts +14 -0
- package/dist/esm/core/cache/types/app-kit-cache.d.ts.map +1 -0
- package/dist/esm/core/cache/types/app-kit-cache.js +8 -0
- package/dist/esm/core/cache/utils/get-cache-key.d.ts +9 -0
- package/dist/esm/core/cache/utils/get-cache-key.d.ts.map +1 -0
- package/dist/esm/core/cache/utils/get-cache-key.js +8 -0
- package/dist/esm/core/cache/utils/get-cache-key.test.d.ts +9 -0
- package/dist/esm/core/cache/utils/get-cache-key.test.d.ts.map +1 -0
- package/dist/esm/core/cache/utils/get-cache-key.test.js +28 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/queries/balances/get-balance-by-address.d.ts.map +1 -1
- package/dist/esm/queries/balances/get-balance-by-address.js +10 -4
- package/dist/esm/queries/index.d.ts +0 -1
- package/dist/esm/queries/index.d.ts.map +1 -1
- package/dist/esm/queries/index.js +0 -1
- package/dist/esm/queries/jettons/get-jetton-balance-by-address.d.ts.map +1 -1
- package/dist/esm/queries/jettons/get-jetton-balance-by-address.js +12 -12
- package/dist/esm/queries/jettons/get-jetton-info.d.ts.map +1 -1
- package/dist/esm/queries/jettons/get-jetton-info.js +6 -2
- package/dist/esm/queries/jettons/get-jetton-wallet-address.d.ts.map +1 -1
- package/dist/esm/queries/jettons/get-jetton-wallet-address.js +7 -2
- package/dist/esm/queries/jettons/get-jettons-by-address.d.ts.map +1 -1
- package/dist/esm/queries/jettons/get-jettons-by-address.js +10 -4
- package/dist/esm/queries/nft/get-nft.d.ts +1 -1
- package/dist/esm/queries/nft/get-nft.d.ts.map +1 -1
- package/dist/esm/queries/nft/get-nft.js +6 -2
- package/dist/esm/queries/nft/get-nfts-by-address.d.ts.map +1 -1
- package/dist/esm/queries/nft/get-nfts-by-address.js +6 -2
- package/dist/esm/queries/staking/get-staked-balance.d.ts +1 -1
- package/dist/esm/queries/staking/get-staked-balance.d.ts.map +1 -1
- package/dist/esm/queries/staking/get-staked-balance.js +8 -2
- package/dist/esm/queries/staking/get-staking-provider-info.d.ts +1 -1
- package/dist/esm/queries/staking/get-staking-provider-info.d.ts.map +1 -1
- package/dist/esm/queries/staking/get-staking-provider-info.js +4 -2
- package/dist/esm/queries/staking/get-staking-quote.d.ts +1 -1
- package/dist/esm/queries/staking/get-staking-quote.d.ts.map +1 -1
- package/dist/esm/queries/staking/get-staking-quote.js +9 -3
- package/dist/esm/queries/swap/get-swap-quote.d.ts.map +1 -1
- package/dist/esm/queries/swap/get-swap-quote.js +1 -1
- package/dist/esm/staking/index.d.ts +2 -2
- package/dist/esm/staking/index.d.ts.map +1 -1
- package/dist/esm/staking/index.js +1 -1
- package/dist/esm/swap/index.d.ts +2 -1
- package/dist/esm/swap/index.d.ts.map +1 -1
- package/dist/esm/swap/index.js +1 -1
- package/dist/esm/types/connector.d.ts +0 -6
- package/dist/esm/types/connector.d.ts.map +1 -1
- package/dist/esm/types/primitives.d.ts +1 -1
- package/dist/esm/types/primitives.d.ts.map +1 -1
- package/dist/esm/types/provider.d.ts +3 -3
- package/dist/esm/types/provider.d.ts.map +1 -1
- package/dist/esm/utils/address/is-valid-address.d.ts +11 -0
- package/dist/esm/utils/address/is-valid-address.d.ts.map +1 -0
- package/dist/esm/utils/address/is-valid-address.js +33 -0
- package/dist/esm/utils/address/to-bounceble-address.d.ts +11 -0
- package/dist/esm/utils/address/to-bounceble-address.d.ts.map +1 -0
- package/dist/esm/utils/address/to-bounceble-address.js +31 -0
- package/dist/esm/utils/address/to-non-bounceble-address.d.ts +11 -0
- package/dist/esm/utils/address/to-non-bounceble-address.d.ts.map +1 -0
- package/dist/esm/utils/address/to-non-bounceble-address.js +31 -0
- package/dist/esm/utils/amount/calc-fiat-value.d.ts +13 -0
- package/dist/esm/utils/amount/calc-fiat-value.d.ts.map +1 -0
- package/dist/esm/utils/amount/calc-fiat-value.js +19 -0
- package/dist/esm/utils/amount/calc-fiat-value.test.d.ts +9 -0
- package/dist/esm/utils/amount/calc-fiat-value.test.d.ts.map +1 -0
- package/dist/esm/utils/amount/calc-fiat-value.test.js +37 -0
- package/dist/esm/utils/amount/format-large-value.d.ts +9 -0
- package/dist/esm/utils/amount/format-large-value.d.ts.map +1 -0
- package/dist/esm/utils/amount/format-large-value.js +36 -0
- package/dist/esm/utils/amount/format-large-value.test.d.ts +9 -0
- package/dist/esm/utils/amount/format-large-value.test.d.ts.map +1 -0
- package/dist/esm/utils/amount/format-large-value.test.js +41 -0
- package/dist/esm/utils/amount/truncate-decimals.d.ts +9 -0
- package/dist/esm/utils/amount/truncate-decimals.d.ts.map +1 -0
- package/dist/esm/utils/amount/truncate-decimals.js +55 -0
- package/dist/esm/utils/amount/truncate-decimals.test.d.ts +9 -0
- package/dist/esm/utils/amount/truncate-decimals.test.d.ts.map +1 -0
- package/dist/esm/utils/amount/truncate-decimals.test.js +81 -0
- package/dist/esm/utils/balance/calc-max-spendable.d.ts +33 -0
- package/dist/esm/utils/balance/calc-max-spendable.d.ts.map +1 -0
- package/dist/esm/utils/balance/calc-max-spendable.js +25 -0
- package/dist/esm/utils/balance/calc-max-spendable.test.d.ts +9 -0
- package/dist/esm/utils/balance/calc-max-spendable.test.d.ts.map +1 -0
- package/dist/esm/utils/balance/calc-max-spendable.test.js +36 -0
- package/dist/esm/utils/balance/get-ton-shortfall.d.ts +58 -0
- package/dist/esm/utils/balance/get-ton-shortfall.d.ts.map +1 -0
- package/dist/esm/utils/balance/get-ton-shortfall.js +42 -0
- package/dist/esm/utils/balance/get-ton-shortfall.test.d.ts +9 -0
- package/dist/esm/utils/balance/get-ton-shortfall.test.d.ts.map +1 -0
- package/dist/esm/utils/balance/get-ton-shortfall.test.js +131 -0
- package/dist/esm/utils/functions/debounce.d.ts +80 -0
- package/dist/esm/utils/functions/debounce.d.ts.map +1 -0
- package/dist/esm/utils/functions/debounce.js +103 -0
- package/dist/esm/utils/index.d.ts +10 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +10 -0
- package/dist/esm/utils/jetton/jetton-info.d.ts +2 -1
- package/dist/esm/utils/jetton/jetton-info.d.ts.map +1 -1
- package/dist/esm/utils/jetton/jetton-info.js +9 -0
- package/dist/esm/utils/jetton/jetton-info.test.d.ts +9 -0
- package/dist/esm/utils/jetton/jetton-info.test.d.ts.map +1 -0
- package/dist/esm/utils/jetton/jetton-info.test.js +52 -0
- package/dist/esm/utils/predicate/is-number.d.ts +9 -0
- package/dist/esm/utils/predicate/is-number.d.ts.map +1 -0
- package/dist/esm/utils/predicate/is-number.js +16 -0
- package/dist/esm/utils/predicate/is-string.d.ts +1 -1
- package/dist/esm/utils/predicate/is-string.d.ts.map +1 -1
- package/dist/esm/utils/predicate/is-string.js +2 -2
- package/docs/actions.md +64 -15
- package/docs/connectors.md +5 -25
- package/docs/staking.md +7 -6
- package/docs/swap.md +11 -10
- package/package.json +4 -3
- package/src/actions/connectors/watch-connector-by-id.ts +9 -3
- package/src/actions/connectors/watch-connectors.ts +9 -3
- package/src/actions/index.ts +32 -0
- package/src/actions/jettons/create-transfer-jetton-transaction.ts +22 -6
- package/src/actions/jettons/get-jetton-balance.ts +10 -3
- package/src/actions/jettons/get-jetton-info.ts +18 -6
- package/src/actions/jettons/get-jetton-wallet-address.ts +19 -5
- package/src/actions/nft/get-nft.ts +1 -1
- package/src/actions/providers/register-provider.ts +2 -1
- package/src/actions/staking/get-staking-provider-metadata.ts +32 -0
- package/src/actions/staking/get-staking-provider.ts +30 -0
- package/src/actions/staking/get-staking-providers.ts +5 -3
- package/src/actions/staking/set-default-staking-provider.ts +26 -0
- package/src/actions/staking/watch-staking-providers.ts +39 -0
- package/src/actions/swap/get-swap-provider.ts +21 -0
- package/src/actions/swap/get-swap-providers.ts +20 -0
- package/src/actions/swap/get-swap-quote.ts +7 -1
- package/src/actions/swap/set-default-swap-provider.ts +26 -0
- package/src/actions/swap/watch-swap-providers.ts +38 -0
- package/src/connectors/tonconnect/connectors/ton-connect-connector.ts +22 -20
- package/src/core/app-kit/constants/events.ts +3 -9
- package/src/core/app-kit/index.ts +4 -4
- package/src/core/app-kit/services/app-kit.ts +18 -7
- package/src/core/app-kit/types/config.ts +6 -3
- package/src/core/app-kit/types/events.ts +13 -15
- package/src/core/cache/adapters/lru-app-kit-cache.test.ts +77 -0
- package/src/core/cache/adapters/lru-app-kit-cache.ts +38 -0
- package/src/core/cache/index.ts +12 -0
- package/src/core/cache/types/app-kit-cache.ts +14 -0
- package/src/core/cache/utils/get-cache-key.test.ts +34 -0
- package/src/core/cache/utils/get-cache-key.ts +12 -0
- package/src/index.ts +1 -0
- package/src/queries/balances/get-balance-by-address.ts +11 -4
- package/src/queries/index.ts +0 -6
- package/src/queries/jettons/get-jetton-balance-by-address.ts +13 -12
- package/src/queries/jettons/get-jetton-info.ts +6 -2
- package/src/queries/jettons/get-jetton-wallet-address.ts +7 -2
- package/src/queries/jettons/get-jettons-by-address.ts +18 -4
- package/src/queries/nft/get-nft.ts +7 -3
- package/src/queries/nft/get-nfts-by-address.ts +6 -2
- package/src/queries/staking/get-staked-balance.ts +10 -3
- package/src/queries/staking/get-staking-provider-info.ts +5 -2
- package/src/queries/staking/get-staking-quote.ts +13 -4
- package/src/queries/swap/get-swap-quote.ts +3 -1
- package/src/staking/index.ts +10 -1
- package/src/swap/index.ts +2 -4
- package/src/types/connector.ts +0 -8
- package/src/types/primitives.ts +1 -1
- package/src/types/provider.ts +3 -3
- package/src/utils/address/is-valid-address.ts +40 -0
- package/src/utils/address/to-bounceble-address.ts +35 -0
- package/src/utils/address/to-non-bounceble-address.ts +35 -0
- package/src/utils/amount/calc-fiat-value.test.ts +46 -0
- package/src/utils/amount/calc-fiat-value.ts +18 -0
- package/src/utils/amount/format-large-value.test.ts +50 -0
- package/src/utils/amount/format-large-value.ts +43 -0
- package/src/utils/amount/truncate-decimals.test.ts +97 -0
- package/src/utils/amount/truncate-decimals.ts +56 -0
- package/src/utils/balance/calc-max-spendable.test.ts +46 -0
- package/src/utils/balance/calc-max-spendable.ts +44 -0
- package/src/utils/balance/get-ton-shortfall.test.ts +148 -0
- package/src/utils/balance/get-ton-shortfall.ts +82 -0
- package/src/utils/functions/debounce.ts +169 -0
- package/src/utils/index.ts +10 -0
- package/src/utils/jetton/jetton-info.test.ts +65 -0
- package/src/utils/jetton/jetton-info.ts +12 -1
- package/src/utils/predicate/is-number.ts +19 -0
- package/src/utils/predicate/is-string.ts +2 -2
- package/dist/cjs/queries/staking/get-staking-providers.d.ts +0 -20
- package/dist/cjs/queries/staking/get-staking-providers.d.ts.map +0 -1
- package/dist/cjs/queries/staking/get-staking-providers.js +0 -25
- package/dist/esm/queries/staking/get-staking-providers.d.ts +0 -20
- package/dist/esm/queries/staking/get-staking-providers.d.ts.map +0 -1
- package/dist/esm/queries/staking/get-staking-providers.js +0 -20
- 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
|
|
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,
|
|
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
|
|
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
|
-
|
|
20
|
+
const getTonConnectUI = () => {
|
|
21
|
+
if (destroyed) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
19
24
|
if (originalTonConnectUI) {
|
|
20
25
|
return originalTonConnectUI;
|
|
21
26
|
}
|
|
22
|
-
if (
|
|
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((
|
|
58
|
-
|
|
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
|
|
13
|
-
readonly
|
|
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
|
|
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
|
-
|
|
13
|
-
|
|
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,
|
|
9
|
+
export { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from './constants/events';
|
|
10
10
|
export type { AppKitConfig } from './types/config';
|
|
11
|
-
export type { AppKitEmitter, AppKitEvents,
|
|
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,
|
|
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"}
|
|
@@ -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 {
|
|
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,
|
|
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.
|
|
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
|
|
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
|
-
*
|
|
37
|
+
* Custom cache implementation.
|
|
38
|
+
* Defaults to an LRU cache with a 10-minute TTL and a maximum of 1000 entries.
|
|
36
39
|
*/
|
|
37
|
-
|
|
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;
|
|
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 {
|
|
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
|
|
14
|
-
|
|
15
|
-
connectorId: string;
|
|
14
|
+
export interface ConnectorAddedPayload {
|
|
15
|
+
connector: Connector;
|
|
16
16
|
}
|
|
17
|
-
export interface
|
|
18
|
-
|
|
17
|
+
export interface ConnectorRemovedPayload {
|
|
18
|
+
connector: Connector;
|
|
19
19
|
}
|
|
20
|
-
export interface
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
29
|
-
[CONNECTOR_EVENTS.
|
|
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,
|
|
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 @@
|
|
|
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,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"}
|