@multiplatform.one/web3 6.0.4 → 6.1.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.
Files changed (38) hide show
  1. package/dist/cjs/providers/WalletProvider.cjs +7 -11
  2. package/dist/cjs/providers/WalletProvider.native.js +10 -9
  3. package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
  4. package/dist/cjs/providers/walletConfig.cjs +23 -0
  5. package/dist/cjs/providers/walletConfig.native.js +27 -0
  6. package/dist/cjs/providers/walletConfig.native.js.map +1 -1
  7. package/dist/cjs/providers/walletConfig.spec.cjs +44 -0
  8. package/dist/cjs/providers/walletConfig.spec.native.js +57 -0
  9. package/dist/cjs/providers/walletConfig.spec.native.js.map +1 -0
  10. package/dist/esm/providers/WalletProvider.mjs +10 -14
  11. package/dist/esm/providers/WalletProvider.mjs.map +1 -1
  12. package/dist/esm/providers/WalletProvider.native.js +14 -13
  13. package/dist/esm/providers/WalletProvider.native.js.map +1 -1
  14. package/dist/esm/providers/walletConfig.mjs +24 -2
  15. package/dist/esm/providers/walletConfig.mjs.map +1 -1
  16. package/dist/esm/providers/walletConfig.native.js +28 -2
  17. package/dist/esm/providers/walletConfig.native.js.map +1 -1
  18. package/dist/esm/providers/walletConfig.spec.mjs +45 -0
  19. package/dist/esm/providers/walletConfig.spec.mjs.map +1 -0
  20. package/dist/esm/providers/walletConfig.spec.native.js +55 -0
  21. package/dist/esm/providers/walletConfig.spec.native.js.map +1 -0
  22. package/dist/jsx/providers/WalletProvider.mjs +10 -14
  23. package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
  24. package/dist/jsx/providers/WalletProvider.native.js +10 -9
  25. package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
  26. package/dist/jsx/providers/walletConfig.mjs +24 -2
  27. package/dist/jsx/providers/walletConfig.mjs.map +1 -1
  28. package/dist/jsx/providers/walletConfig.native.js +27 -0
  29. package/dist/jsx/providers/walletConfig.native.js.map +1 -1
  30. package/dist/jsx/providers/walletConfig.spec.mjs +45 -0
  31. package/dist/jsx/providers/walletConfig.spec.mjs.map +1 -0
  32. package/dist/jsx/providers/walletConfig.spec.native.js +57 -0
  33. package/dist/jsx/providers/walletConfig.spec.native.js.map +1 -0
  34. package/package.json +4 -4
  35. package/src/providers/WalletProvider.native.tsx +22 -12
  36. package/src/providers/WalletProvider.tsx +11 -12
  37. package/src/providers/walletConfig.spec.ts +42 -0
  38. package/src/providers/walletConfig.ts +38 -1
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { hardhat, mainnet, sepolia } from "wagmi/chains";
3
+ import { defaultChains, resolveChains } from "./walletConfig.mjs";
4
+ const base = {
5
+ walletConnectProjectId: "",
6
+ appName: "test"
7
+ };
8
+ describe("resolveChains", () => {
9
+ it("filters testnets by default", () => {
10
+ const chains = resolveChains(base);
11
+ expect(chains.map(c => c.id)).not.toContain(sepolia.id);
12
+ expect(chains[0].id).toBe(mainnet.id);
13
+ });
14
+ it("keeps testnets when enableTestnets is on", () => {
15
+ const chains = resolveChains({
16
+ ...base,
17
+ enableTestnets: true
18
+ });
19
+ expect(chains.map(c => c.id)).toContain(sepolia.id);
20
+ expect(chains).toHaveLength(defaultChains.length);
21
+ });
22
+ it("prepends the hardhat dev chain as the default when localnet is on", () => {
23
+ const chains = resolveChains({
24
+ ...base,
25
+ localnet: true
26
+ });
27
+ expect(chains[0].id).toBe(hardhat.id);
28
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://127.0.0.1:8545");
29
+ expect(chains.filter(c => c.id === hardhat.id)).toHaveLength(1);
30
+ expect(chains.map(c => c.id)).toContain(mainnet.id);
31
+ });
32
+ it("honours a custom localnet RPC url (emulator host addresses)", () => {
33
+ const chains = resolveChains({
34
+ ...base,
35
+ localnet: true,
36
+ localnetRpcUrl: "http://10.0.2.2:8545"
37
+ });
38
+ expect(chains[0].id).toBe(hardhat.id);
39
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://10.0.2.2:8545");
40
+ });
41
+ it("does not add the dev chain when localnet is off", () => {
42
+ expect(resolveChains(base).map(c => c.id)).not.toContain(hardhat.id);
43
+ });
44
+ });
45
+ //# sourceMappingURL=walletConfig.spec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","hardhat","mainnet","sepolia","defaultChains","resolveChains","base","walletConnectProjectId","appName","chains","map","c","id","not","toContain","toBe","enableTestnets","toHaveLength","length","localnet","rpcUrls","default","http","filter","localnetRpcUrl"],"sources":["../../../src/providers/walletConfig.spec.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAC1C,SAASC,aAAA,EAAeC,aAAA,QAAsC;AAE9D,MAAMC,IAAA,GAAmB;EAAEC,sBAAA,EAAwB;EAAIC,OAAA,EAAS;AAAO;AAEvEV,QAAA,CAAS,iBAAiB,MAAM;EAC9BE,EAAA,CAAG,+BAA+B,MAAM;IACtC,MAAMS,MAAA,GAASJ,aAAA,CAAcC,IAAI;IACjCP,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEC,GAAA,CAAIC,SAAA,CAAUX,OAAA,CAAQS,EAAE;IACxDb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKb,OAAA,CAAQU,EAAE;EACtC,CAAC;EAEDZ,EAAA,CAAG,4CAA4C,MAAM;IACnD,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAAE,GAAGC,IAAA;MAAMU,cAAA,EAAgB;IAAK,CAAC;IAC9DjB,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEE,SAAA,CAAUX,OAAA,CAAQS,EAAE;IACpDb,MAAA,CAAOU,MAAM,EAAEQ,YAAA,CAAab,aAAA,CAAcc,MAAM;EAClD,CAAC;EAEDlB,EAAA,CAAG,qEAAqE,MAAM;IAC5E,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAAE,GAAGC,IAAA;MAAMa,QAAA,EAAU;IAAK,CAAC;IACxDpB,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKd,OAAA,CAAQW,EAAE;IACpCb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEW,OAAA,CAAQC,OAAA,CAAQC,IAAA,CAAK,CAAC,CAAC,EAAEP,IAAA,CAAK,uBAAuB;IAEtEhB,MAAA,CAAOU,MAAA,CAAOc,MAAA,CAAQZ,CAAA,IAAMA,CAAA,CAAEC,EAAA,KAAOX,OAAA,CAAQW,EAAE,CAAC,EAAEK,YAAA,CAAa,CAAC;IAChElB,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEE,SAAA,CAAUZ,OAAA,CAAQU,EAAE;EACtD,CAAC;EAEDZ,EAAA,CAAG,+DAA+D,MAAM;IACtE,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAC3B,GAAGC,IAAA;MACHa,QAAA,EAAU;MACVK,cAAA,EAAgB;IAClB,CAAC;IACDzB,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKd,OAAA,CAAQW,EAAE;IACpCb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEW,OAAA,CAAQC,OAAA,CAAQC,IAAA,CAAK,CAAC,CAAC,EAAEP,IAAA,CAAK,sBAAsB;EACvE,CAAC;EAEDf,EAAA,CAAG,mDAAmD,MAAM;IAC1DD,MAAA,CAAOM,aAAA,CAAcC,IAAI,EAAEI,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEC,GAAA,CAAIC,SAAA,CAAUb,OAAA,CAAQW,EAAE;EACvE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,55 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { hardhat, mainnet, sepolia } from "wagmi/chains";
3
+ import { defaultChains, resolveChains } from "./walletConfig.native.js";
4
+ var base = {
5
+ walletConnectProjectId: "",
6
+ appName: "test"
7
+ };
8
+ describe("resolveChains", function () {
9
+ it("filters testnets by default", function () {
10
+ var chains = resolveChains(base);
11
+ expect(chains.map(function (c) {
12
+ return c.id;
13
+ })).not.toContain(sepolia.id);
14
+ expect(chains[0].id).toBe(mainnet.id);
15
+ });
16
+ it("keeps testnets when enableTestnets is on", function () {
17
+ var chains = resolveChains({
18
+ ...base,
19
+ enableTestnets: true
20
+ });
21
+ expect(chains.map(function (c) {
22
+ return c.id;
23
+ })).toContain(sepolia.id);
24
+ expect(chains).toHaveLength(defaultChains.length);
25
+ });
26
+ it("prepends the hardhat dev chain as the default when localnet is on", function () {
27
+ var chains = resolveChains({
28
+ ...base,
29
+ localnet: true
30
+ });
31
+ expect(chains[0].id).toBe(hardhat.id);
32
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://127.0.0.1:8545");
33
+ expect(chains.filter(function (c) {
34
+ return c.id === hardhat.id;
35
+ })).toHaveLength(1);
36
+ expect(chains.map(function (c) {
37
+ return c.id;
38
+ })).toContain(mainnet.id);
39
+ });
40
+ it("honours a custom localnet RPC url (emulator host addresses)", function () {
41
+ var chains = resolveChains({
42
+ ...base,
43
+ localnet: true,
44
+ localnetRpcUrl: "http://10.0.2.2:8545"
45
+ });
46
+ expect(chains[0].id).toBe(hardhat.id);
47
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://10.0.2.2:8545");
48
+ });
49
+ it("does not add the dev chain when localnet is off", function () {
50
+ expect(resolveChains(base).map(function (c) {
51
+ return c.id;
52
+ })).not.toContain(hardhat.id);
53
+ });
54
+ });
55
+ //# sourceMappingURL=walletConfig.spec.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","hardhat","mainnet","sepolia","defaultChains","resolveChains","base","walletConnectProjectId","appName","chains","map","c","id","not","toContain","toBe","enableTestnets","toHaveLength","length","localnet","rpcUrls","default","http","filter"],"sources":["../../../src/providers/walletConfig.spec.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAC1C,SAASC,aAAA,EAAeC,aAAA,QAAsC;AAE9D,IAAAC,IAAM;EAENC,sBAAS,EAAiB;EACxBC,OAAG;AACD;AACAV,QAAA,gBAAmB,cAAa;EAChCE,EAAA,8BAA0B,cAAU;IACrC,IAAAS,MAAA,GAAAJ,aAAA,CAAAC,IAAA;IAEDP,MAAG,CAAAU,MAAA,CAAAC,GAAA,WAAAC,CAAA;MACD,OAAMA,CAAA,CAAAC,EAAA;IACN,IAAAC,GAAO,CAAAC,SAAO,CAAIX,OAAO,CAAAS,EAAE,CAAE;IAC7Bb,MAAA,CAAOU,MAAM,EAAE,EAAAG,EAAA,EAAAG,IAAA,CAAAb,OAAa,CAAAU,EAAA;EAC9B,CAAC;EAEDZ,EAAA,CAAG;IACD,IAAAS,MAAM,GAAAJ,aAAS;MACf,GAAAC,IAAO;MACPU,cAAe,EAAE;IAEjB;IACAjB,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAI,UAASC,CAAA,EAAG;MAC/B,OAAAA,CAAA,CAAAC,EAAA;IAED,CAAG,GAAAE,SAAA,CAAAX,OAAA,CAAAS,EAAA;IACDb,MAAM,CAAAU,MAAA,EAASQ,YAAA,CAAAb,aAAc,CAAAc,MAAA;EAAA;EACxBlB,EAAA,oEACO;IAAA,IACVS,MAAA,GAAAJ,aAAgB;MACjB,GAAAC,IAAA;MACDa,QAAO;IACP;IACDpB,MAAA,CAAAU,MAAA,IAAAG,EAAA,EAAAG,IAAA,CAAAd,OAAA,CAAAW,EAAA;IAEDb,MAAG,CAAAU,MAAA,IAAAW,OAAA,CAAAC,OAAA,CAAAC,IAAA,KAAAP,IAAA,wBAAyD;IAC1DhB,MAAA,CAAOU,MAAA,CAAAc,MAAA,CAAc,UAAMZ,CAAI,EAAC;MACjC,OAAAA,CAAA,CAAAC,EAAA,KAAAX,OAAA,CAAAW,EAAA;IACF,IAAAK,YAAA","ignoreList":[]}
@@ -4,8 +4,8 @@ import { isWeb } from "@multiplatform.one/platform";
4
4
  import { useMemo } from "react";
5
5
  import { WagmiProvider, createConfig, http } from "wagmi";
6
6
  import { createMockConnector } from "./mockConnector.mjs";
7
- import { Web3ConfigContext, defaultChains } from "./walletConfig.mjs";
8
- import { defaultChains as defaultChains2 } from "./walletConfig.mjs";
7
+ import { Web3ConfigContext, resolveChains } from "./walletConfig.mjs";
8
+ import { defaultChains } from "./walletConfig.mjs";
9
9
  import { useWeb3Config } from "./walletConfig.mjs";
10
10
  import { jsx } from "react/jsx-runtime";
11
11
  const defaultQueryClient = new QueryClient();
@@ -21,20 +21,15 @@ function WalletProvider({
21
21
  appDescription = "Connect your wallet",
22
22
  appUrl = isWeb && typeof window !== "undefined" ? window.location.origin : "",
23
23
  appIcon,
24
- chains = defaultChains,
24
+ chains,
25
25
  enableTestnets = false,
26
+ localnet = false,
27
+ localnetRpcUrl,
26
28
  mockWallet = false
27
29
  } = web3Config;
28
- const activeChains = useMemo(() => {
29
- if (enableTestnets) {
30
- return chains;
31
- }
32
- const filtered = chains.filter(chain => !chain.testnet);
33
- if (filtered.length === 0) {
34
- return chains;
35
- }
36
- return filtered;
37
- }, [chains, enableTestnets]);
30
+ const activeChains = useMemo(() => resolveChains(web3Config),
31
+ // eslint-disable-next-line react-hooks/exhaustive-deps
32
+ [chains, enableTestnets, localnet, localnetRpcUrl]);
38
33
  const wagmiConfig = useMemo(() => {
39
34
  const chainIds = activeChains.map(chain => chain.id).join(",");
40
35
  const cacheKey = JSON.stringify({
@@ -44,6 +39,7 @@ function WalletProvider({
44
39
  appIcon,
45
40
  walletConnectProjectId,
46
41
  chainIds,
42
+ localnetRpcUrl,
47
43
  mockWallet
48
44
  });
49
45
  const cached = wagmiConfigCache.get(cacheKey);
@@ -78,5 +74,5 @@ function WalletProvider({
78
74
  })
79
75
  });
80
76
  }
81
- export { WalletProvider, defaultChains2 as defaultChains, useWeb3Config };
77
+ export { WalletProvider, defaultChains, useWeb3Config };
82
78
  //# sourceMappingURL=WalletProvider.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["QueryClient","QueryClientProvider","ConnectKitProvider","getDefaultConfig","isWeb","useMemo","WagmiProvider","createConfig","http","createMockConnector","Web3ConfigContext","defaultChains","defaultChains2","useWeb3Config","jsx","defaultQueryClient","wagmiConfigCache","Map","WalletProvider","children","config","web3Config","queryClient","walletConnectProjectId","appName","appDescription","appUrl","window","location","origin","appIcon","chains","enableTestnets","mockWallet","activeChains","filtered","filter","chain","testnet","length","wagmiConfig","chainIds","map","id","join","cacheKey","JSON","stringify","cached","get","transports","Object","fromEntries","defaultConfig","connectors","created","set","Provider","value","client"],"sources":["../../../src/providers/WalletProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["QueryClient","QueryClientProvider","ConnectKitProvider","getDefaultConfig","isWeb","useMemo","WagmiProvider","createConfig","http","createMockConnector","Web3ConfigContext","resolveChains","defaultChains","useWeb3Config","jsx","defaultQueryClient","wagmiConfigCache","Map","WalletProvider","children","config","web3Config","queryClient","walletConnectProjectId","appName","appDescription","appUrl","window","location","origin","appIcon","chains","enableTestnets","localnet","localnetRpcUrl","mockWallet","activeChains","wagmiConfig","chainIds","map","chain","id","join","cacheKey","JSON","stringify","cached","get","transports","Object","fromEntries","defaultConfig","connectors","created","set","Provider","value","client"],"sources":["../../../src/providers/WalletProvider.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -151,16 +151,19 @@ function WalletProvider(param) {
151
151
  };
152
152
  }, [bridge]);
153
153
  var wagmiConfig = (0, import_react.useMemo)(function () {
154
- var transports = Object.fromEntries(import_walletConfig.defaultChains.map(function (chain) {
154
+ var chains = (0, import_walletConfig.resolveChains)(web3Config);
155
+ var transports = Object.fromEntries(chains.map(function (chain) {
155
156
  return [chain.id, (0, import_wagmi.http)()];
156
157
  }));
157
158
  return (0, import_wagmi.createConfig)({
158
- chains: import_walletConfig.defaultChains,
159
+ chains,
159
160
  transports,
160
161
  connectors: [(0, import_bridgeConnector.createBridgeConnector)(bridge)],
161
162
  multiInjectedProviderDiscovery: false
162
163
  });
163
- }, [bridge]);
164
+ },
165
+ // eslint-disable-next-line react-hooks/exhaustive-deps
166
+ [bridge, web3Config.chains, web3Config.enableTestnets, web3Config.localnet, web3Config.localnetRpcUrl]);
164
167
  var solanaValue = (0, import_react.useMemo)(function () {
165
168
  return {
166
169
  bridge: solana,
@@ -171,12 +174,10 @@ function WalletProvider(param) {
171
174
  var onMessage = function onMessage2(event) {
172
175
  return transport.receive(event.nativeEvent.data);
173
176
  };
174
- var resolvedSource = webViewSource !== null && webViewSource !== void 0 ? webViewSource : web3Config.webViewUrl ? {
175
- uri: web3Config.webViewUrl
176
- } : null;
177
- if (!resolvedSource) {
178
- throw new Error("WalletProvider (native): set config.webViewUrl (or pass webViewSource) to a served copy of @multiplatform.one/web3/assets/webview.html");
179
- }
177
+ var defaultWebViewUrl = `http://${import_react_native.Platform.OS === "android" ? "10.0.2.2" : "localhost"}:8099/webview.html`;
178
+ var resolvedSource = webViewSource !== null && webViewSource !== void 0 ? webViewSource : {
179
+ uri: web3Config.webViewUrl || defaultWebViewUrl
180
+ };
180
181
  return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_walletConfig.Web3ConfigContext.Provider, {
181
182
  value: web3Config,
182
183
  children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_wagmi.WagmiProvider, {
@@ -1 +1 @@
1
- {"version":3,"names":["WalletProvider_native_exports","__export","WalletProvider","defaultChains","import_walletConfig2","useSolanaWallet","useWeb3Config","import_walletConfig3","module","exports","__toCommonJS","import_jsx_runtime","require","import_react_query","import_react","import_react_native","import_react_native_webview","import_wagmi","import_BridgeClient","import_SolanaBridge","import_bridgeConnector","import_postMessageTransport","import_deepLink","import_inject","import_visibility","import_walletConfig","SolanaWalletContext","createContext","value","useContext","Error","defaultQueryClient","QueryClient","param","children","config","web3Config","queryClient","webViewSource","_web3Config_appUrl","webRef","useRef","readyRef","outboundQueue","visibility","dispatchVisibility","useReducer","nextVisibility","initialVisibility","publicKey","setPublicKey","useState","bridge","solana","transport","useMemo","t","createPostMessageTransport","raw","current","injectJavaScript","buildInjectScript","push","client","BridgeClient","SolanaBridge","useEffect","off","on","ns","method","params","_webRef_current","queued","splice","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return","_ref","sub","AppState","addEventListener","state","request","catch","remove","handle","handle2","url","parseWalletReturn","Linking","event","getInitialURL","then","wagmiConfig","transports","Object","fromEntries","map","chain","id","http","createConfig","chains","connectors","createBridgeConnector","multiInjectedProviderDiscovery","solanaValue","connected","onMessage","onMessage2","receive","nativeEvent","data","resolvedSource","webViewUrl","uri","jsx","Web3ConfigContext","Provider","WagmiProvider","QueryClientProvider","jsxs","View","style","sheetOpen","styles","visible","hidden","pointerEvents","WebView","ref","source","originWhitelist","javaScriptEnabled","domStorageEnabled","onShouldStartLoadWithRequest","req","shouldOpenExternally","openURL","injectedJavaScriptBeforeContentLoaded","buildConfigInjection","appUrl","webview","StyleSheet","create","position","width","height","top","left","opacity","absoluteFillObject","zIndex","flex","backgroundColor"],"sources":["../../../src/providers/WalletProvider.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WalletProvider_native_exports","__export","WalletProvider","defaultChains","import_walletConfig2","useSolanaWallet","useWeb3Config","import_walletConfig3","module","exports","__toCommonJS","import_jsx_runtime","require","import_react_query","import_react","import_react_native","import_react_native_webview","import_wagmi","import_BridgeClient","import_SolanaBridge","import_bridgeConnector","import_postMessageTransport","import_deepLink","import_inject","import_visibility","import_walletConfig","SolanaWalletContext","createContext","value","useContext","Error","defaultQueryClient","QueryClient","param","children","config","web3Config","queryClient","webViewSource","_web3Config_appUrl","webRef","useRef","readyRef","outboundQueue","visibility","dispatchVisibility","useReducer","nextVisibility","initialVisibility","publicKey","setPublicKey","useState","bridge","solana","transport","useMemo","t","createPostMessageTransport","raw","current","injectJavaScript","buildInjectScript","push","client","BridgeClient","SolanaBridge","useEffect","off","on","ns","method","params","_webRef_current","queued","splice","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","Symbol","iterator","_step","next","done","err","return","_ref","sub","AppState","addEventListener","state","request","catch","remove","handle","handle2","url","parseWalletReturn","Linking","event","getInitialURL","then","wagmiConfig","chains","resolveChains","transports","Object","fromEntries","map","chain","id","http","createConfig","connectors","createBridgeConnector","multiInjectedProviderDiscovery","enableTestnets","localnet","localnetRpcUrl","solanaValue","connected","onMessage","onMessage2","receive","nativeEvent","data","defaultWebViewUrl","Platform","OS","resolvedSource","uri","webViewUrl","jsx","Web3ConfigContext","Provider","WagmiProvider","QueryClientProvider","jsxs","View","style","sheetOpen","styles","visible","hidden","pointerEvents","WebView","ref","source","originWhitelist","javaScriptEnabled","domStorageEnabled","onShouldStartLoadWithRequest","req","shouldOpenExternally","openURL","injectedJavaScriptBeforeContentLoaded","buildConfigInjection","appUrl","webview","StyleSheet","create","position","width","height","top","left","opacity","absoluteFillObject","zIndex","flex","backgroundColor"],"sources":["../../../src/providers/WalletProvider.native.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,28 @@
1
1
  import { createContext, useContext } from "react";
2
- import { arbitrum, base, mainnet, optimism, polygon, sepolia } from "wagmi/chains";
2
+ import { arbitrum, base, hardhat, mainnet, optimism, polygon, sepolia } from "wagmi/chains";
3
3
  const defaultChains = [mainnet, polygon, optimism, arbitrum, base, sepolia];
4
+ function resolveChains(config) {
5
+ const {
6
+ chains = defaultChains,
7
+ enableTestnets = false,
8
+ localnet = false,
9
+ localnetRpcUrl
10
+ } = config;
11
+ let active = enableTestnets ? [...chains] : chains.filter(chain => !chain.testnet);
12
+ if (active.length === 0) active = [...chains];
13
+ if (localnet) {
14
+ const local = localnetRpcUrl ? {
15
+ ...hardhat,
16
+ rpcUrls: {
17
+ default: {
18
+ http: [localnetRpcUrl]
19
+ }
20
+ }
21
+ } : hardhat;
22
+ active = [local, ...active.filter(chain => chain.id !== hardhat.id)];
23
+ }
24
+ return active;
25
+ }
4
26
  const Web3ConfigContext = createContext(null);
5
27
  function useWeb3Config() {
6
28
  const config = useContext(Web3ConfigContext);
@@ -9,5 +31,5 @@ function useWeb3Config() {
9
31
  }
10
32
  return config;
11
33
  }
12
- export { Web3ConfigContext, defaultChains, useWeb3Config };
34
+ export { Web3ConfigContext, defaultChains, resolveChains, useWeb3Config };
13
35
  //# sourceMappingURL=walletConfig.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["createContext","useContext","arbitrum","base","mainnet","optimism","polygon","sepolia","defaultChains","Web3ConfigContext","useWeb3Config","config","Error"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,EAAeC,UAAA,QAAkB;AAE1C,SAASC,QAAA,EAAUC,IAAA,EAAMC,OAAA,EAASC,QAAA,EAAUC,OAAA,EAASC,OAAA,QAAe;AAQ7D,MAAMC,aAAA,GAA8C,CACzDJ,OAAA,EACAE,OAAA,EACAD,QAAA,EACAH,QAAA,EACAC,IAAA,EACAI,OAAA,CACF;AAkBO,MAAME,iBAAA,GAAoBT,aAAA,CAAiC,IAAI;AAE/D,SAASU,cAAA,EAA4B;EAC1C,MAAMC,MAAA,GAASV,UAAA,CAAWQ,iBAAiB;EAC3C,IAAI,CAACE,MAAA,EAAQ;IACX,MAAM,IAAIC,KAAA,CAAM,oDAAoD;EACtE;EACA,OAAOD,MAAA;AACT","ignoreList":[]}
1
+ {"version":3,"names":["createContext","useContext","arbitrum","base","hardhat","mainnet","optimism","polygon","sepolia","defaultChains","resolveChains","config","chains","enableTestnets","localnet","localnetRpcUrl","active","filter","chain","testnet","length","local","rpcUrls","default","http","id","Web3ConfigContext","useWeb3Config","Error"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,aAAA,EAAeC,UAAA,QAAkB;AAE1C,SAASC,QAAA,EAAUC,IAAA,EAAMC,OAAA,EAASC,OAAA,EAASC,QAAA,EAAUC,OAAA,EAASC,OAAA,QAAe;AAQtE,MAAMC,aAAA,GAA8C,CACzDJ,OAAA,EACAE,OAAA,EACAD,QAAA,EACAJ,QAAA,EACAC,IAAA,EACAK,OAAA,CACF;AAqCO,SAASE,cAAcC,MAAA,EAAkD;EAC9E,MAAM;IACJC,MAAA,GAASH,aAAA;IACTI,cAAA,GAAiB;IACjBC,QAAA,GAAW;IACXC;EACF,IAAIJ,MAAA;EACJ,IAAIK,MAAA,GAAkBH,cAAA,GAAiB,CAAC,GAAGD,MAAM,IAAIA,MAAA,CAAOK,MAAA,CAAQC,KAAA,IAAU,CAACA,KAAA,CAAMC,OAAO;EAC5F,IAAIH,MAAA,CAAOI,MAAA,KAAW,GAAGJ,MAAA,GAAS,CAAC,GAAGJ,MAAM;EAC5C,IAAIE,QAAA,EAAU;IACZ,MAAMO,KAAA,GAAeN,cAAA,GACjB;MAAE,GAAGX,OAAA;MAASkB,OAAA,EAAS;QAAEC,OAAA,EAAS;UAAEC,IAAA,EAAM,CAACT,cAAc;QAAE;MAAE;IAAE,IAC/DX,OAAA;IACJY,MAAA,GAAS,CAACK,KAAA,EAAO,GAAGL,MAAA,CAAOC,MAAA,CAAQC,KAAA,IAAUA,KAAA,CAAMO,EAAA,KAAOrB,OAAA,CAAQqB,EAAE,CAAC;EACvE;EACA,OAAOT,MAAA;AACT;AAEO,MAAMU,iBAAA,GAAoB1B,aAAA,CAAiC,IAAI;AAE/D,SAAS2B,cAAA,EAA4B;EAC1C,MAAMhB,MAAA,GAASV,UAAA,CAAWyB,iBAAiB;EAC3C,IAAI,CAACf,MAAA,EAAQ;IACX,MAAM,IAAIiB,KAAA,CAAM,oDAAoD;EACtE;EACA,OAAOjB,MAAA;AACT","ignoreList":[]}
@@ -26,12 +26,39 @@ var walletConfig_exports = {};
26
26
  __export(walletConfig_exports, {
27
27
  Web3ConfigContext: () => Web3ConfigContext,
28
28
  defaultChains: () => defaultChains,
29
+ resolveChains: () => resolveChains,
29
30
  useWeb3Config: () => useWeb3Config
30
31
  });
31
32
  module.exports = __toCommonJS(walletConfig_exports);
32
33
  var import_react = require("react");
33
34
  var import_chains = require("wagmi/chains");
34
35
  var defaultChains = [import_chains.mainnet, import_chains.polygon, import_chains.optimism, import_chains.arbitrum, import_chains.base, import_chains.sepolia];
36
+ function resolveChains(config) {
37
+ var {
38
+ chains = defaultChains,
39
+ enableTestnets = false,
40
+ localnet = false,
41
+ localnetRpcUrl
42
+ } = config;
43
+ var active = enableTestnets ? [...chains] : chains.filter(function (chain) {
44
+ return !chain.testnet;
45
+ });
46
+ if (active.length === 0) active = [...chains];
47
+ if (localnet) {
48
+ var local = localnetRpcUrl ? {
49
+ ...import_chains.hardhat,
50
+ rpcUrls: {
51
+ default: {
52
+ http: [localnetRpcUrl]
53
+ }
54
+ }
55
+ } : import_chains.hardhat;
56
+ active = [local, ...active.filter(function (chain) {
57
+ return chain.id !== import_chains.hardhat.id;
58
+ })];
59
+ }
60
+ return active;
61
+ }
35
62
  var Web3ConfigContext = (0, import_react.createContext)(null);
36
63
  function useWeb3Config() {
37
64
  var config = (0, import_react.useContext)(Web3ConfigContext);
@@ -1 +1 @@
1
- {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAET,IAAAA,SAAS,GAAAC,MAAU,CAAAC,cAAe;AAQ3B,IAAAC,gBAAM,GAA8CF,MAAA,CAAAG,wBAAA;AAAA,IACzDC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAEF,IAAAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAkBO,IAAMF,IAAA,WAAAA,IAAA,KAAoB,YAAiC,OAAIA,IAAA;IAE/D,KAAS,IAAAG,GAAA,IAAAhB,iBAA4B,CAAAa,IAAA,GAC1C,IAAM,CAAAX,YAAS,CAAAe,IAAW,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAiBF,MAAA,EACtCnB,SAAQ,CAAAiB,EAAA,EAAAI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EACX;EACF,OAAAE,EAAA;AACA;AACF,IAAAM,YAAA,GAAAC,GAAA,IAAAR,WAAA,CAAAhB,SAAA;EAAAyB,KAAA;AAAA,IAAAD,GAAA","ignoreList":[]}
1
+ {"version":3,"names":["__defProp","Object","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toCommonJS","mod","value","walletConfig_exports","Web3ConfigContext","defaultChains","resolveChains","useWeb3Config","module","exports","import_react","require","import_chains","mainnet","polygon","optimism","arbitrum"],"sources":["../../../src/providers/walletConfig.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AAET,IAAAA,SAAS,GAAAC,MAAU,CAAAC,cAAe;AAQ3B,IAAAC,gBAAM,GAA8CF,MAAA,CAAAG,wBAAA;AAAA,IACzDC,iBAAA,GAAAJ,MAAA,CAAAK,mBAAA;AAAA,IACAC,YAAA,GAAAN,MAAA,CAAAO,SAAA,CAAAC,cAAA;AAAA,IACAC,QAAA,GAAAA,CAAAC,MAAA,EAAAC,GAAA;EACA,SAAAC,IAAA,IAAAD,GAAA,EACAZ,SAAA,CAAAW,MAAA,EAAAE,IAAA;IAAAC,GAAA,EAAAF,GAAA,CAAAC,IAAA;IAAAE,UAAA;EAAA;AAAA;AAEF,IAAAC,WAAA,GAAAA,CAAAC,EAAA,EAAAC,IAAA,EAAAC,MAAA,EAAAC,IAAA;EAqCO,IAAAF,IAAS,WAAAA,IAAc,aAAkD,WAAAA,IAAA;IAC9E,KAAM,IAAAG,GAAA,IAAAhB,iBAAA,CAAAa,IAAA,GACJ,KAAAX,YAAS,CAAAe,IAAA,CAAAL,EAAA,EAAAI,GAAA,KAAAA,GAAA,KAAAF,MAAA,EACTnB,SAAA,CAAAiB,EAAA,EAAiBI,GAAA;MAAAP,GAAA,EAAAA,CAAA,KAAAI,IAAA,CAAAG,GAAA;MAAAN,UAAA,IAAAK,IAAA,GAAAjB,gBAAA,CAAAe,IAAA,EAAAG,GAAA,MAAAD,IAAA,CAAAL;IAAA;EAAA;EACN,OACXE,EAAA;AAAA;AAEF,IAAAM,YAAsB,GAAAC,GAAA,IAAAR,WAAqB,CAAAhB,SAAU,KAAO,YAAQ;EAAAyB,KAAW;AAAM,IAAOD,GAAA;AAC5F,IAAAE,oBAAsB,GAAG;AACzBhB,QAAI,CAAAgB,oBAAU;EACZC,iBAAqB,EAAAA,CAAA,KAAAA,iBACZ;EAETC,aAAU,EAAAA,CAAA,KAAOA,aAAU;EAC7BC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EACAC,aAAO,EAAAA,CAAA,KAAAA;AACT;AAEOC,MAAM,CAAAC,OAAA,GAAAT,YAAoB,CAAAG,oBAAqC;AAE/D,IAAAO,YAAS,GAAAC,OAA4B;AAC1C,IAAAC,aAAe,GAAAD,OAAA,CAAW;AAC1B,IAAAN,aAAa,IACXO,aAAU,CAAAC,OAAM,EAClBD,aAAA,CAAAE,OAAA,EACAF,aAAO,CAAAG,QAAA,EACTH,aAAA,CAAAI,QAAA,E","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { hardhat, mainnet, sepolia } from "wagmi/chains";
3
+ import { defaultChains, resolveChains } from "./walletConfig.mjs";
4
+ const base = {
5
+ walletConnectProjectId: "",
6
+ appName: "test"
7
+ };
8
+ describe("resolveChains", () => {
9
+ it("filters testnets by default", () => {
10
+ const chains = resolveChains(base);
11
+ expect(chains.map(c => c.id)).not.toContain(sepolia.id);
12
+ expect(chains[0].id).toBe(mainnet.id);
13
+ });
14
+ it("keeps testnets when enableTestnets is on", () => {
15
+ const chains = resolveChains({
16
+ ...base,
17
+ enableTestnets: true
18
+ });
19
+ expect(chains.map(c => c.id)).toContain(sepolia.id);
20
+ expect(chains).toHaveLength(defaultChains.length);
21
+ });
22
+ it("prepends the hardhat dev chain as the default when localnet is on", () => {
23
+ const chains = resolveChains({
24
+ ...base,
25
+ localnet: true
26
+ });
27
+ expect(chains[0].id).toBe(hardhat.id);
28
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://127.0.0.1:8545");
29
+ expect(chains.filter(c => c.id === hardhat.id)).toHaveLength(1);
30
+ expect(chains.map(c => c.id)).toContain(mainnet.id);
31
+ });
32
+ it("honours a custom localnet RPC url (emulator host addresses)", () => {
33
+ const chains = resolveChains({
34
+ ...base,
35
+ localnet: true,
36
+ localnetRpcUrl: "http://10.0.2.2:8545"
37
+ });
38
+ expect(chains[0].id).toBe(hardhat.id);
39
+ expect(chains[0].rpcUrls.default.http[0]).toBe("http://10.0.2.2:8545");
40
+ });
41
+ it("does not add the dev chain when localnet is off", () => {
42
+ expect(resolveChains(base).map(c => c.id)).not.toContain(hardhat.id);
43
+ });
44
+ });
45
+ //# sourceMappingURL=walletConfig.spec.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","hardhat","mainnet","sepolia","defaultChains","resolveChains","base","walletConnectProjectId","appName","chains","map","c","id","not","toContain","toBe","enableTestnets","toHaveLength","length","localnet","rpcUrls","default","http","filter","localnetRpcUrl"],"sources":["../../../src/providers/walletConfig.spec.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAA,EAAUC,MAAA,EAAQC,EAAA,QAAU;AACrC,SAASC,OAAA,EAASC,OAAA,EAASC,OAAA,QAAe;AAC1C,SAASC,aAAA,EAAeC,aAAA,QAAsC;AAE9D,MAAMC,IAAA,GAAmB;EAAEC,sBAAA,EAAwB;EAAIC,OAAA,EAAS;AAAO;AAEvEV,QAAA,CAAS,iBAAiB,MAAM;EAC9BE,EAAA,CAAG,+BAA+B,MAAM;IACtC,MAAMS,MAAA,GAASJ,aAAA,CAAcC,IAAI;IACjCP,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEC,GAAA,CAAIC,SAAA,CAAUX,OAAA,CAAQS,EAAE;IACxDb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKb,OAAA,CAAQU,EAAE;EACtC,CAAC;EAEDZ,EAAA,CAAG,4CAA4C,MAAM;IACnD,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAAE,GAAGC,IAAA;MAAMU,cAAA,EAAgB;IAAK,CAAC;IAC9DjB,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEE,SAAA,CAAUX,OAAA,CAAQS,EAAE;IACpDb,MAAA,CAAOU,MAAM,EAAEQ,YAAA,CAAab,aAAA,CAAcc,MAAM;EAClD,CAAC;EAEDlB,EAAA,CAAG,qEAAqE,MAAM;IAC5E,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAAE,GAAGC,IAAA;MAAMa,QAAA,EAAU;IAAK,CAAC;IACxDpB,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKd,OAAA,CAAQW,EAAE;IACpCb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEW,OAAA,CAAQC,OAAA,CAAQC,IAAA,CAAK,CAAC,CAAC,EAAEP,IAAA,CAAK,uBAAuB;IAEtEhB,MAAA,CAAOU,MAAA,CAAOc,MAAA,CAAQZ,CAAA,IAAMA,CAAA,CAAEC,EAAA,KAAOX,OAAA,CAAQW,EAAE,CAAC,EAAEK,YAAA,CAAa,CAAC;IAChElB,MAAA,CAAOU,MAAA,CAAOC,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEE,SAAA,CAAUZ,OAAA,CAAQU,EAAE;EACtD,CAAC;EAEDZ,EAAA,CAAG,+DAA+D,MAAM;IACtE,MAAMS,MAAA,GAASJ,aAAA,CAAc;MAC3B,GAAGC,IAAA;MACHa,QAAA,EAAU;MACVK,cAAA,EAAgB;IAClB,CAAC;IACDzB,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEG,EAAE,EAAEG,IAAA,CAAKd,OAAA,CAAQW,EAAE;IACpCb,MAAA,CAAOU,MAAA,CAAO,CAAC,EAAEW,OAAA,CAAQC,OAAA,CAAQC,IAAA,CAAK,CAAC,CAAC,EAAEP,IAAA,CAAK,sBAAsB;EACvE,CAAC;EAEDf,EAAA,CAAG,mDAAmD,MAAM;IAC1DD,MAAA,CAAOM,aAAA,CAAcC,IAAI,EAAEI,GAAA,CAAKC,CAAA,IAAMA,CAAA,CAAEC,EAAE,CAAC,EAAEC,GAAA,CAAIC,SAAA,CAAUb,OAAA,CAAQW,EAAE;EACvE,CAAC;AACH,CAAC","ignoreList":[]}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest");
4
+ var import_chains = require("wagmi/chains");
5
+ var import_walletConfig = require("./walletConfig.native.js");
6
+ var base = {
7
+ walletConnectProjectId: "",
8
+ appName: "test"
9
+ };
10
+ (0, import_vitest.describe)("resolveChains", function () {
11
+ (0, import_vitest.it)("filters testnets by default", function () {
12
+ var chains = (0, import_walletConfig.resolveChains)(base);
13
+ (0, import_vitest.expect)(chains.map(function (c) {
14
+ return c.id;
15
+ })).not.toContain(import_chains.sepolia.id);
16
+ (0, import_vitest.expect)(chains[0].id).toBe(import_chains.mainnet.id);
17
+ });
18
+ (0, import_vitest.it)("keeps testnets when enableTestnets is on", function () {
19
+ var chains = (0, import_walletConfig.resolveChains)({
20
+ ...base,
21
+ enableTestnets: true
22
+ });
23
+ (0, import_vitest.expect)(chains.map(function (c) {
24
+ return c.id;
25
+ })).toContain(import_chains.sepolia.id);
26
+ (0, import_vitest.expect)(chains).toHaveLength(import_walletConfig.defaultChains.length);
27
+ });
28
+ (0, import_vitest.it)("prepends the hardhat dev chain as the default when localnet is on", function () {
29
+ var chains = (0, import_walletConfig.resolveChains)({
30
+ ...base,
31
+ localnet: true
32
+ });
33
+ (0, import_vitest.expect)(chains[0].id).toBe(import_chains.hardhat.id);
34
+ (0, import_vitest.expect)(chains[0].rpcUrls.default.http[0]).toBe("http://127.0.0.1:8545");
35
+ (0, import_vitest.expect)(chains.filter(function (c) {
36
+ return c.id === import_chains.hardhat.id;
37
+ })).toHaveLength(1);
38
+ (0, import_vitest.expect)(chains.map(function (c) {
39
+ return c.id;
40
+ })).toContain(import_chains.mainnet.id);
41
+ });
42
+ (0, import_vitest.it)("honours a custom localnet RPC url (emulator host addresses)", function () {
43
+ var chains = (0, import_walletConfig.resolveChains)({
44
+ ...base,
45
+ localnet: true,
46
+ localnetRpcUrl: "http://10.0.2.2:8545"
47
+ });
48
+ (0, import_vitest.expect)(chains[0].id).toBe(import_chains.hardhat.id);
49
+ (0, import_vitest.expect)(chains[0].rpcUrls.default.http[0]).toBe("http://10.0.2.2:8545");
50
+ });
51
+ (0, import_vitest.it)("does not add the dev chain when localnet is off", function () {
52
+ (0, import_vitest.expect)((0, import_walletConfig.resolveChains)(base).map(function (c) {
53
+ return c.id;
54
+ })).not.toContain(import_chains.hardhat.id);
55
+ });
56
+ });
57
+ //# sourceMappingURL=walletConfig.spec.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_chains","import_walletConfig","base","walletConnectProjectId","appName","describe","it","chains","resolveChains","expect","map","c","id","not","toContain","sepolia","toBe","mainnet","enableTestnets","toHaveLength","defaultChains","length","localnet","hardhat","rpcUrls","default","http","filter"],"sources":["../../../src/providers/walletConfig.spec.ts"],"sourcesContent":[null],"mappings":"AAAA,YAAS;;AACT,IAAAA,aAAS,GAASC,OAAS;AAC3B,IAAAC,aAAS,GAAAD,OAAe;AAExB,IAAAE,mBAA2B,GAAAF,OAAA,2BAA4B;AAEvD,IAAAG,IAAA,GAAS;EACPC,sBAAG;EACDC,OAAA,EAAM;AACN;AACA,IAAAN,aAAO,CAAOO,QAAO,iBAAe;EACtC,CAAC,GAAAP,aAAA,CAAAQ,EAAA;IAED,IAAGC,MAAA,OAAAN,mBAAA,CAAAO,aAA4C,EAAMN,IAAA;IACnD,IAAAJ,aAAe,CAAAW,MAAA,EAAAF,MAAgB,CAAAG,GAAG,WAAMC,CAAA;MACxC,OAAOA,CAAA,CAAAC,EAAA;IACP,IAAAC,GAAO,CAAAC,SAAQ,CAAAd,aAAa,CAAAe,OAAA,CAAAH,EAAc;IAC3C,IAAAd,aAAA,CAAAW,MAAA,EAAAF,MAAA,IAAAK,EAAA,EAAAI,IAAA,CAAAhB,aAAA,CAAAiB,OAAA,CAAAL,EAAA;EAED;EACE,IAAAd,aAAe,CAAAQ,EAAA,4CAAyC;IACxD,IAAAC,MAAO,IAAO,CAAC,EAAEN,mBAAmB,CAAAO,aAAA;MACpC,GAAAN,IAAO;MAEPgB,cAAc;IACd;IACD,IAAApB,aAAA,CAAAW,MAAA,EAAAF,MAAA,CAAAG,GAAA,WAAAC,CAAA;MAEE,OAAAA,CAAA,CAAAC,EAAA;IACD,IAAAE,SAAM,CAAAd,aAAS,CAAAe,OAAc,CAAAH,EAAA;IAAA,EAC3B,EAAAd,aAAG,CAAAW,MAAA,EAAAF,MAAA,EAAAY,YAAA,CAAAlB,mBAAA,CAAAmB,aAAA,CAAAC,MAAA;EAAA;EACO,IACVvB,aAAA,CAAAQ,EAAgB;IAClB,IAACC,MAAA,OAAAN,mBAAA,CAAAO,aAAA;MACD,GAAAN,IAAO;MACPoB,QAAO;IACR;IAED,CAAG,GAAAxB,aAAA,CAAAW,MAAA,EAAAF,MAAA,IAAAK,EAAA,EAAAI,IAAA,CAAAhB,aAAyD,CAAAuB,OAAA,CAAAX,EAAA;IAC1D,IAAAd,aAAO,CAAAW,MAAc,EAAIF,MAAO,IAAAiB,OAAW,CAAAC,OAAM,CAAAC,IAAA,GAAU,EAAAV,IAAA,wBAAU;IACtE,IAAAlB,aAAA,CAAAW,MAAA,EAAAF,MAAA,CAAAoB,MAAA,WAAAhB,CAAA;MACF,OAAAA,CAAA,CAAAC,EAAA,KAAAZ,aAAA,CAAAuB,OAAA,CAAAX,EAAA","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@multiplatform.one/web3",
3
- "version": "6.0.4",
3
+ "version": "6.1.0",
4
4
  "description": "Web3 wallet integration for multiplatform.one ecosystem with ConnectKit and wagmi",
5
5
  "keywords": [
6
6
  "connectkit",
@@ -79,8 +79,8 @@
79
79
  "tamagui": "2.0.0-rc.41",
80
80
  "viem": "^2.48.7",
81
81
  "wagmi": "^3.6.9",
82
- "@multiplatform.one/connectkit": "6.0.4",
83
- "@multiplatform.one/gpg": "6.0.4"
82
+ "@multiplatform.one/connectkit": "6.1.0",
83
+ "@multiplatform.one/gpg": "6.1.0"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@tamagui/build": "2.0.0-rc.41",
@@ -97,7 +97,7 @@
97
97
  "vite": "^8.0.10",
98
98
  "vite-plugin-singlefile": "^2.3.3",
99
99
  "vitest": "^4.1.5",
100
- "@multiplatform.one/config": "6.0.4"
100
+ "@multiplatform.one/config": "6.1.0"
101
101
  },
102
102
  "peerDependencies": {
103
103
  "@tanstack/react-query": "^5.62.0",
@@ -1,7 +1,7 @@
1
1
  import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
2
2
  import type { PropsWithChildren } from "react";
3
3
  import { createContext, useContext, useEffect, useMemo, useReducer, useRef, useState } from "react";
4
- import { AppState, Linking, StyleSheet, View } from "react-native";
4
+ import { AppState, Linking, Platform, StyleSheet, View } from "react-native";
5
5
  import { WebView, type WebViewMessageEvent, type WebViewProps } from "react-native-webview";
6
6
  import { http, WagmiProvider, createConfig } from "wagmi";
7
7
  import { BridgeClient } from "../bridge/BridgeClient";
@@ -11,7 +11,7 @@ import { createPostMessageTransport } from "../bridge/postMessageTransport";
11
11
  import { parseWalletReturn, shouldOpenExternally } from "./native/deepLink";
12
12
  import { buildConfigInjection, buildInjectScript } from "./native/inject";
13
13
  import { initialVisibility, nextVisibility } from "./native/visibility";
14
- import { type Web3Config, Web3ConfigContext, defaultChains } from "./walletConfig";
14
+ import { type Web3Config, Web3ConfigContext, resolveChains } from "./walletConfig";
15
15
 
16
16
  type WebViewSource = NonNullable<WebViewProps["source"]>;
17
17
 
@@ -114,14 +114,25 @@ export function WalletProvider({
114
114
  }, [bridge]);
115
115
 
116
116
  const wagmiConfig = useMemo(() => {
117
- const transports = Object.fromEntries(defaultChains.map((chain) => [chain.id, http()]));
117
+ // Same chain resolution as web (testnet filter + optional localnet dev
118
+ // chain) -- on native, pass localnetRpcUrl with the host address the
119
+ // device/emulator can reach (e.g. http://10.0.2.2:8545 on Android).
120
+ const chains = resolveChains(web3Config);
121
+ const transports = Object.fromEntries(chains.map((chain) => [chain.id, http()]));
118
122
  return createConfig({
119
- chains: defaultChains,
123
+ chains,
120
124
  transports,
121
125
  connectors: [createBridgeConnector(bridge)],
122
126
  multiInjectedProviderDiscovery: false,
123
127
  });
124
- }, [bridge]);
128
+ // eslint-disable-next-line react-hooks/exhaustive-deps
129
+ }, [
130
+ bridge,
131
+ web3Config.chains,
132
+ web3Config.enableTestnets,
133
+ web3Config.localnet,
134
+ web3Config.localnetRpcUrl,
135
+ ]);
125
136
 
126
137
  const solanaValue = useMemo<SolanaWalletContextValue>(
127
138
  () => ({ bridge: solana, publicKey, connected: publicKey !== null }),
@@ -131,13 +142,12 @@ export function WalletProvider({
131
142
  const onMessage = (event: WebViewMessageEvent) => transport.receive(event.nativeEvent.data);
132
143
 
133
144
  // No inline HTML fallback: the bundle is too large for WKWebView source={{html}}.
134
- const resolvedSource =
135
- webViewSource ?? (web3Config.webViewUrl ? { uri: web3Config.webViewUrl } : null);
136
- if (!resolvedSource) {
137
- throw new Error(
138
- "WalletProvider (native): set config.webViewUrl (or pass webViewSource) to a served copy of @multiplatform.one/web3/assets/webview.html",
139
- );
140
- }
145
+ // Fall back to the documented dev setup (a static server on :8099 serving
146
+ // @multiplatform.one/web3/assets/webview.html; Android emulators reach the
147
+ // host at 10.0.2.2) instead of crashing the whole app shell when the config
148
+ // didn't carry a URL.
149
+ const defaultWebViewUrl = `http://${Platform.OS === "android" ? "10.0.2.2" : "localhost"}:8099/webview.html`;
150
+ const resolvedSource = webViewSource ?? { uri: web3Config.webViewUrl || defaultWebViewUrl };
141
151
 
142
152
  return (
143
153
  <Web3ConfigContext.Provider value={web3Config}>