@reown/appkit-core-react-native 0.0.0-feat-coinbase-20250722184953 → 0.0.0-feat-onramp-20250722205908

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/lib/commonjs/controllers/AccountController.js +17 -20
  2. package/lib/commonjs/controllers/AccountController.js.map +1 -1
  3. package/lib/commonjs/controllers/ApiController.js +16 -28
  4. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/BlockchainApiController.js +74 -204
  6. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectionController.js +11 -8
  8. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  9. package/lib/commonjs/controllers/ConnectorController.js +49 -0
  10. package/lib/commonjs/controllers/ConnectorController.js.map +1 -0
  11. package/lib/commonjs/controllers/EnsController.js +4 -4
  12. package/lib/commonjs/controllers/EnsController.js.map +1 -1
  13. package/lib/commonjs/controllers/EventsController.js +4 -4
  14. package/lib/commonjs/controllers/EventsController.js.map +1 -1
  15. package/lib/commonjs/controllers/ModalController.js +7 -6
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -1
  17. package/lib/commonjs/controllers/OnRampController.js +69 -22
  18. package/lib/commonjs/controllers/OnRampController.js.map +1 -1
  19. package/lib/commonjs/controllers/OptionsController.js +3 -11
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  21. package/lib/commonjs/controllers/RouterController.js +22 -1
  22. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  23. package/lib/commonjs/controllers/SendController.js +101 -101
  24. package/lib/commonjs/controllers/SendController.js.map +1 -1
  25. package/lib/commonjs/controllers/SnackController.js +5 -29
  26. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  27. package/lib/commonjs/controllers/SwapController.js +150 -151
  28. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  29. package/lib/commonjs/controllers/ThemeController.js +1 -9
  30. package/lib/commonjs/controllers/ThemeController.js.map +1 -1
  31. package/lib/commonjs/controllers/TransactionsController.js +21 -25
  32. package/lib/commonjs/controllers/TransactionsController.js.map +1 -1
  33. package/lib/commonjs/controllers/WebviewController.js +52 -0
  34. package/lib/commonjs/controllers/WebviewController.js.map +1 -0
  35. package/lib/commonjs/index.js +24 -3
  36. package/lib/commonjs/index.js.map +1 -1
  37. package/lib/commonjs/utils/AssetUtil.js +15 -3
  38. package/lib/commonjs/utils/AssetUtil.js.map +1 -1
  39. package/lib/commonjs/utils/ConnectionUtil.js +33 -0
  40. package/lib/commonjs/utils/ConnectionUtil.js.map +1 -0
  41. package/lib/commonjs/utils/ConstantsUtil.js +9 -538
  42. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  43. package/lib/commonjs/utils/CoreHelperUtil.js +6 -12
  44. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  45. package/lib/commonjs/utils/FetchUtil.js +28 -9
  46. package/lib/commonjs/utils/FetchUtil.js.map +1 -1
  47. package/lib/commonjs/utils/NetworkUtil.js +46 -0
  48. package/lib/commonjs/utils/NetworkUtil.js.map +1 -0
  49. package/lib/commonjs/utils/StorageUtil.js +42 -51
  50. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  51. package/lib/commonjs/utils/SwapApiUtil.js +21 -15
  52. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  53. package/lib/module/controllers/AccountController.js +17 -20
  54. package/lib/module/controllers/AccountController.js.map +1 -1
  55. package/lib/module/controllers/ApiController.js +16 -27
  56. package/lib/module/controllers/ApiController.js.map +1 -1
  57. package/lib/module/controllers/BlockchainApiController.js +73 -203
  58. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  59. package/lib/module/controllers/ConnectionController.js +11 -8
  60. package/lib/module/controllers/ConnectionController.js.map +1 -1
  61. package/lib/module/controllers/ConnectorController.js +44 -0
  62. package/lib/module/controllers/ConnectorController.js.map +1 -0
  63. package/lib/module/controllers/EnsController.js +2 -2
  64. package/lib/module/controllers/EnsController.js.map +1 -1
  65. package/lib/module/controllers/EventsController.js +1 -1
  66. package/lib/module/controllers/EventsController.js.map +1 -1
  67. package/lib/module/controllers/ModalController.js +7 -6
  68. package/lib/module/controllers/ModalController.js.map +1 -1
  69. package/lib/module/controllers/OnRampController.js +70 -23
  70. package/lib/module/controllers/OnRampController.js.map +1 -1
  71. package/lib/module/controllers/OptionsController.js +3 -11
  72. package/lib/module/controllers/OptionsController.js.map +1 -1
  73. package/lib/module/controllers/RouterController.js +22 -1
  74. package/lib/module/controllers/RouterController.js.map +1 -1
  75. package/lib/module/controllers/SendController.js +98 -98
  76. package/lib/module/controllers/SendController.js.map +1 -1
  77. package/lib/module/controllers/SnackController.js +5 -29
  78. package/lib/module/controllers/SnackController.js.map +1 -1
  79. package/lib/module/controllers/SwapController.js +150 -151
  80. package/lib/module/controllers/SwapController.js.map +1 -1
  81. package/lib/module/controllers/ThemeController.js +1 -9
  82. package/lib/module/controllers/ThemeController.js.map +1 -1
  83. package/lib/module/controllers/TransactionsController.js +19 -23
  84. package/lib/module/controllers/TransactionsController.js.map +1 -1
  85. package/lib/module/controllers/WebviewController.js +47 -0
  86. package/lib/module/controllers/WebviewController.js.map +1 -0
  87. package/lib/module/index.js +4 -1
  88. package/lib/module/index.js.map +1 -1
  89. package/lib/module/utils/AssetUtil.js +15 -3
  90. package/lib/module/utils/AssetUtil.js.map +1 -1
  91. package/lib/module/utils/ConnectionUtil.js +27 -0
  92. package/lib/module/utils/ConnectionUtil.js.map +1 -0
  93. package/lib/module/utils/ConstantsUtil.js +9 -538
  94. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  95. package/lib/module/utils/CoreHelperUtil.js +6 -12
  96. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  97. package/lib/module/utils/FetchUtil.js +28 -9
  98. package/lib/module/utils/FetchUtil.js.map +1 -1
  99. package/lib/module/utils/NetworkUtil.js +40 -0
  100. package/lib/module/utils/NetworkUtil.js.map +1 -0
  101. package/lib/module/utils/StorageUtil.js +42 -51
  102. package/lib/module/utils/StorageUtil.js.map +1 -1
  103. package/lib/module/utils/SwapApiUtil.js +21 -15
  104. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  105. package/lib/typescript/controllers/AccountController.d.ts +4 -4
  106. package/lib/typescript/controllers/AccountController.d.ts.map +1 -1
  107. package/lib/typescript/controllers/ApiController.d.ts +2 -3
  108. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  109. package/lib/typescript/controllers/BlockchainApiController.d.ts +15 -29
  110. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  111. package/lib/typescript/controllers/ConnectionController.d.ts +11 -3
  112. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  113. package/lib/typescript/controllers/ConnectorController.d.ts +18 -0
  114. package/lib/typescript/controllers/ConnectorController.d.ts.map +1 -0
  115. package/lib/typescript/controllers/ModalController.d.ts +1 -1
  116. package/lib/typescript/controllers/ModalController.d.ts.map +1 -1
  117. package/lib/typescript/controllers/NetworkController.d.ts +1 -1
  118. package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
  119. package/lib/typescript/controllers/OnRampController.d.ts +3 -1
  120. package/lib/typescript/controllers/OnRampController.d.ts.map +1 -1
  121. package/lib/typescript/controllers/OptionsController.d.ts +2 -7
  122. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  123. package/lib/typescript/controllers/PublicStateController.d.ts +1 -1
  124. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -1
  125. package/lib/typescript/controllers/RouterController.d.ts +16 -4
  126. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  127. package/lib/typescript/controllers/SendController.d.ts +7 -5
  128. package/lib/typescript/controllers/SendController.d.ts.map +1 -1
  129. package/lib/typescript/controllers/SnackController.d.ts +3 -3
  130. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  131. package/lib/typescript/controllers/SwapController.d.ts +11 -12
  132. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  133. package/lib/typescript/controllers/ThemeController.d.ts +1 -1
  134. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -1
  135. package/lib/typescript/controllers/TransactionsController.d.ts +3 -3
  136. package/lib/typescript/controllers/TransactionsController.d.ts.map +1 -1
  137. package/lib/typescript/controllers/WebviewController.d.ts +21 -0
  138. package/lib/typescript/controllers/WebviewController.d.ts.map +1 -0
  139. package/lib/typescript/index.d.ts +4 -1
  140. package/lib/typescript/index.d.ts.map +1 -1
  141. package/lib/typescript/utils/AssetUtil.d.ts +3 -2
  142. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -1
  143. package/lib/typescript/utils/ConnectionUtil.d.ts +4 -0
  144. package/lib/typescript/utils/ConnectionUtil.d.ts.map +1 -0
  145. package/lib/typescript/utils/ConstantsUtil.d.ts +3 -422
  146. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  147. package/lib/typescript/utils/CoreHelperUtil.d.ts +4 -5
  148. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  149. package/lib/typescript/utils/FetchUtil.d.ts +1 -1
  150. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -1
  151. package/lib/typescript/utils/NetworkUtil.d.ts +8 -0
  152. package/lib/typescript/utils/NetworkUtil.d.ts.map +1 -0
  153. package/lib/typescript/utils/StorageUtil.d.ts +7 -14
  154. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  155. package/lib/typescript/utils/SwapApiUtil.d.ts +3 -3
  156. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  157. package/lib/typescript/utils/TypeUtil.d.ts +191 -42
  158. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  159. package/package.json +4 -4
  160. package/src/controllers/AccountController.ts +27 -23
  161. package/src/controllers/ApiController.ts +10 -29
  162. package/src/controllers/BlockchainApiController.ts +65 -179
  163. package/src/controllers/ConnectionController.ts +24 -12
  164. package/src/controllers/ConnectorController.ts +63 -0
  165. package/src/controllers/EnsController.ts +2 -2
  166. package/src/controllers/EventsController.ts +1 -1
  167. package/src/controllers/ModalController.ts +8 -8
  168. package/src/controllers/NetworkController.ts +1 -1
  169. package/src/controllers/OnRampController.ts +99 -35
  170. package/src/controllers/OptionsController.ts +13 -19
  171. package/src/controllers/PublicStateController.ts +1 -1
  172. package/src/controllers/RouterController.ts +54 -5
  173. package/src/controllers/SendController.ts +113 -124
  174. package/src/controllers/SnackController.ts +5 -31
  175. package/src/controllers/SwapController.ts +181 -174
  176. package/src/controllers/ThemeController.ts +2 -11
  177. package/src/controllers/TransactionsController.ts +20 -26
  178. package/src/controllers/WebviewController.ts +63 -0
  179. package/src/index.ts +6 -3
  180. package/src/utils/AssetUtil.ts +20 -4
  181. package/src/utils/ConnectionUtil.ts +27 -0
  182. package/src/utils/ConstantsUtil.ts +9 -544
  183. package/src/utils/CoreHelperUtil.ts +9 -34
  184. package/src/utils/FetchUtil.ts +31 -10
  185. package/src/utils/NetworkUtil.ts +33 -0
  186. package/src/utils/StorageUtil.ts +48 -60
  187. package/src/utils/SwapApiUtil.ts +38 -27
  188. package/src/utils/TypeUtil.ts +193 -43
  189. package/lib/commonjs/controllers/ConnectionsController.js +0 -387
  190. package/lib/commonjs/controllers/ConnectionsController.js.map +0 -1
  191. package/lib/module/controllers/ConnectionsController.js +0 -382
  192. package/lib/module/controllers/ConnectionsController.js.map +0 -1
  193. package/lib/typescript/controllers/ConnectionsController.d.ts +0 -53
  194. package/lib/typescript/controllers/ConnectionsController.d.ts.map +0 -1
  195. package/src/controllers/ConnectionsController.ts +0 -509
@@ -1,18 +1,19 @@
1
- import { subscribeKey as subKey } from 'valtio/vanilla/utils';
2
- import { proxy, ref, subscribe as sub } from 'valtio/vanilla';
1
+ import { subscribeKey as subKey } from 'valtio/utils';
2
+ import { proxy, ref, subscribe as sub } from 'valtio';
3
3
  import { ContractUtil, type Balance } from '@reown/appkit-common-react-native';
4
-
4
+ import { AccountController } from './AccountController';
5
+ import { ConnectionController } from './ConnectionController';
5
6
  import { SnackController } from './SnackController';
6
7
  import { CoreHelperUtil } from '../utils/CoreHelperUtil';
7
8
  import { EventsController } from './EventsController';
9
+ import { NetworkController } from './NetworkController';
8
10
  import { RouterController } from './RouterController';
9
- import { ConnectionsController } from './ConnectionsController';
10
- import { SwapController } from './SwapController';
11
11
 
12
12
  // -- Types --------------------------------------------- //
13
13
  export interface TxParams {
14
14
  receiverAddress: string;
15
15
  sendTokenAmount: number;
16
+ gasPrice: bigint;
16
17
  decimals: string;
17
18
  }
18
19
 
@@ -29,6 +30,8 @@ export interface SendControllerState {
29
30
  receiverAddress?: string;
30
31
  receiverProfileName?: string;
31
32
  receiverProfileImageUrl?: string;
33
+ gasPrice?: bigint;
34
+ gasPriceInUSD?: number;
32
35
  loading: boolean;
33
36
  }
34
37
 
@@ -75,166 +78,152 @@ export const SendController = {
75
78
  state.receiverProfileName = receiverProfileName;
76
79
  },
77
80
 
78
- setLoading(loading: SendControllerState['loading']) {
79
- state.loading = loading;
81
+ setGasPrice(gasPrice: SendControllerState['gasPrice']) {
82
+ state.gasPrice = gasPrice;
80
83
  },
81
84
 
82
- async sendToken() {
83
- const isAuth = !!ConnectionsController.state.connection?.properties?.provider;
84
- const eventProperties = {
85
- isSmartAccount: ConnectionsController.state.accountType === 'smartAccount',
86
- token: this.state.token?.address ?? this.state.token?.symbol ?? '',
87
- amount: this.state.sendTokenAmount || 0,
88
- network: ConnectionsController.state.activeNetwork?.caipNetworkId ?? ''
89
- };
85
+ setGasPriceInUsd(gasPriceInUSD: SendControllerState['gasPriceInUSD']) {
86
+ state.gasPriceInUSD = gasPriceInUSD;
87
+ },
90
88
 
91
- try {
92
- this.state.loading = true;
89
+ setLoading(loading: SendControllerState['loading']) {
90
+ state.loading = loading;
91
+ },
93
92
 
93
+ sendToken() {
94
+ if (this.state.token?.address && this.state.sendTokenAmount && this.state.receiverAddress) {
95
+ state.loading = true;
94
96
  EventsController.sendEvent({
95
97
  type: 'track',
96
98
  event: 'SEND_INITIATED',
97
- properties: eventProperties
99
+ properties: {
100
+ isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
101
+ token: this.state.token.address,
102
+ amount: this.state.sendTokenAmount,
103
+ network: NetworkController.state.caipNetwork?.id || ''
104
+ }
98
105
  });
99
-
100
- switch (ConnectionsController.state.activeNamespace) {
101
- case 'eip155':
102
- await SendController.sendEvmToken();
103
-
104
- break;
105
- case 'solana':
106
- await SendController.sendSolanaToken();
107
-
108
- break;
109
- default:
110
- throw new Error('Unsupported chain');
111
- }
112
-
113
- SnackController.showSuccess('Transaction started');
114
- EventsController.sendEvent({
115
- type: 'track',
116
- event: 'SEND_SUCCESS',
117
- properties: eventProperties
118
- });
119
- RouterController.reset(isAuth ? 'Account' : 'AccountDefault');
120
- this.resetState();
121
- } catch (error) {
122
- EventsController.sendEvent({
123
- type: 'track',
124
- event: 'SEND_ERROR',
125
- properties: eventProperties
126
- });
127
- SnackController.showError('Something went wrong');
128
- } finally {
129
- this.state.loading = false;
130
- }
131
- },
132
-
133
- async sendEvmToken() {
134
- if (this.state.token?.address && this.state.sendTokenAmount && this.state.receiverAddress) {
135
- await this.sendERC20Token({
106
+ this.sendERC20Token({
136
107
  receiverAddress: this.state.receiverAddress,
137
108
  tokenAddress: this.state.token.address,
138
109
  sendTokenAmount: this.state.sendTokenAmount,
139
- decimals: this.state.token.quantity?.decimals || '0'
110
+ decimals: this.state.token.quantity.decimals
140
111
  });
141
112
  } else if (
142
113
  this.state.receiverAddress &&
143
114
  this.state.sendTokenAmount &&
144
- this.state.token?.quantity?.decimals
115
+ this.state.gasPrice &&
116
+ this.state.token?.quantity.decimals
145
117
  ) {
146
- await this.sendNativeToken({
118
+ state.loading = true;
119
+ EventsController.sendEvent({
120
+ type: 'track',
121
+ event: 'SEND_INITIATED',
122
+ properties: {
123
+ isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
124
+ token: this.state.token?.symbol,
125
+ amount: this.state.sendTokenAmount,
126
+ network: NetworkController.state.caipNetwork?.id || ''
127
+ }
128
+ });
129
+ this.sendNativeToken({
147
130
  receiverAddress: this.state.receiverAddress,
148
131
  sendTokenAmount: this.state.sendTokenAmount,
132
+ gasPrice: this.state.gasPrice,
149
133
  decimals: this.state.token.quantity.decimals
150
134
  });
151
135
  }
152
136
  },
153
137
 
154
138
  async sendNativeToken(params: TxParams) {
155
- const to = params.receiverAddress as `0x${string}`;
156
- const network = ConnectionsController.state.activeNetwork;
157
- const address = CoreHelperUtil.getPlainAddress(
158
- ConnectionsController.state.activeAddress
159
- ) as `0x${string}`;
160
- if (!address) {
161
- throw new Error('Invalid address');
162
- }
139
+ RouterController.pushTransactionStack({
140
+ view: 'Account',
141
+ goBack: false
142
+ });
163
143
 
164
- const value = ConnectionsController.parseUnits(
144
+ const to = params.receiverAddress as `0x${string}`;
145
+ const address = AccountController.state.address as `0x${string}`;
146
+ const value = ConnectionController.parseUnits(
165
147
  params.sendTokenAmount.toString(),
166
148
  Number(params.decimals)
167
149
  );
168
150
  const data = '0x';
169
151
 
170
- await ConnectionsController.sendTransaction({
171
- to,
172
- address,
173
- data,
174
- value,
175
- network
176
- });
152
+ try {
153
+ await ConnectionController.sendTransaction({
154
+ to,
155
+ address,
156
+ data,
157
+ value,
158
+ gasPrice: params.gasPrice
159
+ });
160
+ SnackController.showSuccess('Transaction started');
161
+ EventsController.sendEvent({
162
+ type: 'track',
163
+ event: 'SEND_SUCCESS',
164
+ properties: {
165
+ isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
166
+ token: this.state.token?.symbol || '',
167
+ amount: params.sendTokenAmount,
168
+ network: NetworkController.state.caipNetwork?.id || ''
169
+ }
170
+ });
171
+ this.resetSend();
172
+ } catch (error) {
173
+ state.loading = false;
174
+ EventsController.sendEvent({
175
+ type: 'track',
176
+ event: 'SEND_ERROR',
177
+ properties: {
178
+ isSmartAccount: AccountController.state.preferredAccountType === 'smartAccount',
179
+ token: this.state.token?.symbol || '',
180
+ amount: params.sendTokenAmount,
181
+ network: NetworkController.state.caipNetwork?.id || ''
182
+ }
183
+ });
184
+ SnackController.showError('Something went wrong');
185
+ }
177
186
  },
178
187
 
179
188
  async sendERC20Token(params: ContractWriteParams) {
180
- const network = ConnectionsController.state.activeNetwork;
181
- const amount = ConnectionsController.parseUnits(
189
+ RouterController.pushTransactionStack({
190
+ view: 'Account',
191
+ goBack: false
192
+ });
193
+
194
+ const amount = ConnectionController.parseUnits(
182
195
  params.sendTokenAmount.toString(),
183
196
  Number(params.decimals)
184
197
  );
185
198
 
186
- if (
187
- ConnectionsController.state.activeAddress &&
188
- params.sendTokenAmount &&
189
- params.receiverAddress &&
190
- params.tokenAddress
191
- ) {
192
- const tokenAddress = CoreHelperUtil.getPlainAddress(
193
- params.tokenAddress as `${string}:${string}:${string}`
194
- ) as `0x${string}`;
195
-
196
- const fromAddress = CoreHelperUtil.getPlainAddress(
197
- ConnectionsController.state.activeAddress
198
- ) as `0x${string}`;
199
- if (!fromAddress) {
200
- throw new Error('Invalid address');
199
+ try {
200
+ if (
201
+ AccountController.state.address &&
202
+ params.sendTokenAmount &&
203
+ params.receiverAddress &&
204
+ params.tokenAddress
205
+ ) {
206
+ const tokenAddress = CoreHelperUtil.getPlainAddress(
207
+ params.tokenAddress as `${string}:${string}:${string}`
208
+ ) as `0x${string}`;
209
+ await ConnectionController.writeContract({
210
+ fromAddress: AccountController.state.address as `0x${string}`,
211
+ tokenAddress,
212
+ receiverAddress: params.receiverAddress as `0x${string}`,
213
+ tokenAmount: amount,
214
+ method: 'transfer',
215
+ abi: ContractUtil.getERC20Abi(tokenAddress)
216
+ });
217
+ SnackController.showSuccess('Transaction started');
218
+ this.resetSend();
201
219
  }
202
-
203
- await ConnectionsController.writeContract({
204
- fromAddress,
205
- tokenAddress,
206
- receiverAddress: params.receiverAddress as `0x${string}`,
207
- tokenAmount: amount,
208
- method: 'transfer',
209
- abi: ContractUtil.getERC20Abi(tokenAddress),
210
- network
211
- });
212
- }
213
- },
214
-
215
- async sendSolanaToken() {
216
- if (!this.state.sendTokenAmount || !this.state.receiverAddress) {
217
- throw new Error('An amount and receiver address are required');
218
- }
219
-
220
- const plainAddress = CoreHelperUtil.getPlainAddress(ConnectionsController.state.activeAddress);
221
- if (!plainAddress) {
222
- throw new Error('Invalid address');
220
+ } catch (error) {
221
+ state.loading = false;
222
+ SnackController.showError('Something went wrong');
223
223
  }
224
-
225
- await ConnectionsController.sendTransaction({
226
- fromAddress: plainAddress,
227
- toAddress: this.state.receiverAddress,
228
- amount: this.state.sendTokenAmount,
229
- network: ConnectionsController.state.activeNetwork
230
- });
231
- },
232
-
233
- async fetchNetworkPrice() {
234
- await SwapController.getNetworkTokenPrice();
235
224
  },
236
225
 
237
- resetState() {
226
+ resetSend() {
238
227
  state.token = undefined;
239
228
  state.sendTokenAmount = undefined;
240
229
  state.receiverAddress = undefined;
@@ -22,52 +22,26 @@ const state = proxy<SnackControllerState>({
22
22
  long: false
23
23
  });
24
24
 
25
- // -- Private Variables --------------------------------- //
26
- let hideTimeout: NodeJS.Timeout | null = null;
27
-
28
- // -- Private Functions --------------------------------- //
29
- const clearHideTimeout = () => {
30
- if (hideTimeout) {
31
- clearTimeout(hideTimeout);
32
- hideTimeout = null;
33
- }
34
- };
35
-
36
- const scheduleAutoHide = (long: boolean) => {
37
- clearHideTimeout();
38
-
39
- const duration = long ? 15000 : 2200;
40
- hideTimeout = setTimeout(() => {
41
- SnackController.hide();
42
- }, duration);
43
- };
44
-
45
25
  // -- Controller ---------------------------------------- //
46
26
  export const SnackController = {
47
27
  state,
48
28
 
49
- showSuccess(message: SnackControllerState['message'], long = false) {
29
+ showSuccess(message: SnackControllerState['message']) {
50
30
  state.message = message;
51
31
  state.variant = 'success';
52
32
  state.open = true;
53
- state.long = long;
54
- scheduleAutoHide(long);
55
33
  },
56
34
 
57
- showError(message: SnackControllerState['message'], long = false) {
35
+ showError(message: SnackControllerState['message']) {
58
36
  state.message = message;
59
37
  state.variant = 'error';
60
38
  state.open = true;
61
- state.long = long;
62
- scheduleAutoHide(long);
63
39
  },
64
40
 
65
- showLoading(message: SnackControllerState['message'], long = false) {
41
+ showLoading(message: SnackControllerState['message']) {
66
42
  state.message = message;
67
43
  state.variant = 'loading';
68
44
  state.open = true;
69
- state.long = long;
70
- scheduleAutoHide(long);
71
45
  },
72
46
 
73
47
  showInternalError(error: Message) {
@@ -78,7 +52,6 @@ export const SnackController = {
78
52
  state.variant = 'error';
79
53
  state.open = true;
80
54
  state.long = true;
81
- scheduleAutoHide(true);
82
55
  }
83
56
 
84
57
  if (error.longMessage) {
@@ -88,8 +61,9 @@ export const SnackController = {
88
61
  },
89
62
 
90
63
  hide() {
91
- clearHideTimeout();
92
64
  state.open = false;
93
65
  state.long = false;
66
+ state.message = '';
67
+ state.variant = 'success';
94
68
  }
95
69
  };