@nexus-cross/connect-kit-wagmi 1.0.0-beta.1
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/README.md +195 -0
- package/dist/adapters/helpers.d.ts +46 -0
- package/dist/adapters/helpers.d.ts.map +1 -0
- package/dist/adapters/helpers.js +124 -0
- package/dist/adapters/helpers.js.map +1 -0
- package/dist/adapters/reownAdapter.d.ts +20 -0
- package/dist/adapters/reownAdapter.d.ts.map +1 -0
- package/dist/adapters/reownAdapter.js +213 -0
- package/dist/adapters/reownAdapter.js.map +1 -0
- package/dist/adapters/toNexusAdapter.d.ts +12 -0
- package/dist/adapters/toNexusAdapter.d.ts.map +1 -0
- package/dist/adapters/toNexusAdapter.js +167 -0
- package/dist/adapters/toNexusAdapter.js.map +1 -0
- package/dist/adapters/types.d.ts +101 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +3 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/config/createCrossxConfig.d.ts +75 -0
- package/dist/config/createCrossxConfig.d.ts.map +1 -0
- package/dist/config/createCrossxConfig.js +77 -0
- package/dist/config/createCrossxConfig.js.map +1 -0
- package/dist/connectors/embeddedConnector.d.ts +30 -0
- package/dist/connectors/embeddedConnector.d.ts.map +1 -0
- package/dist/connectors/embeddedConnector.js +43 -0
- package/dist/connectors/embeddedConnector.js.map +1 -0
- package/dist/connectors/extensionConnector.d.ts +7 -0
- package/dist/connectors/extensionConnector.d.ts.map +1 -0
- package/dist/connectors/extensionConnector.js +60 -0
- package/dist/connectors/extensionConnector.js.map +1 -0
- package/dist/connectors/walletConnectConnector.d.ts +19 -0
- package/dist/connectors/walletConnectConnector.d.ts.map +1 -0
- package/dist/connectors/walletConnectConnector.js +33 -0
- package/dist/connectors/walletConnectConnector.js.map +1 -0
- package/dist/embedded.d.ts +19 -0
- package/dist/embedded.d.ts.map +1 -0
- package/dist/embedded.js +18 -0
- package/dist/embedded.js.map +1 -0
- package/dist/events.d.ts +11 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +17 -0
- package/dist/events.js.map +1 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/registry/ConnectorRegistry.d.ts +68 -0
- package/dist/registry/ConnectorRegistry.d.ts.map +1 -0
- package/dist/registry/ConnectorRegistry.js +52 -0
- package/dist/registry/ConnectorRegistry.js.map +1 -0
- package/dist/reown.d.ts +3 -0
- package/dist/reown.d.ts.map +1 -0
- package/dist/reown.js +2 -0
- package/dist/reown.js.map +1 -0
- package/dist/ssr.d.ts +43 -0
- package/dist/ssr.d.ts.map +1 -0
- package/dist/ssr.js +50 -0
- package/dist/ssr.js.map +1 -0
- package/dist/to-nexus.d.ts +3 -0
- package/dist/to-nexus.d.ts.map +1 -0
- package/dist/to-nexus.js +2 -0
- package/dist/to-nexus.js.map +1 -0
- package/dist/utils/sessionStorage.d.ts +21 -0
- package/dist/utils/sessionStorage.d.ts.map +1 -0
- package/dist/utils/sessionStorage.js +55 -0
- package/dist/utils/sessionStorage.js.map +1 -0
- package/dist/utils/theme.d.ts +58 -0
- package/dist/utils/theme.d.ts.map +1 -0
- package/dist/utils/theme.js +112 -0
- package/dist/utils/theme.js.map +1 -0
- package/dist/wallets/detection.d.ts +28 -0
- package/dist/wallets/detection.d.ts.map +1 -0
- package/dist/wallets/detection.js +187 -0
- package/dist/wallets/detection.js.map +1 -0
- package/dist/wallets/icons.d.ts +20 -0
- package/dist/wallets/icons.d.ts.map +1 -0
- package/dist/wallets/icons.js +33 -0
- package/dist/wallets/icons.js.map +1 -0
- package/dist/wallets/registry.d.ts +3 -0
- package/dist/wallets/registry.d.ts.map +1 -0
- package/dist/wallets/registry.js +33 -0
- package/dist/wallets/registry.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { WagmiAdapter } from '@to-nexus/appkit-adapter-wagmi';
|
|
2
|
+
import { initCrossSdk, bscMainnet, bscTestnet, crossMainnet, crossTestnet, etherMainnet, etherTestnet, kaiaMainnet, kaiaTestnet, roninMainnet, roninTestnet, } from '@to-nexus/sdk';
|
|
3
|
+
import { crossExtensionEntry, crossWalletEntry, } from './helpers.js';
|
|
4
|
+
/**
|
|
5
|
+
* EIP-155 chain ID → preset CaipNetwork from `@to-nexus/sdk`. The
|
|
6
|
+
* CROSS-relay walletConnect requires these typed objects; DApps needing
|
|
7
|
+
* custom chains should use `reownAdapter` instead.
|
|
8
|
+
*/
|
|
9
|
+
const PRESET_NETWORKS_BY_CHAIN_ID = new Map([
|
|
10
|
+
[crossMainnet.id, crossMainnet],
|
|
11
|
+
[crossTestnet.id, crossTestnet],
|
|
12
|
+
[bscMainnet.id, bscMainnet],
|
|
13
|
+
[bscTestnet.id, bscTestnet],
|
|
14
|
+
[kaiaMainnet.id, kaiaMainnet],
|
|
15
|
+
[kaiaTestnet.id, kaiaTestnet],
|
|
16
|
+
[etherMainnet.id, etherMainnet],
|
|
17
|
+
[etherTestnet.id, etherTestnet],
|
|
18
|
+
[roninMainnet.id, roninMainnet],
|
|
19
|
+
[roninTestnet.id, roninTestnet],
|
|
20
|
+
]);
|
|
21
|
+
/**
|
|
22
|
+
* WagmiAdapter + AppKit are global singletons keyed by projectId. A
|
|
23
|
+
* second call with the same projectId reuses the cached config to stay
|
|
24
|
+
* StrictMode / HMR safe.
|
|
25
|
+
*/
|
|
26
|
+
const bootstrapCache = new Map();
|
|
27
|
+
function resolvePresetNetworks(kitNetworks) {
|
|
28
|
+
const result = [];
|
|
29
|
+
const unsupported = [];
|
|
30
|
+
for (const net of kitNetworks) {
|
|
31
|
+
const preset = PRESET_NETWORKS_BY_CHAIN_ID.get(net.id);
|
|
32
|
+
if (preset)
|
|
33
|
+
result.push(preset);
|
|
34
|
+
else
|
|
35
|
+
unsupported.push(net.id);
|
|
36
|
+
}
|
|
37
|
+
if (unsupported.length) {
|
|
38
|
+
throw new Error(`[crossx-kit] toNexusAdapter: chain IDs [${unsupported.join(', ')}] are ` +
|
|
39
|
+
'not supported by @to-nexus/sdk presets. Either remove them from ' +
|
|
40
|
+
'CrossConnectKitConfig.networks or switch to reownAdapter().');
|
|
41
|
+
}
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
function bootstrapOnce(input) {
|
|
45
|
+
const { kitConfig, extraConnectors } = input;
|
|
46
|
+
const projectId = kitConfig.crossProjectId;
|
|
47
|
+
const existing = bootstrapCache.get(projectId);
|
|
48
|
+
if (existing)
|
|
49
|
+
return existing;
|
|
50
|
+
const caipNetworks = resolvePresetNetworks(kitConfig.networks);
|
|
51
|
+
const connectors = extraConnectors.map((e) => e.connector);
|
|
52
|
+
// WagmiAdapter builds its own wagmi config from these params and
|
|
53
|
+
// internally appends crossExtensionConnector. AppKit later (inside
|
|
54
|
+
// initCrossSdk) calls addWagmiConnectors which pushes walletConnect
|
|
55
|
+
// (CROSS relay via UniversalConnector), injected (MetaMask), and
|
|
56
|
+
// authConnector (email/social) into the same config.
|
|
57
|
+
const wagmiAdapter = new WagmiAdapter({
|
|
58
|
+
projectId,
|
|
59
|
+
networks: caipNetworks,
|
|
60
|
+
connectors,
|
|
61
|
+
ssr: kitConfig.ssr,
|
|
62
|
+
});
|
|
63
|
+
const metadata = {
|
|
64
|
+
name: kitConfig.appMetadata.name,
|
|
65
|
+
description: kitConfig.appMetadata.description ?? '',
|
|
66
|
+
url: kitConfig.appMetadata.url,
|
|
67
|
+
icons: kitConfig.appMetadata.icons ?? [],
|
|
68
|
+
};
|
|
69
|
+
const appKit = initCrossSdk(projectId, kitConfig.appMetadata.url, metadata, undefined, caipNetworks[0], [wagmiAdapter]);
|
|
70
|
+
const wagmiConfig = wagmiAdapter.wagmiConfig;
|
|
71
|
+
const entry = { appKit, wagmiConfig, caipNetworks };
|
|
72
|
+
bootstrapCache.set(projectId, entry);
|
|
73
|
+
return entry;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Adapter backed by `@to-nexus/appkit-adapter-wagmi` — the CROSS-relay
|
|
77
|
+
* fork of Reown AppKit. Owns the wagmi `Config` so AppKit's native UI
|
|
78
|
+
* (QR modal, deep-link, Cross Extension approval flow) stays in sync
|
|
79
|
+
* with the kit's `useAccount` / `useConnect` state.
|
|
80
|
+
*/
|
|
81
|
+
export function toNexusAdapter(options = {}) {
|
|
82
|
+
const crossWalletName = options.displayName ?? 'CROSSx Wallet';
|
|
83
|
+
return {
|
|
84
|
+
providerKind: 'to-nexus',
|
|
85
|
+
buildWagmiConfig(input) {
|
|
86
|
+
if (!input.kitConfig.crossProjectId) {
|
|
87
|
+
throw new Error('[crossx-kit] toNexusAdapter requires CrossConnectKitConfig.crossProjectId');
|
|
88
|
+
}
|
|
89
|
+
const { wagmiConfig } = bootstrapOnce(input);
|
|
90
|
+
// Cross-side only owns CROSSx wallets. MetaMask / Binance live on
|
|
91
|
+
// the reown side (separate wagmi config) so they can talk to the
|
|
92
|
+
// standard Reown relay — the CROSS relay WagmiAdapter uses is not
|
|
93
|
+
// reachable by those wallets.
|
|
94
|
+
const registryEntries = [
|
|
95
|
+
...input.extraConnectors
|
|
96
|
+
.map((e) => e.registryEntry)
|
|
97
|
+
.filter((e) => e !== null),
|
|
98
|
+
crossWalletEntry(crossWalletName, 'walletConnect'),
|
|
99
|
+
crossExtensionEntry(),
|
|
100
|
+
];
|
|
101
|
+
return { wagmiConfig, registryEntries };
|
|
102
|
+
},
|
|
103
|
+
async teardown() {
|
|
104
|
+
// wagmi's disconnect tears down the session through the connector.
|
|
105
|
+
// AppKit singleton is intentionally preserved for reuse.
|
|
106
|
+
},
|
|
107
|
+
subscribeModalState({ kitConfig }, callback) {
|
|
108
|
+
if (!kitConfig.crossProjectId)
|
|
109
|
+
return () => { };
|
|
110
|
+
const entry = bootstrapCache.get(kitConfig.crossProjectId);
|
|
111
|
+
const subscribe = entry?.appKit.subscribeState;
|
|
112
|
+
if (!subscribe)
|
|
113
|
+
return () => { };
|
|
114
|
+
let lastOpen;
|
|
115
|
+
return subscribe((state) => {
|
|
116
|
+
const next = state.open === true;
|
|
117
|
+
if (next !== lastOpen) {
|
|
118
|
+
lastOpen = next;
|
|
119
|
+
callback(next);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
closeModal({ kitConfig }) {
|
|
124
|
+
if (!kitConfig.crossProjectId)
|
|
125
|
+
return;
|
|
126
|
+
const entry = bootstrapCache.get(kitConfig.crossProjectId);
|
|
127
|
+
if (!entry)
|
|
128
|
+
return;
|
|
129
|
+
const close = entry.appKit.close;
|
|
130
|
+
if (typeof close !== 'function')
|
|
131
|
+
return;
|
|
132
|
+
try {
|
|
133
|
+
const result = close.call(entry.appKit);
|
|
134
|
+
if (result && typeof result.then === 'function') {
|
|
135
|
+
result.catch(() => { });
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
/* best-effort; modal already closed is fine */
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
beforeConnect({ kitConfig }, walletId) {
|
|
143
|
+
// AppKit owns the QR UI for cross_wallet. Other wallets have their
|
|
144
|
+
// own native surfaces (extension popup, wallet-native QR).
|
|
145
|
+
if (walletId !== 'cross_wallet')
|
|
146
|
+
return 'defer';
|
|
147
|
+
if (!kitConfig.crossProjectId)
|
|
148
|
+
return 'defer';
|
|
149
|
+
const entry = bootstrapCache.get(kitConfig.crossProjectId);
|
|
150
|
+
if (!entry)
|
|
151
|
+
return 'defer';
|
|
152
|
+
// Open AppKit directly on the QR view so the user is not sent
|
|
153
|
+
// back through AppKit's wallet picker. The view subscribes to the
|
|
154
|
+
// UniversalProvider singleton, so `display_uri` emitted by the
|
|
155
|
+
// wagmi connector reaches the modal without additional wiring.
|
|
156
|
+
entry.appKit
|
|
157
|
+
.open({ view: 'ConnectingWalletConnectBasic' })
|
|
158
|
+
.catch((err) => {
|
|
159
|
+
if (typeof console !== 'undefined') {
|
|
160
|
+
console.warn('[crossx-kit] toNexusAdapter: appKit.open failed', err);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return 'defer';
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=toNexusAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toNexusAdapter.js","sourceRoot":"","sources":["../../src/adapters/toNexusAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import type { Config, CreateConnectorFn } from 'wagmi';
|
|
2
|
+
import type { CrossConnectKitConfig, WalletId } from '@nexus-cross/connect-kit-core';
|
|
3
|
+
import type { ConnectorEntry } from '../registry/ConnectorRegistry.js';
|
|
4
|
+
/**
|
|
5
|
+
* Identifies which SDK stack provides the `cross_wallet` connection.
|
|
6
|
+
*
|
|
7
|
+
* - `'to-nexus'` — @to-nexus/appkit-adapter-wagmi (CROSS relay server)
|
|
8
|
+
* - `'reown'` — standard wagmi walletConnect (Reown relay)
|
|
9
|
+
*/
|
|
10
|
+
export type CrossWalletProviderKind = 'to-nexus' | 'reown';
|
|
11
|
+
/**
|
|
12
|
+
* Optional connector + registry entry pair passed into the adapter.
|
|
13
|
+
* Used by `createCrossxConfig` to contribute app-level connectors the
|
|
14
|
+
* adapter cannot produce itself — notably the embedded wallet.
|
|
15
|
+
*/
|
|
16
|
+
export interface ExtraConnector {
|
|
17
|
+
readonly connector: CreateConnectorFn;
|
|
18
|
+
/**
|
|
19
|
+
* Registry entry for this connector, or `null` when the connector is
|
|
20
|
+
* transport-only (e.g. a standard WalletConnect relay that Binance /
|
|
21
|
+
* MetaMask Mobile fall back to — the user never sees it as its own
|
|
22
|
+
* wallet row, they just see "Binance Wallet" / "MetaMask").
|
|
23
|
+
*/
|
|
24
|
+
readonly registryEntry: ConnectorEntry | null;
|
|
25
|
+
}
|
|
26
|
+
export interface BuildWagmiConfigInput {
|
|
27
|
+
readonly kitConfig: CrossConnectKitConfig;
|
|
28
|
+
readonly extraConnectors: readonly ExtraConnector[];
|
|
29
|
+
}
|
|
30
|
+
export interface BuildWagmiConfigOutput {
|
|
31
|
+
readonly wagmiConfig: Config;
|
|
32
|
+
/**
|
|
33
|
+
* Registry entries covering every wallet the DApp should be able to
|
|
34
|
+
* select — contributed connectors plus whatever the adapter's library
|
|
35
|
+
* adds internally (e.g. WagmiAdapter auto-adds crossExtension and
|
|
36
|
+
* walletConnect). Adapter maps wagmi connector.id → WalletId.
|
|
37
|
+
*/
|
|
38
|
+
readonly registryEntries: readonly ConnectorEntry[];
|
|
39
|
+
}
|
|
40
|
+
export interface WalletConnectAdapterContext {
|
|
41
|
+
readonly kitConfig: CrossConnectKitConfig;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Pluggable owner of the wagmi `Config`. Each adapter integrates a
|
|
45
|
+
* specific `cross_wallet` library (CROSS relay via @to-nexus, or
|
|
46
|
+
* standard Reown relay) and produces the wagmi `Config` the kit's
|
|
47
|
+
* React provider will wrap. Because the adapter owns the config, state
|
|
48
|
+
* set by its library's native UI (AppKit modal, QR, etc.) is visible
|
|
49
|
+
* through the same wagmi hooks the DApp uses — no two-config split.
|
|
50
|
+
*
|
|
51
|
+
* Two built-in adapters ship as subpath imports:
|
|
52
|
+
* `@nexus-cross/connect-kit-wagmi/to-nexus` — default, posa-compatible
|
|
53
|
+
* `@nexus-cross/connect-kit-wagmi/reown` — fallback, no @to-nexus/* dependency
|
|
54
|
+
*/
|
|
55
|
+
export interface WalletConnectAdapter {
|
|
56
|
+
readonly providerKind: CrossWalletProviderKind;
|
|
57
|
+
/**
|
|
58
|
+
* Construct the wagmi config for this adapter. Called once by
|
|
59
|
+
* `createCrossxConfig`. `extraConnectors` are app-level connectors
|
|
60
|
+
* (e.g. embedded CROSSx wallet) the kit provides — the adapter must
|
|
61
|
+
* include them in the resulting wagmi config.
|
|
62
|
+
*/
|
|
63
|
+
buildWagmiConfig(input: BuildWagmiConfigInput): BuildWagmiConfigOutput;
|
|
64
|
+
/**
|
|
65
|
+
* Fire-and-forget hook invoked before wagmi's `connectAsync` for the
|
|
66
|
+
* given walletId. Use to open a library-native UI (AppKit QR modal,
|
|
67
|
+
* etc.) that listens for the connector's `display_uri` event.
|
|
68
|
+
*
|
|
69
|
+
* Return `'handled'` to skip wagmi connectAsync entirely, `'defer'`
|
|
70
|
+
* (or undefined) to proceed with the default flow.
|
|
71
|
+
*/
|
|
72
|
+
beforeConnect?(ctx: WalletConnectAdapterContext, walletId: WalletId): 'handled' | 'defer' | void | Promise<'handled' | 'defer' | void>;
|
|
73
|
+
/**
|
|
74
|
+
* Optional disconnect-time teardown for SDK-level session state
|
|
75
|
+
* wagmi's own disconnect does not reach.
|
|
76
|
+
*/
|
|
77
|
+
teardown?(ctx: WalletConnectAdapterContext): void | Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Subscribe to open/close events from the adapter's own modal (the
|
|
80
|
+
* library-native UI `beforeConnect` opens). Fires `true` when the
|
|
81
|
+
* modal becomes visible, `false` when it closes for any reason —
|
|
82
|
+
* including the user dismissing it without connecting. Returns an
|
|
83
|
+
* unsubscribe function.
|
|
84
|
+
*
|
|
85
|
+
* `CrossConnectKitProvider` uses this to detect user cancellation so it can
|
|
86
|
+
* clear `lastIntent`, force a clean wagmi disconnect (abort any
|
|
87
|
+
* dangling `connectAsync`), and reset the "Connecting…" UI.
|
|
88
|
+
*/
|
|
89
|
+
subscribeModalState?(ctx: WalletConnectAdapterContext, callback: (open: boolean) => void): () => void;
|
|
90
|
+
/**
|
|
91
|
+
* Programmatically close the adapter's native modal. Invoked by
|
|
92
|
+
* `CrossConnectKitProvider` when wagmi reports a successful connection —
|
|
93
|
+
* AppKit's QR-only views (e.g. `ConnectingWalletConnectBasic`) do not
|
|
94
|
+
* always auto-dismiss once a session is established, so the kit asks
|
|
95
|
+
* the adapter to close explicitly.
|
|
96
|
+
*/
|
|
97
|
+
closeModal?(ctx: WalletConnectAdapterContext): void;
|
|
98
|
+
}
|
|
99
|
+
/** WalletId handled by the walletConnect transport. */
|
|
100
|
+
export declare const ADAPTER_WALLET_ID: WalletId;
|
|
101
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,GAAG,OAAO,CAAC;AAE3D;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;CAC3C;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,uBAAuB,CAAC;IAE/C;;;;;OAKG;IACH,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAC;IAEvE;;;;;;;OAOG;IACH,aAAa,CAAC,CACZ,GAAG,EAAE,2BAA2B,EAChC,QAAQ,EAAE,QAAQ,GACjB,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,QAAQ,CAAC,CAAC,GAAG,EAAE,2BAA2B,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;;;;;;;;;OAUG;IACH,mBAAmB,CAAC,CAClB,GAAG,EAAE,2BAA2B,EAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,GAChC,MAAM,IAAI,CAAC;IAEd;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,GAAG,EAAE,2BAA2B,GAAG,IAAI,CAAC;CACrD;AAED,uDAAuD;AACvD,eAAO,MAAM,iBAAiB,EAAE,QAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAoHA,uDAAuD;AACvD,MAAM,CAAC,MAAM,iBAAiB,GAAa,cAAc,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { CrossConnectKitConfig, WalletId } from '@nexus-cross/connect-kit-core';
|
|
2
|
+
import type { Config, CreateConnectorFn } from 'wagmi';
|
|
3
|
+
import { type ConnectorRegistry, type ProviderKind } from '../registry/ConnectorRegistry.js';
|
|
4
|
+
import type { WalletConnectAdapter } from '../adapters/types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Signature of the embedded-connector factory. Imported from the subpath
|
|
7
|
+
* `@nexus-cross/connect-kit-wagmi/embedded` so the core entry stays SSR-safe (the
|
|
8
|
+
* underlying crossy-sdk-js touches indexedDB at module load).
|
|
9
|
+
*/
|
|
10
|
+
export type EmbeddedConnectorFactory = (kitConfig: CrossConnectKitConfig, openConnectOtherWallet?: () => void) => CreateConnectorFn | null;
|
|
11
|
+
export interface CreateCrossxConfigOptions extends CrossConnectKitConfig {
|
|
12
|
+
/**
|
|
13
|
+
* CROSSx-side adapter. Produces the wagmi `Config` that hosts
|
|
14
|
+
* `cross_embedded`, `cross_wallet`, `cross_extension`. Required
|
|
15
|
+
* unless `reownProvider` is set (a reown-only DApp is permitted).
|
|
16
|
+
*
|
|
17
|
+
* Import via `@nexus-cross/connect-kit-wagmi/to-nexus`.
|
|
18
|
+
*/
|
|
19
|
+
readonly crossProvider?: WalletConnectAdapter;
|
|
20
|
+
/**
|
|
21
|
+
* Reown-side adapter. Produces the wagmi `Config` that hosts
|
|
22
|
+
* `metamask`, `binance`. Optional — internal DApps that do not depend
|
|
23
|
+
* on Reown simply skip this and get a cross-only kit.
|
|
24
|
+
*
|
|
25
|
+
* Import via `@nexus-cross/connect-kit-wagmi/reown`.
|
|
26
|
+
*/
|
|
27
|
+
readonly reownProvider?: WalletConnectAdapter;
|
|
28
|
+
/**
|
|
29
|
+
* Factory for the embedded CROSSx wallet connector. Opt-in — import
|
|
30
|
+
* from `@nexus-cross/connect-kit-wagmi/embedded` in a client-only boundary.
|
|
31
|
+
* Attached to the cross-side config. Omit for SSR-only flows or
|
|
32
|
+
* reown-only DApps.
|
|
33
|
+
*/
|
|
34
|
+
readonly embeddedConnectorFactory?: EmbeddedConnectorFactory;
|
|
35
|
+
/**
|
|
36
|
+
* Per-wallet "Required Settings" guide URLs shown in the connect
|
|
37
|
+
* modal. Keys are walletIds, values are absolute or relative URLs.
|
|
38
|
+
*/
|
|
39
|
+
readonly walletGuides?: Partial<Record<WalletId, {
|
|
40
|
+
url: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
}>>;
|
|
43
|
+
/**
|
|
44
|
+
* Which side to show on first load when nothing is cached. Defaults
|
|
45
|
+
* to whichever side is configured; when both are, defaults to
|
|
46
|
+
* `'cross'`.
|
|
47
|
+
*/
|
|
48
|
+
readonly defaultProvider?: ProviderKind;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Dual wagmi config produced by `createCrossxConfig`. The React
|
|
52
|
+
* provider mounts exactly one `<WagmiProvider>` at a time — swapping
|
|
53
|
+
* between `crossWagmiConfig` and `reownWagmiConfig` via the
|
|
54
|
+
* `providerKind` of the wallet the user picks. Posa's proven pattern;
|
|
55
|
+
* each side keeps its own session, and the remount drops stale state
|
|
56
|
+
* cleanly when the user jumps between ecosystems.
|
|
57
|
+
*/
|
|
58
|
+
export interface CrossxConfig {
|
|
59
|
+
readonly kitConfig: CrossConnectKitConfig;
|
|
60
|
+
readonly crossWagmiConfig: Config | null;
|
|
61
|
+
readonly reownWagmiConfig: Config | null;
|
|
62
|
+
readonly connectorRegistry: ConnectorRegistry;
|
|
63
|
+
readonly crossProvider: WalletConnectAdapter | null;
|
|
64
|
+
readonly reownProvider: WalletConnectAdapter | null;
|
|
65
|
+
/** Initial active side before any user interaction. */
|
|
66
|
+
readonly defaultProvider: ProviderKind;
|
|
67
|
+
/**
|
|
68
|
+
* Preferred localStorage key the React provider uses to persist the
|
|
69
|
+
* active provider across reloads. Exposed so DApps can clear it
|
|
70
|
+
* (e.g. during full sign-out flows).
|
|
71
|
+
*/
|
|
72
|
+
readonly activeProviderStorageKey: string;
|
|
73
|
+
}
|
|
74
|
+
export declare function createCrossxConfig(options: CreateCrossxConfigOptions): CrossxConfig;
|
|
75
|
+
//# sourceMappingURL=createCrossxConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCrossxConfig.d.ts","sourceRoot":"","sources":["../../src/config/createCrossxConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACT,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAClB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAE9B;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CACrC,SAAS,EAAE,qBAAqB,EAChC,sBAAsB,CAAC,EAAE,MAAM,IAAI,KAChC,iBAAiB,GAAG,IAAI,CAAC;AAE9B,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACtE;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAE9C;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IAE9C;;;;;OAKG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IAE7D;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAC7B,MAAM,CAAC,QAAQ,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAClD,CAAC;IAEF;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,YAAY,CAAC;CACzC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpD,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,YAAY,CAAC;IACvC;;;;OAIG;IACH,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;CAC3C;AAID,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,YAAY,CA0Fd"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { fireOpenOtherWallets } from '../events.js';
|
|
2
|
+
import { createConnectorRegistry, } from '../registry/ConnectorRegistry.js';
|
|
3
|
+
import { CROSSX_ICON } from '../wallets/icons.js';
|
|
4
|
+
const DEFAULT_ACTIVE_PROVIDER_KEY = 'crossx-kit:active-provider';
|
|
5
|
+
export function createCrossxConfig(options) {
|
|
6
|
+
const { crossProvider, reownProvider, embeddedConnectorFactory, walletGuides, defaultProvider: defaultProviderOpt, ...kitConfig } = options;
|
|
7
|
+
if (!crossProvider && !reownProvider) {
|
|
8
|
+
throw new Error('[crossx-kit] createCrossxConfig requires at least one of ' +
|
|
9
|
+
'`crossProvider` (from @nexus-cross/connect-kit-wagmi/to-nexus) or ' +
|
|
10
|
+
'`reownProvider` (from @nexus-cross/connect-kit-wagmi/reown).');
|
|
11
|
+
}
|
|
12
|
+
// --- Cross side -------------------------------------------------------
|
|
13
|
+
let crossWagmiConfig = null;
|
|
14
|
+
const crossRegistry = [];
|
|
15
|
+
if (crossProvider) {
|
|
16
|
+
const crossExtras = [];
|
|
17
|
+
// Embedded connector belongs exclusively to the cross side — it's
|
|
18
|
+
// CROSSx's own OAuth/social-login wallet and has no meaning on the
|
|
19
|
+
// reown side.
|
|
20
|
+
const embedded = embeddedConnectorFactory
|
|
21
|
+
? embeddedConnectorFactory(kitConfig, fireOpenOtherWallets)
|
|
22
|
+
: null;
|
|
23
|
+
if (embedded) {
|
|
24
|
+
crossExtras.push({
|
|
25
|
+
connector: embedded,
|
|
26
|
+
registryEntry: {
|
|
27
|
+
walletId: 'cross_embedded',
|
|
28
|
+
providerKind: 'cross',
|
|
29
|
+
type: 'embedded',
|
|
30
|
+
connectorId: 'crossx',
|
|
31
|
+
name: 'CROSSx',
|
|
32
|
+
iconUrl: CROSSX_ICON,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const crossOut = crossProvider.buildWagmiConfig({
|
|
37
|
+
kitConfig,
|
|
38
|
+
extraConnectors: crossExtras,
|
|
39
|
+
});
|
|
40
|
+
crossWagmiConfig = crossOut.wagmiConfig;
|
|
41
|
+
crossRegistry.push(...crossOut.registryEntries);
|
|
42
|
+
}
|
|
43
|
+
// --- Reown side -------------------------------------------------------
|
|
44
|
+
let reownWagmiConfig = null;
|
|
45
|
+
const reownRegistry = [];
|
|
46
|
+
if (reownProvider) {
|
|
47
|
+
const reownOut = reownProvider.buildWagmiConfig({
|
|
48
|
+
kitConfig,
|
|
49
|
+
extraConnectors: [],
|
|
50
|
+
});
|
|
51
|
+
reownWagmiConfig = reownOut.wagmiConfig;
|
|
52
|
+
reownRegistry.push(...reownOut.registryEntries);
|
|
53
|
+
}
|
|
54
|
+
// --- Registry merge ---------------------------------------------------
|
|
55
|
+
// Order matches posa's ConnectWalletModal (CROSSx Wallet → Extension
|
|
56
|
+
// → MetaMask → Binance). Cross side first, Reown side after.
|
|
57
|
+
const rawEntries = [...crossRegistry, ...reownRegistry];
|
|
58
|
+
const decoratedEntries = walletGuides
|
|
59
|
+
? rawEntries.map((e) => {
|
|
60
|
+
const guide = walletGuides[e.walletId];
|
|
61
|
+
return guide ? { ...e, guideUrl: guide.url, guideLabel: guide.label } : e;
|
|
62
|
+
})
|
|
63
|
+
: rawEntries;
|
|
64
|
+
const connectorRegistry = createConnectorRegistry(decoratedEntries);
|
|
65
|
+
const defaultProvider = defaultProviderOpt ?? (crossWagmiConfig ? 'cross' : 'reown');
|
|
66
|
+
return {
|
|
67
|
+
kitConfig,
|
|
68
|
+
crossWagmiConfig,
|
|
69
|
+
reownWagmiConfig,
|
|
70
|
+
connectorRegistry,
|
|
71
|
+
crossProvider: crossProvider ?? null,
|
|
72
|
+
reownProvider: reownProvider ?? null,
|
|
73
|
+
defaultProvider,
|
|
74
|
+
activeProviderStorageKey: DEFAULT_ACTIVE_PROVIDER_KEY,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=createCrossxConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCrossxConfig.js","sourceRoot":"","sources":["../../src/config/createCrossxConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EACL,uBAAuB,GAIxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAoFlD,MAAM,2BAA2B,GAAG,4BAA4B,CAAC;AAEjE,MAAM,UAAU,kBAAkB,CAChC,OAAkC;IAElC,MAAM,EACJ,aAAa,EACb,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,eAAe,EAAE,kBAAkB,EACnC,GAAG,SAAS,EACb,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,2DAA2D;YACzD,oEAAoE;YACpE,8DAA8D,CACjE,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,GAAqB,EAAE,CAAC;QAEzC,kEAAkE;QAClE,mEAAmE;QACnE,cAAc;QACd,MAAM,QAAQ,GAAG,wBAAwB;YACvC,CAAC,CAAC,wBAAwB,CAAC,SAAS,EAAE,oBAAoB,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC;QACT,IAAI,QAAQ,EAAE,CAAC;YACb,WAAW,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,QAAQ;gBACnB,aAAa,EAAE;oBACb,QAAQ,EAAE,gBAAgB;oBAC1B,YAAY,EAAE,OAAO;oBACrB,IAAI,EAAE,UAAU;oBAChB,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,WAAW;iBACrB;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,CAAC;YAC9C,SAAS;YACT,eAAe,EAAE,WAAW;SAC7B,CAAC,CAAC;QACH,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAED,yEAAyE;IACzE,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,MAAM,aAAa,GAAqB,EAAE,CAAC;IAC3C,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,CAAC;YAC9C,SAAS;YACT,eAAe,EAAE,EAAE;SACpB,CAAC,CAAC;QACH,gBAAgB,GAAG,QAAQ,CAAC,WAAW,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClD,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,6DAA6D;IAC7D,MAAM,UAAU,GAAqB,CAAC,GAAG,aAAa,EAAE,GAAG,aAAa,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAqB,YAAY;QACrD,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC;QACJ,CAAC,CAAC,UAAU,CAAC;IAEf,MAAM,iBAAiB,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;IAEpE,MAAM,eAAe,GACnB,kBAAkB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE/D,OAAO;QACL,SAAS;QACT,gBAAgB;QAChB,gBAAgB;QAChB,iBAAiB;QACjB,aAAa,EAAE,aAAa,IAAI,IAAI;QACpC,aAAa,EAAE,aAAa,IAAI,IAAI;QACpC,eAAe;QACf,wBAAwB,EAAE,2BAA2B;KACtD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CreateConnectorFn } from 'wagmi';
|
|
2
|
+
import type { CrossConnectKitConfig, ThemeMode, ThemeTokens } from '@nexus-cross/connect-kit-core';
|
|
3
|
+
import { type SDKThemeTokensShape } from '../utils/theme.js';
|
|
4
|
+
export interface EmbeddedConnectorConfig {
|
|
5
|
+
projectId: string;
|
|
6
|
+
appName: string;
|
|
7
|
+
defaultChainId?: number;
|
|
8
|
+
openConnectOtherWallet?: () => void;
|
|
9
|
+
/** Forward to crossxConnector.theme ('light' | 'dark'). */
|
|
10
|
+
themeMode?: ThemeMode;
|
|
11
|
+
/**
|
|
12
|
+
* Explicit theme-token overrides for the embedded modal. When
|
|
13
|
+
* provided, wins over `inheritWalletInfoTheme`. Matches
|
|
14
|
+
* crossy-sdk's `SDKThemeTokens` shape 1:1.
|
|
15
|
+
*/
|
|
16
|
+
themeTokens?: ThemeTokens | SDKThemeTokensShape;
|
|
17
|
+
/**
|
|
18
|
+
* When true (and `themeTokens` is not set), read `--wi-*` CSS
|
|
19
|
+
* variables on `:root` and forward matching values as `themeTokens`.
|
|
20
|
+
*
|
|
21
|
+
* Defaults to `false` when a kit-level theme is in play (the
|
|
22
|
+
* `CrossConnectKitProvider` already emits the `--cck-*` namespace the
|
|
23
|
+
* SDK's `themeTokens` will mirror). Set to `true` explicitly to
|
|
24
|
+
* opt-in on top of a DApp that only theme-overrides via `--wi-*`.
|
|
25
|
+
*/
|
|
26
|
+
inheritWalletInfoTheme?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export declare function createEmbeddedConnector(config: EmbeddedConnectorConfig): CreateConnectorFn;
|
|
29
|
+
export declare function createEmbeddedConnectorFromKitConfig(kitConfig: CrossConnectKitConfig, openConnectOtherWallet?: () => void): CreateConnectorFn | null;
|
|
30
|
+
//# sourceMappingURL=embeddedConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddedConnector.d.ts","sourceRoot":"","sources":["../../src/connectors/embeddedConnector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EACV,qBAAqB,EACrB,SAAS,EACT,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IACpC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;;OAIG;IACH,WAAW,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAC;IAChD;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,GAC9B,iBAAiB,CAenB;AAED,wBAAgB,oCAAoC,CAClD,SAAS,EAAE,qBAAqB,EAChC,sBAAsB,CAAC,EAAE,MAAM,IAAI,GAClC,iBAAiB,GAAG,IAAI,CAuB1B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { crossxConnector } from '@nexus-cross/crossx-sdk-wagmi';
|
|
2
|
+
import { resolveThemeMode } from '@nexus-cross/connect-kit-core';
|
|
3
|
+
import { deriveSDKThemeTokensFromWalletInfo, } from '../utils/theme.js';
|
|
4
|
+
export function createEmbeddedConnector(config) {
|
|
5
|
+
const themeTokens = config.themeTokens ??
|
|
6
|
+
(config.inheritWalletInfoTheme
|
|
7
|
+
? deriveSDKThemeTokensFromWalletInfo(config.themeMode ?? 'dark')
|
|
8
|
+
: undefined);
|
|
9
|
+
return crossxConnector({
|
|
10
|
+
projectId: config.projectId,
|
|
11
|
+
appName: config.appName,
|
|
12
|
+
defaultChainId: config.defaultChainId,
|
|
13
|
+
openConnectOtherWallet: config.openConnectOtherWallet,
|
|
14
|
+
...(config.themeMode ? { theme: config.themeMode } : {}),
|
|
15
|
+
...(themeTokens ? { themeTokens } : {}),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
export function createEmbeddedConnectorFromKitConfig(kitConfig, openConnectOtherWallet) {
|
|
19
|
+
if (!kitConfig.crossProjectId)
|
|
20
|
+
return null;
|
|
21
|
+
// The crossxConnector factory eagerly touches indexedDB, which is absent
|
|
22
|
+
// on the server during Next.js SSR. Skip it there — the client boot re-
|
|
23
|
+
// creates the full connector list and wagmi reconciles via cookie state.
|
|
24
|
+
if (typeof window === 'undefined' || typeof indexedDB === 'undefined') {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const themeMode = resolveThemeMode(kitConfig.theme, kitConfig.autoDetectTheme);
|
|
28
|
+
return createEmbeddedConnector({
|
|
29
|
+
projectId: kitConfig.crossProjectId,
|
|
30
|
+
appName: kitConfig.appMetadata.name,
|
|
31
|
+
defaultChainId: kitConfig.defaultNetwork?.id ?? kitConfig.networks[0]?.id,
|
|
32
|
+
openConnectOtherWallet,
|
|
33
|
+
themeMode,
|
|
34
|
+
// When the DApp provides `themeTokens` on the kit config, prefer
|
|
35
|
+
// those values directly — they already capture the semantic palette
|
|
36
|
+
// the kit is using everywhere else. Otherwise fall back to reading
|
|
37
|
+
// `--wi-*` (legacy behavior) so older DApps that only customized
|
|
38
|
+
// WalletInfo still get a matching embedded modal.
|
|
39
|
+
themeTokens: kitConfig.themeTokens,
|
|
40
|
+
inheritWalletInfoTheme: !kitConfig.themeTokens,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=embeddedConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"embeddedConnector.js","sourceRoot":"","sources":["../../src/connectors/embeddedConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAOhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,kCAAkC,GAEnC,MAAM,mBAAmB,CAAC;AA2B3B,MAAM,UAAU,uBAAuB,CACrC,MAA+B;IAE/B,MAAM,WAAW,GACf,MAAM,CAAC,WAAW;QAClB,CAAC,MAAM,CAAC,sBAAsB;YAC5B,CAAC,CAAC,kCAAkC,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,OAAO,eAAe,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,SAAgC,EAChC,sBAAmC;IAEnC,IAAI,CAAC,SAAS,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IAC3C,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACtE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC/E,OAAO,uBAAuB,CAAC;QAC7B,SAAS,EAAE,SAAS,CAAC,cAAc;QACnC,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,IAAI;QACnC,cAAc,EAAE,SAAS,CAAC,cAAc,EAAE,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE;QACzE,sBAAsB;QACtB,SAAS;QACT,iEAAiE;QACjE,oEAAoE;QACpE,mEAAmE;QACnE,iEAAiE;QACjE,kDAAkD;QAClD,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,sBAAsB,EAAE,CAAC,SAAS,CAAC,WAAW;KAC/C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CreateConnectorFn } from 'wagmi';
|
|
2
|
+
/**
|
|
3
|
+
* wagmi connector for CROSSx browser extension.
|
|
4
|
+
* Uses the injected connector with a target that probes window.crossWallet.
|
|
5
|
+
*/
|
|
6
|
+
export declare function crossExtensionConnector(): CreateConnectorFn;
|
|
7
|
+
//# sourceMappingURL=extensionConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensionConnector.d.ts","sourceRoot":"","sources":["../../src/connectors/extensionConnector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAuB/C;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,iBAAiB,CAkC3D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { injected } from 'wagmi/connectors';
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
3
|
+
function detectCrossExtensionProvider() {
|
|
4
|
+
if (typeof window === 'undefined')
|
|
5
|
+
return undefined;
|
|
6
|
+
const provider = window.crossWallet ?? window.cross;
|
|
7
|
+
if (!provider?.request)
|
|
8
|
+
return undefined;
|
|
9
|
+
const originalRequest = provider.request.bind(provider);
|
|
10
|
+
return new Proxy(provider, {
|
|
11
|
+
get(target, prop) {
|
|
12
|
+
if (prop === 'request') {
|
|
13
|
+
return async (args) => {
|
|
14
|
+
if (args.method === 'wallet_requestPermissions')
|
|
15
|
+
return [];
|
|
16
|
+
return originalRequest(args);
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return target[prop];
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* wagmi connector for CROSSx browser extension.
|
|
25
|
+
* Uses the injected connector with a target that probes window.crossWallet.
|
|
26
|
+
*/
|
|
27
|
+
export function crossExtensionConnector() {
|
|
28
|
+
return injected({
|
|
29
|
+
target() {
|
|
30
|
+
const provider = detectCrossExtensionProvider();
|
|
31
|
+
if (provider) {
|
|
32
|
+
return {
|
|
33
|
+
id: 'nexus.to.crosswallet.desktop',
|
|
34
|
+
name: 'CROSSx Extension',
|
|
35
|
+
provider,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
id: 'nexus.to.crosswallet.desktop',
|
|
40
|
+
name: 'CROSSx Extension',
|
|
41
|
+
provider: {
|
|
42
|
+
request: async (args) => {
|
|
43
|
+
const p = detectCrossExtensionProvider();
|
|
44
|
+
if (!p) {
|
|
45
|
+
throw new Error('CROSSx Extension is not installed. Please install it and refresh.');
|
|
46
|
+
}
|
|
47
|
+
return p.request(args);
|
|
48
|
+
},
|
|
49
|
+
on: (...args) => {
|
|
50
|
+
detectCrossExtensionProvider()?.on?.(...args);
|
|
51
|
+
},
|
|
52
|
+
removeListener: (...args) => {
|
|
53
|
+
detectCrossExtensionProvider()?.removeListener?.(...args);
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=extensionConnector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extensionConnector.js","sourceRoot":"","sources":["../../src/connectors/extensionConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,uDAAuD;AAEvD,SAAS,4BAA4B;IACnC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACpD,MAAM,QAAQ,GAAI,MAAc,CAAC,WAAW,IAAK,MAAc,CAAC,KAAK,CAAC;IACtE,IAAI,CAAC,QAAQ,EAAE,OAAO;QAAE,OAAO,SAAS,CAAC;IAEzC,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE;QACzB,GAAG,CAAC,MAAW,EAAE,IAAqB;YACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,KAAK,EAAE,IAA4C,EAAE,EAAE;oBAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,2BAA2B;wBAAE,OAAO,EAAE,CAAC;oBAC3D,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,QAAQ,CAAC;QACd,MAAM;YACJ,MAAM,QAAQ,GAAG,4BAA4B,EAAE,CAAC;YAChD,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO;oBACL,EAAE,EAAE,8BAA8B;oBAClC,IAAI,EAAE,kBAAkB;oBACxB,QAAQ;iBACT,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,EAAE,EAAE,8BAA8B;gBAClC,IAAI,EAAE,kBAAkB;gBACxB,QAAQ,EAAE;oBACR,OAAO,EAAE,KAAK,EAAE,IAA4C,EAAE,EAAE;wBAC9D,MAAM,CAAC,GAAG,4BAA4B,EAAE,CAAC;wBACzC,IAAI,CAAC,CAAC,EAAE,CAAC;4BACP,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;wBACJ,CAAC;wBACD,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;oBACzB,CAAC;oBACD,EAAE,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;wBACrB,4BAA4B,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBAChD,CAAC;oBACD,cAAc,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;wBACjC,4BAA4B,EAAE,EAAE,cAAc,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBAC5D,CAAC;iBACK;aACT,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CreateConnectorFn } from 'wagmi';
|
|
2
|
+
import type { CrossConnectKitConfig } from '@nexus-cross/connect-kit-core';
|
|
3
|
+
export interface WalletConnectConfig {
|
|
4
|
+
projectId: string;
|
|
5
|
+
metadata?: {
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
url: string;
|
|
9
|
+
icons?: string[];
|
|
10
|
+
};
|
|
11
|
+
showQrModal?: boolean;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a WalletConnect connector for external wallets
|
|
15
|
+
* (MetaMask, Binance Wallet, etc. via QR/deep-link).
|
|
16
|
+
*/
|
|
17
|
+
export declare function createWalletConnectConnector(config: WalletConnectConfig): CreateConnectorFn;
|
|
18
|
+
export declare function createWalletConnectFromKitConfig(kitConfig: CrossConnectKitConfig): CreateConnectorFn | null;
|
|
19
|
+
//# sourceMappingURL=walletConnectConnector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletConnectConnector.d.ts","sourceRoot":"","sources":["../../src/connectors/walletConnectConnector.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,mBAAmB,GAC1B,iBAAiB,CAanB;AAED,wBAAgB,gCAAgC,CAC9C,SAAS,EAAE,qBAAqB,GAC/B,iBAAiB,GAAG,IAAI,CAW1B"}
|