@reown/appkit-core-react-native 0.0.0-feat-smart-account-20241017180406 → 0.0.0-feat-swaps-20241203153101

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 (139) hide show
  1. package/lib/commonjs/controllers/ApiController.js +19 -7
  2. package/lib/commonjs/controllers/ApiController.js.map +1 -1
  3. package/lib/commonjs/controllers/BlockchainApiController.js +163 -1
  4. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -1
  5. package/lib/commonjs/controllers/ConnectionController.js +6 -10
  6. package/lib/commonjs/controllers/ConnectionController.js.map +1 -1
  7. package/lib/commonjs/controllers/ConnectorController.js +9 -1
  8. package/lib/commonjs/controllers/ConnectorController.js.map +1 -1
  9. package/lib/commonjs/controllers/NetworkController.js +9 -0
  10. package/lib/commonjs/controllers/NetworkController.js.map +1 -1
  11. package/lib/commonjs/controllers/OptionsController.js +5 -1
  12. package/lib/commonjs/controllers/OptionsController.js.map +1 -1
  13. package/lib/commonjs/controllers/RouterController.js.map +1 -1
  14. package/lib/commonjs/controllers/SnackController.js +26 -1
  15. package/lib/commonjs/controllers/SnackController.js.map +1 -1
  16. package/lib/commonjs/controllers/SwapController.js +576 -6
  17. package/lib/commonjs/controllers/SwapController.js.map +1 -1
  18. package/lib/commonjs/controllers/WebviewController.js +13 -1
  19. package/lib/commonjs/controllers/WebviewController.js.map +1 -1
  20. package/lib/commonjs/index.js +14 -0
  21. package/lib/commonjs/index.js.map +1 -1
  22. package/lib/commonjs/utils/ApiUtil.js +9 -2
  23. package/lib/commonjs/utils/ApiUtil.js.map +1 -1
  24. package/lib/commonjs/utils/ConnectionUtil.js +34 -0
  25. package/lib/commonjs/utils/ConnectionUtil.js.map +1 -0
  26. package/lib/commonjs/utils/ConstantsUtil.js +30 -1
  27. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  28. package/lib/commonjs/utils/CoreHelperUtil.js +12 -12
  29. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -1
  30. package/lib/commonjs/utils/NetworkUtil.js +46 -0
  31. package/lib/commonjs/utils/NetworkUtil.js.map +1 -0
  32. package/lib/commonjs/utils/RouterUtil.js +1 -1
  33. package/lib/commonjs/utils/RouterUtil.js.map +1 -1
  34. package/lib/commonjs/utils/StorageUtil.js.map +1 -1
  35. package/lib/commonjs/utils/SwapApiUtil.js +58 -0
  36. package/lib/commonjs/utils/SwapApiUtil.js.map +1 -1
  37. package/lib/commonjs/utils/SwapCalculationUtil.js +73 -0
  38. package/lib/commonjs/utils/SwapCalculationUtil.js.map +1 -1
  39. package/lib/module/controllers/ApiController.js +19 -7
  40. package/lib/module/controllers/ApiController.js.map +1 -1
  41. package/lib/module/controllers/BlockchainApiController.js +163 -1
  42. package/lib/module/controllers/BlockchainApiController.js.map +1 -1
  43. package/lib/module/controllers/ConnectionController.js +6 -10
  44. package/lib/module/controllers/ConnectionController.js.map +1 -1
  45. package/lib/module/controllers/ConnectorController.js +9 -1
  46. package/lib/module/controllers/ConnectorController.js.map +1 -1
  47. package/lib/module/controllers/NetworkController.js +9 -0
  48. package/lib/module/controllers/NetworkController.js.map +1 -1
  49. package/lib/module/controllers/OptionsController.js +5 -1
  50. package/lib/module/controllers/OptionsController.js.map +1 -1
  51. package/lib/module/controllers/RouterController.js.map +1 -1
  52. package/lib/module/controllers/SnackController.js +26 -1
  53. package/lib/module/controllers/SnackController.js.map +1 -1
  54. package/lib/module/controllers/SwapController.js +576 -6
  55. package/lib/module/controllers/SwapController.js.map +1 -1
  56. package/lib/module/controllers/WebviewController.js +13 -1
  57. package/lib/module/controllers/WebviewController.js.map +1 -1
  58. package/lib/module/index.js +2 -0
  59. package/lib/module/index.js.map +1 -1
  60. package/lib/module/utils/ApiUtil.js +9 -2
  61. package/lib/module/utils/ApiUtil.js.map +1 -1
  62. package/lib/module/utils/ConnectionUtil.js +28 -0
  63. package/lib/module/utils/ConnectionUtil.js.map +1 -0
  64. package/lib/module/utils/ConstantsUtil.js +30 -1
  65. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  66. package/lib/module/utils/CoreHelperUtil.js +12 -12
  67. package/lib/module/utils/CoreHelperUtil.js.map +1 -1
  68. package/lib/module/utils/NetworkUtil.js +40 -0
  69. package/lib/module/utils/NetworkUtil.js.map +1 -0
  70. package/lib/module/utils/RouterUtil.js +1 -1
  71. package/lib/module/utils/RouterUtil.js.map +1 -1
  72. package/lib/module/utils/StorageUtil.js.map +1 -1
  73. package/lib/module/utils/SwapApiUtil.js +58 -0
  74. package/lib/module/utils/SwapApiUtil.js.map +1 -1
  75. package/lib/module/utils/SwapCalculationUtil.js +73 -1
  76. package/lib/module/utils/SwapCalculationUtil.js.map +1 -1
  77. package/lib/typescript/controllers/ApiController.d.ts +3 -1
  78. package/lib/typescript/controllers/ApiController.d.ts.map +1 -1
  79. package/lib/typescript/controllers/BlockchainApiController.d.ts +6 -1
  80. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -1
  81. package/lib/typescript/controllers/ConnectionController.d.ts +3 -1
  82. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -1
  83. package/lib/typescript/controllers/ConnectorController.d.ts +1 -1
  84. package/lib/typescript/controllers/ConnectorController.d.ts.map +1 -1
  85. package/lib/typescript/controllers/NetworkController.d.ts +2 -0
  86. package/lib/typescript/controllers/NetworkController.d.ts.map +1 -1
  87. package/lib/typescript/controllers/OptionsController.d.ts +2 -0
  88. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -1
  89. package/lib/typescript/controllers/RouterController.d.ts +3 -2
  90. package/lib/typescript/controllers/RouterController.d.ts.map +1 -1
  91. package/lib/typescript/controllers/SnackController.d.ts +9 -1
  92. package/lib/typescript/controllers/SnackController.d.ts.map +1 -1
  93. package/lib/typescript/controllers/SwapController.d.ts +87 -0
  94. package/lib/typescript/controllers/SwapController.d.ts.map +1 -1
  95. package/lib/typescript/controllers/WebviewController.d.ts +3 -0
  96. package/lib/typescript/controllers/WebviewController.d.ts.map +1 -1
  97. package/lib/typescript/index.d.ts +2 -0
  98. package/lib/typescript/index.d.ts.map +1 -1
  99. package/lib/typescript/utils/ApiUtil.d.ts +1 -0
  100. package/lib/typescript/utils/ApiUtil.d.ts.map +1 -1
  101. package/lib/typescript/utils/ConnectionUtil.d.ts +4 -0
  102. package/lib/typescript/utils/ConnectionUtil.d.ts.map +1 -0
  103. package/lib/typescript/utils/ConstantsUtil.d.ts +4 -0
  104. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  105. package/lib/typescript/utils/CoreHelperUtil.d.ts +2 -2
  106. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -1
  107. package/lib/typescript/utils/NetworkUtil.d.ts +8 -0
  108. package/lib/typescript/utils/NetworkUtil.d.ts.map +1 -0
  109. package/lib/typescript/utils/RouterUtil.d.ts.map +1 -1
  110. package/lib/typescript/utils/StorageUtil.d.ts +1 -1
  111. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -1
  112. package/lib/typescript/utils/SwapApiUtil.d.ts +8 -0
  113. package/lib/typescript/utils/SwapApiUtil.d.ts.map +1 -1
  114. package/lib/typescript/utils/SwapCalculationUtil.d.ts +19 -0
  115. package/lib/typescript/utils/SwapCalculationUtil.d.ts.map +1 -1
  116. package/lib/typescript/utils/TypeUtil.d.ts +152 -5
  117. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  118. package/package.json +2 -2
  119. package/src/controllers/ApiController.ts +32 -17
  120. package/src/controllers/BlockchainApiController.ts +153 -1
  121. package/src/controllers/ConnectionController.ts +8 -10
  122. package/src/controllers/ConnectorController.ts +13 -1
  123. package/src/controllers/NetworkController.ts +15 -0
  124. package/src/controllers/OptionsController.ts +7 -1
  125. package/src/controllers/RouterController.ts +6 -1
  126. package/src/controllers/SnackController.ts +35 -2
  127. package/src/controllers/SwapController.ts +753 -6
  128. package/src/controllers/WebviewController.ts +16 -1
  129. package/src/index.ts +2 -0
  130. package/src/utils/ApiUtil.ts +14 -6
  131. package/src/utils/ConnectionUtil.ts +28 -0
  132. package/src/utils/ConstantsUtil.ts +121 -1
  133. package/src/utils/CoreHelperUtil.ts +20 -15
  134. package/src/utils/NetworkUtil.ts +33 -0
  135. package/src/utils/RouterUtil.ts +4 -1
  136. package/src/utils/StorageUtil.ts +1 -1
  137. package/src/utils/SwapApiUtil.ts +89 -0
  138. package/src/utils/SwapCalculationUtil.ts +125 -0
  139. package/src/utils/TypeUtil.ts +172 -10
@@ -1,6 +1,7 @@
1
1
  import { subscribeKey as subKey } from 'valtio/utils';
2
2
  import { proxy, ref } from 'valtio';
3
3
  import type { Connector, ConnectorType } from '../utils/TypeUtil';
4
+ import { StorageUtil } from '../utils/StorageUtil';
4
5
 
5
6
  // -- Types --------------------------------------------- //
6
7
  export interface ConnectorControllerState {
@@ -40,8 +41,19 @@ export const ConnectorController = {
40
41
  return state.connectors.find(c => c.type === 'AUTH');
41
42
  },
42
43
 
43
- setConnectedConnector(connectorType: ConnectorControllerState['connectedConnector']) {
44
+ setConnectedConnector(
45
+ connectorType: ConnectorControllerState['connectedConnector'],
46
+ saveStorage = true
47
+ ) {
44
48
  state.connectedConnector = connectorType;
49
+
50
+ if (saveStorage) {
51
+ if (connectorType) {
52
+ StorageUtil.setConnectedConnector(connectorType);
53
+ } else {
54
+ StorageUtil.removeConnectedConnector();
55
+ }
56
+ }
45
57
  },
46
58
 
47
59
  setAuthLoading(loading: ConnectorControllerState['authLoading']) {
@@ -2,6 +2,7 @@ import { proxy, ref } from 'valtio';
2
2
  import type { CaipNetwork, CaipNetworkId } from '../utils/TypeUtil';
3
3
  import { PublicStateController } from './PublicStateController';
4
4
  import { NetworkUtil } from '@reown/appkit-common-react-native';
5
+ import { ConstantsUtil } from '../utils/ConstantsUtil';
5
6
 
6
7
  // -- Types --------------------------------------------- //
7
8
  export interface NetworkControllerClient {
@@ -88,6 +89,20 @@ export const NetworkController = {
88
89
  .filter(Boolean) as CaipNetwork[];
89
90
  },
90
91
 
92
+ getSmartAccountEnabledNetworks() {
93
+ return this.getApprovedCaipNetworks().filter(
94
+ network =>
95
+ state.smartAccountEnabledNetworks?.find(networkId => network.id === `eip155:${networkId}`)
96
+ );
97
+ },
98
+
99
+ getActiveNetworkTokenAddress() {
100
+ const chainId = this.state.caipNetwork?.id || 'eip155:1';
101
+ const address = ConstantsUtil.NATIVE_TOKEN_ADDRESS;
102
+
103
+ return `${chainId}:${address}`;
104
+ },
105
+
91
106
  async switchActiveNetwork(network: NetworkControllerState['caipNetwork']) {
92
107
  await this._getClient().switchCaipNetwork(network);
93
108
  state.caipNetwork = network;
@@ -29,6 +29,7 @@ export interface OptionsControllerState {
29
29
  metadata?: Metadata;
30
30
  isSiweEnabled?: boolean;
31
31
  features?: Features;
32
+ debug?: boolean;
32
33
  }
33
34
 
34
35
  // -- State --------------------------------------------- //
@@ -36,7 +37,8 @@ const state = proxy<OptionsControllerState>({
36
37
  projectId: '',
37
38
  sdkType: 'appkit',
38
39
  sdkVersion: 'react-native-wagmi-undefined',
39
- features: ConstantsUtil.DEFAULT_FEATURES
40
+ features: ConstantsUtil.DEFAULT_FEATURES,
41
+ debug: false
40
42
  });
41
43
 
42
44
  // -- Controller ---------------------------------------- //
@@ -91,6 +93,10 @@ export const OptionsController = {
91
93
  state.features = { ...ConstantsUtil.DEFAULT_FEATURES, ...features };
92
94
  },
93
95
 
96
+ setDebug(debug: OptionsControllerState['debug']) {
97
+ state.debug = debug;
98
+ },
99
+
94
100
  isClipboardAvailable() {
95
101
  return !!state._clipboardClient;
96
102
  },
@@ -1,5 +1,5 @@
1
1
  import { proxy } from 'valtio';
2
- import type { WcWallet, CaipNetwork, Connector } from '../utils/TypeUtil';
2
+ import type { WcWallet, CaipNetwork, Connector, SwapInputTarget } from '../utils/TypeUtil';
3
3
  import type { SocialProvider } from '@reown/appkit-common-react-native';
4
4
 
5
5
  // -- Types --------------------------------------------- //
@@ -30,7 +30,11 @@ export interface RouterControllerState {
30
30
  | 'GetWallet'
31
31
  | 'Networks'
32
32
  | 'SwitchNetwork'
33
+ | 'Swap'
34
+ | 'SwapSelectToken'
35
+ | 'SwapPreview'
33
36
  | 'Transactions'
37
+ | 'UnsupportedChain'
34
38
  | 'UpdateEmailPrimaryOtp'
35
39
  | 'UpdateEmailSecondaryOtp'
36
40
  | 'UpdateEmailWallet'
@@ -51,6 +55,7 @@ export interface RouterControllerState {
51
55
  email?: string;
52
56
  newEmail?: string;
53
57
  socialProvider?: SocialProvider;
58
+ swapTarget?: SwapInputTarget;
54
59
  };
55
60
  transactionStack: TransactionAction[];
56
61
  }
@@ -1,17 +1,25 @@
1
1
  import { proxy } from 'valtio';
2
+ import { OptionsController } from './OptionsController';
2
3
 
3
4
  // -- Types --------------------------------------------- //
5
+ interface Message {
6
+ shortMessage: string;
7
+ longMessage?: string;
8
+ }
9
+
4
10
  export interface SnackControllerState {
5
11
  message: string;
6
- variant: 'error' | 'success';
12
+ variant: 'error' | 'success' | 'loading';
7
13
  open: boolean;
14
+ long: boolean;
8
15
  }
9
16
 
10
17
  // -- State --------------------------------------------- //
11
18
  const state = proxy<SnackControllerState>({
12
19
  message: '',
13
20
  variant: 'success',
14
- open: false
21
+ open: false,
22
+ long: false
15
23
  });
16
24
 
17
25
  // -- Controller ---------------------------------------- //
@@ -30,7 +38,32 @@ export const SnackController = {
30
38
  state.open = true;
31
39
  },
32
40
 
41
+ showLoading(message: SnackControllerState['message']) {
42
+ state.message = message;
43
+ state.variant = 'loading';
44
+ state.open = true;
45
+ },
46
+
47
+ showInternalError(error: Message) {
48
+ const { debug } = OptionsController.state;
49
+
50
+ if (debug) {
51
+ state.message = error.shortMessage;
52
+ state.variant = 'error';
53
+ state.open = true;
54
+ state.long = true;
55
+ }
56
+
57
+ if (error.longMessage) {
58
+ // eslint-disable-next-line no-console
59
+ console.error(error.longMessage);
60
+ }
61
+ },
62
+
33
63
  hide() {
34
64
  state.open = false;
65
+ state.long = false;
66
+ state.message = '';
67
+ state.variant = 'success';
35
68
  }
36
69
  };