@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.
- package/dist/cjs/providers/WalletProvider.cjs +7 -11
- package/dist/cjs/providers/WalletProvider.native.js +10 -9
- package/dist/cjs/providers/WalletProvider.native.js.map +1 -1
- package/dist/cjs/providers/walletConfig.cjs +23 -0
- package/dist/cjs/providers/walletConfig.native.js +27 -0
- package/dist/cjs/providers/walletConfig.native.js.map +1 -1
- package/dist/cjs/providers/walletConfig.spec.cjs +44 -0
- package/dist/cjs/providers/walletConfig.spec.native.js +57 -0
- package/dist/cjs/providers/walletConfig.spec.native.js.map +1 -0
- package/dist/esm/providers/WalletProvider.mjs +10 -14
- package/dist/esm/providers/WalletProvider.mjs.map +1 -1
- package/dist/esm/providers/WalletProvider.native.js +14 -13
- package/dist/esm/providers/WalletProvider.native.js.map +1 -1
- package/dist/esm/providers/walletConfig.mjs +24 -2
- package/dist/esm/providers/walletConfig.mjs.map +1 -1
- package/dist/esm/providers/walletConfig.native.js +28 -2
- package/dist/esm/providers/walletConfig.native.js.map +1 -1
- package/dist/esm/providers/walletConfig.spec.mjs +45 -0
- package/dist/esm/providers/walletConfig.spec.mjs.map +1 -0
- package/dist/esm/providers/walletConfig.spec.native.js +55 -0
- package/dist/esm/providers/walletConfig.spec.native.js.map +1 -0
- package/dist/jsx/providers/WalletProvider.mjs +10 -14
- package/dist/jsx/providers/WalletProvider.mjs.map +1 -1
- package/dist/jsx/providers/WalletProvider.native.js +10 -9
- package/dist/jsx/providers/WalletProvider.native.js.map +1 -1
- package/dist/jsx/providers/walletConfig.mjs +24 -2
- package/dist/jsx/providers/walletConfig.mjs.map +1 -1
- package/dist/jsx/providers/walletConfig.native.js +27 -0
- package/dist/jsx/providers/walletConfig.native.js.map +1 -1
- package/dist/jsx/providers/walletConfig.spec.mjs +45 -0
- package/dist/jsx/providers/walletConfig.spec.mjs.map +1 -0
- package/dist/jsx/providers/walletConfig.spec.native.js +57 -0
- package/dist/jsx/providers/walletConfig.spec.native.js.map +1 -0
- package/package.json +4 -4
- package/src/providers/WalletProvider.native.tsx +22 -12
- package/src/providers/WalletProvider.tsx +11 -12
- package/src/providers/walletConfig.spec.ts +42 -0
- 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,
|
|
8
|
-
import { defaultChains
|
|
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
|
|
24
|
+
chains,
|
|
25
25
|
enableTestnets = false,
|
|
26
|
+
localnet = false,
|
|
27
|
+
localnetRpcUrl,
|
|
26
28
|
mockWallet = false
|
|
27
29
|
} = web3Config;
|
|
28
|
-
const activeChains = useMemo(() =>
|
|
29
|
-
|
|
30
|
-
|
|
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,
|
|
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","
|
|
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
|
|
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
|
|
159
|
+
chains,
|
|
159
160
|
transports,
|
|
160
161
|
connectors: [(0, import_bridgeConnector.createBridgeConnector)(bridge)],
|
|
161
162
|
multiInjectedProviderDiscovery: false
|
|
162
163
|
});
|
|
163
|
-
},
|
|
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
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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","
|
|
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","
|
|
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;
|
|
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
|
|
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
|
|
83
|
-
"@multiplatform.one/gpg": "6.0
|
|
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
|
|
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,
|
|
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
|
-
|
|
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
|
|
123
|
+
chains,
|
|
120
124
|
transports,
|
|
121
125
|
connectors: [createBridgeConnector(bridge)],
|
|
122
126
|
multiInjectedProviderDiscovery: false,
|
|
123
127
|
});
|
|
124
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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}>
|