@nexus-cross/connect-kit-react 1.3.0-beta.1 → 1.3.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/dist/chunk-ZL2BHNN6.js +143 -0
- package/dist/client.d.ts +46 -4
- package/dist/client.js +1 -3
- package/dist/index.d.ts +378 -28
- package/dist/index.js +1 -19
- package/package.json +11 -8
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/components/ConnectButton.d.ts +0 -102
- package/dist/components/ConnectButton.d.ts.map +0 -1
- package/dist/components/ConnectButton.js +0 -584
- package/dist/components/ConnectButton.js.map +0 -1
- package/dist/components/CrossConnectKitProvider.d.ts +0 -38
- package/dist/components/CrossConnectKitProvider.d.ts.map +0 -1
- package/dist/components/CrossConnectKitProvider.js +0 -790
- package/dist/components/CrossConnectKitProvider.js.map +0 -1
- package/dist/components/CrossConnectModal.d.ts +0 -20
- package/dist/components/CrossConnectModal.d.ts.map +0 -1
- package/dist/components/CrossConnectModal.js +0 -80
- package/dist/components/CrossConnectModal.js.map +0 -1
- package/dist/components/OtherWalletsModal.d.ts +0 -20
- package/dist/components/OtherWalletsModal.d.ts.map +0 -1
- package/dist/components/OtherWalletsModal.js +0 -300
- package/dist/components/OtherWalletsModal.js.map +0 -1
- package/dist/config/createConnectKitConfig.d.ts +0 -36
- package/dist/config/createConnectKitConfig.d.ts.map +0 -1
- package/dist/config/createConnectKitConfig.js +0 -80
- package/dist/config/createConnectKitConfig.js.map +0 -1
- package/dist/context/CrossConnectKitContext.d.ts +0 -100
- package/dist/context/CrossConnectKitContext.d.ts.map +0 -1
- package/dist/context/CrossConnectKitContext.js +0 -10
- package/dist/context/CrossConnectKitContext.js.map +0 -1
- package/dist/context/CrossConnectKitThemeContext.d.ts +0 -41
- package/dist/context/CrossConnectKitThemeContext.d.ts.map +0 -1
- package/dist/context/CrossConnectKitThemeContext.js +0 -22
- package/dist/context/CrossConnectKitThemeContext.js.map +0 -1
- package/dist/hooks/useCrossxEmbeddedInfo.d.ts +0 -41
- package/dist/hooks/useCrossxEmbeddedInfo.d.ts.map +0 -1
- package/dist/hooks/useCrossxEmbeddedInfo.js +0 -241
- package/dist/hooks/useCrossxEmbeddedInfo.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/runtime-log.d.ts +0 -2
- package/dist/runtime-log.d.ts.map +0 -1
- package/dist/runtime-log.js +0 -44
- package/dist/runtime-log.js.map +0 -1
- package/dist/version.d.ts +0 -2
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -2
- package/dist/version.js.map +0 -1
|
@@ -1,584 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useCallback, useEffect, useMemo } from 'react';
|
|
3
|
-
import { useQueryClient } from '@tanstack/react-query';
|
|
4
|
-
import { useAccount, useChainId, useConfig, useSendTransaction, useSwitchChain } from 'wagmi';
|
|
5
|
-
import { getPublicClient, readContracts } from 'wagmi/actions';
|
|
6
|
-
import { WalletInfo, ConnectorId } from '@nexus-cross/dapp-ui';
|
|
7
|
-
import { useOptionalOnRamp, useOptionalOnRampEligibility, } from '@nexus-cross/onramp/react';
|
|
8
|
-
import { APPLE_ICON, BINANCE_ICON, CROSSX_ICON, EXTENSION_ICON, GOOGLE_ICON, METAMASK_ICON, } from '@nexus-cross/connect-kit-wagmi';
|
|
9
|
-
import { useCrossConnectKit } from '../context/CrossConnectKitContext.js';
|
|
10
|
-
import { useOptionalCrossConnectKitTheme } from '../context/CrossConnectKitThemeContext.js';
|
|
11
|
-
import { useCrossxEmbeddedInfo } from '../hooks/useCrossxEmbeddedInfo.js';
|
|
12
|
-
/**
|
|
13
|
-
* game-swap LP(pair) 토큰 잔고 조회에 필요한 최소 ERC20 ABI.
|
|
14
|
-
* (viem `erc20Abi` 직접 import 대신 인라인 정의해 의존성 표면을 줄인다.)
|
|
15
|
-
*/
|
|
16
|
-
const ERC20_LP_ABI = [
|
|
17
|
-
{
|
|
18
|
-
type: 'function',
|
|
19
|
-
name: 'balanceOf',
|
|
20
|
-
stateMutability: 'view',
|
|
21
|
-
inputs: [{ name: 'account', type: 'address' }],
|
|
22
|
-
outputs: [{ name: '', type: 'uint256' }],
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
type: 'function',
|
|
26
|
-
name: 'totalSupply',
|
|
27
|
-
stateMutability: 'view',
|
|
28
|
-
inputs: [],
|
|
29
|
-
outputs: [{ name: '', type: 'uint256' }],
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
type: 'function',
|
|
33
|
-
name: 'decimals',
|
|
34
|
-
stateMutability: 'view',
|
|
35
|
-
inputs: [],
|
|
36
|
-
outputs: [{ name: '', type: 'uint8' }],
|
|
37
|
-
},
|
|
38
|
-
];
|
|
39
|
-
/**
|
|
40
|
-
* `WalletProvider` → trigger pill 표시 정보 + WalletInfo의 `connectorId` 매핑.
|
|
41
|
-
* `google`/`apple`은 crossy-sdk embedded 지갑의 로그인 타입이므로 커넥터는
|
|
42
|
-
* `CROSSx`로 귀속된다.
|
|
43
|
-
*/
|
|
44
|
-
const PROVIDER_MAP = {
|
|
45
|
-
google: { name: 'Google', iconUrl: GOOGLE_ICON, connectorId: ConnectorId.CROSSx },
|
|
46
|
-
apple: { name: 'Apple', iconUrl: APPLE_ICON, connectorId: ConnectorId.CROSSx },
|
|
47
|
-
cross: { name: 'CROSSx', iconUrl: CROSSX_ICON, connectorId: ConnectorId.CROSSx },
|
|
48
|
-
metamask: {
|
|
49
|
-
name: 'MetaMask',
|
|
50
|
-
iconUrl: METAMASK_ICON,
|
|
51
|
-
connectorId: ConnectorId.MetaMask,
|
|
52
|
-
},
|
|
53
|
-
binance: {
|
|
54
|
-
name: 'Binance Wallet',
|
|
55
|
-
iconUrl: BINANCE_ICON,
|
|
56
|
-
connectorId: ConnectorId.Binance,
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
function mapConnectorId(walletId) {
|
|
60
|
-
switch (walletId) {
|
|
61
|
-
case 'cross_embedded':
|
|
62
|
-
return ConnectorId.CROSSx;
|
|
63
|
-
case 'metamask':
|
|
64
|
-
return ConnectorId.MetaMask;
|
|
65
|
-
case 'binance':
|
|
66
|
-
return ConnectorId.Binance;
|
|
67
|
-
default:
|
|
68
|
-
return undefined;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Trigger-only display mapping — what the pill next to the address
|
|
73
|
-
* shows. crossy-sdk 2.0 users see Google/Apple (their OAuth provider)
|
|
74
|
-
* rather than the generic CROSSx glyph; cross_wallet / cross_extension
|
|
75
|
-
* stay on CROSSx; external wallets show their own brand.
|
|
76
|
-
*
|
|
77
|
-
* The WalletInfo popover itself keeps cross-app-launcher's built-in
|
|
78
|
-
* "Connected with CROSSx" wording — we deliberately do NOT override
|
|
79
|
-
* `connectorName` / `connectorIconUrl` on the WalletInfo root.
|
|
80
|
-
*/
|
|
81
|
-
function resolveTriggerDisplay(walletId, loginType) {
|
|
82
|
-
switch (walletId) {
|
|
83
|
-
case 'cross_embedded':
|
|
84
|
-
if (loginType === 'google') {
|
|
85
|
-
return { name: 'Google', iconUrl: GOOGLE_ICON };
|
|
86
|
-
}
|
|
87
|
-
if (loginType === 'apple') {
|
|
88
|
-
return { name: 'Apple', iconUrl: APPLE_ICON };
|
|
89
|
-
}
|
|
90
|
-
return { name: 'CROSSx', iconUrl: CROSSX_ICON };
|
|
91
|
-
case 'cross_wallet':
|
|
92
|
-
return { name: 'CROSSx Wallet', iconUrl: CROSSX_ICON };
|
|
93
|
-
case 'cross_extension':
|
|
94
|
-
return { name: 'CROSSx Extension', iconUrl: EXTENSION_ICON };
|
|
95
|
-
case 'metamask':
|
|
96
|
-
return { name: 'MetaMask', iconUrl: METAMASK_ICON };
|
|
97
|
-
case 'binance':
|
|
98
|
-
return { name: 'Binance Wallet', iconUrl: BINANCE_ICON };
|
|
99
|
-
default:
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* `ConnectButton`은 내부에서 `WalletInfo`를 조립하지만, 호출측은 그 사실을
|
|
105
|
-
* 몰라도 되도록 `WalletInfoProps`를 전부 pass-through 한다
|
|
106
|
-
* (`walletAddress` / `children` 만 제외).
|
|
107
|
-
*
|
|
108
|
-
* 자동 계산 규칙 (명시적으로 주면 덮어쓰기):
|
|
109
|
-
* - `walletAddress` ← `user.address` ?? wagmi `address`
|
|
110
|
-
* - `connectorId` ← `user.provider` ?? `currentWallet` 매핑
|
|
111
|
-
* - `accountName` ← `user.name` ?? crossy-sdk getAddresses name
|
|
112
|
-
* - `onDisconnect` ← kit `disconnect()`
|
|
113
|
-
* - `onSelectWallet` ← OAuth embedded 세션일 때만 kit `selectWallet()`
|
|
114
|
-
* (외부 지갑은 기본 alert을 막기 위해 CSS로 숨김)
|
|
115
|
-
* - `showPortfolio` ← `portfolio` ?? `showPortfolio` ?? legacy `enablePortfolio`
|
|
116
|
-
* - `theme` ← kit provider의 `themeMode`
|
|
117
|
-
* - `env` ← `NEXT_PUBLIC_CROSSX_ENVIRONMENT`, or `"production"`
|
|
118
|
-
*
|
|
119
|
-
* Trigger 버튼(주소 옆 pill)은 호출측이 건드릴 수 없다 — 플랫폼 아이콘 + 축약
|
|
120
|
-
* 주소의 통일된 UX를 강제한다.
|
|
121
|
-
*/
|
|
122
|
-
export function ConnectButton({ label = 'Connect Wallet', className, style, walletInfoStyle, user, enablePortfolio, portfolio,
|
|
123
|
-
// 내부 자동 계산 대상 — 명시되면 우선순위로 사용
|
|
124
|
-
theme: themeProp, accountName: accountNameProp, connectorId: connectorIdProp, showPortfolio: showPortfolioProp, sendAccounts: sendAccountsProp, getTransactionReceipt: getTransactionReceiptProp, sendTransaction: sendTransactionProp, estimateGas: estimateGasProp, onDisconnect: onDisconnectProp, onSelectWallet: onSelectWalletProp, onBuy: onBuyProp, onRampRedirectUrl,
|
|
125
|
-
// 기본값을 갖는 기존 prop
|
|
126
|
-
showBalance = true, env,
|
|
127
|
-
// 그 외 WalletInfoProps는 그대로 forward
|
|
128
|
-
...walletInfoRest }) {
|
|
129
|
-
const { address: wagmiAddress, isConnected, connector, chain } = useAccount();
|
|
130
|
-
const wagmiConfig = useConfig();
|
|
131
|
-
const currentChainId = useChainId();
|
|
132
|
-
const { switchChainAsync } = useSwitchChain();
|
|
133
|
-
const { sendTransactionAsync } = useSendTransaction();
|
|
134
|
-
// `isConnecting` here is the kit's UNIFIED connect-in-flight flag, not
|
|
135
|
-
// wagmi's `useAccount().isConnecting`. It is set the instant the user
|
|
136
|
-
// picks a wallet in the modal and stays true until the connection
|
|
137
|
-
// succeeds / is cancelled — identical across the wagmi connectAsync
|
|
138
|
-
// path, the reown direct-connect path (metamask/binance, which never
|
|
139
|
-
// touches wagmi's `isConnecting`), and the embedded OAuth popup. See
|
|
140
|
-
// CrossConnectKitContextValue.isConnecting.
|
|
141
|
-
const { connectWallet, disconnect, selectWallet, currentWallet, isConnecting } = useCrossConnectKit();
|
|
142
|
-
// When mounted inside `<CrossConnectKitProvider>`, default the `theme` prop
|
|
143
|
-
// to whatever mode the kit is running — so a single kit-level
|
|
144
|
-
// `themeTokens: { light, dark }` plus a `theme: 'dark'` flips
|
|
145
|
-
// WalletInfo + embedded SDK together without per-call wiring.
|
|
146
|
-
const kitTheme = useOptionalCrossConnectKitTheme();
|
|
147
|
-
const theme = themeProp ?? kitTheme?.mode ?? 'dark';
|
|
148
|
-
// `user`가 주어지면 표시용 주소/이름/커넥터 식별자를 override 한다.
|
|
149
|
-
// 실제 연결 상태(isConnected 등)는 여전히 wagmi를 기준으로 한다.
|
|
150
|
-
const address = user?.address ?? wagmiAddress;
|
|
151
|
-
const userProviderMeta = user ? PROVIDER_MAP[user.provider] : null;
|
|
152
|
-
// The spinner is driven entirely by the kit's unified `isConnecting`
|
|
153
|
-
// (destructured above). The provider sets it on the user's explicit
|
|
154
|
-
// pick and clears it on success/cancel/error across every path, so the
|
|
155
|
-
// button no longer needs to track its own "did the user click?" state
|
|
156
|
-
// or paper over wagmi's stuck-`isConnecting` quirks — both of which
|
|
157
|
-
// made the loading display inconsistent between wallets.
|
|
158
|
-
const { loginType, accountName: autoAccountName, accounts: autoAccounts, } = useCrossxEmbeddedInfo({
|
|
159
|
-
walletId: currentWallet,
|
|
160
|
-
connector,
|
|
161
|
-
address,
|
|
162
|
-
});
|
|
163
|
-
// `user`가 주어졌을 때 SDK 기반 자동 감지값을 덮어쓴다.
|
|
164
|
-
const triggerDisplay = useMemo(() => userProviderMeta
|
|
165
|
-
? { name: userProviderMeta.name, iconUrl: userProviderMeta.iconUrl }
|
|
166
|
-
: resolveTriggerDisplay(currentWallet, loginType), [userProviderMeta, currentWallet, loginType]);
|
|
167
|
-
const resolvedAccountName = accountNameProp ?? user?.name ?? autoAccountName ?? undefined;
|
|
168
|
-
const autoConnectorId = userProviderMeta
|
|
169
|
-
? userProviderMeta.connectorId
|
|
170
|
-
: mapConnectorId(currentWallet);
|
|
171
|
-
const resolvedConnectorId = connectorIdProp ?? autoConnectorId;
|
|
172
|
-
const resolvedShowPortfolio = portfolio ?? showPortfolioProp ?? !!enablePortfolio;
|
|
173
|
-
const handleConnectClick = useCallback(() => {
|
|
174
|
-
// Opens the unified connect modal. The actual connecting state is
|
|
175
|
-
// owned by the kit and surfaced via `isConnecting` once the user
|
|
176
|
-
// picks a wallet — nothing to track here.
|
|
177
|
-
connectWallet().catch((err) => {
|
|
178
|
-
console.error('[crossx-kit] connectWallet error:', err);
|
|
179
|
-
});
|
|
180
|
-
}, [connectWallet]);
|
|
181
|
-
const handleDisconnect = useCallback(() => {
|
|
182
|
-
disconnect();
|
|
183
|
-
}, [disconnect]);
|
|
184
|
-
const resolvedOnDisconnect = onDisconnectProp ?? handleDisconnect;
|
|
185
|
-
// ── Buy 액션 자동 wiring ────────────────────────────────────────────
|
|
186
|
-
// kitConfig.onRampEnabled가 설정돼 있으면 CrossConnectKitProvider가
|
|
187
|
-
// 내부적으로 <OnRampProvider>를 mount하고 onramp facade가 context에 떠 있다.
|
|
188
|
-
// 외부 호출자가 명시 onBuy를 안 줘도, 활성 상태면 자동으로 Buy 버튼을
|
|
189
|
-
// useOnRamp().open(...)에 연결한다.
|
|
190
|
-
//
|
|
191
|
-
// 첫 페이지 로딩 시점에는 crossx 2.0 SDK가 아직 access token을 발급하지
|
|
192
|
-
// 못한 상태일 수 있어 `/onramp/allowed`가 401/-10002 → 어댑터에서 fail-closed
|
|
193
|
-
// 응답으로 풀린다. useOptionalOnRampEligibility가 backoff retry로 토큰
|
|
194
|
-
// 발급 후 자동 재시도하므로, eligibility?.allowed가 true가 되기 전까지는
|
|
195
|
-
// resolvedOnBuy를 undefined로 유지하여 Buy 카드를 disabled로 표기한다.
|
|
196
|
-
const onramp = useOptionalOnRamp();
|
|
197
|
-
const { eligibility } = useOptionalOnRampEligibility({
|
|
198
|
-
network: chain ? String(chain.id) : undefined,
|
|
199
|
-
});
|
|
200
|
-
const onRampAllowed = eligibility?.allowed === true;
|
|
201
|
-
const resolvedOnBuy = useMemo(() => {
|
|
202
|
-
if (onBuyProp)
|
|
203
|
-
return onBuyProp;
|
|
204
|
-
if (!onramp || !chain || !onRampAllowed)
|
|
205
|
-
return undefined;
|
|
206
|
-
return () => {
|
|
207
|
-
void onramp
|
|
208
|
-
.open({
|
|
209
|
-
crypto: chain.nativeCurrency?.symbol ?? 'USDT',
|
|
210
|
-
network: String(chain.id),
|
|
211
|
-
...(onRampRedirectUrl ? { redirectUrl: onRampRedirectUrl } : {}),
|
|
212
|
-
})
|
|
213
|
-
.catch((err) => {
|
|
214
|
-
// open()이 use case에서 거절한 경우(eligibility 차단, 주소 누락 등).
|
|
215
|
-
// ConnectButton 콘솔에 한 줄 — 더 정교한 UX는 호출측이 직접 onBuy 핸들러를 넘겨 처리.
|
|
216
|
-
// eslint-disable-next-line no-console
|
|
217
|
-
console.warn('[crossx-kit] onramp open failed:', err);
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
}, [onBuyProp, onramp, chain, onRampAllowed, onRampRedirectUrl]);
|
|
221
|
-
// popup이 닫힐 때(어떤 status이든 — cancelled / completed / failed) 잔액·토큰
|
|
222
|
-
// 리스트를 즉시 갱신한다. 결제 완료/취소를 webhook으로 확정하기 전이라도
|
|
223
|
-
// dapp-ui WalletInfo의 토큰 balance가 새 값을 가져오게 React Query 캐시를
|
|
224
|
-
// 전부 invalidate.
|
|
225
|
-
const queryClient = useQueryClient();
|
|
226
|
-
useEffect(() => {
|
|
227
|
-
if (!onramp?.onStatus)
|
|
228
|
-
return;
|
|
229
|
-
return onramp.onStatus(() => {
|
|
230
|
-
void queryClient.invalidateQueries();
|
|
231
|
-
});
|
|
232
|
-
}, [onramp, queryClient]);
|
|
233
|
-
// Buy 카드를 "시각적 비활성 + 클릭 시 안내 토스트" 모드로 전환할 메시지.
|
|
234
|
-
// onramp이 활성(=provider mount)이고 chain이 있는데 eligibility가 통과
|
|
235
|
-
// 못한 경우 자동 설정 — DApp이 명시 onBuy를 직접 넘긴 경우엔 그 흐름 우선이라
|
|
236
|
-
// 토스트 메시지는 부여하지 않는다.
|
|
237
|
-
const resolvedOnBuyDisabledMessage = useMemo(() => {
|
|
238
|
-
if (onBuyProp)
|
|
239
|
-
return undefined;
|
|
240
|
-
if (!onramp || !chain)
|
|
241
|
-
return undefined;
|
|
242
|
-
if (onRampAllowed)
|
|
243
|
-
return undefined;
|
|
244
|
-
return 'On-ramp is not available in your region.';
|
|
245
|
-
}, [onBuyProp, onramp, chain, onRampAllowed]);
|
|
246
|
-
// 지갑 선택 chevron은 crossy-sdk 2.0 OAuth embedded 세션일 때만 기본 동작이
|
|
247
|
-
// 의미 있다(`provider.sdk.selectWallet` 지원). 즉
|
|
248
|
-
// - `user`가 주어지면 provider ∈ { google, apple }일 때 기본 제공
|
|
249
|
-
// - `user`가 없으면 currentWallet === "cross_embedded"일 때 기본 제공
|
|
250
|
-
// 호출측이 `onSelectWallet`을 직접 넘기면 그 지갑 조건과 무관하게 존중한다.
|
|
251
|
-
const canAutoSelectWallet = user
|
|
252
|
-
? user.provider === 'google' || user.provider === 'apple'
|
|
253
|
-
: currentWallet === 'cross_embedded';
|
|
254
|
-
const handleSelectWallet = useCallback(() => {
|
|
255
|
-
selectWallet().catch((err) => {
|
|
256
|
-
console.error('[crossx-kit] selectWallet error:', err);
|
|
257
|
-
});
|
|
258
|
-
}, [selectWallet]);
|
|
259
|
-
const resolvedOnSelectWallet = onSelectWalletProp ?? (canAutoSelectWallet ? handleSelectWallet : undefined);
|
|
260
|
-
// 송금 화면은 token.chainId 가 현재 연결된 체인과 다를 수 있다(예: CROSS 에
|
|
261
|
-
// 연결된 채로 BSC 토큰 전송). `usePublicClient()` 는 현재 활성 체인만 따라가
|
|
262
|
-
// 잘못된 RPC 로 getTransactionReceipt / estimateGas 가 가버려 receipt 누락
|
|
263
|
-
// 또는 "execution reverted" 가 떨어진다. 그래서 chainId 별로 wagmi config
|
|
264
|
-
// 에서 정확한 client 를 꺼낸다.
|
|
265
|
-
const getTransactionReceipt = useCallback(async ({ hash, chainId }) => {
|
|
266
|
-
const client = getPublicClient(wagmiConfig, chainId ? { chainId: chainId } : undefined);
|
|
267
|
-
if (!client)
|
|
268
|
-
return null;
|
|
269
|
-
try {
|
|
270
|
-
return await client.getTransactionReceipt({ hash });
|
|
271
|
-
}
|
|
272
|
-
catch {
|
|
273
|
-
return null;
|
|
274
|
-
}
|
|
275
|
-
}, [wagmiConfig]);
|
|
276
|
-
// BSC(56) / BSC Testnet(97) 은 EIP-1559 미지원. estimateGas 단에서 이미 BSC
|
|
277
|
-
// 에 대해 gasPrice 만 채워 보내지만, 송금 단계에서도 `type: 'legacy'` 를
|
|
278
|
-
// 명시해 viem 이 baseFee=0 으로 합성한 1559 형식 트랜잭션을 일부 RPC/지갑이
|
|
279
|
-
// 거부하는 케이스를 막는다.
|
|
280
|
-
const sendTransaction = useCallback(async (args) => {
|
|
281
|
-
if (args.chainId !== undefined && args.chainId !== currentChainId) {
|
|
282
|
-
await switchChainAsync({ chainId: args.chainId });
|
|
283
|
-
}
|
|
284
|
-
const isBsc = args.chainId === 56 || args.chainId === 97;
|
|
285
|
-
const finalArgs = isBsc
|
|
286
|
-
? { ...args, type: 'legacy' }
|
|
287
|
-
: args;
|
|
288
|
-
const send = sendTransactionProp ?? sendTransactionAsync;
|
|
289
|
-
return send(finalArgs);
|
|
290
|
-
}, [sendTransactionProp, sendTransactionAsync, currentChainId, switchChainAsync]);
|
|
291
|
-
const resolvedSendTransaction = resolvedShowPortfolio ? sendTransaction : sendTransactionProp;
|
|
292
|
-
// SendPage Confirm 화면에서 호출되는 가스 추정.
|
|
293
|
-
//
|
|
294
|
-
// 핵심: `args.chainId` 에 맞는 publicClient 를 wagmi config 에서 직접 꺼낸다.
|
|
295
|
-
// `usePublicClient()` 가 따라가는 활성 체인은 현재 연결된 지갑의 체인이라,
|
|
296
|
-
// 사용자가 CROSS 에 연결된 채로 BSC 토큰 송금 화면을 띄우면 BSC 토큰 컨트랙트가
|
|
297
|
-
// 존재하지 않는 CROSS RPC 로 estimateGas 를 보내 "execution reverted" 가
|
|
298
|
-
// 떨어진다. chainId 별 client 로 호출해야 토큰이 실제 배포된 체인에서 시뮬레이션
|
|
299
|
-
// 된다.
|
|
300
|
-
//
|
|
301
|
-
// BSC(56) / BSC Testnet(97)은 EIP-1559 미지원 — 노드가 baseFeePerGas 를 비워
|
|
302
|
-
// 반환해 viem 이 0 으로 합성한 maxFeePerGas 를 돌려주거나, 일부 RPC 가 1559 형식
|
|
303
|
-
// 트랜잭션을 거부한다. 명시적으로 legacy 분기를 타도록 강제한다.
|
|
304
|
-
// (gas-fee 문서 §3, §4 참고)
|
|
305
|
-
const defaultEstimateGas = useCallback(async (args) => {
|
|
306
|
-
const targetChainId = args.chainId ?? currentChainId;
|
|
307
|
-
const client = getPublicClient(wagmiConfig, targetChainId ? { chainId: targetChainId } : undefined);
|
|
308
|
-
if (!client) {
|
|
309
|
-
throw new Error(`publicClient for chainId ${targetChainId ?? 'unknown'} is not available — ` +
|
|
310
|
-
'register the chain in createCrossxConfig({ networks }).');
|
|
311
|
-
}
|
|
312
|
-
const legacyOnly = targetChainId === 56 || targetChainId === 97;
|
|
313
|
-
const [gasLimit, fees] = await Promise.all([
|
|
314
|
-
client.estimateGas({
|
|
315
|
-
account: args.from,
|
|
316
|
-
to: args.to,
|
|
317
|
-
value: args.value,
|
|
318
|
-
data: args.data,
|
|
319
|
-
}),
|
|
320
|
-
(async () => {
|
|
321
|
-
if (legacyOnly) {
|
|
322
|
-
const gasPrice = await client.getGasPrice();
|
|
323
|
-
return {
|
|
324
|
-
maxFeePerGas: undefined,
|
|
325
|
-
maxPriorityFeePerGas: undefined,
|
|
326
|
-
gasPrice,
|
|
327
|
-
};
|
|
328
|
-
}
|
|
329
|
-
try {
|
|
330
|
-
const eip1559 = await client.estimateFeesPerGas();
|
|
331
|
-
return {
|
|
332
|
-
maxFeePerGas: eip1559.maxFeePerGas,
|
|
333
|
-
maxPriorityFeePerGas: eip1559.maxPriorityFeePerGas,
|
|
334
|
-
gasPrice: undefined,
|
|
335
|
-
};
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
const gasPrice = await client.getGasPrice();
|
|
339
|
-
return {
|
|
340
|
-
maxFeePerGas: undefined,
|
|
341
|
-
maxPriorityFeePerGas: undefined,
|
|
342
|
-
gasPrice,
|
|
343
|
-
};
|
|
344
|
-
}
|
|
345
|
-
})(),
|
|
346
|
-
]);
|
|
347
|
-
return {
|
|
348
|
-
gasLimit,
|
|
349
|
-
maxFeePerGas: fees.maxFeePerGas,
|
|
350
|
-
maxPriorityFeePerGas: fees.maxPriorityFeePerGas,
|
|
351
|
-
gasPrice: fees.gasPrice,
|
|
352
|
-
};
|
|
353
|
-
}, [wagmiConfig, currentChainId]);
|
|
354
|
-
// DApp 이 자체 estimateGas 를 prop 으로 넘기면 그쪽이 우선. 미지정 시 내부
|
|
355
|
-
// chain-aware default 가 폴백한다. crossd-frontend 의 1.1.1 patch 와 동일한
|
|
356
|
-
// 의도 — patched build 와 source(1.1.2+) 가 같은 동작을 갖게 한다.
|
|
357
|
-
const resolvedEstimateGas = estimateGasProp ?? defaultEstimateGas;
|
|
358
|
-
// game-swap LP 섹션(dapp-ui)에 주입할 온체인 LP 잔고 reader.
|
|
359
|
-
// dapp-ui 는 viem/wagmi 를 직접 쓰지 못하므로, wagmi 를 보유한 connect-kit 이
|
|
360
|
-
// pair(LP) 토큰의 balanceOf / totalSupply / decimals 를 읽어 공급한다.
|
|
361
|
-
// 연결 계정이 없거나 주소가 없으면 빈 맵을 돌려준다(섹션은 풀 정보만 표시).
|
|
362
|
-
const lpBalanceReader = useCallback(async (pairAddresses) => {
|
|
363
|
-
const result = {};
|
|
364
|
-
if (!wagmiAddress || pairAddresses.length === 0)
|
|
365
|
-
return result;
|
|
366
|
-
const contracts = pairAddresses.flatMap((addr) => {
|
|
367
|
-
const tokenAddress = addr;
|
|
368
|
-
const common = {
|
|
369
|
-
address: tokenAddress,
|
|
370
|
-
abi: ERC20_LP_ABI,
|
|
371
|
-
chainId: currentChainId,
|
|
372
|
-
};
|
|
373
|
-
return [
|
|
374
|
-
{ ...common, functionName: 'balanceOf', args: [wagmiAddress] },
|
|
375
|
-
{ ...common, functionName: 'totalSupply' },
|
|
376
|
-
{ ...common, functionName: 'decimals' },
|
|
377
|
-
];
|
|
378
|
-
});
|
|
379
|
-
let reads;
|
|
380
|
-
try {
|
|
381
|
-
reads = await readContracts(wagmiConfig, {
|
|
382
|
-
contracts: contracts,
|
|
383
|
-
allowFailure: true,
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
catch {
|
|
387
|
-
return result;
|
|
388
|
-
}
|
|
389
|
-
pairAddresses.forEach((addr, index) => {
|
|
390
|
-
const base = index * 3;
|
|
391
|
-
const balanceRes = reads[base];
|
|
392
|
-
const totalSupplyRes = reads[base + 1];
|
|
393
|
-
const decimalsRes = reads[base + 2];
|
|
394
|
-
if (!balanceRes || balanceRes.status !== 'success')
|
|
395
|
-
return;
|
|
396
|
-
result[addr.toLowerCase()] = {
|
|
397
|
-
balance: balanceRes.result,
|
|
398
|
-
totalSupply: totalSupplyRes && totalSupplyRes.status === 'success'
|
|
399
|
-
? totalSupplyRes.result
|
|
400
|
-
: undefined,
|
|
401
|
-
decimals: decimalsRes && decimalsRes.status === 'success'
|
|
402
|
-
? Number(decimalsRes.result)
|
|
403
|
-
: undefined,
|
|
404
|
-
};
|
|
405
|
-
});
|
|
406
|
-
return result;
|
|
407
|
-
}, [wagmiConfig, wagmiAddress, currentChainId]);
|
|
408
|
-
// 아무 핸들러도 없는 외부 지갑은 WalletInfo 기본 "지원하지 않습니다" alert을
|
|
409
|
-
// 띄우는 chevron을 CSS로 숨긴다.
|
|
410
|
-
const hideSelectWalletChevron = !resolvedOnSelectWallet;
|
|
411
|
-
// Spinner gated solely on the kit's unified connect-in-flight flag, so
|
|
412
|
-
// every wallet (CROSSx / extension / MetaMask / Binance / OAuth) shows
|
|
413
|
-
// the same "Connecting…" feedback for the same window.
|
|
414
|
-
const buttonClass = className ? `cb-button ${className}` : 'cb-button';
|
|
415
|
-
const pillClass = className ? `cb-pill ${className}` : 'cb-pill';
|
|
416
|
-
if (isConnecting && !isConnected) {
|
|
417
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), _jsxs("button", { type: "button", disabled: true, className: buttonClass, style: style, "aria-busy": "true", children: [_jsx("span", { className: "cb-spinner", "aria-hidden": "true" }), _jsx("span", { className: "cb-button-label", children: "Connecting..." })] })] }));
|
|
418
|
-
}
|
|
419
|
-
if (isConnected && address) {
|
|
420
|
-
return (_jsxs("span", { "data-crossx-wallet-info": hideSelectWalletChevron ? 'external' : 'embedded', children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), hideSelectWalletChevron && _jsx("style", { children: SELECT_WALLET_HIDE_CSS }), _jsxs(WalletInfo, { ...walletInfoRest, env: env, theme: theme, showBalance: showBalance, walletAddress: address, accountName: resolvedAccountName, sendAccounts: sendAccountsProp ?? autoAccounts,
|
|
421
|
-
// NOTE: connectorName / connectorIconUrl intentionally NOT
|
|
422
|
-
// overridden — the "Connected with CROSSx" row inside the
|
|
423
|
-
// popover keeps cross-app-launcher's CONNECTOR_REGISTRY
|
|
424
|
-
// metadata (expected UX). Only the trigger button below uses
|
|
425
|
-
// our own platform-specific icon via `triggerDisplay`.
|
|
426
|
-
connectorId: resolvedConnectorId, showPortfolio: resolvedShowPortfolio, onDisconnect: resolvedOnDisconnect, onSelectWallet: resolvedOnSelectWallet, onBuy: resolvedOnBuy, onBuyDisabledMessage: resolvedOnBuyDisabledMessage, sendTransaction: resolvedSendTransaction, getTransactionReceipt: getTransactionReceiptProp ?? getTransactionReceipt, estimateGas: resolvedEstimateGas, lpBalanceReader: lpBalanceReader, style: walletInfoStyle, children: [_jsx(WalletInfo.Trigger, { asChild: true, children: _jsxs("button", { type: "button", className: pillClass, style: style, "aria-label": `Connected with ${triggerDisplay?.name ?? 'wallet'}: ${shorten(address)}`, children: [triggerDisplay?.iconUrl ? (_jsx("img", { src: triggerDisplay.iconUrl, alt: "", width: 20, height: 20, className: "cb-pill-icon" })) : (_jsx("span", { className: "cb-pill-icon-placeholder", "aria-hidden": "true" })), _jsx("span", { className: "cb-pill-address", children: shorten(address) })] }) }), _jsx(WalletInfo.Content, { align: "end", sideOffset: 8 })] })] }));
|
|
427
|
-
}
|
|
428
|
-
return (_jsxs(_Fragment, { children: [_jsx("style", { children: CONNECT_BUTTON_CSS }), _jsxs("button", { type: "button", onClick: handleConnectClick, className: buttonClass, style: style, "aria-label": typeof label === 'string' ? label : 'Connect Wallet', children: [_jsx(ConnectWalletIcon, {}), _jsx("span", { className: "cb-button-label", children: label })] })] }));
|
|
429
|
-
}
|
|
430
|
-
/**
|
|
431
|
-
* 지갑 연결 버튼의 글리프. 모바일(≤767.98px)에서는 `.cb-button-label`이
|
|
432
|
-
* 숨겨지면서 이 아이콘만 노출돼 버튼이 정사각형 아이콘 버튼으로 축소된다.
|
|
433
|
-
* dapp-ui 독립형 `ConnectButton`과 동일한 SVG를 사용해 두 패키지의 외형을
|
|
434
|
-
* 일치시킨다.
|
|
435
|
-
*/
|
|
436
|
-
function ConnectWalletIcon() {
|
|
437
|
-
return (_jsx("svg", { className: "cb-button-icon", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", children: _jsx("path", { d: "M11.4368 10.5007C11.4368 9.9538 11.6544 9.42855 12.041 9.04175C12.4278 8.65492 12.9529 8.4375 13.5 8.4375H15.1875V6.00073L15.1732 5.92822C15.1639 5.90585 15.15 5.88528 15.1326 5.8678C15.0973 5.83263 15.0494 5.81287 14.9996 5.81287H3.74963C3.4787 5.81287 3.21001 5.75949 2.95972 5.65576C2.90937 5.63488 2.86089 5.61017 2.8125 5.58545V14.2504C2.8125 14.4989 2.91141 14.7371 3.08716 14.9128C3.2629 15.0886 3.50109 15.1875 3.74963 15.1875H15.0007C15.0252 15.1875 15.0495 15.1826 15.0721 15.1732C15.0948 15.1638 15.1152 15.1499 15.1326 15.1326C15.1499 15.1152 15.1638 15.0948 15.1732 15.0721C15.1826 15.0495 15.1875 15.0252 15.1875 15.0007V12.5629H13.5C12.9529 12.5629 12.4278 12.3454 12.041 11.9586C11.6545 11.5719 11.4369 11.0475 11.4368 10.5007ZM12.5618 10.5007C12.5619 10.7491 12.6609 10.9875 12.8364 11.1632C13.0123 11.3391 13.2513 11.4379 13.5 11.4379H15.75C15.7998 11.4379 15.8477 11.4182 15.8829 11.3829C15.9182 11.3477 15.9379 11.2998 15.9379 11.25V9.75037C15.9379 9.70054 15.9182 9.65266 15.8829 9.61743C15.8477 9.5822 15.7998 9.5625 15.75 9.5625H13.5C13.2513 9.5625 13.0123 9.66131 12.8364 9.83716C12.6607 10.013 12.5618 10.2522 12.5618 10.5007ZM13.6879 3.00037C13.6879 2.95054 13.6682 2.90266 13.6329 2.86743C13.5977 2.8322 13.5498 2.8125 13.5 2.8125H3.74963C3.50109 2.8125 3.2629 2.91141 3.08716 3.08716C2.91141 3.2629 2.8125 3.50109 2.8125 3.74963L2.81689 3.84192C2.82585 3.93354 2.8486 4.02351 2.88391 4.10889C2.93096 4.22263 3.00015 4.32614 3.08716 4.41321C3.17403 4.50009 3.2769 4.56936 3.39038 4.61646C3.50412 4.66359 3.62651 4.68787 3.74963 4.68787H13.6879V3.00037ZM14.8129 4.68787H14.9996C15.3473 4.68787 15.6808 4.82576 15.9269 5.07129C16.173 5.31702 16.3119 5.65077 16.3125 5.99854V8.56494C16.4469 8.62873 16.5711 8.7148 16.6783 8.82202C16.9246 9.06823 17.0629 9.40217 17.0629 9.75037V11.25C17.0629 11.5982 16.9246 11.9321 16.6783 12.1783C16.5712 12.2855 16.4468 12.3706 16.3125 12.4343V14.9985L16.3059 15.1282C16.2934 15.2564 16.2619 15.3822 16.2125 15.5017C16.1466 15.6612 16.05 15.806 15.928 15.928C15.806 16.05 15.6612 16.1466 15.5017 16.2125C15.3425 16.2783 15.1719 16.3126 14.9996 16.3125H3.74963C3.20272 16.3125 2.67847 16.095 2.29175 15.7083C1.90502 15.3215 1.6875 14.7973 1.6875 14.2504V3.74963C1.6875 3.20272 1.90502 2.67847 2.29175 2.29175C2.67847 1.90502 3.20272 1.6875 3.74963 1.6875H13.5C13.8482 1.6875 14.1821 1.82581 14.4283 2.07202C14.6746 2.31823 14.8129 2.65217 14.8129 3.00037V4.68787Z", fill: "currentColor" }) }));
|
|
438
|
-
}
|
|
439
|
-
const SELECT_WALLET_HIDE_CSS = `
|
|
440
|
-
[data-crossx-wallet-info="external"] .wi-select-wallet-btn {
|
|
441
|
-
display: none !important;
|
|
442
|
-
}
|
|
443
|
-
`;
|
|
444
|
-
function shorten(address) {
|
|
445
|
-
return `${address.slice(0, 6)}...${address.slice(-4)}`;
|
|
446
|
-
}
|
|
447
|
-
// CSS variables backing the connect-kit-react ConnectButton. Mirrors the
|
|
448
|
-
// `--cb-*` token surface exported by @nexus-cross/dapp-ui's standalone
|
|
449
|
-
// `ConnectButton` so that consumers see the same `ConnectButtonStyle`
|
|
450
|
-
// type across both packages. Injected via a per-render `<style>` tag
|
|
451
|
-
// because connect-kit-react builds with `tsc` (no CSS bundling).
|
|
452
|
-
const CONNECT_BUTTON_CSS = `
|
|
453
|
-
.cb-button {
|
|
454
|
-
-webkit-font-smoothing: antialiased;
|
|
455
|
-
--cb-bg: var(--ds-accent-primary-default, #00D5AA);
|
|
456
|
-
--cb-bg-hover: var(--ds-accent-primary-high, #00a0a2);
|
|
457
|
-
--cb-color: var(--ds-accent-primary-on, #000);
|
|
458
|
-
--cb-border: none;
|
|
459
|
-
--cb-radius: 8px;
|
|
460
|
-
--cb-height: 36px;
|
|
461
|
-
--cb-padding: 0 16px;
|
|
462
|
-
--cb-font-family: Inter, system-ui, -apple-system, sans-serif;
|
|
463
|
-
--cb-font-size: 14px;
|
|
464
|
-
--cb-font-weight: 500;
|
|
465
|
-
--cb-gap: 8px;
|
|
466
|
-
--cb-transition: background-color 0.15s ease, transform 0.1s ease;
|
|
467
|
-
--cb-loading-opacity: 0.7;
|
|
468
|
-
--cb-press-scale: 0.95;
|
|
469
|
-
--cb-spinner-size: 14px;
|
|
470
|
-
--cb-spinner-thumb: currentColor;
|
|
471
|
-
--cb-spinner-track: color-mix(in srgb, currentColor 20%, transparent);
|
|
472
|
-
--cb-icon-size: 18px;
|
|
473
|
-
|
|
474
|
-
display: inline-flex;
|
|
475
|
-
align-items: center;
|
|
476
|
-
justify-content: center;
|
|
477
|
-
box-sizing: border-box;
|
|
478
|
-
height: var(--cb-height);
|
|
479
|
-
gap: var(--cb-gap);
|
|
480
|
-
padding: var(--cb-padding);
|
|
481
|
-
border-radius: var(--cb-radius);
|
|
482
|
-
border: var(--cb-border);
|
|
483
|
-
background: var(--cb-bg);
|
|
484
|
-
color: var(--cb-color);
|
|
485
|
-
font-family: var(--cb-font-family);
|
|
486
|
-
font-size: var(--cb-font-size);
|
|
487
|
-
font-weight: var(--cb-font-weight);
|
|
488
|
-
cursor: pointer;
|
|
489
|
-
transition: var(--cb-transition);
|
|
490
|
-
}
|
|
491
|
-
.cb-button:hover:not(:disabled) { background: var(--cb-bg-hover); }
|
|
492
|
-
.cb-button:active:not(:disabled) { transform: scale(var(--cb-press-scale)); }
|
|
493
|
-
.cb-button:disabled, .cb-button[aria-busy="true"] {
|
|
494
|
-
cursor: default;
|
|
495
|
-
opacity: var(--cb-loading-opacity);
|
|
496
|
-
}
|
|
497
|
-
.cb-spinner {
|
|
498
|
-
display: inline-block;
|
|
499
|
-
width: var(--cb-spinner-size);
|
|
500
|
-
height: var(--cb-spinner-size);
|
|
501
|
-
border: 2px solid var(--cb-spinner-track);
|
|
502
|
-
border-top-color: var(--cb-spinner-thumb);
|
|
503
|
-
border-radius: 50%;
|
|
504
|
-
animation: cck-cb-spin 0.6s linear infinite;
|
|
505
|
-
flex-shrink: 0;
|
|
506
|
-
}
|
|
507
|
-
.cb-button-icon {
|
|
508
|
-
width: var(--cb-icon-size);
|
|
509
|
-
height: var(--cb-icon-size);
|
|
510
|
-
flex-shrink: 0;
|
|
511
|
-
}
|
|
512
|
-
.cb-button-label { white-space: nowrap; }
|
|
513
|
-
.cb-pill {
|
|
514
|
-
--cb-pill-bg: var(--ds-surface-default, #1e232e);
|
|
515
|
-
--cb-pill-bg-hover: var(--ds-surface-medium, #252b39);
|
|
516
|
-
--cb-pill-color: var(--ds-content-high, #ffffffd9);
|
|
517
|
-
--cb-pill-border: 1px solid var(--ds-border-default, #ffffff12);
|
|
518
|
-
--cb-pill-border-hover: 1px solid var(--ds-border-medium, #ffffff2e);
|
|
519
|
-
--cb-pill-radius: 8px;
|
|
520
|
-
--cb-pill-height: 36px;
|
|
521
|
-
--cb-pill-padding: 0 12px;
|
|
522
|
-
--cb-pill-press-scale: 0.95;
|
|
523
|
-
--cb-pill-font-family: Inter, system-ui, -apple-system, sans-serif;
|
|
524
|
-
--cb-pill-font-size: 14px;
|
|
525
|
-
--cb-pill-font-weight: 500;
|
|
526
|
-
--cb-pill-gap: 8px;
|
|
527
|
-
--cb-pill-icon-size: 20px;
|
|
528
|
-
--cb-pill-icon-placeholder-bg: var(--ds-surface-high, #2a2d3a);
|
|
529
|
-
--cb-pill-address-font: Inter, system-ui, -apple-system, sans-serif;
|
|
530
|
-
--cb-pill-address-font-size: 14px;
|
|
531
|
-
--cb-pill-address-letter-spacing: -0.01em;
|
|
532
|
-
|
|
533
|
-
display: inline-flex;
|
|
534
|
-
align-items: center;
|
|
535
|
-
box-sizing: border-box;
|
|
536
|
-
height: var(--cb-pill-height);
|
|
537
|
-
gap: var(--cb-pill-gap);
|
|
538
|
-
padding: var(--cb-pill-padding);
|
|
539
|
-
border-radius: var(--cb-pill-radius);
|
|
540
|
-
border: var(--cb-pill-border);
|
|
541
|
-
background: var(--cb-pill-bg);
|
|
542
|
-
color: var(--cb-pill-color);
|
|
543
|
-
font-family: var(--cb-pill-font-family);
|
|
544
|
-
font-size: var(--cb-pill-font-size);
|
|
545
|
-
font-weight: var(--cb-pill-font-weight);
|
|
546
|
-
cursor: pointer;
|
|
547
|
-
}
|
|
548
|
-
.cb-pill:hover,
|
|
549
|
-
.cb-pill[data-state="open"] { background: var(--cb-pill-bg-hover); border: var(--cb-pill-border-hover, 1px solid var(--ds-border-medium, #ffffff2e)); }
|
|
550
|
-
.cb-pill:active:not(:disabled) { transform: scale(var(--cb-pill-press-scale)); }
|
|
551
|
-
.cb-pill-icon {
|
|
552
|
-
width: var(--cb-pill-icon-size);
|
|
553
|
-
height: var(--cb-pill-icon-size);
|
|
554
|
-
border-radius: 50%;
|
|
555
|
-
object-fit: contain;
|
|
556
|
-
flex-shrink: 0;
|
|
557
|
-
background: transparent;
|
|
558
|
-
}
|
|
559
|
-
.cb-pill-icon-placeholder {
|
|
560
|
-
display: inline-block;
|
|
561
|
-
width: var(--cb-pill-icon-size);
|
|
562
|
-
height: var(--cb-pill-icon-size);
|
|
563
|
-
border-radius: 50%;
|
|
564
|
-
background: var(--cb-pill-icon-placeholder-bg);
|
|
565
|
-
flex-shrink: 0;
|
|
566
|
-
}
|
|
567
|
-
.cb-pill-address {
|
|
568
|
-
font-family: var(--cb-pill-address-font);
|
|
569
|
-
font-size: var(--cb-pill-address-font-size);
|
|
570
|
-
letter-spacing: var(--cb-pill-address-letter-spacing);
|
|
571
|
-
}
|
|
572
|
-
@media (max-width: 767.98px) {
|
|
573
|
-
.cb-button, .cb-pill {
|
|
574
|
-
width: 36px;
|
|
575
|
-
min-width: 36px;
|
|
576
|
-
padding: 0;
|
|
577
|
-
}
|
|
578
|
-
.cb-button-label, .cb-pill-address { display: none; }
|
|
579
|
-
}
|
|
580
|
-
@keyframes cck-cb-spin {
|
|
581
|
-
to { transform: rotate(360deg); }
|
|
582
|
-
}
|
|
583
|
-
`;
|
|
584
|
-
//# sourceMappingURL=ConnectButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectButton.js","sourceRoot":"","sources":["../../src/components/ConnectButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { type ReactNode } from 'react';
|
|
2
|
-
import type { CrossxConfig, CrossConnectKitInitialState } from '@nexus-cross/connect-kit-wagmi';
|
|
3
|
-
import type { WalletId } from '@nexus-cross/connect-kit-core';
|
|
4
|
-
export interface CrossConnectKitProviderProps {
|
|
5
|
-
children: ReactNode;
|
|
6
|
-
config: CrossxConfig;
|
|
7
|
-
/**
|
|
8
|
-
* SSR hydration state for both sides of the dual wagmi config. Produce
|
|
9
|
-
* with `cookieToCrossConnectKitState(config, cookieHeader)` on the server.
|
|
10
|
-
* The provider passes the correct slice into whichever `<WagmiProvider>`
|
|
11
|
-
* is currently active.
|
|
12
|
-
*/
|
|
13
|
-
initialState?: CrossConnectKitInitialState;
|
|
14
|
-
/**
|
|
15
|
-
* Extra wallet entries to render in the unified connect modal that do
|
|
16
|
-
* NOT have a wagmi connector behind them. Use this for "coming soon"
|
|
17
|
-
* placeholders or dapp-ui-only wallets like Verse8 / Tron — pass a
|
|
18
|
-
* click handler that opens an alert / external page.
|
|
19
|
-
*
|
|
20
|
-
* Keys must be walletIds known to dapp-ui's `WALLET_REGISTRY`
|
|
21
|
-
* (e.g. `'verse8'`, `'tron'`). Other keys are ignored.
|
|
22
|
-
*/
|
|
23
|
-
extraWallets?: Partial<Record<WalletId, () => void | Promise<void>>>;
|
|
24
|
-
/**
|
|
25
|
-
* Whitelist controlling which wallet ids appear in the modal's
|
|
26
|
-
* "Other Wallets" list.
|
|
27
|
-
*
|
|
28
|
-
* undefined — show every registered wallet (default)
|
|
29
|
-
* [] — show none (social-only modal)
|
|
30
|
-
* [...ids] — show only the listed ids (applies to extras too)
|
|
31
|
-
*
|
|
32
|
-
* Disable social separately by omitting `embeddedConnectorFactory`
|
|
33
|
-
* from `createCrossxConfig`.
|
|
34
|
-
*/
|
|
35
|
-
walletAllowlist?: readonly WalletId[];
|
|
36
|
-
}
|
|
37
|
-
export declare function CrossConnectKitProvider({ children, config, initialState, extraWallets, walletAllowlist, }: CrossConnectKitProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
38
|
-
//# sourceMappingURL=CrossConnectKitProvider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CrossConnectKitProvider.d.ts","sourceRoot":"","sources":["../../src/components/CrossConnectKitProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAqD,MAAM,OAAO,CAAC;AAG1F,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAE5B,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAIV,QAAQ,EACT,MAAM,+BAA+B,CAAC;AAYvC,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CACpB,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAC7C,CAAC;IAEF;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,SAAS,QAAQ,EAAE,CAAC;CACvC;AAwuBD,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,YAAkC,EAClC,eAAe,GAChB,EAAE,4BAA4B,2CAqL9B"}
|