@reown/appkit-controllers 1.7.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +190 -0
- package/dist/esm/exports/index.js +32 -0
- package/dist/esm/exports/index.js.map +1 -0
- package/dist/esm/exports/modal.js +2 -0
- package/dist/esm/exports/modal.js.map +1 -0
- package/dist/esm/exports/react.js +52 -0
- package/dist/esm/exports/react.js.map +1 -0
- package/dist/esm/exports/vue.js +63 -0
- package/dist/esm/exports/vue.js.map +1 -0
- package/dist/esm/src/controllers/AccountController.js +160 -0
- package/dist/esm/src/controllers/AccountController.js.map +1 -0
- package/dist/esm/src/controllers/AlertController.js +35 -0
- package/dist/esm/src/controllers/AlertController.js.map +1 -0
- package/dist/esm/src/controllers/ApiController.js +260 -0
- package/dist/esm/src/controllers/ApiController.js.map +1 -0
- package/dist/esm/src/controllers/AssetController.js +43 -0
- package/dist/esm/src/controllers/AssetController.js.map +1 -0
- package/dist/esm/src/controllers/BlockchainApiController.js +472 -0
- package/dist/esm/src/controllers/BlockchainApiController.js.map +1 -0
- package/dist/esm/src/controllers/ChainController.js +548 -0
- package/dist/esm/src/controllers/ChainController.js.map +1 -0
- package/dist/esm/src/controllers/ConnectionController.js +190 -0
- package/dist/esm/src/controllers/ConnectionController.js.map +1 -0
- package/dist/esm/src/controllers/ConnectorController.js +272 -0
- package/dist/esm/src/controllers/ConnectorController.js.map +1 -0
- package/dist/esm/src/controllers/EnsController.js +144 -0
- package/dist/esm/src/controllers/EnsController.js.map +1 -0
- package/dist/esm/src/controllers/EventsController.js +76 -0
- package/dist/esm/src/controllers/EventsController.js.map +1 -0
- package/dist/esm/src/controllers/ModalController.js +120 -0
- package/dist/esm/src/controllers/ModalController.js.map +1 -0
- package/dist/esm/src/controllers/OnRampController.js +132 -0
- package/dist/esm/src/controllers/OnRampController.js.map +1 -0
- package/dist/esm/src/controllers/OptionsController.js +146 -0
- package/dist/esm/src/controllers/OptionsController.js.map +1 -0
- package/dist/esm/src/controllers/PublicStateController.js +20 -0
- package/dist/esm/src/controllers/PublicStateController.js.map +1 -0
- package/dist/esm/src/controllers/RouterController.js +125 -0
- package/dist/esm/src/controllers/RouterController.js.map +1 -0
- package/dist/esm/src/controllers/SendController.js +305 -0
- package/dist/esm/src/controllers/SendController.js.map +1 -0
- package/dist/esm/src/controllers/SnackController.js +62 -0
- package/dist/esm/src/controllers/SnackController.js.map +1 -0
- package/dist/esm/src/controllers/SwapController.js +674 -0
- package/dist/esm/src/controllers/SwapController.js.map +1 -0
- package/dist/esm/src/controllers/ThemeController.js +55 -0
- package/dist/esm/src/controllers/ThemeController.js.map +1 -0
- package/dist/esm/src/controllers/TooltipController.js +41 -0
- package/dist/esm/src/controllers/TooltipController.js.map +1 -0
- package/dist/esm/src/controllers/TransactionsController.js +113 -0
- package/dist/esm/src/controllers/TransactionsController.js.map +1 -0
- package/dist/esm/src/utils/AssetUtil.js +86 -0
- package/dist/esm/src/utils/AssetUtil.js.map +1 -0
- package/dist/esm/src/utils/ConstantsUtil.js +239 -0
- package/dist/esm/src/utils/ConstantsUtil.js.map +1 -0
- package/dist/esm/src/utils/CoreHelperUtil.js +354 -0
- package/dist/esm/src/utils/CoreHelperUtil.js.map +1 -0
- package/dist/esm/src/utils/ERC7811Util.js +111 -0
- package/dist/esm/src/utils/ERC7811Util.js.map +1 -0
- package/dist/esm/src/utils/EnsUtil.js +10 -0
- package/dist/esm/src/utils/EnsUtil.js.map +1 -0
- package/dist/esm/src/utils/FetchUtil.js +73 -0
- package/dist/esm/src/utils/FetchUtil.js.map +1 -0
- package/dist/esm/src/utils/MobileWallet.js +31 -0
- package/dist/esm/src/utils/MobileWallet.js.map +1 -0
- package/dist/esm/src/utils/OptionsUtil.js +29 -0
- package/dist/esm/src/utils/OptionsUtil.js.map +1 -0
- package/dist/esm/src/utils/RouterUtil.js +23 -0
- package/dist/esm/src/utils/RouterUtil.js.map +1 -0
- package/dist/esm/src/utils/SIWXUtil.js +258 -0
- package/dist/esm/src/utils/SIWXUtil.js.map +1 -0
- package/dist/esm/src/utils/SendApiUtil.js +65 -0
- package/dist/esm/src/utils/SendApiUtil.js.map +1 -0
- package/dist/esm/src/utils/StorageUtil.js +485 -0
- package/dist/esm/src/utils/StorageUtil.js.map +1 -0
- package/dist/esm/src/utils/SwapApiUtil.js +89 -0
- package/dist/esm/src/utils/SwapApiUtil.js.map +1 -0
- package/dist/esm/src/utils/SwapCalculationUtil.js +74 -0
- package/dist/esm/src/utils/SwapCalculationUtil.js.map +1 -0
- package/dist/esm/src/utils/TypeUtil.js +2 -0
- package/dist/esm/src/utils/TypeUtil.js.map +1 -0
- package/dist/esm/tests/constants/OnrampTransactions.js +151 -0
- package/dist/esm/tests/constants/OnrampTransactions.js.map +1 -0
- package/dist/esm/tests/controllers/AccountController.test.js +186 -0
- package/dist/esm/tests/controllers/AccountController.test.js.map +1 -0
- package/dist/esm/tests/controllers/AlertController.test.js +48 -0
- package/dist/esm/tests/controllers/AlertController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ApiController.test.js +608 -0
- package/dist/esm/tests/controllers/ApiController.test.js.map +1 -0
- package/dist/esm/tests/controllers/AssetController.test.js +92 -0
- package/dist/esm/tests/controllers/AssetController.test.js.map +1 -0
- package/dist/esm/tests/controllers/BlockchainApiController.test.js +38 -0
- package/dist/esm/tests/controllers/BlockchainApiController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ChainController.test.js +382 -0
- package/dist/esm/tests/controllers/ChainController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ConnectionController.test.js +151 -0
- package/dist/esm/tests/controllers/ConnectionController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ConnectorController.test.js +282 -0
- package/dist/esm/tests/controllers/ConnectorController.test.js.map +1 -0
- package/dist/esm/tests/controllers/EnsController.test.js +186 -0
- package/dist/esm/tests/controllers/EnsController.test.js.map +1 -0
- package/dist/esm/tests/controllers/EventsController.test.js +47 -0
- package/dist/esm/tests/controllers/EventsController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ModalController.test.js +66 -0
- package/dist/esm/tests/controllers/ModalController.test.js.map +1 -0
- package/dist/esm/tests/controllers/OnRampController.test.js +118 -0
- package/dist/esm/tests/controllers/OnRampController.test.js.map +1 -0
- package/dist/esm/tests/controllers/OptionsController.test.js +42 -0
- package/dist/esm/tests/controllers/OptionsController.test.js.map +1 -0
- package/dist/esm/tests/controllers/PublicStateController.test.js +33 -0
- package/dist/esm/tests/controllers/PublicStateController.test.js.map +1 -0
- package/dist/esm/tests/controllers/RouterController.test.js +103 -0
- package/dist/esm/tests/controllers/RouterController.test.js.map +1 -0
- package/dist/esm/tests/controllers/SendController.test.js +136 -0
- package/dist/esm/tests/controllers/SendController.test.js.map +1 -0
- package/dist/esm/tests/controllers/SnackController.test.js +86 -0
- package/dist/esm/tests/controllers/SnackController.test.js.map +1 -0
- package/dist/esm/tests/controllers/SwapController.test.js +105 -0
- package/dist/esm/tests/controllers/SwapController.test.js.map +1 -0
- package/dist/esm/tests/controllers/ThemeController.test.js +26 -0
- package/dist/esm/tests/controllers/ThemeController.test.js.map +1 -0
- package/dist/esm/tests/controllers/TooltipController.test.js +40 -0
- package/dist/esm/tests/controllers/TooltipController.test.js.map +1 -0
- package/dist/esm/tests/controllers/TransactionsController.test.js +239 -0
- package/dist/esm/tests/controllers/TransactionsController.test.js.map +1 -0
- package/dist/esm/tests/hooks/react.test.js +149 -0
- package/dist/esm/tests/hooks/react.test.js.map +1 -0
- package/dist/esm/tests/hooks/vue.test.js +56 -0
- package/dist/esm/tests/hooks/vue.test.js.map +1 -0
- package/dist/esm/tests/mocks/ChainController.js +24 -0
- package/dist/esm/tests/mocks/ChainController.js.map +1 -0
- package/dist/esm/tests/mocks/SwapController.js +118 -0
- package/dist/esm/tests/mocks/SwapController.js.map +1 -0
- package/dist/esm/tests/mocks/useAppKitAccount.js +41 -0
- package/dist/esm/tests/mocks/useAppKitAccount.js.map +1 -0
- package/dist/esm/tests/utils/AssetUtil.test.js +108 -0
- package/dist/esm/tests/utils/AssetUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/CoreHelperUtil.test.js +67 -0
- package/dist/esm/tests/utils/CoreHelperUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/ERC7811.test.js +268 -0
- package/dist/esm/tests/utils/ERC7811.test.js.map +1 -0
- package/dist/esm/tests/utils/EnsUtil.test.js +23 -0
- package/dist/esm/tests/utils/EnsUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/FetchUtil.test.js +175 -0
- package/dist/esm/tests/utils/FetchUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/MobileWallet.test.js +72 -0
- package/dist/esm/tests/utils/MobileWallet.test.js.map +1 -0
- package/dist/esm/tests/utils/OptionsUtil.test.js +20 -0
- package/dist/esm/tests/utils/OptionsUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/RouterUtil.test.js +62 -0
- package/dist/esm/tests/utils/RouterUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/SendApiUtil.test.js +340 -0
- package/dist/esm/tests/utils/SendApiUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/StorageUtil.test.js +162 -0
- package/dist/esm/tests/utils/StorageUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/SwapApiUtil.test.js +213 -0
- package/dist/esm/tests/utils/SwapApiUtil.test.js.map +1 -0
- package/dist/esm/tests/utils/SwapCalculationUtil.test.js +80 -0
- package/dist/esm/tests/utils/SwapCalculationUtil.test.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/types/exports/index.d.ts +51 -0
- package/dist/types/exports/modal.d.ts +2 -0
- package/dist/types/exports/react.d.ts +9 -0
- package/dist/types/exports/vue.d.ts +9 -0
- package/dist/types/src/controllers/AccountController.d.ts +56 -0
- package/dist/types/src/controllers/AlertController.d.ts +17 -0
- package/dist/types/src/controllers/ApiController.d.ts +52 -0
- package/dist/types/src/controllers/AssetController.d.ts +22 -0
- package/dist/types/src/controllers/BlockchainApiController.d.ts +59 -0
- package/dist/types/src/controllers/ChainController.d.ts +75 -0
- package/dist/types/src/controllers/ConnectionController.d.ts +86 -0
- package/dist/types/src/controllers/ConnectorController.d.ts +61 -0
- package/dist/types/src/controllers/EnsController.d.ts +26 -0
- package/dist/types/src/controllers/EventsController.d.ts +17 -0
- package/dist/types/src/controllers/ModalController.d.ts +27 -0
- package/dist/types/src/controllers/OnRampController.d.ts +55 -0
- package/dist/types/src/controllers/OptionsController.d.ts +364 -0
- package/dist/types/src/controllers/PublicStateController.d.ts +33 -0
- package/dist/types/src/controllers/RouterController.d.ts +56 -0
- package/dist/types/src/controllers/SendController.d.ts +52 -0
- package/dist/types/src/controllers/SnackController.d.ts +29 -0
- package/dist/types/src/controllers/SwapController.d.ts +127 -0
- package/dist/types/src/controllers/ThemeController.d.ts +30 -0
- package/dist/types/src/controllers/TooltipController.d.ts +25 -0
- package/dist/types/src/controllers/TransactionsController.d.ts +25 -0
- package/dist/types/src/utils/AssetUtil.d.ts +15 -0
- package/dist/types/src/utils/ConstantsUtil.d.ts +86 -0
- package/dist/types/src/utils/CoreHelperUtil.d.ts +56 -0
- package/dist/types/src/utils/ERC7811Util.d.ts +67 -0
- package/dist/types/src/utils/EnsUtil.d.ts +3 -0
- package/dist/types/src/utils/FetchUtil.d.ts +26 -0
- package/dist/types/src/utils/MobileWallet.d.ts +9 -0
- package/dist/types/src/utils/OptionsUtil.d.ts +5 -0
- package/dist/types/src/utils/RouterUtil.d.ts +4 -0
- package/dist/types/src/utils/SIWXUtil.d.ts +183 -0
- package/dist/types/src/utils/SendApiUtil.d.ts +13 -0
- package/dist/types/src/utils/StorageUtil.d.ts +99 -0
- package/dist/types/src/utils/SwapApiUtil.d.ts +27 -0
- package/dist/types/src/utils/SwapCalculationUtil.d.ts +22 -0
- package/dist/types/src/utils/TypeUtil.d.ts +981 -0
- package/dist/types/tests/constants/OnrampTransactions.d.ts +138 -0
- package/dist/types/tests/controllers/AccountController.test.d.ts +1 -0
- package/dist/types/tests/controllers/AlertController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ApiController.test.d.ts +1 -0
- package/dist/types/tests/controllers/AssetController.test.d.ts +1 -0
- package/dist/types/tests/controllers/BlockchainApiController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ChainController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ConnectionController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ConnectorController.test.d.ts +1 -0
- package/dist/types/tests/controllers/EnsController.test.d.ts +1 -0
- package/dist/types/tests/controllers/EventsController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ModalController.test.d.ts +1 -0
- package/dist/types/tests/controllers/OnRampController.test.d.ts +1 -0
- package/dist/types/tests/controllers/OptionsController.test.d.ts +1 -0
- package/dist/types/tests/controllers/PublicStateController.test.d.ts +1 -0
- package/dist/types/tests/controllers/RouterController.test.d.ts +1 -0
- package/dist/types/tests/controllers/SendController.test.d.ts +1 -0
- package/dist/types/tests/controllers/SnackController.test.d.ts +1 -0
- package/dist/types/tests/controllers/SwapController.test.d.ts +1 -0
- package/dist/types/tests/controllers/ThemeController.test.d.ts +1 -0
- package/dist/types/tests/controllers/TooltipController.test.d.ts +1 -0
- package/dist/types/tests/controllers/TransactionsController.test.d.ts +1 -0
- package/dist/types/tests/hooks/react.test.d.ts +1 -0
- package/dist/types/tests/hooks/vue.test.d.ts +2 -0
- package/dist/types/tests/mocks/ChainController.d.ts +2 -0
- package/dist/types/tests/mocks/SwapController.d.ts +75 -0
- package/dist/types/tests/mocks/useAppKitAccount.d.ts +40 -0
- package/dist/types/tests/utils/AssetUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/CoreHelperUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/ERC7811.test.d.ts +1 -0
- package/dist/types/tests/utils/EnsUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/FetchUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/MobileWallet.test.d.ts +1 -0
- package/dist/types/tests/utils/OptionsUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/RouterUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/SendApiUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/StorageUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/SwapApiUtil.test.d.ts +1 -0
- package/dist/types/tests/utils/SwapCalculationUtil.test.d.ts +1 -0
- package/package.json +81 -0
- package/readme.md +11 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import type { SIWXConfig } from '../utils/SIWXUtil.js';
|
|
2
|
+
import type { ConnectMethod, CustomWallet, DefaultAccountTypes, Features, Metadata, ProjectId, SdkVersion, SocialProvider, Tokens, WalletFeature } from '../utils/TypeUtil.js';
|
|
3
|
+
export interface OptionsControllerStatePublic {
|
|
4
|
+
/**
|
|
5
|
+
* A boolean that allows you to add or remove the "All Wallets" button on the modal
|
|
6
|
+
* @default 'SHOW'
|
|
7
|
+
* @see https://docs.reown.com/appkit/react/core/options#allwallets
|
|
8
|
+
*/
|
|
9
|
+
allWallets?: 'SHOW' | 'HIDE' | 'ONLY_MOBILE';
|
|
10
|
+
/**
|
|
11
|
+
* The project ID for the AppKit. You can find or create your project ID in the Cloud.
|
|
12
|
+
* @see https://cloud.walletconnect.com/
|
|
13
|
+
*/
|
|
14
|
+
projectId: ProjectId;
|
|
15
|
+
/**
|
|
16
|
+
* Array of wallet ids to be shown in the modal's connection view with priority. These wallets will also show up first in `All Wallets` view
|
|
17
|
+
* @default []
|
|
18
|
+
* @see https://docs.reown.com/appkit/react/core/options#featuredwalletids
|
|
19
|
+
*/
|
|
20
|
+
featuredWalletIds?: string[];
|
|
21
|
+
/**
|
|
22
|
+
* Array of wallet ids to be shown (order is respected). Unlike `featuredWalletIds`, these wallets will be the only ones shown in `All Wallets` view and as recommended wallets.
|
|
23
|
+
* @default []
|
|
24
|
+
* @see https://docs.reown.com/appkit/react/core/options#includewalletids
|
|
25
|
+
*/
|
|
26
|
+
includeWalletIds?: string[];
|
|
27
|
+
/**
|
|
28
|
+
* Array of wallet ids to be excluded from the wallet list in the modal.
|
|
29
|
+
* @default []
|
|
30
|
+
* @see https://docs.reown.com/appkit/react/core/options#excludewalletids
|
|
31
|
+
*/
|
|
32
|
+
excludeWalletIds?: string[];
|
|
33
|
+
/**
|
|
34
|
+
* Array of tokens to show the user's balance of. Each key represents the chain id of the token's blockchain
|
|
35
|
+
* @default {}
|
|
36
|
+
* @see https://docs.reown.com/appkit/react/core/options#tokens
|
|
37
|
+
*/
|
|
38
|
+
tokens?: Tokens;
|
|
39
|
+
/**
|
|
40
|
+
* Add custom wallets to the modal. CustomWallets is an array of objects, where each object contains specific information of a custom wallet.
|
|
41
|
+
* @default []
|
|
42
|
+
* @see https://docs.reown.com/appkit/react/core/options#customwallets
|
|
43
|
+
*
|
|
44
|
+
*/
|
|
45
|
+
customWallets?: CustomWallet[];
|
|
46
|
+
/**
|
|
47
|
+
* You can add an url for the terms and conditions link.
|
|
48
|
+
* @default undefined
|
|
49
|
+
*/
|
|
50
|
+
termsConditionsUrl?: string;
|
|
51
|
+
/**
|
|
52
|
+
* You can add an url for the privacy policy link.
|
|
53
|
+
* @default undefined
|
|
54
|
+
*/
|
|
55
|
+
privacyPolicyUrl?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Set of fields that related to your project which will be used to populate the metadata of the modal.
|
|
58
|
+
* @default {}
|
|
59
|
+
*/
|
|
60
|
+
metadata?: Metadata;
|
|
61
|
+
/**
|
|
62
|
+
* Enable or disable the appending the AppKit to the DOM. Created for specific use cases like WebGL.
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
disableAppend?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Enable or disable the all the wallet options (injected, Coinbase, QR, etc.). This is useful if you want to use only email and socials.
|
|
68
|
+
* @default true
|
|
69
|
+
*/
|
|
70
|
+
enableWallets?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Enable or disable the EIP6963 feature in your AppKit.
|
|
73
|
+
* @default false
|
|
74
|
+
*/
|
|
75
|
+
enableEIP6963?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Enable or disable the Coinbase wallet in your AppKit.
|
|
78
|
+
* @default true
|
|
79
|
+
*/
|
|
80
|
+
enableCoinbase?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Enable or disable the Injected wallet in your AppKit.
|
|
83
|
+
* @default true
|
|
84
|
+
*/
|
|
85
|
+
enableInjected?: boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Enable or disable the WalletConnect QR code in your AppKit.
|
|
88
|
+
* @default true
|
|
89
|
+
*/
|
|
90
|
+
enableWalletConnect?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Enable or disable the wallet guide footer in AppKit if you have email or social login configured.
|
|
93
|
+
* @default true
|
|
94
|
+
*/
|
|
95
|
+
enableWalletGuide?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Enable or disable logs from email/social login.
|
|
98
|
+
* @default true
|
|
99
|
+
*/
|
|
100
|
+
enableAuthLogger?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Enable or disable debug mode in your AppKit. This is useful if you want to see UI alerts when debugging.
|
|
103
|
+
* @default true
|
|
104
|
+
*/
|
|
105
|
+
debug?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Features configuration object.
|
|
108
|
+
* @default { swaps: true, onramp: true, email: true, socials: ['google', 'x', 'discord', 'farcaster', 'github', 'apple', 'facebook'], history: true, analytics: true, allWallets: true }
|
|
109
|
+
* @see https://docs.reown.com/appkit/react/core/options#features
|
|
110
|
+
*/
|
|
111
|
+
features?: Features;
|
|
112
|
+
/**
|
|
113
|
+
* @experimental - This feature is not production ready.
|
|
114
|
+
* Enable Sign In With X (SIWX) feature in your AppKit.
|
|
115
|
+
* @default undefined
|
|
116
|
+
*/
|
|
117
|
+
siwx?: SIWXConfig;
|
|
118
|
+
/**
|
|
119
|
+
* Renders the AppKit to DOM instead of the default modal.
|
|
120
|
+
* @default false
|
|
121
|
+
*/
|
|
122
|
+
enableEmbedded?: boolean;
|
|
123
|
+
/**
|
|
124
|
+
* Allow users to switch to an unsupported chain.
|
|
125
|
+
* @default false
|
|
126
|
+
*/
|
|
127
|
+
allowUnsupportedChain?: boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Default account types for each namespace.
|
|
130
|
+
* @default "{ bip122: 'payment', eip155: 'smartAccount', polkadot: 'eoa', solana: 'eoa' }"
|
|
131
|
+
*/
|
|
132
|
+
defaultAccountTypes: DefaultAccountTypes;
|
|
133
|
+
/**
|
|
134
|
+
* Allows users to indicate if they want to handle the WC connection themselves.
|
|
135
|
+
* @default false
|
|
136
|
+
* @see https://docs.reown.com/appkit/react/core/options#manualwccontrol
|
|
137
|
+
*/
|
|
138
|
+
manualWCControl?: boolean;
|
|
139
|
+
}
|
|
140
|
+
export interface OptionsControllerStateInternal {
|
|
141
|
+
sdkType: 'appkit';
|
|
142
|
+
sdkVersion: SdkVersion;
|
|
143
|
+
isSiweEnabled?: boolean;
|
|
144
|
+
isUniversalProvider?: boolean;
|
|
145
|
+
hasMultipleAddresses?: boolean;
|
|
146
|
+
}
|
|
147
|
+
type StateKey = keyof OptionsControllerStatePublic | keyof OptionsControllerStateInternal;
|
|
148
|
+
type OptionsControllerState = OptionsControllerStatePublic & OptionsControllerStateInternal;
|
|
149
|
+
export declare const OptionsController: {
|
|
150
|
+
state: OptionsControllerStatePublic & OptionsControllerStateInternal;
|
|
151
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: OptionsControllerState[K]) => void): () => void;
|
|
152
|
+
setOptions(options: OptionsControllerState): void;
|
|
153
|
+
setFeatures(features: OptionsControllerState["features"] | undefined): void;
|
|
154
|
+
setProjectId(projectId: OptionsControllerState["projectId"]): void;
|
|
155
|
+
setAllWallets(allWallets: OptionsControllerState["allWallets"]): void;
|
|
156
|
+
setIncludeWalletIds(includeWalletIds: OptionsControllerState["includeWalletIds"]): void;
|
|
157
|
+
setExcludeWalletIds(excludeWalletIds: OptionsControllerState["excludeWalletIds"]): void;
|
|
158
|
+
setFeaturedWalletIds(featuredWalletIds: OptionsControllerState["featuredWalletIds"]): void;
|
|
159
|
+
setTokens(tokens: OptionsControllerState["tokens"]): void;
|
|
160
|
+
setTermsConditionsUrl(termsConditionsUrl: OptionsControllerState["termsConditionsUrl"]): void;
|
|
161
|
+
setPrivacyPolicyUrl(privacyPolicyUrl: OptionsControllerState["privacyPolicyUrl"]): void;
|
|
162
|
+
setCustomWallets(customWallets: OptionsControllerState["customWallets"]): void;
|
|
163
|
+
setIsSiweEnabled(isSiweEnabled: OptionsControllerState["isSiweEnabled"]): void;
|
|
164
|
+
setIsUniversalProvider(isUniversalProvider: OptionsControllerState["isUniversalProvider"]): void;
|
|
165
|
+
setSdkVersion(sdkVersion: OptionsControllerState["sdkVersion"]): void;
|
|
166
|
+
setMetadata(metadata: OptionsControllerState["metadata"]): void;
|
|
167
|
+
setDisableAppend(disableAppend: OptionsControllerState["disableAppend"]): void;
|
|
168
|
+
setEIP6963Enabled(enableEIP6963: OptionsControllerState["enableEIP6963"]): void;
|
|
169
|
+
setDebug(debug: OptionsControllerState["debug"]): void;
|
|
170
|
+
setEnableWalletConnect(enableWalletConnect: OptionsControllerState["enableWalletConnect"]): void;
|
|
171
|
+
setEnableWalletGuide(enableWalletGuide: OptionsControllerState["enableWalletGuide"]): void;
|
|
172
|
+
setEnableAuthLogger(enableAuthLogger: OptionsControllerState["enableAuthLogger"]): void;
|
|
173
|
+
setEnableWallets(enableWallets: OptionsControllerState["enableWallets"]): void;
|
|
174
|
+
setHasMultipleAddresses(hasMultipleAddresses: OptionsControllerState["hasMultipleAddresses"]): void;
|
|
175
|
+
setSIWX(siwx: OptionsControllerState["siwx"]): void;
|
|
176
|
+
setConnectMethodsOrder(connectMethodsOrder: ConnectMethod[]): void;
|
|
177
|
+
setWalletFeaturesOrder(walletFeaturesOrder: WalletFeature[]): void;
|
|
178
|
+
setSocialsOrder(socialsOrder: SocialProvider[]): void;
|
|
179
|
+
setCollapseWallets(collapseWallets: boolean): void;
|
|
180
|
+
setEnableEmbedded(enableEmbedded: OptionsControllerState["enableEmbedded"]): void;
|
|
181
|
+
setAllowUnsupportedChain(allowUnsupportedChain: OptionsControllerState["allowUnsupportedChain"]): void;
|
|
182
|
+
setManualWCControl(manualWCControl: OptionsControllerState["manualWCControl"]): void;
|
|
183
|
+
setDefaultAccountTypes(defaultAccountType?: Partial<OptionsControllerState["defaultAccountTypes"]>): void;
|
|
184
|
+
getSnapshot(): {
|
|
185
|
+
readonly allWallets?: "SHOW" | "HIDE" | "ONLY_MOBILE"
|
|
186
|
+
/**
|
|
187
|
+
* The project ID for the AppKit. You can find or create your project ID in the Cloud.
|
|
188
|
+
* @see https://cloud.walletconnect.com/
|
|
189
|
+
*/
|
|
190
|
+
| undefined;
|
|
191
|
+
readonly projectId: ProjectId;
|
|
192
|
+
readonly featuredWalletIds?: readonly string[] | undefined;
|
|
193
|
+
readonly includeWalletIds?: readonly string[] | undefined;
|
|
194
|
+
readonly excludeWalletIds?: readonly string[] | undefined;
|
|
195
|
+
readonly tokens?: {
|
|
196
|
+
readonly [x: `eip155:${string}`]: {
|
|
197
|
+
readonly address: string;
|
|
198
|
+
readonly image?: string | undefined;
|
|
199
|
+
};
|
|
200
|
+
readonly [x: `eip155:${number}`]: {
|
|
201
|
+
readonly address: string;
|
|
202
|
+
readonly image?: string | undefined;
|
|
203
|
+
};
|
|
204
|
+
readonly [x: `solana:${string}`]: {
|
|
205
|
+
readonly address: string;
|
|
206
|
+
readonly image?: string | undefined;
|
|
207
|
+
};
|
|
208
|
+
readonly [x: `solana:${number}`]: {
|
|
209
|
+
readonly address: string;
|
|
210
|
+
readonly image?: string | undefined;
|
|
211
|
+
};
|
|
212
|
+
readonly [x: `polkadot:${string}`]: {
|
|
213
|
+
readonly address: string;
|
|
214
|
+
readonly image?: string | undefined;
|
|
215
|
+
};
|
|
216
|
+
readonly [x: `polkadot:${number}`]: {
|
|
217
|
+
readonly address: string;
|
|
218
|
+
readonly image?: string | undefined;
|
|
219
|
+
};
|
|
220
|
+
readonly [x: `bip122:${string}`]: {
|
|
221
|
+
readonly address: string;
|
|
222
|
+
readonly image?: string | undefined;
|
|
223
|
+
};
|
|
224
|
+
readonly [x: `bip122:${number}`]: {
|
|
225
|
+
readonly address: string;
|
|
226
|
+
readonly image?: string | undefined;
|
|
227
|
+
};
|
|
228
|
+
} | undefined;
|
|
229
|
+
readonly customWallets?: readonly {
|
|
230
|
+
readonly name: string;
|
|
231
|
+
readonly id: string;
|
|
232
|
+
readonly homepage?: string | undefined;
|
|
233
|
+
readonly image_url?: string | undefined;
|
|
234
|
+
readonly mobile_link?: string | null | undefined;
|
|
235
|
+
readonly desktop_link?: string | null | undefined;
|
|
236
|
+
readonly webapp_link?: string | null | undefined;
|
|
237
|
+
readonly app_store?: string | null | undefined;
|
|
238
|
+
readonly play_store?: string | null | undefined;
|
|
239
|
+
}[] | undefined;
|
|
240
|
+
readonly termsConditionsUrl?: string
|
|
241
|
+
/**
|
|
242
|
+
* You can add an url for the privacy policy link.
|
|
243
|
+
* @default undefined
|
|
244
|
+
*/
|
|
245
|
+
| undefined;
|
|
246
|
+
readonly privacyPolicyUrl?: string
|
|
247
|
+
/**
|
|
248
|
+
* Set of fields that related to your project which will be used to populate the metadata of the modal.
|
|
249
|
+
* @default {}
|
|
250
|
+
*/
|
|
251
|
+
| undefined;
|
|
252
|
+
readonly metadata?: {
|
|
253
|
+
readonly name: string;
|
|
254
|
+
readonly description: string;
|
|
255
|
+
readonly url: string;
|
|
256
|
+
readonly icons: readonly string[];
|
|
257
|
+
} | undefined;
|
|
258
|
+
readonly disableAppend?: boolean
|
|
259
|
+
/**
|
|
260
|
+
* Enable or disable the all the wallet options (injected, Coinbase, QR, etc.). This is useful if you want to use only email and socials.
|
|
261
|
+
* @default true
|
|
262
|
+
*/
|
|
263
|
+
| undefined;
|
|
264
|
+
readonly enableWallets?: boolean
|
|
265
|
+
/**
|
|
266
|
+
* Enable or disable the EIP6963 feature in your AppKit.
|
|
267
|
+
* @default false
|
|
268
|
+
*/
|
|
269
|
+
| undefined;
|
|
270
|
+
readonly enableEIP6963?: boolean
|
|
271
|
+
/**
|
|
272
|
+
* Enable or disable the Coinbase wallet in your AppKit.
|
|
273
|
+
* @default true
|
|
274
|
+
*/
|
|
275
|
+
| undefined;
|
|
276
|
+
readonly enableCoinbase?: boolean
|
|
277
|
+
/**
|
|
278
|
+
* Enable or disable the Injected wallet in your AppKit.
|
|
279
|
+
* @default true
|
|
280
|
+
*/
|
|
281
|
+
| undefined;
|
|
282
|
+
readonly enableInjected?: boolean
|
|
283
|
+
/**
|
|
284
|
+
* Enable or disable the WalletConnect QR code in your AppKit.
|
|
285
|
+
* @default true
|
|
286
|
+
*/
|
|
287
|
+
| undefined;
|
|
288
|
+
readonly enableWalletConnect?: boolean
|
|
289
|
+
/**
|
|
290
|
+
* Enable or disable the wallet guide footer in AppKit if you have email or social login configured.
|
|
291
|
+
* @default true
|
|
292
|
+
*/
|
|
293
|
+
| undefined;
|
|
294
|
+
readonly enableWalletGuide?: boolean
|
|
295
|
+
/**
|
|
296
|
+
* Enable or disable logs from email/social login.
|
|
297
|
+
* @default true
|
|
298
|
+
*/
|
|
299
|
+
| undefined;
|
|
300
|
+
readonly enableAuthLogger?: boolean
|
|
301
|
+
/**
|
|
302
|
+
* Enable or disable debug mode in your AppKit. This is useful if you want to see UI alerts when debugging.
|
|
303
|
+
* @default true
|
|
304
|
+
*/
|
|
305
|
+
| undefined;
|
|
306
|
+
readonly debug?: boolean
|
|
307
|
+
/**
|
|
308
|
+
* Features configuration object.
|
|
309
|
+
* @default { swaps: true, onramp: true, email: true, socials: ['google', 'x', 'discord', 'farcaster', 'github', 'apple', 'facebook'], history: true, analytics: true, allWallets: true }
|
|
310
|
+
* @see https://docs.reown.com/appkit/react/core/options#features
|
|
311
|
+
*/
|
|
312
|
+
| undefined;
|
|
313
|
+
readonly features?: {
|
|
314
|
+
readonly swaps?: boolean | undefined;
|
|
315
|
+
readonly onramp?: boolean | undefined;
|
|
316
|
+
readonly receive?: boolean | undefined;
|
|
317
|
+
readonly send?: boolean | undefined;
|
|
318
|
+
readonly email?: boolean | undefined;
|
|
319
|
+
readonly emailShowWallets?: boolean | undefined;
|
|
320
|
+
readonly socials?: false | readonly SocialProvider[] | undefined;
|
|
321
|
+
readonly history?: boolean | undefined;
|
|
322
|
+
readonly analytics?: boolean | undefined;
|
|
323
|
+
readonly allWallets?: boolean | undefined;
|
|
324
|
+
readonly smartSessions?: boolean | undefined;
|
|
325
|
+
readonly legalCheckbox?: boolean | undefined;
|
|
326
|
+
readonly connectMethodsOrder?: readonly ConnectMethod[] | undefined;
|
|
327
|
+
readonly walletFeaturesOrder?: readonly WalletFeature[] | undefined;
|
|
328
|
+
readonly collapseWallets?: boolean | undefined;
|
|
329
|
+
} | undefined;
|
|
330
|
+
readonly siwx?: {
|
|
331
|
+
readonly createMessage: (input: import("../utils/SIWXUtil.js").SIWXMessage.Input) => Promise<import("../utils/SIWXUtil.js").SIWXMessage>;
|
|
332
|
+
readonly addSession: (session: import("../utils/SIWXUtil.js").SIWXSession) => Promise<void>;
|
|
333
|
+
readonly revokeSession: (chainId: import("@reown/appkit-common").CaipNetworkId, address: string) => Promise<void>;
|
|
334
|
+
readonly setSessions: (sessions: import("../utils/SIWXUtil.js").SIWXSession[]) => Promise<void>;
|
|
335
|
+
readonly getSessions: (chainId: import("@reown/appkit-common").CaipNetworkId, address: string) => Promise<import("../utils/SIWXUtil.js").SIWXSession[]>;
|
|
336
|
+
readonly getRequired?: (() => boolean) | undefined;
|
|
337
|
+
} | undefined;
|
|
338
|
+
readonly enableEmbedded?: boolean
|
|
339
|
+
/**
|
|
340
|
+
* Allow users to switch to an unsupported chain.
|
|
341
|
+
* @default false
|
|
342
|
+
*/
|
|
343
|
+
| undefined;
|
|
344
|
+
readonly allowUnsupportedChain?: boolean
|
|
345
|
+
/**
|
|
346
|
+
* Default account types for each namespace.
|
|
347
|
+
* @default "{ bip122: 'payment', eip155: 'smartAccount', polkadot: 'eoa', solana: 'eoa' }"
|
|
348
|
+
*/
|
|
349
|
+
| undefined;
|
|
350
|
+
readonly defaultAccountTypes: {
|
|
351
|
+
readonly eip155: "eoa" | "smartAccount";
|
|
352
|
+
readonly solana: "eoa";
|
|
353
|
+
readonly bip122: "payment" | "ordinal" | "stx";
|
|
354
|
+
readonly polkadot: "eoa";
|
|
355
|
+
};
|
|
356
|
+
readonly manualWCControl?: boolean | undefined;
|
|
357
|
+
readonly sdkType: "appkit";
|
|
358
|
+
readonly sdkVersion: SdkVersion;
|
|
359
|
+
readonly isSiweEnabled?: boolean | undefined;
|
|
360
|
+
readonly isUniversalProvider?: boolean | undefined;
|
|
361
|
+
readonly hasMultipleAddresses?: boolean | undefined;
|
|
362
|
+
};
|
|
363
|
+
};
|
|
364
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CaipNetworkId, ChainNamespace } from '@reown/appkit-common';
|
|
2
|
+
export interface PublicStateControllerState {
|
|
3
|
+
/**
|
|
4
|
+
* @description Indicates if the AppKit is loading.
|
|
5
|
+
* @type {boolean}
|
|
6
|
+
*/
|
|
7
|
+
loading: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* @description Indicates if the AppKit modal is open.
|
|
10
|
+
* @type {boolean}
|
|
11
|
+
*/
|
|
12
|
+
open: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* @description Indicates the selected network id in CAIP-2 format.
|
|
15
|
+
* @type {CaipNetworkId | undefined}
|
|
16
|
+
*/
|
|
17
|
+
selectedNetworkId?: CaipNetworkId | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* @description Indicates the active chain namespace.
|
|
20
|
+
* @type {ChainNamespace | undefined}
|
|
21
|
+
*/
|
|
22
|
+
activeChain?: ChainNamespace | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* @description Indicates if the AppKit has been initialized. This sets to true when all controllers, adapters and internal state is ready.
|
|
25
|
+
* @type {boolean}
|
|
26
|
+
*/
|
|
27
|
+
initialized: boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare const PublicStateController: {
|
|
30
|
+
state: PublicStateControllerState;
|
|
31
|
+
subscribe(callback: (newState: PublicStateControllerState) => void): () => void;
|
|
32
|
+
set(newState: Partial<PublicStateControllerState>): void;
|
|
33
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { CaipNetwork, ChainNamespace } from '@reown/appkit-common';
|
|
2
|
+
import type { Connector, WcWallet } from '../utils/TypeUtil.js';
|
|
3
|
+
import type { SwapInputTarget } from './SwapController.js';
|
|
4
|
+
type TransactionAction = {
|
|
5
|
+
/**
|
|
6
|
+
* If true, the router will go back to the previous view after the transaction is complete..
|
|
7
|
+
*/
|
|
8
|
+
goBack: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* If set, the router will navigate to the specified view after the transaction is complete.
|
|
11
|
+
*/
|
|
12
|
+
view: RouterControllerState['view'] | null;
|
|
13
|
+
/**
|
|
14
|
+
* If true, the router will remove the previous view from the history and navigate to the current view.
|
|
15
|
+
*/
|
|
16
|
+
replace?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Function to be called when the transaction is complete.
|
|
19
|
+
*/
|
|
20
|
+
onSuccess?: () => void;
|
|
21
|
+
/**
|
|
22
|
+
* Function to be called when the transaction is cancelled.
|
|
23
|
+
*/
|
|
24
|
+
onCancel?: () => void;
|
|
25
|
+
};
|
|
26
|
+
export interface RouterControllerState {
|
|
27
|
+
view: 'Account' | 'AccountSettings' | 'AllWallets' | 'ApproveTransaction' | 'BuyInProgress' | 'WalletCompatibleNetworks' | 'ChooseAccountName' | 'Connect' | 'Create' | 'ConnectingExternal' | 'ConnectingFarcaster' | 'ConnectingWalletConnect' | 'ConnectingWalletConnectBasic' | 'ConnectingSiwe' | 'ConnectingSocial' | 'ConnectSocials' | 'ConnectWallets' | 'Downloads' | 'EmailVerifyOtp' | 'EmailVerifyDevice' | 'GetWallet' | 'Networks' | 'OnRampActivity' | 'OnRampFiatSelect' | 'OnRampProviders' | 'OnRampTokenSelect' | 'Profile' | 'RegisterAccountName' | 'RegisterAccountNameSuccess' | 'SwitchNetwork' | 'SwitchAddress' | 'Transactions' | 'UnsupportedChain' | 'UpdateEmailWallet' | 'UpdateEmailPrimaryOtp' | 'UpdateEmailSecondaryOtp' | 'UpgradeEmailWallet' | 'WalletReceive' | 'WalletSend' | 'WalletSendPreview' | 'WalletSendSelectToken' | 'WhatIsANetwork' | 'WhatIsAWallet' | 'WhatIsABuy' | 'Swap' | 'SwapSelectToken' | 'SwapPreview' | 'ConnectingMultiChain' | 'SwitchActiveChain' | 'SmartSessionCreated' | 'SmartSessionList' | 'SIWXSignMessage';
|
|
28
|
+
history: RouterControllerState['view'][];
|
|
29
|
+
data?: {
|
|
30
|
+
connector?: Connector;
|
|
31
|
+
wallet?: WcWallet;
|
|
32
|
+
network?: CaipNetwork;
|
|
33
|
+
email?: string;
|
|
34
|
+
newEmail?: string;
|
|
35
|
+
target?: SwapInputTarget;
|
|
36
|
+
swapUnsupportedChain?: boolean;
|
|
37
|
+
connectors?: Connector[];
|
|
38
|
+
switchToChain?: ChainNamespace;
|
|
39
|
+
navigateTo?: RouterControllerState['view'];
|
|
40
|
+
navigateWithReplace?: boolean;
|
|
41
|
+
};
|
|
42
|
+
transactionStack: TransactionAction[];
|
|
43
|
+
}
|
|
44
|
+
type StateKey = keyof RouterControllerState;
|
|
45
|
+
export declare const RouterController: {
|
|
46
|
+
state: RouterControllerState;
|
|
47
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: RouterControllerState[K]) => void): () => void;
|
|
48
|
+
pushTransactionStack(action: TransactionAction): void;
|
|
49
|
+
popTransactionStack(cancel?: boolean): void;
|
|
50
|
+
push(view: RouterControllerState["view"], data?: RouterControllerState["data"]): void;
|
|
51
|
+
reset(view: RouterControllerState["view"], data?: RouterControllerState["data"]): void;
|
|
52
|
+
replace(view: RouterControllerState["view"], data?: RouterControllerState["data"]): void;
|
|
53
|
+
goBack(): void;
|
|
54
|
+
goBackToIndex(historyIndex: number): void;
|
|
55
|
+
};
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { type Balance } from '@reown/appkit-common';
|
|
2
|
+
export interface TxParams {
|
|
3
|
+
receiverAddress: string;
|
|
4
|
+
sendTokenAmount: number;
|
|
5
|
+
gasPrice: bigint;
|
|
6
|
+
decimals: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ContractWriteParams {
|
|
9
|
+
receiverAddress: string;
|
|
10
|
+
tokenAddress: string;
|
|
11
|
+
sendTokenAmount: number;
|
|
12
|
+
decimals: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SendControllerState {
|
|
15
|
+
tokenBalances: Balance[];
|
|
16
|
+
token?: Balance;
|
|
17
|
+
sendTokenAmount?: number;
|
|
18
|
+
receiverAddress?: string;
|
|
19
|
+
receiverProfileName?: string;
|
|
20
|
+
receiverProfileImageUrl?: string;
|
|
21
|
+
gasPrice?: bigint;
|
|
22
|
+
gasPriceInUSD?: number;
|
|
23
|
+
networkBalanceInUSD?: string;
|
|
24
|
+
loading: boolean;
|
|
25
|
+
lastRetry?: number;
|
|
26
|
+
}
|
|
27
|
+
type StateKey = keyof SendControllerState;
|
|
28
|
+
export declare const SendController: {
|
|
29
|
+
state: SendControllerState;
|
|
30
|
+
subscribe(callback: (newState: SendControllerState) => void): () => void;
|
|
31
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: SendControllerState[K]) => void): () => void;
|
|
32
|
+
setToken(token: SendControllerState["token"]): void;
|
|
33
|
+
setTokenAmount(sendTokenAmount: SendControllerState["sendTokenAmount"]): void;
|
|
34
|
+
setReceiverAddress(receiverAddress: SendControllerState["receiverAddress"]): void;
|
|
35
|
+
setReceiverProfileImageUrl(receiverProfileImageUrl: SendControllerState["receiverProfileImageUrl"]): void;
|
|
36
|
+
setReceiverProfileName(receiverProfileName: SendControllerState["receiverProfileName"]): void;
|
|
37
|
+
setGasPrice(gasPrice: SendControllerState["gasPrice"]): void;
|
|
38
|
+
setGasPriceInUsd(gasPriceInUSD: SendControllerState["gasPriceInUSD"]): void;
|
|
39
|
+
setNetworkBalanceInUsd(networkBalanceInUSD: SendControllerState["networkBalanceInUSD"]): void;
|
|
40
|
+
setLoading(loading: SendControllerState["loading"]): void;
|
|
41
|
+
sendToken(): void;
|
|
42
|
+
sendEvmToken(): void;
|
|
43
|
+
fetchTokenBalance(onError?: (error: unknown) => void): Promise<Balance[]>;
|
|
44
|
+
fetchNetworkBalance(): void;
|
|
45
|
+
isInsufficientNetworkTokenForGas(networkBalanceInUSD: string, gasPriceInUSD: number | undefined): boolean;
|
|
46
|
+
hasInsufficientGasFunds(): boolean;
|
|
47
|
+
sendNativeToken(params: TxParams): Promise<void>;
|
|
48
|
+
sendERC20Token(params: ContractWriteParams): Promise<void>;
|
|
49
|
+
sendSolanaToken(): void;
|
|
50
|
+
resetSend(): void;
|
|
51
|
+
};
|
|
52
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export interface SnackControllerState {
|
|
2
|
+
message: string;
|
|
3
|
+
variant: 'error' | 'success' | 'loading';
|
|
4
|
+
svg?: {
|
|
5
|
+
iconColor: string;
|
|
6
|
+
icon: string;
|
|
7
|
+
};
|
|
8
|
+
open: boolean;
|
|
9
|
+
autoClose: boolean;
|
|
10
|
+
}
|
|
11
|
+
export type SnackControllerShowOptions = {
|
|
12
|
+
autoClose?: boolean;
|
|
13
|
+
svg?: SnackControllerState['svg'];
|
|
14
|
+
variant?: SnackControllerState['variant'];
|
|
15
|
+
};
|
|
16
|
+
type StateKey = keyof SnackControllerState;
|
|
17
|
+
export declare const SnackController: {
|
|
18
|
+
state: SnackControllerState;
|
|
19
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: SnackControllerState[K]) => void): () => void;
|
|
20
|
+
showLoading(message: SnackControllerState["message"], options?: SnackControllerShowOptions): void;
|
|
21
|
+
showSuccess(message: SnackControllerState["message"]): void;
|
|
22
|
+
showSvg(message: SnackControllerState["message"], svg: NonNullable<SnackControllerState["svg"]>): void;
|
|
23
|
+
showError(message: unknown): void;
|
|
24
|
+
hide(): void;
|
|
25
|
+
_showMessage({ message, svg, variant, autoClose }: {
|
|
26
|
+
message: string;
|
|
27
|
+
} & SnackControllerShowOptions): void;
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import type { SwapTokenWithBalance } from '../utils/TypeUtil.js';
|
|
2
|
+
export declare const INITIAL_GAS_LIMIT = 150000;
|
|
3
|
+
export declare const TO_AMOUNT_DECIMALS = 6;
|
|
4
|
+
export type SwapInputTarget = 'sourceToken' | 'toToken';
|
|
5
|
+
type TransactionParams = {
|
|
6
|
+
data: string;
|
|
7
|
+
to: string;
|
|
8
|
+
gas: bigint;
|
|
9
|
+
gasPrice: bigint;
|
|
10
|
+
value: bigint;
|
|
11
|
+
toAmount: string;
|
|
12
|
+
};
|
|
13
|
+
export interface SwapControllerState {
|
|
14
|
+
initializing: boolean;
|
|
15
|
+
initialized: boolean;
|
|
16
|
+
loadingPrices: boolean;
|
|
17
|
+
loadingQuote?: boolean;
|
|
18
|
+
loadingApprovalTransaction?: boolean;
|
|
19
|
+
loadingBuildTransaction?: boolean;
|
|
20
|
+
loadingTransaction?: boolean;
|
|
21
|
+
fetchError: boolean;
|
|
22
|
+
approvalTransaction: TransactionParams | undefined;
|
|
23
|
+
swapTransaction: TransactionParams | undefined;
|
|
24
|
+
transactionError?: string;
|
|
25
|
+
sourceToken?: SwapTokenWithBalance;
|
|
26
|
+
sourceTokenAmount: string;
|
|
27
|
+
sourceTokenPriceInUSD: number;
|
|
28
|
+
toToken?: SwapTokenWithBalance;
|
|
29
|
+
toTokenAmount: string;
|
|
30
|
+
toTokenPriceInUSD: number;
|
|
31
|
+
networkPrice: string;
|
|
32
|
+
networkBalanceInUSD: string;
|
|
33
|
+
networkTokenSymbol: string;
|
|
34
|
+
inputError: string | undefined;
|
|
35
|
+
slippage: number;
|
|
36
|
+
tokens?: SwapTokenWithBalance[];
|
|
37
|
+
suggestedTokens?: SwapTokenWithBalance[];
|
|
38
|
+
popularTokens?: SwapTokenWithBalance[];
|
|
39
|
+
foundTokens?: SwapTokenWithBalance[];
|
|
40
|
+
myTokensWithBalance?: SwapTokenWithBalance[];
|
|
41
|
+
tokensPriceMap: Record<string, number>;
|
|
42
|
+
gasFee: string;
|
|
43
|
+
gasPriceInUSD?: number;
|
|
44
|
+
priceImpact: number | undefined;
|
|
45
|
+
maxSlippage: number | undefined;
|
|
46
|
+
providerFee: string | undefined;
|
|
47
|
+
}
|
|
48
|
+
export interface TokenInfo {
|
|
49
|
+
address: `0x${string}`;
|
|
50
|
+
symbol: string;
|
|
51
|
+
name: string;
|
|
52
|
+
decimals: number;
|
|
53
|
+
logoURI: string;
|
|
54
|
+
domainVersion?: string;
|
|
55
|
+
eip2612?: boolean;
|
|
56
|
+
isFoT?: boolean;
|
|
57
|
+
tags?: string[];
|
|
58
|
+
}
|
|
59
|
+
type StateKey = keyof SwapControllerState;
|
|
60
|
+
export declare const SwapController: {
|
|
61
|
+
state: SwapControllerState;
|
|
62
|
+
subscribe(callback: (newState: SwapControllerState) => void): () => void;
|
|
63
|
+
subscribeKey<K extends StateKey>(key: K, callback: (value: SwapControllerState[K]) => void): () => void;
|
|
64
|
+
getParams(): {
|
|
65
|
+
networkAddress: string;
|
|
66
|
+
fromAddress: string;
|
|
67
|
+
fromCaipAddress: `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | `bip122:${string}:${string}` | `bip122:${number}:${string}` | undefined;
|
|
68
|
+
sourceTokenAddress: `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | `bip122:${string}:${string}` | `bip122:${number}:${string}` | undefined;
|
|
69
|
+
toTokenAddress: `eip155:${string}:${string}` | `eip155:${number}:${string}` | `solana:${string}:${string}` | `solana:${number}:${string}` | `polkadot:${string}:${string}` | `polkadot:${number}:${string}` | `bip122:${string}:${string}` | `bip122:${number}:${string}` | undefined;
|
|
70
|
+
toTokenAmount: string;
|
|
71
|
+
toTokenDecimals: number | undefined;
|
|
72
|
+
sourceTokenAmount: string;
|
|
73
|
+
sourceTokenDecimals: number | undefined;
|
|
74
|
+
invalidToToken: boolean;
|
|
75
|
+
invalidSourceToken: boolean;
|
|
76
|
+
invalidSourceTokenAmount: boolean;
|
|
77
|
+
availableToSwap: boolean | undefined;
|
|
78
|
+
isAuthConnector: boolean;
|
|
79
|
+
};
|
|
80
|
+
setSourceToken(sourceToken: SwapTokenWithBalance | undefined): void;
|
|
81
|
+
setSourceTokenAmount(amount: string): void;
|
|
82
|
+
setToToken(toToken: SwapTokenWithBalance | undefined): void;
|
|
83
|
+
setToTokenAmount(amount: string): void;
|
|
84
|
+
setTokenPrice(address: string, target: SwapInputTarget): Promise<void>;
|
|
85
|
+
switchTokens(): void;
|
|
86
|
+
resetState(): void;
|
|
87
|
+
resetValues(): void;
|
|
88
|
+
getApprovalLoadingState(): boolean | undefined;
|
|
89
|
+
clearError(): void;
|
|
90
|
+
initializeState(): Promise<void>;
|
|
91
|
+
fetchTokens(): Promise<void>;
|
|
92
|
+
getTokenList(): Promise<void>;
|
|
93
|
+
getAddressPrice(address: string): Promise<number>;
|
|
94
|
+
getNetworkTokenPrice(): Promise<void>;
|
|
95
|
+
getMyTokensWithBalance(forceUpdate?: string): Promise<void>;
|
|
96
|
+
setBalances(balances: SwapTokenWithBalance[]): void;
|
|
97
|
+
getInitialGasPrice(): Promise<{
|
|
98
|
+
gasPrice: null;
|
|
99
|
+
gasPriceInUSD: null;
|
|
100
|
+
} | {
|
|
101
|
+
gasPrice: bigint;
|
|
102
|
+
gasPriceInUSD: number;
|
|
103
|
+
}>;
|
|
104
|
+
swapTokens(): Promise<void>;
|
|
105
|
+
getTransaction(): Promise<TransactionParams | undefined>;
|
|
106
|
+
createAllowanceTransaction(): Promise<{
|
|
107
|
+
data: `0x${string}`;
|
|
108
|
+
to: `0x${string}`;
|
|
109
|
+
gas: bigint;
|
|
110
|
+
gasPrice: bigint;
|
|
111
|
+
value: bigint;
|
|
112
|
+
toAmount: string;
|
|
113
|
+
} | undefined>;
|
|
114
|
+
createSwapTransaction(): Promise<{
|
|
115
|
+
data: `0x${string}`;
|
|
116
|
+
to: `0x${string}`;
|
|
117
|
+
gas: bigint;
|
|
118
|
+
gasPrice: bigint;
|
|
119
|
+
value: bigint;
|
|
120
|
+
toAmount: string;
|
|
121
|
+
} | undefined>;
|
|
122
|
+
sendTransactionForApproval(data: TransactionParams): Promise<void>;
|
|
123
|
+
sendTransactionForSwap(data: TransactionParams | undefined): Promise<string | null | undefined>;
|
|
124
|
+
hasInsufficientToken(sourceTokenAmount: string, sourceTokenAddress: string): boolean;
|
|
125
|
+
setTransactionDetails(): void;
|
|
126
|
+
};
|
|
127
|
+
export {};
|