@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,30 @@
|
|
|
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 type { StakingProviderInterface } from '@ton/walletkit';
|
|
10
|
+
|
|
11
|
+
import type { AppKit } from '../../core/app-kit';
|
|
12
|
+
|
|
13
|
+
export type GetStakingProviderOptions = {
|
|
14
|
+
/**
|
|
15
|
+
* Provider ID to get. If not provided, returns default provider.
|
|
16
|
+
*/
|
|
17
|
+
id?: string;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export type GetStakingProviderReturnType = StakingProviderInterface;
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Get staking provider instance
|
|
24
|
+
*/
|
|
25
|
+
export const getStakingProvider = (
|
|
26
|
+
appKit: AppKit,
|
|
27
|
+
options: GetStakingProviderOptions = {},
|
|
28
|
+
): GetStakingProviderReturnType => {
|
|
29
|
+
return appKit.stakingManager.getProvider(options.id);
|
|
30
|
+
};
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
+
import type { StakingProviderInterface } from '@ton/walletkit';
|
|
10
|
+
|
|
9
11
|
import type { AppKit } from '../../core/app-kit';
|
|
10
12
|
|
|
11
|
-
export type GetStakingProvidersReturnType =
|
|
13
|
+
export type GetStakingProvidersReturnType = StakingProviderInterface[];
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
|
-
* Get
|
|
16
|
+
* Get all registered staking providers.
|
|
15
17
|
*/
|
|
16
18
|
export const getStakingProviders = (appKit: AppKit): GetStakingProvidersReturnType => {
|
|
17
|
-
return appKit.stakingManager.
|
|
19
|
+
return appKit.stakingManager.getProviders();
|
|
18
20
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
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 type { AppKit } from '../../core/app-kit';
|
|
10
|
+
|
|
11
|
+
export interface SetDefaultStakingProviderParameters {
|
|
12
|
+
providerId: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type SetDefaultStakingProviderReturnType = void;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Set the default staking provider.
|
|
19
|
+
* Subsequent quote and stake-transaction calls will use this provider when none is specified.
|
|
20
|
+
*/
|
|
21
|
+
export const setDefaultStakingProvider = (
|
|
22
|
+
appKit: AppKit,
|
|
23
|
+
parameters: SetDefaultStakingProviderParameters,
|
|
24
|
+
): SetDefaultStakingProviderReturnType => {
|
|
25
|
+
appKit.stakingManager.setDefaultProvider(parameters.providerId);
|
|
26
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
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 type { AppKit } from '../../core/app-kit';
|
|
10
|
+
|
|
11
|
+
export interface WatchStakingProvidersParameters {
|
|
12
|
+
onChange: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type WatchStakingProvidersReturnType = () => void;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Watch for staking providers registration and default provider changes
|
|
19
|
+
*/
|
|
20
|
+
export const watchStakingProviders = (
|
|
21
|
+
appKit: AppKit,
|
|
22
|
+
parameters: WatchStakingProvidersParameters,
|
|
23
|
+
): WatchStakingProvidersReturnType => {
|
|
24
|
+
const { onChange } = parameters;
|
|
25
|
+
|
|
26
|
+
const onEvent = (event: { payload: { type: string } }) => {
|
|
27
|
+
if (event.payload.type === 'staking') {
|
|
28
|
+
onChange();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const unsubscribeRegistered = appKit.emitter.on('provider:registered', onEvent);
|
|
33
|
+
const unsubscribeDefaultChanged = appKit.emitter.on('provider:default-changed', onEvent);
|
|
34
|
+
|
|
35
|
+
return () => {
|
|
36
|
+
unsubscribeRegistered();
|
|
37
|
+
unsubscribeDefaultChanged();
|
|
38
|
+
};
|
|
39
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
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 type { SwapProviderInterface } from '@ton/walletkit';
|
|
10
|
+
|
|
11
|
+
import type { AppKit } from '../../core/app-kit';
|
|
12
|
+
|
|
13
|
+
export interface GetSwapProviderOptions {
|
|
14
|
+
id?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export type GetSwapProviderReturnType = SwapProviderInterface;
|
|
18
|
+
|
|
19
|
+
export const getSwapProvider = (appKit: AppKit, options: GetSwapProviderOptions = {}): GetSwapProviderReturnType => {
|
|
20
|
+
return appKit.swapManager.getProvider(options.id);
|
|
21
|
+
};
|
|
@@ -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
|
+
|
|
9
|
+
import type { SwapProviderInterface } from '@ton/walletkit';
|
|
10
|
+
|
|
11
|
+
import type { AppKit } from '../../core/app-kit';
|
|
12
|
+
|
|
13
|
+
export type GetSwapProvidersReturnType = SwapProviderInterface[];
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get all registered swap providers.
|
|
17
|
+
*/
|
|
18
|
+
export const getSwapProviders = (appKit: AppKit): GetSwapProvidersReturnType => {
|
|
19
|
+
return appKit.swapManager.getProviders();
|
|
20
|
+
};
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
import type { SwapQuote, SwapQuoteParams } from '@ton/walletkit';
|
|
10
10
|
|
|
11
11
|
import type { AppKit } from '../../core/app-kit';
|
|
12
|
+
import { resolveNetwork } from '../../utils';
|
|
12
13
|
|
|
13
14
|
export type GetSwapQuoteOptions<T = unknown> = SwapQuoteParams<T> & {
|
|
14
15
|
providerId?: string;
|
|
@@ -23,5 +24,10 @@ export const getSwapQuote = async <T = unknown>(
|
|
|
23
24
|
appKit: AppKit,
|
|
24
25
|
options: GetSwapQuoteOptions<T>,
|
|
25
26
|
): GetSwapQuoteReturnType => {
|
|
26
|
-
|
|
27
|
+
const optionsWithNetwork = {
|
|
28
|
+
...options,
|
|
29
|
+
network: resolveNetwork(appKit, options.network),
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
return appKit.swapManager.getQuote(optionsWithNetwork, options.providerId);
|
|
27
33
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
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 type { AppKit } from '../../core/app-kit';
|
|
10
|
+
|
|
11
|
+
export interface SetDefaultSwapProviderParameters {
|
|
12
|
+
providerId: string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type SetDefaultSwapProviderReturnType = void;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Set the default swap provider.
|
|
19
|
+
* Subsequent quote and swap-transaction calls will use this provider when none is specified.
|
|
20
|
+
*/
|
|
21
|
+
export const setDefaultSwapProvider = (
|
|
22
|
+
appKit: AppKit,
|
|
23
|
+
parameters: SetDefaultSwapProviderParameters,
|
|
24
|
+
): SetDefaultSwapProviderReturnType => {
|
|
25
|
+
appKit.swapManager.setDefaultProvider(parameters.providerId);
|
|
26
|
+
};
|
|
@@ -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 type { AppKit } from '../../core/app-kit';
|
|
10
|
+
|
|
11
|
+
export interface WatchSwapProvidersParameters {
|
|
12
|
+
onChange: () => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type WatchSwapProvidersReturnType = () => void;
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Watch for new swap providers registration
|
|
19
|
+
*/
|
|
20
|
+
export const watchSwapProviders = (
|
|
21
|
+
appKit: AppKit,
|
|
22
|
+
parameters: WatchSwapProvidersParameters,
|
|
23
|
+
): WatchSwapProvidersReturnType => {
|
|
24
|
+
const { onChange } = parameters;
|
|
25
|
+
|
|
26
|
+
const unsubscribeRegistered = appKit.emitter.on('provider:registered', (event) => {
|
|
27
|
+
if (event.payload.type === 'swap') onChange();
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const unsubscribeDefaultChanged = appKit.emitter.on('provider:default-changed', (event) => {
|
|
31
|
+
if (event.payload.type === 'swap') onChange();
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return () => {
|
|
35
|
+
unsubscribeRegistered();
|
|
36
|
+
unsubscribeDefaultChanged();
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -11,14 +11,13 @@ import type { TonConnectUiCreateOptions } from '@tonconnect/ui';
|
|
|
11
11
|
|
|
12
12
|
import { TonConnectWalletAdapter } from '../adapters/ton-connect-wallet-adapter';
|
|
13
13
|
import { CONNECTOR_EVENTS, NETWORKS_EVENTS } from '../../../core/app-kit';
|
|
14
|
-
import type { Connector
|
|
14
|
+
import type { Connector } from '../../../types/connector';
|
|
15
15
|
import type { WalletInterface } from '../../../types/wallet';
|
|
16
16
|
import { TONCONNECT_DEFAULT_CONNECTOR_ID } from '../constants/id';
|
|
17
17
|
import { createConnector } from '../../../types/connector';
|
|
18
18
|
|
|
19
19
|
export interface TonConnectConnectorConfig {
|
|
20
20
|
id?: string;
|
|
21
|
-
metadata?: ConnectorMetadata;
|
|
22
21
|
tonConnectOptions?: TonConnectUiCreateOptions;
|
|
23
22
|
tonConnectUI?: TonConnectUI;
|
|
24
23
|
}
|
|
@@ -29,18 +28,24 @@ export type TonConnectConnector = Connector & {
|
|
|
29
28
|
};
|
|
30
29
|
|
|
31
30
|
export const createTonConnectConnector = (config: TonConnectConnectorConfig) => {
|
|
32
|
-
return createConnector(({ eventEmitter, networkManager
|
|
31
|
+
return createConnector(({ eventEmitter, networkManager }): TonConnectConnector => {
|
|
33
32
|
let originalTonConnectUI: TonConnectUI | null = null;
|
|
34
33
|
let unsubscribeTonConnect: (() => void) | null = null;
|
|
34
|
+
let unsubscribeDefaultNetwork: (() => void) | null = null;
|
|
35
|
+
let destroyed = false;
|
|
35
36
|
|
|
36
37
|
const id = config.id ?? TONCONNECT_DEFAULT_CONNECTOR_ID;
|
|
37
38
|
|
|
38
|
-
|
|
39
|
+
const getTonConnectUI = (): TonConnectUI | null => {
|
|
40
|
+
if (destroyed) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
|
|
39
44
|
if (originalTonConnectUI) {
|
|
40
45
|
return originalTonConnectUI;
|
|
41
46
|
}
|
|
42
47
|
|
|
43
|
-
if (
|
|
48
|
+
if (typeof window === 'undefined') {
|
|
44
49
|
return null;
|
|
45
50
|
}
|
|
46
51
|
|
|
@@ -59,7 +64,7 @@ export const createTonConnectConnector = (config: TonConnectConnectorConfig) =>
|
|
|
59
64
|
}
|
|
60
65
|
|
|
61
66
|
return originalTonConnectUI;
|
|
62
|
-
}
|
|
67
|
+
};
|
|
63
68
|
|
|
64
69
|
function getConnectedWallets(): WalletInterface[] {
|
|
65
70
|
const ui = getTonConnectUI();
|
|
@@ -84,19 +89,17 @@ export const createTonConnectConnector = (config: TonConnectConnectorConfig) =>
|
|
|
84
89
|
return;
|
|
85
90
|
}
|
|
86
91
|
|
|
87
|
-
unsubscribeTonConnect = originalTonConnectUI.onStatusChange((
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
eventEmitter.emit(CONNECTOR_EVENTS.DISCONNECTED, { connectorId: id }, id);
|
|
94
|
-
}
|
|
92
|
+
unsubscribeTonConnect = originalTonConnectUI.onStatusChange(() => {
|
|
93
|
+
eventEmitter.emit(
|
|
94
|
+
CONNECTOR_EVENTS.WALLETS_UPDATED,
|
|
95
|
+
{ connectorId: id, wallets: getConnectedWallets() },
|
|
96
|
+
id,
|
|
97
|
+
);
|
|
95
98
|
});
|
|
96
99
|
|
|
97
100
|
// Set default network and subscribe to changes
|
|
98
101
|
originalTonConnectUI.setConnectionNetwork(networkManager.getDefaultNetwork()?.chainId);
|
|
99
|
-
eventEmitter.on(NETWORKS_EVENTS.DEFAULT_CHANGED, ({ payload }) => {
|
|
102
|
+
unsubscribeDefaultNetwork = eventEmitter.on(NETWORKS_EVENTS.DEFAULT_CHANGED, ({ payload }) => {
|
|
100
103
|
if (originalTonConnectUI) {
|
|
101
104
|
originalTonConnectUI.setConnectionNetwork(payload.network?.chainId);
|
|
102
105
|
}
|
|
@@ -106,11 +109,6 @@ export const createTonConnectConnector = (config: TonConnectConnectorConfig) =>
|
|
|
106
109
|
return {
|
|
107
110
|
id,
|
|
108
111
|
type: 'tonconnect',
|
|
109
|
-
metadata: {
|
|
110
|
-
name: 'TonConnect',
|
|
111
|
-
iconUrl: 'https://avatars.githubusercontent.com/u/113980577',
|
|
112
|
-
...config.metadata,
|
|
113
|
-
},
|
|
114
112
|
|
|
115
113
|
get tonConnectUI() {
|
|
116
114
|
return getTonConnectUI();
|
|
@@ -135,7 +133,11 @@ export const createTonConnectConnector = (config: TonConnectConnectorConfig) =>
|
|
|
135
133
|
},
|
|
136
134
|
|
|
137
135
|
destroy() {
|
|
136
|
+
destroyed = true;
|
|
138
137
|
unsubscribeTonConnect?.();
|
|
138
|
+
unsubscribeDefaultNetwork?.();
|
|
139
|
+
unsubscribeTonConnect = null;
|
|
140
|
+
unsubscribeDefaultNetwork = null;
|
|
139
141
|
originalTonConnectUI = null;
|
|
140
142
|
},
|
|
141
143
|
};
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
* Connector events
|
|
11
11
|
*/
|
|
12
12
|
export const CONNECTOR_EVENTS = {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
ADDED: 'connector:added',
|
|
14
|
+
REMOVED: 'connector:removed',
|
|
15
|
+
WALLETS_UPDATED: 'connector:wallets-updated',
|
|
15
16
|
} as const;
|
|
16
17
|
|
|
17
18
|
/**
|
|
@@ -29,10 +30,3 @@ export const NETWORKS_EVENTS = {
|
|
|
29
30
|
UPDATED: 'networks:updated',
|
|
30
31
|
DEFAULT_CHANGED: 'networks:default-changed',
|
|
31
32
|
} as const;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Plugin events
|
|
35
|
-
*/
|
|
36
|
-
export const PLUGIN_EVENTS = {
|
|
37
|
-
REGISTERED: 'plugin:registered',
|
|
38
|
-
} as const;
|
|
@@ -7,14 +7,14 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
export { AppKit } from './services/app-kit';
|
|
10
|
-
export { CONNECTOR_EVENTS, WALLETS_EVENTS,
|
|
10
|
+
export { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from './constants/events';
|
|
11
11
|
|
|
12
12
|
export type { AppKitConfig } from './types/config';
|
|
13
13
|
export type {
|
|
14
14
|
AppKitEmitter,
|
|
15
15
|
AppKitEvents,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
ConnectorAddedPayload,
|
|
17
|
+
ConnectorRemovedPayload,
|
|
18
|
+
ConnectorWalletsUpdatedPayload,
|
|
19
19
|
DefaultNetworkChangedPayload,
|
|
20
20
|
} from './types/events';
|
|
@@ -7,18 +7,21 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { SwapManager, StreamingManager } from '@ton/walletkit';
|
|
10
|
-
import type { ProviderInput, SwapProviderInterface, StakingProviderInterface } from '@ton/walletkit';
|
|
10
|
+
import type { ProviderInput, SwapProviderInterface, StakingProviderInterface, StreamingProvider } from '@ton/walletkit';
|
|
11
11
|
|
|
12
|
+
import type { AppKitConfig } from '../types/config';
|
|
13
|
+
import { CONNECTOR_EVENTS, WALLETS_EVENTS } from '../constants/events';
|
|
12
14
|
import { StakingManager } from '../../../staking';
|
|
13
15
|
import type { Connector, ConnectorFactoryContext, ConnectorInput } from '../../../types/connector';
|
|
14
16
|
import { EventEmitter } from '../../emitter';
|
|
15
|
-
import { CONNECTOR_EVENTS, WALLETS_EVENTS } from '../constants/events';
|
|
16
17
|
import type { AppKitEmitter, AppKitEvents } from '../types/events';
|
|
17
18
|
import type { WalletInterface } from '../../../types/wallet';
|
|
18
19
|
import { WalletsManager } from '../../wallets-manager';
|
|
19
20
|
import { AppKitNetworkManager } from '../../network';
|
|
20
21
|
import { Network } from '../../../types/network';
|
|
21
|
-
import type {
|
|
22
|
+
import type { AppKitCache } from '../../cache';
|
|
23
|
+
import { LruAppKitCache } from '../../cache';
|
|
24
|
+
import type { AppKitProvider } from '../../../types/provider';
|
|
22
25
|
|
|
23
26
|
/**
|
|
24
27
|
* Central hub for wallet management.
|
|
@@ -34,13 +37,14 @@ export class AppKit {
|
|
|
34
37
|
readonly networkManager: AppKitNetworkManager;
|
|
35
38
|
readonly streamingManager: StreamingManager;
|
|
36
39
|
readonly config: AppKitConfig;
|
|
40
|
+
readonly cache: AppKitCache;
|
|
37
41
|
|
|
38
42
|
constructor(config: AppKitConfig) {
|
|
39
43
|
this.config = config;
|
|
44
|
+
this.cache = config.cache ?? new LruAppKitCache();
|
|
40
45
|
|
|
41
46
|
this.emitter = new EventEmitter<AppKitEvents>();
|
|
42
|
-
this.emitter.on(CONNECTOR_EVENTS.
|
|
43
|
-
this.emitter.on(CONNECTOR_EVENTS.DISCONNECTED, this.updateWalletsFromConnectors.bind(this));
|
|
47
|
+
this.emitter.on(CONNECTOR_EVENTS.WALLETS_UPDATED, this.updateWalletsFromConnectors.bind(this));
|
|
44
48
|
|
|
45
49
|
// Use provided networks config or default to mainnet
|
|
46
50
|
const networks = config.networks ?? {
|
|
@@ -68,7 +72,7 @@ export class AppKit {
|
|
|
68
72
|
}
|
|
69
73
|
|
|
70
74
|
createFactoryContext(): ConnectorFactoryContext {
|
|
71
|
-
return { eventEmitter: this.emitter, networkManager: this.networkManager
|
|
75
|
+
return { eventEmitter: this.emitter, networkManager: this.networkManager };
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
/**
|
|
@@ -84,6 +88,8 @@ export class AppKit {
|
|
|
84
88
|
}
|
|
85
89
|
|
|
86
90
|
this.connectors.push(connector);
|
|
91
|
+
this.updateWalletsFromConnectors();
|
|
92
|
+
this.emitter.emit(CONNECTOR_EVENTS.ADDED, { connector }, 'appkit');
|
|
87
93
|
|
|
88
94
|
return () => {
|
|
89
95
|
this.removeConnector(connector);
|
|
@@ -100,13 +106,15 @@ export class AppKit {
|
|
|
100
106
|
if (oldConnector) {
|
|
101
107
|
oldConnector.destroy();
|
|
102
108
|
this.connectors.splice(this.connectors.indexOf(oldConnector), 1);
|
|
109
|
+
this.updateWalletsFromConnectors();
|
|
110
|
+
this.emitter.emit(CONNECTOR_EVENTS.REMOVED, { connector: oldConnector }, 'appkit');
|
|
103
111
|
}
|
|
104
112
|
}
|
|
105
113
|
|
|
106
114
|
/**
|
|
107
115
|
* Add a provider
|
|
108
116
|
*/
|
|
109
|
-
registerProvider(input: ProviderInput): void {
|
|
117
|
+
registerProvider(input: ProviderInput<AppKitProvider>): void {
|
|
110
118
|
const provider = typeof input === 'function' ? input(this.createFactoryContext()) : input;
|
|
111
119
|
switch (provider.type) {
|
|
112
120
|
case 'swap':
|
|
@@ -115,6 +123,9 @@ export class AppKit {
|
|
|
115
123
|
case 'staking':
|
|
116
124
|
this.stakingManager.registerProvider(provider as StakingProviderInterface);
|
|
117
125
|
break;
|
|
126
|
+
case 'streaming':
|
|
127
|
+
this.streamingManager.registerProvider(provider as StreamingProvider);
|
|
128
|
+
break;
|
|
118
129
|
default:
|
|
119
130
|
throw new Error('Unknown provider type');
|
|
120
131
|
}
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
import type { NetworkAdapters, ProviderInput } from '@ton/walletkit';
|
|
10
10
|
|
|
11
|
+
import type { AppKitCache } from '../../cache';
|
|
11
12
|
import type { ConnectorInput } from '../../../types/connector';
|
|
12
13
|
import type { Network } from '../../../types/network';
|
|
14
|
+
import type { AppKitProvider } from '../../../types/provider';
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* Configuration for AppKit
|
|
@@ -36,10 +38,11 @@ export interface AppKitConfig {
|
|
|
36
38
|
*/
|
|
37
39
|
defaultNetwork?: Network;
|
|
38
40
|
|
|
39
|
-
providers?: ProviderInput[];
|
|
41
|
+
providers?: ProviderInput<AppKitProvider>[];
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
|
-
*
|
|
44
|
+
* Custom cache implementation.
|
|
45
|
+
* Defaults to an LRU cache with a 10-minute TTL and a maximum of 1000 entries.
|
|
43
46
|
*/
|
|
44
|
-
|
|
47
|
+
cache?: AppKitCache;
|
|
45
48
|
}
|
|
@@ -6,24 +6,24 @@
|
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type {
|
|
10
|
-
import type { CONNECTOR_EVENTS, WALLETS_EVENTS, PLUGIN_EVENTS, NETWORKS_EVENTS } from '../constants/events';
|
|
9
|
+
import type { Connector } from '../../../types/connector';
|
|
11
10
|
import type { Network } from '../../../types/network';
|
|
11
|
+
import type { CONNECTOR_EVENTS, WALLETS_EVENTS, NETWORKS_EVENTS } from '../constants/events';
|
|
12
|
+
import type { SharedKitEvents } from '../../emitter';
|
|
12
13
|
import type { EventEmitter } from '../../emitter';
|
|
13
14
|
import type { WalletInterface } from '../../../types/wallet';
|
|
14
15
|
|
|
15
|
-
export interface
|
|
16
|
-
|
|
17
|
-
connectorId: string;
|
|
16
|
+
export interface ConnectorAddedPayload {
|
|
17
|
+
connector: Connector;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
export interface
|
|
21
|
-
|
|
20
|
+
export interface ConnectorRemovedPayload {
|
|
21
|
+
connector: Connector;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
export interface
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
export interface ConnectorWalletsUpdatedPayload {
|
|
25
|
+
connectorId: string;
|
|
26
|
+
wallets: WalletInterface[];
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export interface DefaultNetworkChangedPayload {
|
|
@@ -32,8 +32,9 @@ export interface DefaultNetworkChangedPayload {
|
|
|
32
32
|
|
|
33
33
|
export type AppKitEvents = {
|
|
34
34
|
// Connector events
|
|
35
|
-
[CONNECTOR_EVENTS.
|
|
36
|
-
[CONNECTOR_EVENTS.
|
|
35
|
+
[CONNECTOR_EVENTS.ADDED]: ConnectorAddedPayload;
|
|
36
|
+
[CONNECTOR_EVENTS.REMOVED]: ConnectorRemovedPayload;
|
|
37
|
+
[CONNECTOR_EVENTS.WALLETS_UPDATED]: ConnectorWalletsUpdatedPayload;
|
|
37
38
|
|
|
38
39
|
// Wallets events
|
|
39
40
|
[WALLETS_EVENTS.UPDATED]: { wallets: WalletInterface[] };
|
|
@@ -42,9 +43,6 @@ export type AppKitEvents = {
|
|
|
42
43
|
// Networks events
|
|
43
44
|
[NETWORKS_EVENTS.UPDATED]: Record<string, never>;
|
|
44
45
|
[NETWORKS_EVENTS.DEFAULT_CHANGED]: DefaultNetworkChangedPayload;
|
|
45
|
-
|
|
46
|
-
// Plugin events
|
|
47
|
-
[PLUGIN_EVENTS.REGISTERED]: PluginRegisteredPayload;
|
|
48
46
|
} & SharedKitEvents;
|
|
49
47
|
|
|
50
48
|
export type AppKitEmitter = EventEmitter<AppKitEvents>;
|
|
@@ -0,0 +1,77 @@
|
|
|
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 { LruAppKitCache } from './lru-app-kit-cache';
|
|
12
|
+
|
|
13
|
+
describe('LruAppKitCache', () => {
|
|
14
|
+
it('should return undefined for a missing key', async () => {
|
|
15
|
+
const cache = new LruAppKitCache();
|
|
16
|
+
expect(await cache.get('missing')).toBeUndefined();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('should store and retrieve a value', async () => {
|
|
20
|
+
const cache = new LruAppKitCache();
|
|
21
|
+
await cache.set('key', 'value');
|
|
22
|
+
expect(await cache.get('key')).toBe('value');
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
it('should store and retrieve null', async () => {
|
|
26
|
+
const cache = new LruAppKitCache();
|
|
27
|
+
await cache.set('key', null);
|
|
28
|
+
expect(await cache.get('key')).toBeNull();
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should store and retrieve an object', async () => {
|
|
32
|
+
const cache = new LruAppKitCache();
|
|
33
|
+
const obj = { address: 'EQabc', name: 'Test', decimals: 6 };
|
|
34
|
+
await cache.set('key', obj);
|
|
35
|
+
expect(await cache.get('key')).toEqual(obj);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('should overwrite an existing value', async () => {
|
|
39
|
+
const cache = new LruAppKitCache();
|
|
40
|
+
await cache.set('key', 'first');
|
|
41
|
+
await cache.set('key', 'second');
|
|
42
|
+
expect(await cache.get('key')).toBe('second');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('should remove a key', async () => {
|
|
46
|
+
const cache = new LruAppKitCache();
|
|
47
|
+
await cache.set('key', 'value');
|
|
48
|
+
await cache.remove('key');
|
|
49
|
+
expect(await cache.get('key')).toBeUndefined();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('should clear all keys', async () => {
|
|
53
|
+
const cache = new LruAppKitCache();
|
|
54
|
+
await cache.set('a', 1);
|
|
55
|
+
await cache.set('b', 2);
|
|
56
|
+
await cache.clear();
|
|
57
|
+
expect(await cache.get('a')).toBeUndefined();
|
|
58
|
+
expect(await cache.get('b')).toBeUndefined();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('should evict entries when max is exceeded', async () => {
|
|
62
|
+
const cache = new LruAppKitCache({ max: 2 });
|
|
63
|
+
await cache.set('a', 1);
|
|
64
|
+
await cache.set('b', 2);
|
|
65
|
+
await cache.set('c', 3);
|
|
66
|
+
expect(await cache.get('a')).toBeUndefined();
|
|
67
|
+
expect(await cache.get('b')).toBe(2);
|
|
68
|
+
expect(await cache.get('c')).toBe(3);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('should expire entries after ttl', async () => {
|
|
72
|
+
const cache = new LruAppKitCache({ ttl: 10 });
|
|
73
|
+
await cache.set('key', 'value');
|
|
74
|
+
await new Promise((resolve) => setTimeout(resolve, 20));
|
|
75
|
+
expect(await cache.get('key')).toBeUndefined();
|
|
76
|
+
});
|
|
77
|
+
});
|