@swype-org/react-sdk 0.1.207 → 0.1.209
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/index.cjs +99 -99
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +31 -31
- package/dist/index.d.ts +31 -31
- package/dist/index.js +92 -92
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -72,7 +72,7 @@ var lightTheme = {
|
|
|
72
72
|
function getTheme(mode) {
|
|
73
73
|
return mode === "dark" ? darkTheme : lightTheme;
|
|
74
74
|
}
|
|
75
|
-
var
|
|
75
|
+
var BLINK_PRIVY_APP_ID = "cmlil87uv004n0ck0blwumwek";
|
|
76
76
|
var wagmiConfig = createConfig({
|
|
77
77
|
chains: [mainnet, arbitrum, base, polygon, bsc],
|
|
78
78
|
connectors: [injected({ shimDisconnect: true, unstable_shimAsyncInject: 2e3 })],
|
|
@@ -84,8 +84,8 @@ var wagmiConfig = createConfig({
|
|
|
84
84
|
[bsc.id]: http()
|
|
85
85
|
}
|
|
86
86
|
});
|
|
87
|
-
var
|
|
88
|
-
function
|
|
87
|
+
var BlinkContext = createContext(null);
|
|
88
|
+
function BlinkProvider({
|
|
89
89
|
apiBaseUrl,
|
|
90
90
|
theme = "dark",
|
|
91
91
|
children
|
|
@@ -111,7 +111,7 @@ function SwypeProvider({
|
|
|
111
111
|
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClientRef.current, children: /* @__PURE__ */ jsx(WagmiProvider, { config: wagmiConfig, children: /* @__PURE__ */ jsx(
|
|
112
112
|
PrivyProvider,
|
|
113
113
|
{
|
|
114
|
-
appId:
|
|
114
|
+
appId: BLINK_PRIVY_APP_ID,
|
|
115
115
|
config: {
|
|
116
116
|
appearance: {
|
|
117
117
|
theme,
|
|
@@ -124,25 +124,25 @@ function SwypeProvider({
|
|
|
124
124
|
showWalletUIs: false
|
|
125
125
|
}
|
|
126
126
|
},
|
|
127
|
-
children: /* @__PURE__ */ jsx(
|
|
127
|
+
children: /* @__PURE__ */ jsx(BlinkContext.Provider, { value, children })
|
|
128
128
|
}
|
|
129
129
|
) }) });
|
|
130
130
|
}
|
|
131
|
-
function
|
|
132
|
-
const ctx = useContext(
|
|
131
|
+
function useBlinkConfig() {
|
|
132
|
+
const ctx = useContext(BlinkContext);
|
|
133
133
|
if (!ctx) {
|
|
134
|
-
throw new Error("
|
|
134
|
+
throw new Error("useBlinkConfig must be used within a <BlinkProvider>");
|
|
135
135
|
}
|
|
136
136
|
return ctx;
|
|
137
137
|
}
|
|
138
|
-
function
|
|
139
|
-
return useContext(
|
|
138
|
+
function useOptionalBlinkConfig() {
|
|
139
|
+
return useContext(BlinkContext);
|
|
140
140
|
}
|
|
141
|
-
function
|
|
142
|
-
const ctx = useContext(
|
|
141
|
+
function useBlinkDepositAmount() {
|
|
142
|
+
const ctx = useContext(BlinkContext);
|
|
143
143
|
if (!ctx) {
|
|
144
144
|
throw new Error(
|
|
145
|
-
"
|
|
145
|
+
"useBlinkDepositAmount must be used within a <BlinkProvider>"
|
|
146
146
|
);
|
|
147
147
|
}
|
|
148
148
|
return {
|
|
@@ -770,7 +770,7 @@ function createPasskeyViaPopup(options) {
|
|
|
770
770
|
const payload = { ...options, verificationToken };
|
|
771
771
|
const encoded = btoa(JSON.stringify(payload));
|
|
772
772
|
const popupUrl = `${window.location.origin}/passkey-register#${encoded}`;
|
|
773
|
-
const popup = window.open(popupUrl, "
|
|
773
|
+
const popup = window.open(popupUrl, "blink-passkey");
|
|
774
774
|
if (!popup) {
|
|
775
775
|
reject(new Error("Pop-up blocked. Please allow pop-ups for this site and try again."));
|
|
776
776
|
return;
|
|
@@ -820,7 +820,7 @@ function findDevicePasskeyViaPopup(options) {
|
|
|
820
820
|
};
|
|
821
821
|
const encoded = btoa(JSON.stringify(payload));
|
|
822
822
|
const popupUrl = `${window.location.origin}/passkey-verify#${encoded}`;
|
|
823
|
-
const popup = window.open(popupUrl, "
|
|
823
|
+
const popup = window.open(popupUrl, "blink-passkey-verify");
|
|
824
824
|
if (!popup) {
|
|
825
825
|
reject(new Error("Pop-up blocked. Please allow pop-ups for this site and try again."));
|
|
826
826
|
return;
|
|
@@ -939,7 +939,7 @@ function readEnvValue(name) {
|
|
|
939
939
|
return void 0;
|
|
940
940
|
}
|
|
941
941
|
function resolvePasskeyRpId() {
|
|
942
|
-
const configuredDomain = readEnvValue("VITE_DOMAIN") ?? readEnvValue("
|
|
942
|
+
const configuredDomain = readEnvValue("VITE_DOMAIN") ?? readEnvValue("BLINK_DOMAIN");
|
|
943
943
|
if (configuredDomain) {
|
|
944
944
|
return normalizeConfiguredDomain(configuredDomain);
|
|
945
945
|
}
|
|
@@ -993,7 +993,7 @@ async function createPasskeyCredential(params) {
|
|
|
993
993
|
const rpId = resolvePasskeyRpId();
|
|
994
994
|
const publicKeyOptions = {
|
|
995
995
|
challenge,
|
|
996
|
-
rp: { name: "
|
|
996
|
+
rp: { name: "Blink", id: rpId },
|
|
997
997
|
user: {
|
|
998
998
|
id: new TextEncoder().encode(params.userId),
|
|
999
999
|
name: params.displayName,
|
|
@@ -1050,7 +1050,7 @@ function buildPasskeyPopupOptions(params) {
|
|
|
1050
1050
|
return {
|
|
1051
1051
|
challenge: toBase64(challenge),
|
|
1052
1052
|
rpId,
|
|
1053
|
-
rpName: "
|
|
1053
|
+
rpName: "Blink",
|
|
1054
1054
|
userId: toBase64(new TextEncoder().encode(params.userId)),
|
|
1055
1055
|
userName: params.displayName,
|
|
1056
1056
|
userDisplayName: params.displayName,
|
|
@@ -1097,7 +1097,7 @@ async function findDevicePasskey(credentialIds) {
|
|
|
1097
1097
|
}
|
|
1098
1098
|
}
|
|
1099
1099
|
function useTransferPolling(intervalMs = 3e3) {
|
|
1100
|
-
const { apiBaseUrl } =
|
|
1100
|
+
const { apiBaseUrl } = useBlinkConfig();
|
|
1101
1101
|
const { getAccessToken } = usePrivy();
|
|
1102
1102
|
const [transfer, setTransfer] = useState(null);
|
|
1103
1103
|
const [error, setError] = useState(null);
|
|
@@ -1288,7 +1288,7 @@ async function executeApprovePermit2(action, wagmiConfig2) {
|
|
|
1288
1288
|
}]
|
|
1289
1289
|
});
|
|
1290
1290
|
console.info(
|
|
1291
|
-
`[
|
|
1291
|
+
`[blink-sdk][approve-permit2] ERC-20 approve tx sent. token=${tokenSymbol ?? to}, txHash=${txHash}`
|
|
1292
1292
|
);
|
|
1293
1293
|
return actionSuccess(
|
|
1294
1294
|
action,
|
|
@@ -1342,7 +1342,7 @@ async function executeSignPermit2(action, wagmiConfig2, apiBaseUrl, sessionId) {
|
|
|
1342
1342
|
}
|
|
1343
1343
|
const parsed = parseSignTypedDataPayload(typedData);
|
|
1344
1344
|
console.info(
|
|
1345
|
-
`[
|
|
1345
|
+
`[blink-sdk][sign-permit2] Signing typed data. expectedOwner=${expectedWallet ?? "N/A"}, senderParam=${sender}, connectedAddress=${connectedAddress ?? "N/A"}, primaryType=${parsed.primaryType}, domainChainId=${String(parsed.domain.chainId ?? "N/A")}, verifyingContract=${String(parsed.domain.verifyingContract ?? "N/A")}`
|
|
1346
1346
|
);
|
|
1347
1347
|
const rawSignature = await walletClient.signTypedData({
|
|
1348
1348
|
account: sender,
|
|
@@ -1354,7 +1354,7 @@ async function executeSignPermit2(action, wagmiConfig2, apiBaseUrl, sessionId) {
|
|
|
1354
1354
|
const signature = ownerIsSCA ? rawSignature.startsWith("0x") ? rawSignature : `0x${rawSignature}` : normalizeSignature(rawSignature);
|
|
1355
1355
|
if (ownerIsSCA) {
|
|
1356
1356
|
console.info(
|
|
1357
|
-
`[
|
|
1357
|
+
`[blink-sdk][sign-permit2] Owner is SCA \u2014 preserving raw signature (${rawSignature.length / 2 - 1}B). Server will validate via EIP-1271.`
|
|
1358
1358
|
);
|
|
1359
1359
|
} else {
|
|
1360
1360
|
const recoverInput = {
|
|
@@ -1367,7 +1367,7 @@ async function executeSignPermit2(action, wagmiConfig2, apiBaseUrl, sessionId) {
|
|
|
1367
1367
|
const recoveredSigner = await recoverTypedDataAddress(recoverInput);
|
|
1368
1368
|
const expectedSigner = (expectedWallet ?? sender).toLowerCase();
|
|
1369
1369
|
console.info(
|
|
1370
|
-
`[
|
|
1370
|
+
`[blink-sdk][sign-permit2] Signature recovered. recoveredSigner=${recoveredSigner}, expectedSigner=${expectedSigner}`
|
|
1371
1371
|
);
|
|
1372
1372
|
if (recoveredSigner.toLowerCase() !== expectedSigner) {
|
|
1373
1373
|
return actionError(
|
|
@@ -1377,7 +1377,7 @@ async function executeSignPermit2(action, wagmiConfig2, apiBaseUrl, sessionId) {
|
|
|
1377
1377
|
}
|
|
1378
1378
|
}
|
|
1379
1379
|
console.info(
|
|
1380
|
-
`[
|
|
1380
|
+
`[blink-sdk][sign-permit2] Permit2 EIP-712 signature obtained. token=${tokenSymbol ?? "unknown"}`
|
|
1381
1381
|
);
|
|
1382
1382
|
return actionSuccess(
|
|
1383
1383
|
action,
|
|
@@ -1393,8 +1393,8 @@ async function executeSignPermit2(action, wagmiConfig2, apiBaseUrl, sessionId) {
|
|
|
1393
1393
|
}
|
|
1394
1394
|
}
|
|
1395
1395
|
function useAuthorizationExecutor(options) {
|
|
1396
|
-
const
|
|
1397
|
-
const apiBaseUrl = options?.apiBaseUrl ??
|
|
1396
|
+
const blinkConfig = useOptionalBlinkConfig();
|
|
1397
|
+
const apiBaseUrl = options?.apiBaseUrl ?? blinkConfig?.apiBaseUrl;
|
|
1398
1398
|
const wagmiConfig2 = useConfig();
|
|
1399
1399
|
const { connectAsync, connectors } = useConnect();
|
|
1400
1400
|
const { switchChainAsync } = useSwitchChain();
|
|
@@ -1478,7 +1478,7 @@ function useAuthorizationExecutor(options) {
|
|
|
1478
1478
|
}
|
|
1479
1479
|
if (!apiBaseUrl) {
|
|
1480
1480
|
executingRef.current = false;
|
|
1481
|
-
throw new Error("Missing apiBaseUrl. Provide useAuthorizationExecutor({ apiBaseUrl }) or wrap in <
|
|
1481
|
+
throw new Error("Missing apiBaseUrl. Provide useAuthorizationExecutor({ apiBaseUrl }) or wrap in <BlinkProvider>.");
|
|
1482
1482
|
}
|
|
1483
1483
|
sessionIdRef.current = sessionId;
|
|
1484
1484
|
setExecuting(true);
|
|
@@ -1543,8 +1543,8 @@ function useAuthorizationExecutor(options) {
|
|
|
1543
1543
|
};
|
|
1544
1544
|
}
|
|
1545
1545
|
function useTransferSigning(pollIntervalMs = 2e3, options) {
|
|
1546
|
-
const
|
|
1547
|
-
const apiBaseUrl = options?.apiBaseUrl ??
|
|
1546
|
+
const blinkConfig = useOptionalBlinkConfig();
|
|
1547
|
+
const apiBaseUrl = options?.apiBaseUrl ?? blinkConfig?.apiBaseUrl;
|
|
1548
1548
|
const authorizationSessionToken = options?.authorizationSessionToken;
|
|
1549
1549
|
let privyGetAccessToken;
|
|
1550
1550
|
try {
|
|
@@ -1563,7 +1563,7 @@ function useTransferSigning(pollIntervalMs = 2e3, options) {
|
|
|
1563
1563
|
setSignPayload(null);
|
|
1564
1564
|
try {
|
|
1565
1565
|
if (!apiBaseUrl) {
|
|
1566
|
-
throw new Error("Missing apiBaseUrl. Provide useTransferSigning(_, { apiBaseUrl }) or wrap in <
|
|
1566
|
+
throw new Error("Missing apiBaseUrl. Provide useTransferSigning(_, { apiBaseUrl }) or wrap in <BlinkProvider>.");
|
|
1567
1567
|
}
|
|
1568
1568
|
if (!getAccessToken && !authorizationSessionToken) {
|
|
1569
1569
|
throw new Error("Missing getAccessToken provider. Provide useTransferSigning(_, { getAccessToken }).");
|
|
@@ -1641,8 +1641,8 @@ function useTransferSigning(pollIntervalMs = 2e3, options) {
|
|
|
1641
1641
|
}
|
|
1642
1642
|
|
|
1643
1643
|
// src/paymentHelpers.ts
|
|
1644
|
-
var ACTIVE_CREDENTIAL_STORAGE_KEY = "
|
|
1645
|
-
var MOBILE_FLOW_STORAGE_KEY = "
|
|
1644
|
+
var ACTIVE_CREDENTIAL_STORAGE_KEY = "blink_active_credential_id";
|
|
1645
|
+
var MOBILE_FLOW_STORAGE_KEY = "blink_mobile_flow";
|
|
1646
1646
|
var MIN_SEND_AMOUNT_USD = 0.25;
|
|
1647
1647
|
function persistMobileFlowState(data) {
|
|
1648
1648
|
try {
|
|
@@ -2122,7 +2122,7 @@ function shouldUseWalletConnector(options) {
|
|
|
2122
2122
|
}
|
|
2123
2123
|
var MUTED = "#7fa4b0";
|
|
2124
2124
|
var LOGO_SIZE = 48;
|
|
2125
|
-
function
|
|
2125
|
+
function BlinkLoadingScreen() {
|
|
2126
2126
|
return /* @__PURE__ */ jsxs("div", { style: containerStyle, children: [
|
|
2127
2127
|
/* @__PURE__ */ jsxs(
|
|
2128
2128
|
"svg",
|
|
@@ -2134,23 +2134,23 @@ function SwypeLoadingScreen() {
|
|
|
2134
2134
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2135
2135
|
style: { borderRadius: 10 },
|
|
2136
2136
|
children: [
|
|
2137
|
-
/* @__PURE__ */ jsxs("g", { clipPath: "url(#
|
|
2137
|
+
/* @__PURE__ */ jsxs("g", { clipPath: "url(#blink-loading-clip)", children: [
|
|
2138
2138
|
/* @__PURE__ */ jsx("rect", { width: "100", height: "100", rx: "18.5874", fill: "white" }),
|
|
2139
2139
|
/* @__PURE__ */ jsx("path", { d: "M64.0138 36.6191C68.3952 36.7025 70.2512 42.3038 65.1932 44.0399C61.4251 44.2617 60.8419 41.8557 61.3059 38.6113C62.3258 37.4916 62.6562 37.2326 64.0138 36.6191Z", fill: "white" }),
|
|
2140
2140
|
/* @__PURE__ */ jsx("path", { d: "M34.7441 36.6714C36.6646 36.3309 38.4839 37.6898 38.813 39.71C39.1407 41.7302 37.8542 43.6499 35.9352 43.9994C34.7427 44.2169 33.5274 43.7774 32.7154 42.8325C31.8492 41.8262 31.5728 40.4029 31.9959 39.1191C32.419 37.8367 33.4719 36.8979 34.7441 36.6714Z", fill: "white" }),
|
|
2141
|
-
/* @__PURE__ */ jsx("g", { style: { transformOrigin: "50px 62px", animation: "
|
|
2141
|
+
/* @__PURE__ */ jsx("g", { style: { transformOrigin: "50px 62px", animation: "blink-legs-walk 0.8s ease-in-out infinite" }, children: /* @__PURE__ */ jsx("path", { d: "M37.719 72.0299C39.0372 70.605 40.611 68.9843 41.7888 67.4312L50.1528 61.6651L57.6601 61.4468C57.4965 63.5289 61.7342 75.3729 61.6981 77.5158C62.154 77.0628 63.0658 76.3318 63.567 75.9876C65.9954 74.3365 68.8384 73.8223 71.4833 74.5554C72.8167 74.9328 73.9331 75.9251 74.58 77.3075C75.2967 78.8451 75.3771 80.3207 74.9127 82.0281C73.8912 85.7844 71.5792 88.6365 68.624 90.5357C66.125 92.1415 61.7077 93.9276 58.9822 93.0828C58.078 92.7956 56.4567 92.015 55.9204 91.1399C55.1385 89.8648 54.5613 88.8907 54.1469 87.3736C53.3686 84.4709 53.3459 86.0793 52.7439 77.9085C52.8102 75.0919 52.9961 69.1199 52.9088 66.782C52.1044 67.8121 48.6686 72.1053 47.7896 73.7937L43.7186 79.5555C45.2316 79.4947 47.0626 79.5314 48.354 80.4535C49.2813 81.1277 49.9192 82.2144 50.1273 83.4755C50.2332 83.8294 50.3132 84.6855 50.3258 85.0634C50.4307 88.2051 49.4337 91.7462 46.8974 93.4764C45.8189 94.2126 44.2654 94.598 43.01 94.7341C37.9909 95.3115 33.0817 93.5835 29.3502 89.9257C28.3222 88.8994 27.4875 87.705 27.4333 86.0333C27.4046 85.1165 27.6099 84.1963 28.0241 83.3859C28.6301 82.2147 30.2471 80.3005 31.0794 79.3156C33.2057 76.7997 35.4975 74.4306 37.719 72.0299Z", fill: "black" }) }),
|
|
2142
2142
|
/* @__PURE__ */ jsx("path", { d: "M25.2815 30.5666C25.6441 30.6182 25.869 30.0928 25.5864 29.8598C23.1701 27.868 21.5484 25.4469 21.0444 22.6545C20.3641 19.1251 21.516 15.5212 24.2422 12.6488C26.8514 9.91783 30.7518 8.12575 35.0552 7.68041C40.5681 7.11357 44.9544 9.44386 49.0355 11.908C49.1016 11.9479 49.1793 11.964 49.2559 11.9535L49.6641 11.8975C49.7772 11.882 49.8729 11.8099 49.9313 11.7118C50.7042 10.4132 53.3609 9.13558 54.9428 8.55183C63.274 5.47733 72.1015 8.67608 75.6217 15.0543C77.4169 18.3043 77.4637 21.9922 75.7515 25.2845C74.8719 26.99 73.8277 28.1868 72.3742 29.4156C72.1074 29.6412 72.3057 30.099 72.652 30.0534C78.3434 29.3036 83.6958 29.6535 88.1602 33.0995C88.1743 33.1104 88.1896 33.1204 88.2051 33.1289C94.9326 36.8336 95.4063 45.4019 90.8735 50.5016C88.6438 53.0434 85.3883 54.9193 81.641 55.8268C81.4786 55.8662 81.3675 56.017 81.3778 56.1837C81.627 60.2197 80.6407 63.7049 77.0957 66.8558C74.3594 69.31 72.2572 70.905 68.1242 71.1594C66.1317 71.2671 64.5824 71.0823 61.0405 69.4728C57.7759 67.9894 53.6996 61.9918 52.509 57.7058C52.4204 57.3871 51.9326 57.3204 51.7644 57.6052C49.4075 61.5961 43.2088 67.6787 38.7227 69.4728C35.1404 70.8919 32.2895 71.8779 28.5005 70.8789C24.3706 69.7951 20.9698 67.4623 19.0499 64.3964C18.0021 62.7282 16.7577 59.3144 17.4723 57.5087C17.4921 57.4587 17.5023 57.4056 17.4951 57.3522C17.4647 57.1259 17.359 56.7067 17.1377 56.6504C8.17592 54.367 2.58735 48.0815 5.03045 40.4013C6.14562 36.9784 8.95444 34.0395 12.8321 32.2381C16.7957 30.3763 20.9323 29.9475 25.2815 30.5666Z", fill: "black" }),
|
|
2143
2143
|
/* @__PURE__ */ jsx("rect", { x: "44.3433", y: "56.4863", width: "10.1195", height: "9.10751", fill: "black" }),
|
|
2144
2144
|
/* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M45.6929 25.6221C49.2323 25.6223 52.1021 31.512 52.1021 38.7773C52.102 46.0426 49.2323 51.9323 45.6929 51.9326C42.2373 51.9326 39.4213 46.3188 39.2896 39.292C41.4308 38.8166 43.9097 38.7264 46.1079 39.1299C47.0121 39.2956 47.8949 38.5389 47.4956 37.7109C46.0273 34.6668 42.4111 34.0327 39.686 34.1816C40.5942 29.1824 42.9408 25.6221 45.6929 25.6221Z", fill: "white" }),
|
|
2145
2145
|
/* @__PURE__ */ jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M63.2471 25.6216C66.7865 25.6219 69.6562 31.5116 69.6562 38.7769C69.6562 46.0422 66.7865 51.9319 63.2471 51.9321C59.7916 51.9321 56.9756 46.319 56.8438 39.2925C58.985 38.8171 61.4639 38.7259 63.6621 39.1294C64.5663 39.2952 65.4491 38.5394 65.0498 37.7114C63.5816 34.6669 59.9654 34.0322 57.2402 34.1812C58.1484 29.1821 60.4951 25.6216 63.2471 25.6216Z", fill: "white" })
|
|
2146
2146
|
] }),
|
|
2147
|
-
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "
|
|
2147
|
+
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx("clipPath", { id: "blink-loading-clip", children: /* @__PURE__ */ jsx("rect", { width: "100", height: "100", rx: "18.5874", fill: "white" }) }) })
|
|
2148
2148
|
]
|
|
2149
2149
|
}
|
|
2150
2150
|
),
|
|
2151
2151
|
/* @__PURE__ */ jsx("span", { style: labelStyle, children: "Loading..." }),
|
|
2152
2152
|
/* @__PURE__ */ jsx("style", { children: `
|
|
2153
|
-
@keyframes
|
|
2153
|
+
@keyframes blink-legs-walk {
|
|
2154
2154
|
0%, 100% { transform: rotate(0deg); }
|
|
2155
2155
|
25% { transform: rotate(5deg); }
|
|
2156
2156
|
75% { transform: rotate(-5deg); }
|
|
@@ -2205,7 +2205,7 @@ var TRUST_WALLET_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="729 341
|
|
|
2205
2205
|
<path fill="#0500ff" d="m738.71,423.41l221.45-72.3v500.52c-158.18-66.74-221.45-194.65-221.45-266.94v-161.28Z"/>
|
|
2206
2206
|
<path fill="url(#tw-grad)" d="m1181.62,423.41l-221.45-72.3v500.52c158.18-66.74,221.45-194.65,221.45-266.94v-161.28Z"/>
|
|
2207
2207
|
</svg>`;
|
|
2208
|
-
var
|
|
2208
|
+
var BLINK_SVG = `<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2209
2209
|
<g clip-path="url(#clip0_125_480)">
|
|
2210
2210
|
<rect width="100" height="100" rx="18.5874" fill="black"/>
|
|
2211
2211
|
<path d="M64.0138 36.6191C68.3952 36.7025 70.2512 42.3038 65.1932 44.0399C61.4251 44.2617 60.8419 41.8557 61.3059 38.6113C62.3258 37.4916 62.6562 37.2326 64.0138 36.6191Z" fill="black"/>
|
|
@@ -2231,8 +2231,8 @@ var TETHER_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800">
|
|
|
2231
2231
|
<circle fill="#009393" cx="400" cy="400" r="400"/>
|
|
2232
2232
|
<path fill="#fff" fill-rule="evenodd" d="M400.49,428.59c68.79,0,126.28-11.63,140.33-27.17-11.93-13.18-55.08-23.56-109.88-26.4v32.83c-9.81.51-20.01.76-30.46.76s-20.65-.25-30.48-.76v-32.83c-54.78,2.84-97.95,13.22-109.88,26.4,14.07,15.54,71.57,27.17,140.36,27.17ZM522.71,274.06v45.21h-91.77v31.35c64.46,3.35,112.83,17.13,113.19,33.62v34.38c-.36,16.49-48.73,30.24-113.19,33.6v76.94h-60.93v-76.94c-64.46-3.35-112.81-17.11-113.17-33.6v-34.38c.36-16.49,48.71-30.27,113.17-33.62v-31.35h-91.77v-45.21h244.48ZM242.15,202.11h322.16c7.7,0,14.79,4.05,18.63,10.63l93.85,161.16c4.86,8.36,3.42,18.91-3.52,25.68l-258.34,252.18c-8.38,8.17-21.84,8.17-30.2,0L126.71,399.92c-7.09-6.94-8.43-17.79-3.2-26.19l100.33-161.49c3.91-6.28,10.85-10.12,18.32-10.12Z"/>
|
|
2233
2233
|
</svg>`;
|
|
2234
|
-
var
|
|
2235
|
-
var
|
|
2234
|
+
var BLINK_LOGO = svgToDataUri(BLINK_SVG);
|
|
2235
|
+
var BLINK_MASCOT = BLINK_LOGO;
|
|
2236
2236
|
var BASE_LOGO = svgToDataUri(BASE_SVG);
|
|
2237
2237
|
var METAMASK_LOGO = svgToDataUri(METAMASK_SVG);
|
|
2238
2238
|
var TRUST_WALLET_LOGO = svgToDataUri(TRUST_WALLET_SVG);
|
|
@@ -2249,14 +2249,14 @@ var TOKEN_LOGOS = {
|
|
|
2249
2249
|
USDT: TETHER_LOGO
|
|
2250
2250
|
};
|
|
2251
2251
|
var FOOTER_CSS = `
|
|
2252
|
-
.
|
|
2252
|
+
.blink-screen-footer {
|
|
2253
2253
|
padding-bottom: max(32px, env(safe-area-inset-bottom, 32px));
|
|
2254
2254
|
}`;
|
|
2255
2255
|
function ScreenLayout({ children, footer }) {
|
|
2256
|
-
const { tokens } =
|
|
2256
|
+
const { tokens } = useBlinkConfig();
|
|
2257
2257
|
return /* @__PURE__ */ jsxs("div", { style: containerStyle2(tokens.bgCard), children: [
|
|
2258
2258
|
/* @__PURE__ */ jsx("div", { style: bodyStyle, children }),
|
|
2259
|
-
footer && /* @__PURE__ */ jsx("div", { className: "
|
|
2259
|
+
footer && /* @__PURE__ */ jsx("div", { className: "blink-screen-footer", style: footerStyle, children: footer }),
|
|
2260
2260
|
/* @__PURE__ */ jsx("style", { children: FOOTER_CSS })
|
|
2261
2261
|
] });
|
|
2262
2262
|
}
|
|
@@ -2296,9 +2296,9 @@ function useFlowPhase() {
|
|
|
2296
2296
|
return useContext(FlowPhaseContext);
|
|
2297
2297
|
}
|
|
2298
2298
|
function StepProgress({ phase }) {
|
|
2299
|
-
const { tokens } =
|
|
2299
|
+
const { tokens } = useBlinkConfig();
|
|
2300
2300
|
if (phase === "deposit") {
|
|
2301
|
-
return /* @__PURE__ */ jsx("img", { src:
|
|
2301
|
+
return /* @__PURE__ */ jsx("img", { src: BLINK_LOGO, alt: "Blink", style: mascotStyle });
|
|
2302
2302
|
}
|
|
2303
2303
|
return /* @__PURE__ */ jsxs("div", { style: containerStyle3, children: [
|
|
2304
2304
|
/* @__PURE__ */ jsxs("div", { style: sectionStyle("flex-end"), children: [
|
|
@@ -2350,7 +2350,7 @@ var mascotStyle = {
|
|
|
2350
2350
|
height: 28
|
|
2351
2351
|
};
|
|
2352
2352
|
function SettingsMenu({ onLogout }) {
|
|
2353
|
-
const { tokens } =
|
|
2353
|
+
const { tokens } = useBlinkConfig();
|
|
2354
2354
|
const [open, setOpen] = useState(false);
|
|
2355
2355
|
const menuRef = useRef(null);
|
|
2356
2356
|
const toggle = useCallback(() => setOpen((prev) => !prev), []);
|
|
@@ -2431,7 +2431,7 @@ var menuItemStyle = (tokens) => ({
|
|
|
2431
2431
|
color: tokens.error
|
|
2432
2432
|
});
|
|
2433
2433
|
function ScreenHeader({ title, right, onBack, badge, onLogout }) {
|
|
2434
|
-
const { tokens } =
|
|
2434
|
+
const { tokens } = useBlinkConfig();
|
|
2435
2435
|
const flowPhase = useFlowPhase();
|
|
2436
2436
|
const rightContent = onLogout ? /* @__PURE__ */ jsx(SettingsMenu, { onLogout }) : right;
|
|
2437
2437
|
return /* @__PURE__ */ jsxs("div", { style: headerStyle, children: [
|
|
@@ -2480,7 +2480,7 @@ var badgeStyle = (color) => ({
|
|
|
2480
2480
|
color
|
|
2481
2481
|
});
|
|
2482
2482
|
function PoweredByFooter() {
|
|
2483
|
-
const { tokens } =
|
|
2483
|
+
const { tokens } = useBlinkConfig();
|
|
2484
2484
|
return /* @__PURE__ */ jsx("div", { style: containerStyle5(tokens.textMuted), children: /* @__PURE__ */ jsxs("div", { style: rowStyle, children: [
|
|
2485
2485
|
/* @__PURE__ */ jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", children: /* @__PURE__ */ jsx(
|
|
2486
2486
|
"path",
|
|
@@ -2508,7 +2508,7 @@ var rowStyle = {
|
|
|
2508
2508
|
gap: 6
|
|
2509
2509
|
};
|
|
2510
2510
|
function PrimaryButton({ children, onClick, disabled, loading, icon }) {
|
|
2511
|
-
const { tokens } =
|
|
2511
|
+
const { tokens } = useBlinkConfig();
|
|
2512
2512
|
const isDisabled = disabled || loading;
|
|
2513
2513
|
return /* @__PURE__ */ jsxs(
|
|
2514
2514
|
"button",
|
|
@@ -2548,7 +2548,7 @@ var iconWrapStyle = {
|
|
|
2548
2548
|
alignItems: "center"
|
|
2549
2549
|
};
|
|
2550
2550
|
function OutlineButton({ children, onClick, disabled }) {
|
|
2551
|
-
const { tokens } =
|
|
2551
|
+
const { tokens } = useBlinkConfig();
|
|
2552
2552
|
return /* @__PURE__ */ jsx(
|
|
2553
2553
|
"button",
|
|
2554
2554
|
{
|
|
@@ -2582,7 +2582,7 @@ var defaultIcon = /* @__PURE__ */ jsx("svg", { width: "18", height: "18", viewBo
|
|
|
2582
2582
|
}
|
|
2583
2583
|
) });
|
|
2584
2584
|
function InfoBanner({ children, icon }) {
|
|
2585
|
-
const { tokens } =
|
|
2585
|
+
const { tokens } = useBlinkConfig();
|
|
2586
2586
|
return /* @__PURE__ */ jsxs("div", { style: containerStyle6(tokens.accent), children: [
|
|
2587
2587
|
/* @__PURE__ */ jsx("span", { style: iconStyle, children: icon ?? defaultIcon }),
|
|
2588
2588
|
/* @__PURE__ */ jsx("span", { style: textStyle, children })
|
|
@@ -2634,7 +2634,7 @@ var headerStyle2 = {
|
|
|
2634
2634
|
var iconStyle2 = { flexShrink: 0 };
|
|
2635
2635
|
var bodyStyle2 = { color: "#6D4C41" };
|
|
2636
2636
|
function IconCircle({ children, variant = "accent", size = 56 }) {
|
|
2637
|
-
const { tokens } =
|
|
2637
|
+
const { tokens } = useBlinkConfig();
|
|
2638
2638
|
const bgMap = {
|
|
2639
2639
|
accent: `${tokens.accent}18`,
|
|
2640
2640
|
success: tokens.successBg,
|
|
@@ -2654,7 +2654,7 @@ var circleStyle = (bg, size) => ({
|
|
|
2654
2654
|
flexShrink: 0
|
|
2655
2655
|
});
|
|
2656
2656
|
function OtpInput({ value, onChange, length = 6, disabled }) {
|
|
2657
|
-
const { tokens } =
|
|
2657
|
+
const { tokens } = useBlinkConfig();
|
|
2658
2658
|
const inputsRef = useRef([]);
|
|
2659
2659
|
const digits = value.padEnd(length).split("").slice(0, length);
|
|
2660
2660
|
const focusInput = useCallback((index) => {
|
|
@@ -2738,7 +2738,7 @@ var inputStyle = (tokens, filled) => ({
|
|
|
2738
2738
|
transition: "border-color 0.15s ease"
|
|
2739
2739
|
});
|
|
2740
2740
|
function StepList({ steps }) {
|
|
2741
|
-
const { tokens } =
|
|
2741
|
+
const { tokens } = useBlinkConfig();
|
|
2742
2742
|
return /* @__PURE__ */ jsx("div", { style: listStyle, children: steps.map((step, i) => {
|
|
2743
2743
|
const isComplete = step.status === "complete";
|
|
2744
2744
|
const isActive = step.status === "active";
|
|
@@ -2814,7 +2814,7 @@ function LoginScreen({
|
|
|
2814
2814
|
merchantInitials,
|
|
2815
2815
|
onSocialLogin
|
|
2816
2816
|
}) {
|
|
2817
|
-
const { tokens } =
|
|
2817
|
+
const { tokens } = useBlinkConfig();
|
|
2818
2818
|
const disabled = authInput.trim().length === 0 || sending;
|
|
2819
2819
|
return /* @__PURE__ */ jsxs(
|
|
2820
2820
|
ScreenLayout,
|
|
@@ -2849,13 +2849,13 @@ function LoginScreen({
|
|
|
2849
2849
|
}
|
|
2850
2850
|
),
|
|
2851
2851
|
/* @__PURE__ */ jsxs("div", { style: contentStyle, children: [
|
|
2852
|
-
/* @__PURE__ */ jsx("img", { src:
|
|
2852
|
+
/* @__PURE__ */ jsx("img", { src: BLINK_LOGO, alt: "Blink", style: logoStyle }),
|
|
2853
2853
|
/* @__PURE__ */ jsx("h2", { style: headingStyle(tokens.text), children: "Your Money. Any App.\nOne Tap." }),
|
|
2854
2854
|
error && /* @__PURE__ */ jsx("div", { style: errorStyle(tokens), children: error }),
|
|
2855
2855
|
/* @__PURE__ */ jsx(
|
|
2856
2856
|
"input",
|
|
2857
2857
|
{
|
|
2858
|
-
id: "
|
|
2858
|
+
id: "blink-login-identifier",
|
|
2859
2859
|
type: "text",
|
|
2860
2860
|
inputMode: "text",
|
|
2861
2861
|
autoComplete: "username",
|
|
@@ -2982,7 +2982,7 @@ function OtpVerifyScreen({
|
|
|
2982
2982
|
verifying,
|
|
2983
2983
|
error
|
|
2984
2984
|
}) {
|
|
2985
|
-
const { tokens } =
|
|
2985
|
+
const { tokens } = useBlinkConfig();
|
|
2986
2986
|
const disabled = otpCode.trim().length !== 6 || verifying;
|
|
2987
2987
|
const [cooldown, setCooldown] = useState(RESEND_COOLDOWN_SECONDS);
|
|
2988
2988
|
const intervalRef = useRef(null);
|
|
@@ -3101,7 +3101,7 @@ function PasskeyScreen({
|
|
|
3101
3101
|
popupFallback = false,
|
|
3102
3102
|
onCreatePasskeyViaPopup
|
|
3103
3103
|
}) {
|
|
3104
|
-
const { tokens } =
|
|
3104
|
+
const { tokens } = useBlinkConfig();
|
|
3105
3105
|
const handleCreate = popupFallback && onCreatePasskeyViaPopup ? onCreatePasskeyViaPopup : onCreatePasskey;
|
|
3106
3106
|
const buttonLabel = popupFallback ? "Open Passkey Window" : "Verify Passkey";
|
|
3107
3107
|
return /* @__PURE__ */ jsxs(
|
|
@@ -3156,7 +3156,7 @@ var errorBannerStyle2 = (tokens) => ({
|
|
|
3156
3156
|
textAlign: "left"
|
|
3157
3157
|
});
|
|
3158
3158
|
function Spinner({ size = 40, label }) {
|
|
3159
|
-
const { tokens } =
|
|
3159
|
+
const { tokens } = useBlinkConfig();
|
|
3160
3160
|
return /* @__PURE__ */ jsxs(
|
|
3161
3161
|
"div",
|
|
3162
3162
|
{
|
|
@@ -3178,13 +3178,13 @@ function Spinner({ size = 40, label }) {
|
|
|
3178
3178
|
borderRightColor: tokens.accent + "66",
|
|
3179
3179
|
borderRadius: "50%",
|
|
3180
3180
|
boxShadow: "inset 0 0 0 1px rgba(255,255,255,0.1)",
|
|
3181
|
-
animation: "
|
|
3181
|
+
animation: "blink-spin 0.9s linear infinite"
|
|
3182
3182
|
}
|
|
3183
3183
|
}
|
|
3184
3184
|
),
|
|
3185
3185
|
label && /* @__PURE__ */ jsx("p", { style: { color: tokens.textSecondary, fontSize: "0.875rem", margin: 0 }, children: label }),
|
|
3186
3186
|
/* @__PURE__ */ jsx("style", { children: `
|
|
3187
|
-
@keyframes
|
|
3187
|
+
@keyframes blink-spin {
|
|
3188
3188
|
to { transform: rotate(360deg); }
|
|
3189
3189
|
}
|
|
3190
3190
|
` })
|
|
@@ -3212,7 +3212,7 @@ function WalletPickerScreen({
|
|
|
3212
3212
|
onBack,
|
|
3213
3213
|
onLogout
|
|
3214
3214
|
}) {
|
|
3215
|
-
const { tokens } =
|
|
3215
|
+
const { tokens } = useBlinkConfig();
|
|
3216
3216
|
const [hoveredId, setHoveredId] = useState(null);
|
|
3217
3217
|
const [selectedProviderId, setSelectedProviderId] = useState(null);
|
|
3218
3218
|
const [cryptoExpanded, setCryptoExpanded] = useState(false);
|
|
@@ -3247,7 +3247,7 @@ function WalletPickerScreen({
|
|
|
3247
3247
|
const selectedProvider = displayProviders.find((p) => p.id === selectedProviderId);
|
|
3248
3248
|
if (loading) {
|
|
3249
3249
|
return /* @__PURE__ */ jsxs(ScreenLayout, { children: [
|
|
3250
|
-
/* @__PURE__ */ jsx(ScreenHeader, { title: "Set up
|
|
3250
|
+
/* @__PURE__ */ jsx(ScreenHeader, { title: "Set up Blink", onBack, onLogout }),
|
|
3251
3251
|
/* @__PURE__ */ jsx("div", { style: { textAlign: "center", padding: "48px 0", flex: 1, display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ jsx(Spinner, { label: "Connecting..." }) })
|
|
3252
3252
|
] });
|
|
3253
3253
|
}
|
|
@@ -3277,7 +3277,7 @@ function WalletPickerScreen({
|
|
|
3277
3277
|
/* @__PURE__ */ jsx(PoweredByFooter, {})
|
|
3278
3278
|
] }),
|
|
3279
3279
|
children: [
|
|
3280
|
-
/* @__PURE__ */ jsx(ScreenHeader, { title: "Set up
|
|
3280
|
+
/* @__PURE__ */ jsx(ScreenHeader, { title: "Set up Blink", onBack, onLogout }),
|
|
3281
3281
|
hasPending && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
3282
3282
|
/* @__PURE__ */ jsx("h2", { style: headingStyle4(tokens.text), children: "Continue where you left off" }),
|
|
3283
3283
|
/* @__PURE__ */ jsx("p", { style: subtitleStyle3(tokens.textSecondary), children: "You have a wallet that still needs setup" }),
|
|
@@ -3551,7 +3551,7 @@ function SetupScreen({
|
|
|
3551
3551
|
error,
|
|
3552
3552
|
selectedTokenSymbol
|
|
3553
3553
|
}) {
|
|
3554
|
-
const { tokens } =
|
|
3554
|
+
const { tokens } = useBlinkConfig();
|
|
3555
3555
|
const effectiveMax = DEFAULT_MAX;
|
|
3556
3556
|
const effectiveMin = Math.min(ABSOLUTE_MIN, effectiveMax);
|
|
3557
3557
|
const [limit, setLimit] = useState(() => Math.min(availableBalance, effectiveMax));
|
|
@@ -3769,12 +3769,12 @@ function SetupStatusScreen({
|
|
|
3769
3769
|
onLogout,
|
|
3770
3770
|
error
|
|
3771
3771
|
}) {
|
|
3772
|
-
const { tokens } =
|
|
3772
|
+
const { tokens } = useBlinkConfig();
|
|
3773
3773
|
if (complete) {
|
|
3774
3774
|
return /* @__PURE__ */ jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsx(PoweredByFooter, {}), children: [
|
|
3775
3775
|
/* @__PURE__ */ jsx(ScreenHeader, { onBack: onContinue }),
|
|
3776
3776
|
/* @__PURE__ */ jsxs("div", { style: contentStyle4, children: [
|
|
3777
|
-
/* @__PURE__ */ jsx("img", { src:
|
|
3777
|
+
/* @__PURE__ */ jsx("img", { src: BLINK_LOGO, alt: "Blink", style: mascotStyle2 }),
|
|
3778
3778
|
/* @__PURE__ */ jsx("h2", { style: headingStyle6(tokens.text), children: "Done!" }),
|
|
3779
3779
|
/* @__PURE__ */ jsx("p", { style: subtitleStyle4(tokens.textSecondary), children: "Return to the app to try one-tap deposits." })
|
|
3780
3780
|
] })
|
|
@@ -3869,7 +3869,7 @@ function DepositScreen({
|
|
|
3869
3869
|
selectedSourceLabel,
|
|
3870
3870
|
selectedTokenSymbol
|
|
3871
3871
|
}) {
|
|
3872
|
-
const { tokens } =
|
|
3872
|
+
const { tokens } = useBlinkConfig();
|
|
3873
3873
|
const amount = initialAmount;
|
|
3874
3874
|
const [accountPickerOpen, setAccountPickerOpen] = useState(false);
|
|
3875
3875
|
const pickerRef = useRef(null);
|
|
@@ -4244,7 +4244,7 @@ function SuccessScreen({
|
|
|
4244
4244
|
onManageAccount,
|
|
4245
4245
|
autoCloseSeconds
|
|
4246
4246
|
}) {
|
|
4247
|
-
const { tokens } =
|
|
4247
|
+
const { tokens } = useBlinkConfig();
|
|
4248
4248
|
const effectiveAutoClose = succeeded ? autoCloseSeconds : void 0;
|
|
4249
4249
|
const [countdown, setCountdown] = useState(effectiveAutoClose ?? 0);
|
|
4250
4250
|
const doneCalledRef = useRef(false);
|
|
@@ -4281,7 +4281,7 @@ function SuccessScreen({
|
|
|
4281
4281
|
countdown,
|
|
4282
4282
|
"s\u2026"
|
|
4283
4283
|
] }),
|
|
4284
|
-
onManageAccount && /* @__PURE__ */ jsx("button", { type: "button", onClick: onManageAccount, style: manageStyle(tokens.textMuted), children: "Manage
|
|
4284
|
+
onManageAccount && /* @__PURE__ */ jsx("button", { type: "button", onClick: onManageAccount, style: manageStyle(tokens.textMuted), children: "Manage Blink account \u2192" }),
|
|
4285
4285
|
/* @__PURE__ */ jsx(PoweredByFooter, {})
|
|
4286
4286
|
] }),
|
|
4287
4287
|
children: [
|
|
@@ -4435,7 +4435,7 @@ function SelectSourceScreen({
|
|
|
4435
4435
|
onBack,
|
|
4436
4436
|
onLogout
|
|
4437
4437
|
}) {
|
|
4438
|
-
const { tokens } =
|
|
4438
|
+
const { tokens } = useBlinkConfig();
|
|
4439
4439
|
const selectedChain = choices.find((c) => c.chainName === selectedChainName) ?? choices[0];
|
|
4440
4440
|
const tokenChoices = selectedChain?.tokens ?? [];
|
|
4441
4441
|
const canConfirm = !!selectedChainName && !!selectedTokenSymbol;
|
|
@@ -4620,7 +4620,7 @@ function AdvancedSourceScreen({
|
|
|
4620
4620
|
onSelectSource,
|
|
4621
4621
|
onBack
|
|
4622
4622
|
}) {
|
|
4623
|
-
const { tokens } =
|
|
4623
|
+
const { tokens } = useBlinkConfig();
|
|
4624
4624
|
const [expandedChain, setExpandedChain] = useState(
|
|
4625
4625
|
selectedChainName || (choices[0]?.chainName ?? null)
|
|
4626
4626
|
);
|
|
@@ -4653,7 +4653,7 @@ function AdvancedSourceScreen({
|
|
|
4653
4653
|
/* @__PURE__ */ jsx(
|
|
4654
4654
|
ScreenHeader,
|
|
4655
4655
|
{
|
|
4656
|
-
title: "
|
|
4656
|
+
title: "Blink Setup",
|
|
4657
4657
|
onBack,
|
|
4658
4658
|
right: /* @__PURE__ */ jsx("span", { style: advancedBadgeStyle(tokens.accent), children: "Advanced" })
|
|
4659
4659
|
}
|
|
@@ -4853,7 +4853,7 @@ function TransferStatusScreen({
|
|
|
4853
4853
|
error,
|
|
4854
4854
|
onLogout
|
|
4855
4855
|
}) {
|
|
4856
|
-
const { tokens } =
|
|
4856
|
+
const { tokens } = useBlinkConfig();
|
|
4857
4857
|
const steps = buildSteps(phase);
|
|
4858
4858
|
return /* @__PURE__ */ jsxs(ScreenLayout, { footer: /* @__PURE__ */ jsx(PoweredByFooter, {}), children: [
|
|
4859
4859
|
/* @__PURE__ */ jsx(ScreenHeader, { onLogout }),
|
|
@@ -4931,7 +4931,7 @@ function OpenWalletScreen({
|
|
|
4931
4931
|
onBack,
|
|
4932
4932
|
onLogout
|
|
4933
4933
|
}) {
|
|
4934
|
-
const { tokens } =
|
|
4934
|
+
const { tokens } = useBlinkConfig();
|
|
4935
4935
|
const displayName = walletName ?? "your wallet";
|
|
4936
4936
|
const logoSrc = walletName ? KNOWN_LOGOS[walletName.toLowerCase()] : void 0;
|
|
4937
4937
|
const autoOpenedRef = useRef(null);
|
|
@@ -5075,7 +5075,7 @@ function ConfirmSignScreen({
|
|
|
5075
5075
|
onSign,
|
|
5076
5076
|
onLogout
|
|
5077
5077
|
}) {
|
|
5078
|
-
const { tokens } =
|
|
5078
|
+
const { tokens } = useBlinkConfig();
|
|
5079
5079
|
const displayName = walletName ?? "your wallet";
|
|
5080
5080
|
const logoSrc = walletName ? KNOWN_LOGOS[walletName.toLowerCase()] : void 0;
|
|
5081
5081
|
return /* @__PURE__ */ jsxs(
|
|
@@ -5171,7 +5171,7 @@ function TokenPickerScreen({
|
|
|
5171
5171
|
selectedTokenSymbol,
|
|
5172
5172
|
selectedWalletId
|
|
5173
5173
|
}) {
|
|
5174
|
-
const { tokens: t } =
|
|
5174
|
+
const { tokens: t } = useBlinkConfig();
|
|
5175
5175
|
const entries = [];
|
|
5176
5176
|
for (const wallet of account.wallets) {
|
|
5177
5177
|
for (const source of wallet.sources) {
|
|
@@ -5459,11 +5459,11 @@ function StepRendererContent({
|
|
|
5459
5459
|
const selectedWallet = selectedAccount?.wallets.find((w) => w.id === state.selectedWalletId);
|
|
5460
5460
|
const selectedSourceLabel = selectedSource && selectedWallet ? `${selectedSource.token.symbol} on ${selectedWallet.chain.name}` : void 0;
|
|
5461
5461
|
if (!ready) {
|
|
5462
|
-
return /* @__PURE__ */ jsx(
|
|
5462
|
+
return /* @__PURE__ */ jsx(BlinkLoadingScreen, {});
|
|
5463
5463
|
}
|
|
5464
5464
|
if (step === "login") {
|
|
5465
5465
|
if (authenticated) {
|
|
5466
|
-
return /* @__PURE__ */ jsx(
|
|
5466
|
+
return /* @__PURE__ */ jsx(BlinkLoadingScreen, {});
|
|
5467
5467
|
}
|
|
5468
5468
|
return /* @__PURE__ */ jsx(
|
|
5469
5469
|
LoginScreen,
|
|
@@ -5613,7 +5613,7 @@ function StepRendererContent({
|
|
|
5613
5613
|
}
|
|
5614
5614
|
if (step === "deposit") {
|
|
5615
5615
|
if (state.loadingData) {
|
|
5616
|
-
return /* @__PURE__ */ jsx(
|
|
5616
|
+
return /* @__PURE__ */ jsx(BlinkLoadingScreen, {});
|
|
5617
5617
|
}
|
|
5618
5618
|
const parsedAmt = depositAmount != null ? depositAmount : 5;
|
|
5619
5619
|
return /* @__PURE__ */ jsx(
|
|
@@ -5621,7 +5621,7 @@ function StepRendererContent({
|
|
|
5621
5621
|
{
|
|
5622
5622
|
merchantName,
|
|
5623
5623
|
availableBalance: selectedSource ? selectedSource.balance.available.amount : selectedAccount ? selectedAccount.wallets.reduce((sum, w) => sum + w.balance.available.amount, 0) : maxSourceBalance,
|
|
5624
|
-
remainingLimit: selectedSource
|
|
5624
|
+
remainingLimit: selectedSource != null ? selectedSource.remainingAllowance ?? null : selectedAccount?.remainingAllowance ?? null,
|
|
5625
5625
|
tokenCount,
|
|
5626
5626
|
initialAmount: parsedAmt,
|
|
5627
5627
|
processing: state.creatingTransfer,
|
|
@@ -5645,7 +5645,7 @@ function StepRendererContent({
|
|
|
5645
5645
|
}
|
|
5646
5646
|
if (step === "token-picker") {
|
|
5647
5647
|
if (!selectedAccount) {
|
|
5648
|
-
return /* @__PURE__ */ jsx(
|
|
5648
|
+
return /* @__PURE__ */ jsx(BlinkLoadingScreen, {});
|
|
5649
5649
|
}
|
|
5650
5650
|
return /* @__PURE__ */ jsx(
|
|
5651
5651
|
TokenPickerScreen,
|
|
@@ -5705,7 +5705,7 @@ function StepRendererContent({
|
|
|
5705
5705
|
merchantName,
|
|
5706
5706
|
sourceName,
|
|
5707
5707
|
remainingLimit: succeeded ? (() => {
|
|
5708
|
-
const limit = selectedSource
|
|
5708
|
+
const limit = selectedSource != null ? selectedSource.remainingAllowance ?? null : selectedAccount?.remainingAllowance ?? null;
|
|
5709
5709
|
if (limit == null) return null;
|
|
5710
5710
|
return limit > displayAmount ? limit - displayAmount : 0;
|
|
5711
5711
|
})() : void 0,
|
|
@@ -5721,7 +5721,7 @@ function StepRendererContent({
|
|
|
5721
5721
|
{
|
|
5722
5722
|
merchantName,
|
|
5723
5723
|
availableBalance: 0,
|
|
5724
|
-
remainingLimit: selectedSource
|
|
5724
|
+
remainingLimit: selectedSource != null ? selectedSource.remainingAllowance ?? null : selectedAccount?.remainingAllowance ?? null,
|
|
5725
5725
|
tokenCount,
|
|
5726
5726
|
initialAmount: depositAmount ?? 5,
|
|
5727
5727
|
processing: false,
|
|
@@ -6071,7 +6071,7 @@ function usePasskeyHandlers(dispatch, apiBaseUrl, accounts, knownCredentialIds,
|
|
|
6071
6071
|
return;
|
|
6072
6072
|
}
|
|
6073
6073
|
}
|
|
6074
|
-
const passkeyDisplayName = user?.email?.address ?? user?.google?.name ?? user?.id ?? "
|
|
6074
|
+
const passkeyDisplayName = user?.email?.address ?? user?.google?.name ?? user?.id ?? "Blink User";
|
|
6075
6075
|
const { credentialId, publicKey } = await createPasskeyCredential({
|
|
6076
6076
|
userId: user?.id ?? "unknown",
|
|
6077
6077
|
displayName: passkeyDisplayName
|
|
@@ -6113,7 +6113,7 @@ function usePasskeyHandlers(dispatch, apiBaseUrl, accounts, knownCredentialIds,
|
|
|
6113
6113
|
return;
|
|
6114
6114
|
}
|
|
6115
6115
|
}
|
|
6116
|
-
const passkeyDisplayName = user?.email?.address ?? user?.google?.name ?? user?.id ?? "
|
|
6116
|
+
const passkeyDisplayName = user?.email?.address ?? user?.google?.name ?? user?.id ?? "Blink User";
|
|
6117
6117
|
const popupOptions = buildPasskeyPopupOptions({
|
|
6118
6118
|
userId: user?.id ?? "unknown",
|
|
6119
6119
|
displayName: passkeyDisplayName,
|
|
@@ -7501,14 +7501,14 @@ function usePaymentEffects(deps) {
|
|
|
7501
7501
|
}
|
|
7502
7502
|
}, [pendingOneTapSetupAction, state.step, reloadAccounts, authExecutor, dispatch, oneTapLimitSavedDuringSetupRef]);
|
|
7503
7503
|
}
|
|
7504
|
-
function
|
|
7504
|
+
function BlinkPayment(props) {
|
|
7505
7505
|
const resetKey = useRef(0);
|
|
7506
7506
|
const handleBoundaryReset = useCallback(() => {
|
|
7507
7507
|
resetKey.current += 1;
|
|
7508
7508
|
}, []);
|
|
7509
|
-
return /* @__PURE__ */ jsx(PaymentErrorBoundary, { onReset: handleBoundaryReset, children: /* @__PURE__ */ jsx(
|
|
7509
|
+
return /* @__PURE__ */ jsx(PaymentErrorBoundary, { onReset: handleBoundaryReset, children: /* @__PURE__ */ jsx(BlinkPaymentInner, { ...props }) }, resetKey.current);
|
|
7510
7510
|
}
|
|
7511
|
-
function
|
|
7511
|
+
function BlinkPaymentInner({
|
|
7512
7512
|
destination,
|
|
7513
7513
|
onComplete,
|
|
7514
7514
|
onError,
|
|
@@ -7520,7 +7520,7 @@ function SwypePaymentInner({
|
|
|
7520
7520
|
onDismiss,
|
|
7521
7521
|
autoCloseSeconds
|
|
7522
7522
|
}) {
|
|
7523
|
-
const { apiBaseUrl, depositAmount } =
|
|
7523
|
+
const { apiBaseUrl, depositAmount } = useBlinkConfig();
|
|
7524
7524
|
const { ready, authenticated, logout, getAccessToken } = usePrivy();
|
|
7525
7525
|
useLoginWithOAuth();
|
|
7526
7526
|
const [state, dispatch] = useReducer(
|
|
@@ -7760,6 +7760,6 @@ function SwypePaymentInner({
|
|
|
7760
7760
|
);
|
|
7761
7761
|
}
|
|
7762
7762
|
|
|
7763
|
-
export { AdvancedSourceScreen, FlowPhaseProvider, IconCircle, InfoBanner, OutlineButton, PasskeyIframeBlockedError, PasskeyScreen, PoweredByFooter, PrimaryButton,
|
|
7763
|
+
export { AdvancedSourceScreen, BLINK_LOGO, BLINK_MASCOT, BlinkLoadingScreen, BlinkPayment, BlinkProvider, FlowPhaseProvider, IconCircle, InfoBanner, OutlineButton, PasskeyIframeBlockedError, PasskeyScreen, PoweredByFooter, PrimaryButton, ScreenHeader, ScreenLayout, SelectSourceScreen, SettingsMenu, SetupScreen, Spinner, StepList, TokenPickerScreen, api_exports as blinkApi, buildPasskeyPopupOptions, createPasskeyCredential, createPasskeyViaPopup, darkTheme, deviceHasPasskey, findDevicePasskey, findDevicePasskeyViaPopup, getTheme, lightTheme, resolvePasskeyRpId, useAuthorizationExecutor, useBlinkConfig, useBlinkDepositAmount, useTransferPolling, useTransferSigning };
|
|
7764
7764
|
//# sourceMappingURL=index.js.map
|
|
7765
7765
|
//# sourceMappingURL=index.js.map
|