@reown/appkit-core-react-native 0.0.0-canary-20240912195440

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 (163) hide show
  1. package/lib/commonjs/controllers/AccountController.js +59 -0
  2. package/lib/commonjs/controllers/AccountController.js.map +1 -0
  3. package/lib/commonjs/controllers/ApiController.js +332 -0
  4. package/lib/commonjs/controllers/ApiController.js.map +1 -0
  5. package/lib/commonjs/controllers/AssetController.js +34 -0
  6. package/lib/commonjs/controllers/AssetController.js.map +1 -0
  7. package/lib/commonjs/controllers/BlockchainApiController.js +45 -0
  8. package/lib/commonjs/controllers/BlockchainApiController.js.map +1 -0
  9. package/lib/commonjs/controllers/ConnectionController.js +98 -0
  10. package/lib/commonjs/controllers/ConnectionController.js.map +1 -0
  11. package/lib/commonjs/controllers/ConnectorController.js +41 -0
  12. package/lib/commonjs/controllers/ConnectorController.js.map +1 -0
  13. package/lib/commonjs/controllers/EventsController.js +79 -0
  14. package/lib/commonjs/controllers/EventsController.js.map +1 -0
  15. package/lib/commonjs/controllers/ModalController.js +64 -0
  16. package/lib/commonjs/controllers/ModalController.js.map +1 -0
  17. package/lib/commonjs/controllers/NetworkController.js +65 -0
  18. package/lib/commonjs/controllers/NetworkController.js.map +1 -0
  19. package/lib/commonjs/controllers/OptionsController.js +63 -0
  20. package/lib/commonjs/controllers/OptionsController.js.map +1 -0
  21. package/lib/commonjs/controllers/PublicStateController.js +33 -0
  22. package/lib/commonjs/controllers/PublicStateController.js.map +1 -0
  23. package/lib/commonjs/controllers/RouterController.js +56 -0
  24. package/lib/commonjs/controllers/RouterController.js.map +1 -0
  25. package/lib/commonjs/controllers/SnackController.js +34 -0
  26. package/lib/commonjs/controllers/SnackController.js.map +1 -0
  27. package/lib/commonjs/controllers/ThemeController.js +32 -0
  28. package/lib/commonjs/controllers/ThemeController.js.map +1 -0
  29. package/lib/commonjs/index.js +146 -0
  30. package/lib/commonjs/index.js.map +1 -0
  31. package/lib/commonjs/utils/AssetUtil.js +37 -0
  32. package/lib/commonjs/utils/AssetUtil.js.map +1 -0
  33. package/lib/commonjs/utils/ConstantsUtil.js +14 -0
  34. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -0
  35. package/lib/commonjs/utils/CoreHelperUtil.js +214 -0
  36. package/lib/commonjs/utils/CoreHelperUtil.js.map +1 -0
  37. package/lib/commonjs/utils/EventUtil.js +25 -0
  38. package/lib/commonjs/utils/EventUtil.js.map +1 -0
  39. package/lib/commonjs/utils/FetchUtil.js +118 -0
  40. package/lib/commonjs/utils/FetchUtil.js.map +1 -0
  41. package/lib/commonjs/utils/RouterUtil.js +25 -0
  42. package/lib/commonjs/utils/RouterUtil.js.map +1 -0
  43. package/lib/commonjs/utils/StorageUtil.js +130 -0
  44. package/lib/commonjs/utils/StorageUtil.js.map +1 -0
  45. package/lib/commonjs/utils/TypeUtil.js +2 -0
  46. package/lib/commonjs/utils/TypeUtil.js.map +1 -0
  47. package/lib/module/controllers/AccountController.js +54 -0
  48. package/lib/module/controllers/AccountController.js.map +1 -0
  49. package/lib/module/controllers/ApiController.js +327 -0
  50. package/lib/module/controllers/ApiController.js.map +1 -0
  51. package/lib/module/controllers/AssetController.js +29 -0
  52. package/lib/module/controllers/AssetController.js.map +1 -0
  53. package/lib/module/controllers/BlockchainApiController.js +40 -0
  54. package/lib/module/controllers/BlockchainApiController.js.map +1 -0
  55. package/lib/module/controllers/ConnectionController.js +93 -0
  56. package/lib/module/controllers/ConnectionController.js.map +1 -0
  57. package/lib/module/controllers/ConnectorController.js +36 -0
  58. package/lib/module/controllers/ConnectorController.js.map +1 -0
  59. package/lib/module/controllers/EventsController.js +73 -0
  60. package/lib/module/controllers/EventsController.js.map +1 -0
  61. package/lib/module/controllers/ModalController.js +59 -0
  62. package/lib/module/controllers/ModalController.js.map +1 -0
  63. package/lib/module/controllers/NetworkController.js +60 -0
  64. package/lib/module/controllers/NetworkController.js.map +1 -0
  65. package/lib/module/controllers/OptionsController.js +58 -0
  66. package/lib/module/controllers/OptionsController.js.map +1 -0
  67. package/lib/module/controllers/PublicStateController.js +28 -0
  68. package/lib/module/controllers/PublicStateController.js.map +1 -0
  69. package/lib/module/controllers/RouterController.js +51 -0
  70. package/lib/module/controllers/RouterController.js.map +1 -0
  71. package/lib/module/controllers/SnackController.js +29 -0
  72. package/lib/module/controllers/SnackController.js.map +1 -0
  73. package/lib/module/controllers/ThemeController.js +27 -0
  74. package/lib/module/controllers/ThemeController.js.map +1 -0
  75. package/lib/module/index.js +23 -0
  76. package/lib/module/index.js.map +1 -0
  77. package/lib/module/utils/AssetUtil.js +31 -0
  78. package/lib/module/utils/AssetUtil.js.map +1 -0
  79. package/lib/module/utils/ConstantsUtil.js +8 -0
  80. package/lib/module/utils/ConstantsUtil.js.map +1 -0
  81. package/lib/module/utils/CoreHelperUtil.js +208 -0
  82. package/lib/module/utils/CoreHelperUtil.js.map +1 -0
  83. package/lib/module/utils/EventUtil.js +19 -0
  84. package/lib/module/utils/EventUtil.js.map +1 -0
  85. package/lib/module/utils/FetchUtil.js +111 -0
  86. package/lib/module/utils/FetchUtil.js.map +1 -0
  87. package/lib/module/utils/RouterUtil.js +19 -0
  88. package/lib/module/utils/RouterUtil.js.map +1 -0
  89. package/lib/module/utils/StorageUtil.js +122 -0
  90. package/lib/module/utils/StorageUtil.js.map +1 -0
  91. package/lib/module/utils/TypeUtil.js +2 -0
  92. package/lib/module/utils/TypeUtil.js.map +1 -0
  93. package/lib/typescript/controllers/AccountController.d.ts +25 -0
  94. package/lib/typescript/controllers/AccountController.d.ts.map +1 -0
  95. package/lib/typescript/controllers/ApiController.d.ts +37 -0
  96. package/lib/typescript/controllers/ApiController.d.ts.map +1 -0
  97. package/lib/typescript/controllers/AssetController.d.ts +14 -0
  98. package/lib/typescript/controllers/AssetController.d.ts.map +1 -0
  99. package/lib/typescript/controllers/BlockchainApiController.d.ts +12 -0
  100. package/lib/typescript/controllers/BlockchainApiController.d.ts.map +1 -0
  101. package/lib/typescript/controllers/ConnectionController.d.ts +47 -0
  102. package/lib/typescript/controllers/ConnectionController.d.ts.map +1 -0
  103. package/lib/typescript/controllers/ConnectorController.d.ts +17 -0
  104. package/lib/typescript/controllers/ConnectorController.d.ts.map +1 -0
  105. package/lib/typescript/controllers/EventsController.d.ts +18 -0
  106. package/lib/typescript/controllers/EventsController.d.ts.map +1 -0
  107. package/lib/typescript/controllers/ModalController.d.ts +17 -0
  108. package/lib/typescript/controllers/ModalController.d.ts.map +1 -0
  109. package/lib/typescript/controllers/NetworkController.d.ts +28 -0
  110. package/lib/typescript/controllers/NetworkController.d.ts.map +1 -0
  111. package/lib/typescript/controllers/OptionsController.d.ts +35 -0
  112. package/lib/typescript/controllers/OptionsController.d.ts.map +1 -0
  113. package/lib/typescript/controllers/PublicStateController.d.ts +12 -0
  114. package/lib/typescript/controllers/PublicStateController.d.ts.map +1 -0
  115. package/lib/typescript/controllers/RouterController.d.ts +21 -0
  116. package/lib/typescript/controllers/RouterController.d.ts.map +1 -0
  117. package/lib/typescript/controllers/SnackController.d.ts +12 -0
  118. package/lib/typescript/controllers/SnackController.d.ts.map +1 -0
  119. package/lib/typescript/controllers/ThemeController.d.ts +12 -0
  120. package/lib/typescript/controllers/ThemeController.d.ts.map +1 -0
  121. package/lib/typescript/index.d.ts +35 -0
  122. package/lib/typescript/index.d.ts.map +1 -0
  123. package/lib/typescript/utils/AssetUtil.d.ts +7 -0
  124. package/lib/typescript/utils/AssetUtil.d.ts.map +1 -0
  125. package/lib/typescript/utils/ConstantsUtil.d.ts +8 -0
  126. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -0
  127. package/lib/typescript/utils/CoreHelperUtil.d.ts +32 -0
  128. package/lib/typescript/utils/CoreHelperUtil.d.ts.map +1 -0
  129. package/lib/typescript/utils/EventUtil.d.ts +5 -0
  130. package/lib/typescript/utils/EventUtil.d.ts.map +1 -0
  131. package/lib/typescript/utils/FetchUtil.d.ts +26 -0
  132. package/lib/typescript/utils/FetchUtil.d.ts.map +1 -0
  133. package/lib/typescript/utils/RouterUtil.d.ts +5 -0
  134. package/lib/typescript/utils/RouterUtil.d.ts.map +1 -0
  135. package/lib/typescript/utils/StorageUtil.d.ts +19 -0
  136. package/lib/typescript/utils/StorageUtil.d.ts.map +1 -0
  137. package/lib/typescript/utils/TypeUtil.d.ts +277 -0
  138. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -0
  139. package/package.json +69 -0
  140. package/readme.md +9 -0
  141. package/src/controllers/AccountController.ts +80 -0
  142. package/src/controllers/ApiController.ts +360 -0
  143. package/src/controllers/AssetController.ts +38 -0
  144. package/src/controllers/BlockchainApiController.ts +43 -0
  145. package/src/controllers/ConnectionController.ts +147 -0
  146. package/src/controllers/ConnectorController.ts +50 -0
  147. package/src/controllers/EventsController.ts +79 -0
  148. package/src/controllers/ModalController.ts +64 -0
  149. package/src/controllers/NetworkController.ts +79 -0
  150. package/src/controllers/OptionsController.ts +89 -0
  151. package/src/controllers/PublicStateController.ts +37 -0
  152. package/src/controllers/RouterController.ts +84 -0
  153. package/src/controllers/SnackController.ts +36 -0
  154. package/src/controllers/ThemeController.ts +31 -0
  155. package/src/index.ts +57 -0
  156. package/src/utils/AssetUtil.ts +40 -0
  157. package/src/utils/ConstantsUtil.ts +11 -0
  158. package/src/utils/CoreHelperUtil.ts +249 -0
  159. package/src/utils/EventUtil.ts +22 -0
  160. package/src/utils/FetchUtil.ts +117 -0
  161. package/src/utils/RouterUtil.ts +18 -0
  162. package/src/utils/StorageUtil.ts +138 -0
  163. package/src/utils/TypeUtil.ts +342 -0
@@ -0,0 +1,59 @@
1
+ import { proxy } from 'valtio';
2
+ import { AccountController } from './AccountController';
3
+ import { RouterController } from './RouterController';
4
+ import { PublicStateController } from './PublicStateController';
5
+ import { EventsController } from './EventsController';
6
+ import { ApiController } from './ApiController';
7
+
8
+ // -- Types --------------------------------------------- //
9
+
10
+ // -- State --------------------------------------------- //
11
+ const state = proxy({
12
+ open: false,
13
+ loading: false
14
+ });
15
+
16
+ // -- Controller ---------------------------------------- //
17
+ export const ModalController = {
18
+ state,
19
+ async open(options) {
20
+ await ApiController.state.prefetchPromise;
21
+ const connected = AccountController.state.isConnected;
22
+ if (options?.view) {
23
+ RouterController.reset(options.view);
24
+ } else if (AccountController.state.isConnected) {
25
+ RouterController.reset('Account');
26
+ } else {
27
+ RouterController.reset('Connect');
28
+ }
29
+ state.open = true;
30
+ PublicStateController.set({
31
+ open: true
32
+ });
33
+ EventsController.sendEvent({
34
+ type: 'track',
35
+ event: 'MODAL_OPEN',
36
+ properties: {
37
+ connected
38
+ }
39
+ });
40
+ },
41
+ close() {
42
+ const connected = AccountController.state.isConnected;
43
+ state.open = false;
44
+ PublicStateController.set({
45
+ open: false
46
+ });
47
+ EventsController.sendEvent({
48
+ type: 'track',
49
+ event: 'MODAL_CLOSE',
50
+ properties: {
51
+ connected
52
+ }
53
+ });
54
+ },
55
+ setLoading(loading) {
56
+ state.loading = loading;
57
+ }
58
+ };
59
+ //# sourceMappingURL=ModalController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","AccountController","RouterController","PublicStateController","EventsController","ApiController","state","open","loading","ModalController","options","prefetchPromise","connected","isConnected","view","reset","set","sendEvent","type","event","properties","close","setLoading"],"sourceRoot":"../../../src","sources":["controllers/ModalController.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,QAAQ;AAC9B,SAASC,iBAAiB,QAAQ,qBAAqB;AAEvD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,aAAa,QAAQ,iBAAiB;;AAE/C;;AAYA;AACA,MAAMC,KAAK,GAAGN,KAAK,CAAuB;EACxCO,IAAI,EAAE,KAAK;EACXC,OAAO,EAAE;AACX,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,eAAe,GAAG;EAC7BH,KAAK;EAEL,MAAMC,IAAIA,CAACG,OAA0C,EAAE;IACrD,MAAML,aAAa,CAACC,KAAK,CAACK,eAAe;IACzC,MAAMC,SAAS,GAAGX,iBAAiB,CAACK,KAAK,CAACO,WAAW;IACrD,IAAIH,OAAO,EAAEI,IAAI,EAAE;MACjBZ,gBAAgB,CAACa,KAAK,CAACL,OAAO,CAACI,IAAI,CAAC;IACtC,CAAC,MAAM,IAAIb,iBAAiB,CAACK,KAAK,CAACO,WAAW,EAAE;MAC9CX,gBAAgB,CAACa,KAAK,CAAC,SAAS,CAAC;IACnC,CAAC,MAAM;MACLb,gBAAgB,CAACa,KAAK,CAAC,SAAS,CAAC;IACnC;IACAT,KAAK,CAACC,IAAI,GAAG,IAAI;IACjBJ,qBAAqB,CAACa,GAAG,CAAC;MAAET,IAAI,EAAE;IAAK,CAAC,CAAC;IACzCH,gBAAgB,CAACa,SAAS,CAAC;MACzBC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,YAAY;MACnBC,UAAU,EAAE;QAAER;MAAU;IAC1B,CAAC,CAAC;EACJ,CAAC;EAEDS,KAAKA,CAAA,EAAG;IACN,MAAMT,SAAS,GAAGX,iBAAiB,CAACK,KAAK,CAACO,WAAW;IACrDP,KAAK,CAACC,IAAI,GAAG,KAAK;IAClBJ,qBAAqB,CAACa,GAAG,CAAC;MAAET,IAAI,EAAE;IAAM,CAAC,CAAC;IAC1CH,gBAAgB,CAACa,SAAS,CAAC;MACzBC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,aAAa;MACpBC,UAAU,EAAE;QAAER;MAAU;IAC1B,CAAC,CAAC;EACJ,CAAC;EAEDU,UAAUA,CAACd,OAAwC,EAAE;IACnDF,KAAK,CAACE,OAAO,GAAGA,OAAO;EACzB;AACF,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { proxy, ref } from 'valtio';
2
+ import { PublicStateController } from './PublicStateController';
3
+
4
+ // -- Types --------------------------------------------- //
5
+
6
+ // -- State --------------------------------------------- //
7
+ const state = proxy({
8
+ supportsAllNetworks: true,
9
+ isDefaultCaipNetwork: false
10
+ });
11
+
12
+ // -- Controller ---------------------------------------- //
13
+ export const NetworkController = {
14
+ state,
15
+ _getClient() {
16
+ if (!state._client) {
17
+ throw new Error('NetworkController client not set');
18
+ }
19
+ return state._client;
20
+ },
21
+ setClient(client) {
22
+ state._client = ref(client);
23
+ },
24
+ setCaipNetwork(caipNetwork) {
25
+ state.caipNetwork = caipNetwork;
26
+ PublicStateController.set({
27
+ selectedNetworkId: caipNetwork?.id
28
+ });
29
+ },
30
+ setDefaultCaipNetwork(caipNetwork) {
31
+ state.caipNetwork = caipNetwork;
32
+ state.isDefaultCaipNetwork = true;
33
+ PublicStateController.set({
34
+ selectedNetworkId: caipNetwork?.id
35
+ });
36
+ },
37
+ setRequestedCaipNetworks(requestedNetworks) {
38
+ state.requestedCaipNetworks = requestedNetworks;
39
+ },
40
+ async getApprovedCaipNetworksData() {
41
+ const data = await this._getClient().getApprovedCaipNetworksData();
42
+ state.supportsAllNetworks = data.supportsAllNetworks;
43
+ state.approvedCaipNetworkIds = data.approvedCaipNetworkIds;
44
+ },
45
+ async switchActiveNetwork(network) {
46
+ await this._getClient().switchCaipNetwork(network);
47
+ state.caipNetwork = network;
48
+ PublicStateController.set({
49
+ selectedNetworkId: network?.id
50
+ });
51
+ },
52
+ resetNetwork() {
53
+ if (!state.isDefaultCaipNetwork) {
54
+ state.caipNetwork = undefined;
55
+ }
56
+ state.approvedCaipNetworkIds = undefined;
57
+ state.supportsAllNetworks = true;
58
+ }
59
+ };
60
+ //# sourceMappingURL=NetworkController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","ref","PublicStateController","state","supportsAllNetworks","isDefaultCaipNetwork","NetworkController","_getClient","_client","Error","setClient","client","setCaipNetwork","caipNetwork","set","selectedNetworkId","id","setDefaultCaipNetwork","setRequestedCaipNetworks","requestedNetworks","requestedCaipNetworks","getApprovedCaipNetworksData","data","approvedCaipNetworkIds","switchActiveNetwork","network","switchCaipNetwork","resetNetwork","undefined"],"sourceRoot":"../../../src","sources":["controllers/NetworkController.ts"],"mappings":"AAAA,SAASA,KAAK,EAAEC,GAAG,QAAQ,QAAQ;AAEnC,SAASC,qBAAqB,QAAQ,yBAAyB;;AAE/D;;AAkBA;AACA,MAAMC,KAAK,GAAGH,KAAK,CAAyB;EAC1CI,mBAAmB,EAAE,IAAI;EACzBC,oBAAoB,EAAE;AACxB,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,iBAAiB,GAAG;EAC/BH,KAAK;EAELI,UAAUA,CAAA,EAAG;IACX,IAAI,CAACJ,KAAK,CAACK,OAAO,EAAE;MAClB,MAAM,IAAIC,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,OAAON,KAAK,CAACK,OAAO;EACtB,CAAC;EAEDE,SAASA,CAACC,MAA+B,EAAE;IACzCR,KAAK,CAACK,OAAO,GAAGP,GAAG,CAACU,MAAM,CAAC;EAC7B,CAAC;EAEDC,cAAcA,CAACC,WAAkD,EAAE;IACjEV,KAAK,CAACU,WAAW,GAAGA,WAAW;IAC/BX,qBAAqB,CAACY,GAAG,CAAC;MAAEC,iBAAiB,EAAEF,WAAW,EAAEG;IAAG,CAAC,CAAC;EACnE,CAAC;EAEDC,qBAAqBA,CAACJ,WAAkD,EAAE;IACxEV,KAAK,CAACU,WAAW,GAAGA,WAAW;IAC/BV,KAAK,CAACE,oBAAoB,GAAG,IAAI;IACjCH,qBAAqB,CAACY,GAAG,CAAC;MAAEC,iBAAiB,EAAEF,WAAW,EAAEG;IAAG,CAAC,CAAC;EACnE,CAAC;EAEDE,wBAAwBA,CAACC,iBAAkE,EAAE;IAC3FhB,KAAK,CAACiB,qBAAqB,GAAGD,iBAAiB;EACjD,CAAC;EAED,MAAME,2BAA2BA,CAAA,EAAG;IAClC,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACf,UAAU,CAAC,CAAC,CAACc,2BAA2B,CAAC,CAAC;IAClElB,KAAK,CAACC,mBAAmB,GAAGkB,IAAI,CAAClB,mBAAmB;IACpDD,KAAK,CAACoB,sBAAsB,GAAGD,IAAI,CAACC,sBAAsB;EAC5D,CAAC;EAED,MAAMC,mBAAmBA,CAACC,OAA8C,EAAE;IACxE,MAAM,IAAI,CAAClB,UAAU,CAAC,CAAC,CAACmB,iBAAiB,CAACD,OAAO,CAAC;IAClDtB,KAAK,CAACU,WAAW,GAAGY,OAAO;IAC3BvB,qBAAqB,CAACY,GAAG,CAAC;MAAEC,iBAAiB,EAAEU,OAAO,EAAET;IAAG,CAAC,CAAC;EAC/D,CAAC;EAEDW,YAAYA,CAAA,EAAG;IACb,IAAI,CAACxB,KAAK,CAACE,oBAAoB,EAAE;MAC/BF,KAAK,CAACU,WAAW,GAAGe,SAAS;IAC/B;IACAzB,KAAK,CAACoB,sBAAsB,GAAGK,SAAS;IACxCzB,KAAK,CAACC,mBAAmB,GAAG,IAAI;EAClC;AACF,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { proxy, ref } from 'valtio';
2
+
3
+ // -- Types --------------------------------------------- //
4
+
5
+ // -- State --------------------------------------------- //
6
+ const state = proxy({
7
+ projectId: '',
8
+ sdkType: 'appkit',
9
+ sdkVersion: 'react-native-wagmi-undefined'
10
+ });
11
+
12
+ // -- Controller ---------------------------------------- //
13
+ export const OptionsController = {
14
+ state,
15
+ setClipboardClient(client) {
16
+ state._clipboardClient = ref(client);
17
+ },
18
+ setProjectId(projectId) {
19
+ state.projectId = projectId;
20
+ },
21
+ setIncludeWalletIds(includeWalletIds) {
22
+ state.includeWalletIds = includeWalletIds;
23
+ },
24
+ setExcludeWalletIds(excludeWalletIds) {
25
+ state.excludeWalletIds = excludeWalletIds;
26
+ },
27
+ setFeaturedWalletIds(featuredWalletIds) {
28
+ state.featuredWalletIds = featuredWalletIds;
29
+ },
30
+ setTokens(tokens) {
31
+ state.tokens = tokens;
32
+ },
33
+ setCustomWallets(customWallets) {
34
+ state.customWallets = customWallets;
35
+ },
36
+ setEnableAnalytics(enableAnalytics) {
37
+ state.enableAnalytics = enableAnalytics;
38
+ },
39
+ setSdkVersion(sdkVersion) {
40
+ state.sdkVersion = sdkVersion;
41
+ },
42
+ setMetadata(metadata) {
43
+ state.metadata = metadata;
44
+ },
45
+ setIsSiweEnabled(isSiweEnabled) {
46
+ state.isSiweEnabled = isSiweEnabled;
47
+ },
48
+ isClipboardAvailable() {
49
+ return !!state._clipboardClient;
50
+ },
51
+ copyToClipboard(value) {
52
+ const client = state._clipboardClient;
53
+ if (client) {
54
+ client.setString(value);
55
+ }
56
+ }
57
+ };
58
+ //# sourceMappingURL=OptionsController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","ref","state","projectId","sdkType","sdkVersion","OptionsController","setClipboardClient","client","_clipboardClient","setProjectId","setIncludeWalletIds","includeWalletIds","setExcludeWalletIds","excludeWalletIds","setFeaturedWalletIds","featuredWalletIds","setTokens","tokens","setCustomWallets","customWallets","setEnableAnalytics","enableAnalytics","setSdkVersion","setMetadata","metadata","setIsSiweEnabled","isSiweEnabled","isClipboardAvailable","copyToClipboard","value","setString"],"sourceRoot":"../../../src","sources":["controllers/OptionsController.ts"],"mappings":"AAAA,SAASA,KAAK,EAAEC,GAAG,QAAQ,QAAQ;;AAGnC;;AAoBA;AACA,MAAMC,KAAK,GAAGF,KAAK,CAAyB;EAC1CG,SAAS,EAAE,EAAE;EACbC,OAAO,EAAE,QAAQ;EACjBC,UAAU,EAAE;AACd,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,iBAAiB,GAAG;EAC/BJ,KAAK;EAELK,kBAAkBA,CAACC,MAAuB,EAAE;IAC1CN,KAAK,CAACO,gBAAgB,GAAGR,GAAG,CAACO,MAAM,CAAC;EACtC,CAAC;EAEDE,YAAYA,CAACP,SAA8C,EAAE;IAC3DD,KAAK,CAACC,SAAS,GAAGA,SAAS;EAC7B,CAAC;EAEDQ,mBAAmBA,CAACC,gBAA4D,EAAE;IAChFV,KAAK,CAACU,gBAAgB,GAAGA,gBAAgB;EAC3C,CAAC;EAEDC,mBAAmBA,CAACC,gBAA4D,EAAE;IAChFZ,KAAK,CAACY,gBAAgB,GAAGA,gBAAgB;EAC3C,CAAC;EAEDC,oBAAoBA,CAACC,iBAA8D,EAAE;IACnFd,KAAK,CAACc,iBAAiB,GAAGA,iBAAiB;EAC7C,CAAC;EAEDC,SAASA,CAACC,MAAwC,EAAE;IAClDhB,KAAK,CAACgB,MAAM,GAAGA,MAAM;EACvB,CAAC;EAEDC,gBAAgBA,CAACC,aAAsD,EAAE;IACvElB,KAAK,CAACkB,aAAa,GAAGA,aAAa;EACrC,CAAC;EAEDC,kBAAkBA,CAACC,eAA0D,EAAE;IAC7EpB,KAAK,CAACoB,eAAe,GAAGA,eAAe;EACzC,CAAC;EAEDC,aAAaA,CAAClB,UAAgD,EAAE;IAC9DH,KAAK,CAACG,UAAU,GAAGA,UAAU;EAC/B,CAAC;EAEDmB,WAAWA,CAACC,QAA4C,EAAE;IACxDvB,KAAK,CAACuB,QAAQ,GAAGA,QAAQ;EAC3B,CAAC;EAEDC,gBAAgBA,CAACC,aAAsD,EAAE;IACvEzB,KAAK,CAACyB,aAAa,GAAGA,aAAa;EACrC,CAAC;EAEDC,oBAAoBA,CAAA,EAAG;IACrB,OAAO,CAAC,CAAC1B,KAAK,CAACO,gBAAgB;EACjC,CAAC;EAEDoB,eAAeA,CAACC,KAAa,EAAE;IAC7B,MAAMtB,MAAM,GAAGN,KAAK,CAACO,gBAAgB;IACrC,IAAID,MAAM,EAAE;MACVA,MAAM,CAACuB,SAAS,CAACD,KAAK,CAAC;IACzB;EACF;AACF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { proxy, subscribe as sub } from 'valtio';
2
+ import { subscribeKey as subKey } from 'valtio/utils';
3
+
4
+ // -- Types --------------------------------------------- //
5
+
6
+ // -- State --------------------------------------------- //
7
+ const state = proxy({
8
+ open: false,
9
+ selectedNetworkId: undefined
10
+ });
11
+
12
+ // -- Controller ---------------------------------------- //
13
+ export const PublicStateController = {
14
+ state,
15
+ subscribe(callback) {
16
+ return sub(state, () => callback(state));
17
+ },
18
+ subscribeKey(key, callback) {
19
+ return subKey(state, key, callback);
20
+ },
21
+ set(newState) {
22
+ Object.assign(state, {
23
+ ...state,
24
+ ...newState
25
+ });
26
+ }
27
+ };
28
+ //# sourceMappingURL=PublicStateController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","subscribe","sub","subscribeKey","subKey","state","open","selectedNetworkId","undefined","PublicStateController","callback","key","set","newState","Object","assign"],"sourceRoot":"../../../src","sources":["controllers/PublicStateController.ts"],"mappings":"AAAA,SAASA,KAAK,EAAEC,SAAS,IAAIC,GAAG,QAAQ,QAAQ;AAChD,SAASC,YAAY,IAAIC,MAAM,QAAQ,cAAc;;AAGrD;;AAQA;AACA,MAAMC,KAAK,GAAGL,KAAK,CAA6B;EAC9CM,IAAI,EAAE,KAAK;EACXC,iBAAiB,EAAEC;AACrB,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,qBAAqB,GAAG;EACnCJ,KAAK;EAELJ,SAASA,CAACS,QAAwD,EAAE;IAClE,OAAOR,GAAG,CAACG,KAAK,EAAE,MAAMK,QAAQ,CAACL,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDF,YAAYA,CACVQ,GAAM,EACND,QAAwD,EACxD;IACA,OAAON,MAAM,CAACC,KAAK,EAAEM,GAAG,EAAED,QAAQ,CAAC;EACrC,CAAC;EAEDE,GAAGA,CAACC,QAA6C,EAAE;IACjDC,MAAM,CAACC,MAAM,CAACV,KAAK,EAAE;MAAE,GAAGA,KAAK;MAAE,GAAGQ;IAAS,CAAC,CAAC;EACjD;AACF,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { proxy } from 'valtio';
2
+
3
+ // -- Types --------------------------------------------- //
4
+
5
+ // -- State --------------------------------------------- //
6
+ const state = proxy({
7
+ view: 'Connect',
8
+ history: ['Connect']
9
+ });
10
+
11
+ // -- Controller ---------------------------------------- //
12
+ export const RouterController = {
13
+ state,
14
+ push(view, data) {
15
+ if (view !== state.view) {
16
+ state.view = view;
17
+ state.history.push(view);
18
+ state.data = data;
19
+ }
20
+ },
21
+ reset(view) {
22
+ state.view = view;
23
+ state.history = [view];
24
+ },
25
+ replace(view, data) {
26
+ if (state.history.length > 1 && state.history.at(-1) !== view) {
27
+ state.view = view;
28
+ state.history[state.history.length - 1] = view;
29
+ state.data = data;
30
+ }
31
+ },
32
+ goBack() {
33
+ if (state.history.length > 1) {
34
+ state.history.pop();
35
+ const [last] = state.history.slice(-1);
36
+ if (last) {
37
+ state.view = last;
38
+ }
39
+ }
40
+ },
41
+ goBackToIndex(historyIndex) {
42
+ if (state.history.length > 1) {
43
+ state.history = state.history.slice(0, historyIndex + 1);
44
+ const [last] = state.history.slice(-1);
45
+ if (last) {
46
+ state.view = last;
47
+ }
48
+ }
49
+ }
50
+ };
51
+ //# sourceMappingURL=RouterController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","state","view","history","RouterController","push","data","reset","replace","length","at","goBack","pop","last","slice","goBackToIndex","historyIndex"],"sourceRoot":"../../../src","sources":["controllers/RouterController.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,QAAQ;;AAG9B;;AA8BA;AACA,MAAMC,KAAK,GAAGD,KAAK,CAAwB;EACzCE,IAAI,EAAE,SAAS;EACfC,OAAO,EAAE,CAAC,SAAS;AACrB,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,gBAAgB,GAAG;EAC9BH,KAAK;EAELI,IAAIA,CAACH,IAAmC,EAAEI,IAAoC,EAAE;IAC9E,IAAIJ,IAAI,KAAKD,KAAK,CAACC,IAAI,EAAE;MACvBD,KAAK,CAACC,IAAI,GAAGA,IAAI;MACjBD,KAAK,CAACE,OAAO,CAACE,IAAI,CAACH,IAAI,CAAC;MACxBD,KAAK,CAACK,IAAI,GAAGA,IAAI;IACnB;EACF,CAAC;EAEDC,KAAKA,CAACL,IAAmC,EAAE;IACzCD,KAAK,CAACC,IAAI,GAAGA,IAAI;IACjBD,KAAK,CAACE,OAAO,GAAG,CAACD,IAAI,CAAC;EACxB,CAAC;EAEDM,OAAOA,CAACN,IAAmC,EAAEI,IAAoC,EAAE;IACjF,IAAIL,KAAK,CAACE,OAAO,CAACM,MAAM,GAAG,CAAC,IAAIR,KAAK,CAACE,OAAO,CAACO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAKR,IAAI,EAAE;MAC7DD,KAAK,CAACC,IAAI,GAAGA,IAAI;MACjBD,KAAK,CAACE,OAAO,CAACF,KAAK,CAACE,OAAO,CAACM,MAAM,GAAG,CAAC,CAAC,GAAGP,IAAI;MAC9CD,KAAK,CAACK,IAAI,GAAGA,IAAI;IACnB;EACF,CAAC;EAEDK,MAAMA,CAAA,EAAG;IACP,IAAIV,KAAK,CAACE,OAAO,CAACM,MAAM,GAAG,CAAC,EAAE;MAC5BR,KAAK,CAACE,OAAO,CAACS,GAAG,CAAC,CAAC;MACnB,MAAM,CAACC,IAAI,CAAC,GAAGZ,KAAK,CAACE,OAAO,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC;MACtC,IAAID,IAAI,EAAE;QACRZ,KAAK,CAACC,IAAI,GAAGW,IAAI;MACnB;IACF;EACF,CAAC;EAEDE,aAAaA,CAACC,YAAoB,EAAE;IAClC,IAAIf,KAAK,CAACE,OAAO,CAACM,MAAM,GAAG,CAAC,EAAE;MAC5BR,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACE,OAAO,CAACW,KAAK,CAAC,CAAC,EAAEE,YAAY,GAAG,CAAC,CAAC;MACxD,MAAM,CAACH,IAAI,CAAC,GAAGZ,KAAK,CAACE,OAAO,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC;MACtC,IAAID,IAAI,EAAE;QACRZ,KAAK,CAACC,IAAI,GAAGW,IAAI;MACnB;IACF;EACF;AACF,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { proxy } from 'valtio';
2
+
3
+ // -- Types --------------------------------------------- //
4
+
5
+ // -- State --------------------------------------------- //
6
+ const state = proxy({
7
+ message: '',
8
+ variant: 'success',
9
+ open: false
10
+ });
11
+
12
+ // -- Controller ---------------------------------------- //
13
+ export const SnackController = {
14
+ state,
15
+ showSuccess(message) {
16
+ state.message = message;
17
+ state.variant = 'success';
18
+ state.open = true;
19
+ },
20
+ showError(message) {
21
+ state.message = message;
22
+ state.variant = 'error';
23
+ state.open = true;
24
+ },
25
+ hide() {
26
+ state.open = false;
27
+ }
28
+ };
29
+ //# sourceMappingURL=SnackController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","state","message","variant","open","SnackController","showSuccess","showError","hide"],"sourceRoot":"../../../src","sources":["controllers/SnackController.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,QAAQ;;AAE9B;;AAOA;AACA,MAAMC,KAAK,GAAGD,KAAK,CAAuB;EACxCE,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,SAAS;EAClBC,IAAI,EAAE;AACR,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,eAAe,GAAG;EAC7BJ,KAAK;EAELK,WAAWA,CAACJ,OAAwC,EAAE;IACpDD,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,SAAS;IACzBF,KAAK,CAACG,IAAI,GAAG,IAAI;EACnB,CAAC;EAEDG,SAASA,CAACL,OAAwC,EAAE;IAClDD,KAAK,CAACC,OAAO,GAAGA,OAAO;IACvBD,KAAK,CAACE,OAAO,GAAG,OAAO;IACvBF,KAAK,CAACG,IAAI,GAAG,IAAI;EACnB,CAAC;EAEDI,IAAIA,CAAA,EAAG;IACLP,KAAK,CAACG,IAAI,GAAG,KAAK;EACpB;AACF,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { proxy, subscribe as sub } from 'valtio';
2
+
3
+ // -- Types --------------------------------------------- //
4
+
5
+ // -- State --------------------------------------------- //
6
+ const state = proxy({
7
+ themeMode: 'dark',
8
+ themeVariables: {}
9
+ });
10
+
11
+ // -- Controller ---------------------------------------- //
12
+ export const ThemeController = {
13
+ state,
14
+ subscribe(callback) {
15
+ return sub(state, () => callback(state));
16
+ },
17
+ setThemeMode(themeMode) {
18
+ state.themeMode = themeMode;
19
+ },
20
+ setThemeVariables(themeVariables) {
21
+ state.themeVariables = {
22
+ ...state.themeVariables,
23
+ ...themeVariables
24
+ };
25
+ }
26
+ };
27
+ //# sourceMappingURL=ThemeController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["proxy","subscribe","sub","state","themeMode","themeVariables","ThemeController","callback","setThemeMode","setThemeVariables"],"sourceRoot":"../../../src","sources":["controllers/ThemeController.ts"],"mappings":"AAAA,SAASA,KAAK,EAAEC,SAAS,IAAIC,GAAG,QAAQ,QAAQ;;AAGhD;;AAMA;AACA,MAAMC,KAAK,GAAGH,KAAK,CAAuB;EACxCI,SAAS,EAAE,MAAM;EACjBC,cAAc,EAAE,CAAC;AACnB,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,eAAe,GAAG;EAC7BH,KAAK;EAELF,SAASA,CAACM,QAAkD,EAAE;IAC5D,OAAOL,GAAG,CAACC,KAAK,EAAE,MAAMI,QAAQ,CAACJ,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDK,YAAYA,CAACJ,SAA4C,EAAE;IACzDD,KAAK,CAACC,SAAS,GAAGA,SAAS;EAC7B,CAAC;EAEDK,iBAAiBA,CAACJ,cAAsD,EAAE;IACxEF,KAAK,CAACE,cAAc,GAAG;MAAE,GAAGF,KAAK,CAACE,cAAc;MAAE,GAAGA;IAAe,CAAC;EACvE;AACF,CAAC"}
@@ -0,0 +1,23 @@
1
+ // -- Controllers -------------------------------------------------------------
2
+ export { ModalController } from './controllers/ModalController';
3
+ export { RouterController } from './controllers/RouterController';
4
+ export { AccountController } from './controllers/AccountController';
5
+ export { NetworkController } from './controllers/NetworkController';
6
+ export { ConnectionController } from './controllers/ConnectionController';
7
+ export { ConnectorController } from './controllers/ConnectorController';
8
+ export { SnackController } from './controllers/SnackController';
9
+ export { ApiController } from './controllers/ApiController';
10
+ export { AssetController } from './controllers/AssetController';
11
+ export { ThemeController } from './controllers/ThemeController';
12
+ export { OptionsController } from './controllers/OptionsController';
13
+ export { PublicStateController } from './controllers/PublicStateController';
14
+ export { BlockchainApiController } from './controllers/BlockchainApiController';
15
+ export { EventsController } from './controllers/EventsController';
16
+ // -- Utils -------------------------------------------------------------------
17
+ export { AssetUtil } from './utils/AssetUtil';
18
+ export { ConstantsUtil } from './utils/ConstantsUtil';
19
+ export { CoreHelperUtil } from './utils/CoreHelperUtil';
20
+ export { StorageUtil } from './utils/StorageUtil';
21
+ export { EventUtil } from './utils/EventUtil';
22
+ export { RouterUtil } from './utils/RouterUtil';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ModalController","RouterController","AccountController","NetworkController","ConnectionController","ConnectorController","SnackController","ApiController","AssetController","ThemeController","OptionsController","PublicStateController","BlockchainApiController","EventsController","AssetUtil","ConstantsUtil","CoreHelperUtil","StorageUtil","EventUtil","RouterUtil"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA;AACA,SAASA,eAAe,QAAQ,+BAA+B;AAG/D,SAASC,gBAAgB,QAAQ,gCAAgC;AAGjE,SAASC,iBAAiB,QAAQ,iCAAiC;AAGnE,SAASC,iBAAiB,QAAQ,iCAAiC;AAMnE,SAASC,oBAAoB,QAAQ,oCAAoC;AAMzE,SAASC,mBAAmB,QAAQ,mCAAmC;AAGvE,SAASC,eAAe,QAAQ,+BAA+B;AAG/D,SAASC,aAAa,QAAQ,6BAA6B;AAG3D,SAASC,eAAe,QAAQ,+BAA+B;AAG/D,SAASC,eAAe,QAAQ,+BAA+B;AAG/D,SAASC,iBAAiB,QAAQ,iCAAiC;AAGnE,SAASC,qBAAqB,QAAQ,qCAAqC;AAG3E,SAASC,uBAAuB,QAAQ,uCAAuC;AAE/E,SAASC,gBAAgB,QAAQ,gCAAgC;AAGjE;AACA,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,UAAU,QAAQ,oBAAoB"}
@@ -0,0 +1,31 @@
1
+ import { AssetController } from '../controllers/AssetController';
2
+ export const AssetUtil = {
3
+ getWalletImage(wallet) {
4
+ if (wallet?.image_url) {
5
+ return wallet?.image_url;
6
+ }
7
+ if (wallet?.image_id) {
8
+ return AssetController.state.walletImages[wallet.image_id];
9
+ }
10
+ return undefined;
11
+ },
12
+ getNetworkImage(network) {
13
+ if (network?.imageUrl) {
14
+ return network?.imageUrl;
15
+ }
16
+ if (network?.imageId) {
17
+ return AssetController.state.networkImages[network.imageId];
18
+ }
19
+ return undefined;
20
+ },
21
+ getConnectorImage(connector) {
22
+ if (connector?.imageUrl) {
23
+ return connector.imageUrl;
24
+ }
25
+ if (connector?.imageId) {
26
+ return AssetController.state.connectorImages[connector.imageId];
27
+ }
28
+ return undefined;
29
+ }
30
+ };
31
+ //# sourceMappingURL=AssetUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AssetController","AssetUtil","getWalletImage","wallet","image_url","image_id","state","walletImages","undefined","getNetworkImage","network","imageUrl","imageId","networkImages","getConnectorImage","connector","connectorImages"],"sourceRoot":"../../../src","sources":["utils/AssetUtil.ts"],"mappings":"AAAA,SAASA,eAAe,QAAQ,gCAAgC;AAGhE,OAAO,MAAMC,SAAS,GAAG;EACvBC,cAAcA,CAACC,MAAiB,EAAE;IAChC,IAAIA,MAAM,EAAEC,SAAS,EAAE;MACrB,OAAOD,MAAM,EAAEC,SAAS;IAC1B;IAEA,IAAID,MAAM,EAAEE,QAAQ,EAAE;MACpB,OAAOL,eAAe,CAACM,KAAK,CAACC,YAAY,CAACJ,MAAM,CAACE,QAAQ,CAAC;IAC5D;IAEA,OAAOG,SAAS;EAClB,CAAC;EAEDC,eAAeA,CAACC,OAAqB,EAAE;IACrC,IAAIA,OAAO,EAAEC,QAAQ,EAAE;MACrB,OAAOD,OAAO,EAAEC,QAAQ;IAC1B;IAEA,IAAID,OAAO,EAAEE,OAAO,EAAE;MACpB,OAAOZ,eAAe,CAACM,KAAK,CAACO,aAAa,CAACH,OAAO,CAACE,OAAO,CAAC;IAC7D;IAEA,OAAOJ,SAAS;EAClB,CAAC;EAEDM,iBAAiBA,CAACC,SAAqB,EAAE;IACvC,IAAIA,SAAS,EAAEJ,QAAQ,EAAE;MACvB,OAAOI,SAAS,CAACJ,QAAQ;IAC3B;IAEA,IAAII,SAAS,EAAEH,OAAO,EAAE;MACtB,OAAOZ,eAAe,CAACM,KAAK,CAACU,eAAe,CAACD,SAAS,CAACH,OAAO,CAAC;IACjE;IAEA,OAAOJ,SAAS;EAClB;AACF,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const ConstantsUtil = {
2
+ FOUR_MINUTES_MS: 240000,
3
+ TEN_SEC_MS: 10000,
4
+ ONE_SEC_MS: 1000,
5
+ EMAIL_REGEX: /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)+$/,
6
+ LINKING_ERROR: 'LINKING_ERROR'
7
+ };
8
+ //# sourceMappingURL=ConstantsUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ConstantsUtil","FOUR_MINUTES_MS","TEN_SEC_MS","ONE_SEC_MS","EMAIL_REGEX","LINKING_ERROR"],"sourceRoot":"../../../src","sources":["utils/ConstantsUtil.ts"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,eAAe,EAAE,MAAM;EAEvBC,UAAU,EAAE,KAAK;EAEjBC,UAAU,EAAE,IAAI;EAEhBC,WAAW,EAAE,sEAAsE;EAEnFC,aAAa,EAAE;AACjB,CAAC"}
@@ -0,0 +1,208 @@
1
+ /* eslint-disable no-bitwise */
2
+
3
+ import { Linking, Platform } from 'react-native';
4
+ import { ConstantsUtil as CommonConstants } from '@reown/appkit-common-react-native';
5
+ import { ConstantsUtil } from './ConstantsUtil';
6
+ // -- Helpers -----------------------------------------------------------------
7
+ async function isAppInstalledIos(deepLink) {
8
+ try {
9
+ return deepLink ? Linking.canOpenURL(deepLink) : Promise.resolve(false);
10
+ } catch (error) {
11
+ return Promise.resolve(false);
12
+ }
13
+ }
14
+ async function isAppInstalledAndroid(packageName) {
15
+ try {
16
+ //@ts-ignore
17
+ if (!packageName || typeof global?.Application?.isAppInstalled !== 'function') {
18
+ return Promise.resolve(false);
19
+ }
20
+
21
+ //@ts-ignore
22
+ return global?.Application?.isAppInstalled(packageName);
23
+ } catch (error) {
24
+ return Promise.resolve(false);
25
+ }
26
+ }
27
+
28
+ // -- Utility --------------------------------------------------------------------
29
+ export const CoreHelperUtil = {
30
+ isPairingExpired(expiry) {
31
+ return expiry ? expiry - Date.now() <= ConstantsUtil.TEN_SEC_MS : true;
32
+ },
33
+ isAllowedRetry(lastRetry) {
34
+ return Date.now() - lastRetry >= ConstantsUtil.ONE_SEC_MS;
35
+ },
36
+ getPairingExpiry() {
37
+ return Date.now() + ConstantsUtil.FOUR_MINUTES_MS;
38
+ },
39
+ getNetworkId(caipAddress) {
40
+ return caipAddress?.split(':')[1];
41
+ },
42
+ getPlainAddress(caipAddress) {
43
+ return caipAddress?.split(':')[2];
44
+ },
45
+ async wait(milliseconds) {
46
+ return new Promise(resolve => {
47
+ setTimeout(resolve, milliseconds);
48
+ });
49
+ },
50
+ debounce(func, timeout = 500) {
51
+ let timer;
52
+ return (...args) => {
53
+ function next() {
54
+ func(...args);
55
+ }
56
+ if (timer) {
57
+ clearTimeout(timer);
58
+ }
59
+ timer = setTimeout(next, timeout);
60
+ };
61
+ },
62
+ isHttpUrl(url) {
63
+ return url.startsWith('http://') || url.startsWith('https://');
64
+ },
65
+ isLinkModeURL(url) {
66
+ if (!url) {
67
+ return false;
68
+ }
69
+ return CoreHelperUtil.isHttpUrl(url) && url.includes('wc_ev');
70
+ },
71
+ formatNativeUrl(appUrl, wcUri) {
72
+ if (CoreHelperUtil.isLinkModeURL(wcUri)) {
73
+ return {
74
+ redirect: wcUri,
75
+ href: wcUri
76
+ };
77
+ }
78
+ if (CoreHelperUtil.isHttpUrl(appUrl)) {
79
+ return this.formatUniversalUrl(appUrl, wcUri);
80
+ }
81
+ let safeAppUrl = appUrl;
82
+ if (!safeAppUrl.includes('://')) {
83
+ safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '');
84
+ safeAppUrl = `${safeAppUrl}://`;
85
+ }
86
+ if (!safeAppUrl.endsWith('/')) {
87
+ safeAppUrl = `${safeAppUrl}/`;
88
+ }
89
+ const encodedWcUrl = encodeURIComponent(wcUri);
90
+ return {
91
+ redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,
92
+ href: safeAppUrl
93
+ };
94
+ },
95
+ formatUniversalUrl(appUrl, wcUri) {
96
+ if (CoreHelperUtil.isLinkModeURL(wcUri)) {
97
+ return {
98
+ redirect: wcUri,
99
+ href: wcUri
100
+ };
101
+ }
102
+ if (!CoreHelperUtil.isHttpUrl(appUrl)) {
103
+ return this.formatNativeUrl(appUrl, wcUri);
104
+ }
105
+ let safeAppUrl = appUrl;
106
+ if (!safeAppUrl.endsWith('/')) {
107
+ safeAppUrl = `${safeAppUrl}/`;
108
+ }
109
+ const encodedWcUrl = encodeURIComponent(wcUri);
110
+ return {
111
+ redirect: `${safeAppUrl}wc?uri=${encodedWcUrl}`,
112
+ href: safeAppUrl
113
+ };
114
+ },
115
+ async openLink(url) {
116
+ try {
117
+ await Linking.openURL(url);
118
+ } catch (error) {
119
+ throw new Error(ConstantsUtil.LINKING_ERROR);
120
+ }
121
+ },
122
+ formatBalance(balance, symbol, decimals = 3) {
123
+ let formattedBalance;
124
+ if (balance === '0') {
125
+ formattedBalance = '0.000';
126
+ } else if (typeof balance === 'string') {
127
+ const number = Number(balance);
128
+ if (number) {
129
+ const regex = new RegExp(`^-?\\d+(?:\\.\\d{0,${decimals}})?`, 'u');
130
+ formattedBalance = number.toString().match(regex)?.[0];
131
+ }
132
+ }
133
+ return formattedBalance ? `${formattedBalance} ${symbol}` : `0.000 ${symbol || ''}`;
134
+ },
135
+ getApiUrl() {
136
+ return CommonConstants.API_URL;
137
+ },
138
+ getBlockchainApiUrl() {
139
+ return CommonConstants.BLOCKCHAIN_API_RPC_URL;
140
+ },
141
+ getAnalyticsUrl() {
142
+ return CommonConstants.PULSE_API_URL;
143
+ },
144
+ getUUID() {
145
+ if (global?.crypto.getRandomValues) {
146
+ const buffer = new Uint8Array(16);
147
+ global?.crypto.getRandomValues(buffer);
148
+
149
+ // Set the version (4) and variant (8, 9, A, or B) bits
150
+ buffer[6] = (buffer[6] ?? 0 & 0x0f) | 0x40;
151
+ buffer[8] = (buffer[8] ?? 0 & 0x3f) | 0x80;
152
+
153
+ // Convert the buffer to a hexadecimal string
154
+ const hexString = Array.from(buffer, byte => byte.toString(16).padStart(2, '0')).join('');
155
+ const formatted = `${hexString.slice(0, 8)}-${hexString.slice(8, 12)}-${hexString.slice(12, 16)}-${hexString.slice(16, 20)}-${hexString.slice(20)}`;
156
+ return formatted;
157
+ }
158
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/gu, c => {
159
+ const r = Math.random() * 16 | 0;
160
+ const v = c === 'x' ? r : r & 0x3 | 0x8;
161
+ return v.toString(16);
162
+ });
163
+ },
164
+ getBundleId() {
165
+ if (global?.Application?.applicationId) {
166
+ return global?.Application?.applicationId;
167
+ }
168
+ return undefined;
169
+ },
170
+ parseError(error) {
171
+ if (typeof error === 'string') {
172
+ return error;
173
+ } else if (typeof error?.issues?.[0]?.message === 'string') {
174
+ return error.issues[0].message;
175
+ } else if (error instanceof Error) {
176
+ return error.message;
177
+ }
178
+ return 'Unknown error';
179
+ },
180
+ async checkInstalled(wallet) {
181
+ let isInstalled = false;
182
+ const scheme = wallet.ios_schema;
183
+ const appId = wallet.android_app_id;
184
+ try {
185
+ isInstalled = await Platform.select({
186
+ ios: isAppInstalledIos(scheme),
187
+ android: isAppInstalledAndroid(appId),
188
+ default: Promise.resolve(false)
189
+ });
190
+ } catch {
191
+ isInstalled = false;
192
+ }
193
+ return isInstalled;
194
+ },
195
+ isValidEmail(email) {
196
+ return ConstantsUtil.EMAIL_REGEX.test(email);
197
+ },
198
+ allSettled(promises) {
199
+ return Promise.all(promises.map(promise => promise.then(value => ({
200
+ status: 'fulfilled',
201
+ value
202
+ })).catch(reason => ({
203
+ status: 'rejected',
204
+ reason
205
+ }))));
206
+ }
207
+ };
208
+ //# sourceMappingURL=CoreHelperUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Linking","Platform","ConstantsUtil","CommonConstants","isAppInstalledIos","deepLink","canOpenURL","Promise","resolve","error","isAppInstalledAndroid","packageName","global","Application","isAppInstalled","CoreHelperUtil","isPairingExpired","expiry","Date","now","TEN_SEC_MS","isAllowedRetry","lastRetry","ONE_SEC_MS","getPairingExpiry","FOUR_MINUTES_MS","getNetworkId","caipAddress","split","getPlainAddress","wait","milliseconds","setTimeout","debounce","func","timeout","timer","args","next","clearTimeout","isHttpUrl","url","startsWith","isLinkModeURL","includes","formatNativeUrl","appUrl","wcUri","redirect","href","formatUniversalUrl","safeAppUrl","replaceAll","endsWith","encodedWcUrl","encodeURIComponent","openLink","openURL","Error","LINKING_ERROR","formatBalance","balance","symbol","decimals","formattedBalance","number","Number","regex","RegExp","toString","match","getApiUrl","API_URL","getBlockchainApiUrl","BLOCKCHAIN_API_RPC_URL","getAnalyticsUrl","PULSE_API_URL","getUUID","crypto","getRandomValues","buffer","Uint8Array","hexString","Array","from","byte","padStart","join","formatted","slice","replace","c","r","Math","random","v","getBundleId","applicationId","undefined","parseError","issues","message","checkInstalled","wallet","isInstalled","scheme","ios_schema","appId","android_app_id","select","ios","android","default","isValidEmail","email","EMAIL_REGEX","test","allSettled","promises","all","map","promise","then","value","status","catch","reason"],"sourceRoot":"../../../src","sources":["utils/CoreHelperUtil.ts"],"mappings":"AAAA;;AAEA,SAASA,OAAO,EAAEC,QAAQ,QAAQ,cAAc;AAChD,SAASC,aAAa,IAAIC,eAAe,QAAQ,mCAAmC;AAEpF,SAASD,aAAa,QAAQ,iBAAiB;AAG/C;AACA,eAAeE,iBAAiBA,CAACC,QAAiB,EAAoB;EACpE,IAAI;IACF,OAAOA,QAAQ,GAAGL,OAAO,CAACM,UAAU,CAACD,QAAQ,CAAC,GAAGE,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EACzE,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAOF,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EAC/B;AACF;AAEA,eAAeE,qBAAqBA,CAACC,WAAoB,EAAoB;EAC3E,IAAI;IACF;IACA,IAAI,CAACA,WAAW,IAAI,OAAOC,MAAM,EAAEC,WAAW,EAAEC,cAAc,KAAK,UAAU,EAAE;MAC7E,OAAOP,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;IAC/B;;IAEA;IACA,OAAOI,MAAM,EAAEC,WAAW,EAAEC,cAAc,CAACH,WAAW,CAAC;EACzD,CAAC,CAAC,OAAOF,KAAK,EAAE;IACd,OAAOF,OAAO,CAACC,OAAO,CAAC,KAAK,CAAC;EAC/B;AACF;;AAEA;AACA,OAAO,MAAMO,cAAc,GAAG;EAC5BC,gBAAgBA,CAACC,MAAe,EAAE;IAChC,OAAOA,MAAM,GAAGA,MAAM,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIjB,aAAa,CAACkB,UAAU,GAAG,IAAI;EACxE,CAAC;EAEDC,cAAcA,CAACC,SAAiB,EAAE;IAChC,OAAOJ,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGG,SAAS,IAAIpB,aAAa,CAACqB,UAAU;EAC3D,CAAC;EAEDC,gBAAgBA,CAAA,EAAG;IACjB,OAAON,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGjB,aAAa,CAACuB,eAAe;EACnD,CAAC;EAEDC,YAAYA,CAACC,WAAoC,EAAE;IACjD,OAAOA,WAAW,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACnC,CAAC;EAEDC,eAAeA,CAACF,WAAoC,EAAE;IACpD,OAAOA,WAAW,EAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACnC,CAAC;EAED,MAAME,IAAIA,CAACC,YAAoB,EAAE;IAC/B,OAAO,IAAIxB,OAAO,CAACC,OAAO,IAAI;MAC5BwB,UAAU,CAACxB,OAAO,EAAEuB,YAAY,CAAC;IACnC,CAAC,CAAC;EACJ,CAAC;EAEDE,QAAQA,CAACC,IAAiC,EAAEC,OAAO,GAAG,GAAG,EAAE;IACzD,IAAIC,KAAgD;IAEpD,OAAO,CAAC,GAAGC,IAAe,KAAK;MAC7B,SAASC,IAAIA,CAAA,EAAG;QACdJ,IAAI,CAAC,GAAGG,IAAI,CAAC;MACf;MACA,IAAID,KAAK,EAAE;QACTG,YAAY,CAACH,KAAK,CAAC;MACrB;MACAA,KAAK,GAAGJ,UAAU,CAACM,IAAI,EAAEH,OAAO,CAAC;IACnC,CAAC;EACH,CAAC;EAEDK,SAASA,CAACC,GAAW,EAAE;IACrB,OAAOA,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,IAAID,GAAG,CAACC,UAAU,CAAC,UAAU,CAAC;EAChE,CAAC;EAEDC,aAAaA,CAACF,GAAY,EAAE;IAC1B,IAAI,CAACA,GAAG,EAAE;MACR,OAAO,KAAK;IACd;IAEA,OAAO1B,cAAc,CAACyB,SAAS,CAACC,GAAG,CAAC,IAAIA,GAAG,CAACG,QAAQ,CAAC,OAAO,CAAC;EAC/D,CAAC;EAEDC,eAAeA,CAACC,MAAc,EAAEC,KAAa,EAAiB;IAC5D,IAAIhC,cAAc,CAAC4B,aAAa,CAACI,KAAK,CAAC,EAAE;MACvC,OAAO;QACLC,QAAQ,EAAED,KAAK;QACfE,IAAI,EAAEF;MACR,CAAC;IACH;IAEA,IAAIhC,cAAc,CAACyB,SAAS,CAACM,MAAM,CAAC,EAAE;MACpC,OAAO,IAAI,CAACI,kBAAkB,CAACJ,MAAM,EAAEC,KAAK,CAAC;IAC/C;IACA,IAAII,UAAU,GAAGL,MAAM;IACvB,IAAI,CAACK,UAAU,CAACP,QAAQ,CAAC,KAAK,CAAC,EAAE;MAC/BO,UAAU,GAAGL,MAAM,CAACM,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAACA,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;MAC3DD,UAAU,GAAI,GAAEA,UAAW,KAAI;IACjC;IACA,IAAI,CAACA,UAAU,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7BF,UAAU,GAAI,GAAEA,UAAW,GAAE;IAC/B;IACA,MAAMG,YAAY,GAAGC,kBAAkB,CAACR,KAAK,CAAC;IAE9C,OAAO;MACLC,QAAQ,EAAG,GAAEG,UAAW,UAASG,YAAa,EAAC;MAC/CL,IAAI,EAAEE;IACR,CAAC;EACH,CAAC;EAEDD,kBAAkBA,CAACJ,MAAc,EAAEC,KAAa,EAAiB;IAC/D,IAAIhC,cAAc,CAAC4B,aAAa,CAACI,KAAK,CAAC,EAAE;MACvC,OAAO;QACLC,QAAQ,EAAED,KAAK;QACfE,IAAI,EAAEF;MACR,CAAC;IACH;IAEA,IAAI,CAAChC,cAAc,CAACyB,SAAS,CAACM,MAAM,CAAC,EAAE;MACrC,OAAO,IAAI,CAACD,eAAe,CAACC,MAAM,EAAEC,KAAK,CAAC;IAC5C;IACA,IAAII,UAAU,GAAGL,MAAM;IACvB,IAAI,CAACK,UAAU,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE;MAC7BF,UAAU,GAAI,GAAEA,UAAW,GAAE;IAC/B;IACA,MAAMG,YAAY,GAAGC,kBAAkB,CAACR,KAAK,CAAC;IAE9C,OAAO;MACLC,QAAQ,EAAG,GAAEG,UAAW,UAASG,YAAa,EAAC;MAC/CL,IAAI,EAAEE;IACR,CAAC;EACH,CAAC;EAED,MAAMK,QAAQA,CAACf,GAAW,EAAE;IAC1B,IAAI;MACF,MAAMzC,OAAO,CAACyD,OAAO,CAAChB,GAAG,CAAC;IAC5B,CAAC,CAAC,OAAOhC,KAAK,EAAE;MACd,MAAM,IAAIiD,KAAK,CAACxD,aAAa,CAACyD,aAAa,CAAC;IAC9C;EACF,CAAC;EAEDC,aAAaA,CAACC,OAA2B,EAAEC,MAA0B,EAAEC,QAAQ,GAAG,CAAC,EAAE;IACnF,IAAIC,gBAAgB;IAEpB,IAAIH,OAAO,KAAK,GAAG,EAAE;MACnBG,gBAAgB,GAAG,OAAO;IAC5B,CAAC,MAAM,IAAI,OAAOH,OAAO,KAAK,QAAQ,EAAE;MACtC,MAAMI,MAAM,GAAGC,MAAM,CAACL,OAAO,CAAC;MAC9B,IAAII,MAAM,EAAE;QACV,MAAME,KAAK,GAAG,IAAIC,MAAM,CAAE,sBAAqBL,QAAS,KAAI,EAAE,GAAG,CAAC;QAClEC,gBAAgB,GAAGC,MAAM,CAACI,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACH,KAAK,CAAC,GAAG,CAAC,CAAC;MACxD;IACF;IAEA,OAAOH,gBAAgB,GAAI,GAAEA,gBAAiB,IAAGF,MAAO,EAAC,GAAI,SAAQA,MAAM,IAAI,EAAG,EAAC;EACrF,CAAC;EAEDS,SAASA,CAAA,EAAG;IACV,OAAOpE,eAAe,CAACqE,OAAO;EAChC,CAAC;EAEDC,mBAAmBA,CAAA,EAAG;IACpB,OAAOtE,eAAe,CAACuE,sBAAsB;EAC/C,CAAC;EAEDC,eAAeA,CAAA,EAAG;IAChB,OAAOxE,eAAe,CAACyE,aAAa;EACtC,CAAC;EAEDC,OAAOA,CAAA,EAAG;IACR,IAAKjE,MAAM,EAAUkE,MAAM,CAACC,eAAe,EAAE;MAC3C,MAAMC,MAAM,GAAG,IAAIC,UAAU,CAAC,EAAE,CAAC;MAChCrE,MAAM,EAAUkE,MAAM,CAACC,eAAe,CAACC,MAAM,CAAC;;MAE/C;MACAA,MAAM,CAAC,CAAC,CAAC,GAAG,CAACA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI;MAC1CA,MAAM,CAAC,CAAC,CAAC,GAAG,CAACA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,IAAI;;MAE1C;MACA,MAAME,SAAS,GAAGC,KAAK,CAACC,IAAI,CAACJ,MAAM,EAAEK,IAAI,IAAIA,IAAI,CAAChB,QAAQ,CAAC,EAAE,CAAC,CAACiB,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;MACzF,MAAMC,SAAS,GAAI,GAAEN,SAAS,CAACO,KAAK,CAAC,CAAC,EAAE,CAAC,CAAE,IAAGP,SAAS,CAACO,KAAK,CAAC,CAAC,EAAE,EAAE,CAAE,IAAGP,SAAS,CAACO,KAAK,CACrF,EAAE,EACF,EACF,CAAE,IAAGP,SAAS,CAACO,KAAK,CAAC,EAAE,EAAE,EAAE,CAAE,IAAGP,SAAS,CAACO,KAAK,CAAC,EAAE,CAAE,EAAC;MAErD,OAAOD,SAAS;IAClB;IAEA,OAAO,sCAAsC,CAACE,OAAO,CAAC,QAAQ,EAAEC,CAAC,IAAI;MACnE,MAAMC,CAAC,GAAIC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAI,CAAC;MAClC,MAAMC,CAAC,GAAGJ,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG;MAEzC,OAAOG,CAAC,CAAC1B,QAAQ,CAAC,EAAE,CAAC;IACvB,CAAC,CAAC;EACJ,CAAC;EAED2B,WAAWA,CAAA,EAAG;IACZ,IAAKpF,MAAM,EAAUC,WAAW,EAAEoF,aAAa,EAAE;MAC/C,OAAQrF,MAAM,EAAUC,WAAW,EAAEoF,aAAa;IACpD;IAEA,OAAOC,SAAS;EAClB,CAAC;EAEDC,UAAUA,CAAC1F,KAAU,EAAU;IAC7B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAOA,KAAK;IACd,CAAC,MAAM,IAAI,OAAOA,KAAK,EAAE2F,MAAM,GAAG,CAAC,CAAC,EAAEC,OAAO,KAAK,QAAQ,EAAE;MAC1D,OAAO5F,KAAK,CAAC2F,MAAM,CAAC,CAAC,CAAC,CAACC,OAAO;IAChC,CAAC,MAAM,IAAI5F,KAAK,YAAYiD,KAAK,EAAE;MACjC,OAAOjD,KAAK,CAAC4F,OAAO;IACtB;IAEA,OAAO,eAAe;EACxB,CAAC;EAED,MAAMC,cAAcA,CAACC,MAAkB,EAAoB;IACzD,IAAIC,WAAW,GAAG,KAAK;IACvB,MAAMC,MAAM,GAAGF,MAAM,CAACG,UAAU;IAChC,MAAMC,KAAK,GAAGJ,MAAM,CAACK,cAAc;IACnC,IAAI;MACFJ,WAAW,GAAG,MAAMvG,QAAQ,CAAC4G,MAAM,CAAC;QAClCC,GAAG,EAAE1G,iBAAiB,CAACqG,MAAM,CAAC;QAC9BM,OAAO,EAAErG,qBAAqB,CAACiG,KAAK,CAAC;QACrCK,OAAO,EAAEzG,OAAO,CAACC,OAAO,CAAC,KAAK;MAChC,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACNgG,WAAW,GAAG,KAAK;IACrB;IAEA,OAAOA,WAAW;EACpB,CAAC;EAEDS,YAAYA,CAACC,KAAa,EAAE;IAC1B,OAAOhH,aAAa,CAACiH,WAAW,CAACC,IAAI,CAACF,KAAK,CAAC;EAC9C,CAAC;EAEDG,UAAUA,CAACC,QAA4B,EAAE;IACvC,OAAO/G,OAAO,CAACgH,GAAG,CAChBD,QAAQ,CAACE,GAAG,CAACC,OAAO,IAClBA,OAAO,CACJC,IAAI,CAACC,KAAK,KAAK;MAAEC,MAAM,EAAE,WAAW;MAAED;IAAM,CAAC,CAAC,CAAC,CAC/CE,KAAK,CAACC,MAAM,KAAK;MAAEF,MAAM,EAAE,UAAU;MAAEE;IAAO,CAAC,CAAC,CACrD,CACF,CAAC;EACH;AACF,CAAC"}