@phala/pay 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +100 -1
- package/README.md +133 -28
- package/dist/checkout.d.ts +37 -7
- package/dist/checkout.d.ts.map +1 -1
- package/dist/checkout.js +55 -11
- package/dist/checkout.js.map +1 -1
- package/dist/client.d.ts +8 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +14 -8
- package/dist/client.js.map +1 -1
- package/dist/deposit-address.d.ts +47 -0
- package/dist/deposit-address.d.ts.map +1 -0
- package/dist/deposit-address.js +88 -0
- package/dist/deposit-address.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/payment.d.ts +43 -1
- package/dist/payment.d.ts.map +1 -1
- package/dist/payment.js +32 -10
- package/dist/payment.js.map +1 -1
- package/dist/quote.d.ts +7 -3
- package/dist/quote.d.ts.map +1 -1
- package/dist/quote.js +3 -1
- package/dist/quote.js.map +1 -1
- package/dist/react/Checkout.d.ts +15 -1
- package/dist/react/Checkout.d.ts.map +1 -1
- package/dist/react/Checkout.js +36 -39
- package/dist/react/Checkout.js.map +1 -1
- package/dist/react/DepositAddress.d.ts +31 -0
- package/dist/react/DepositAddress.d.ts.map +1 -0
- package/dist/react/DepositAddress.js +108 -0
- package/dist/react/DepositAddress.js.map +1 -0
- package/dist/react/Field.d.ts +7 -0
- package/dist/react/Field.d.ts.map +1 -0
- package/dist/react/Field.js +21 -0
- package/dist/react/Field.js.map +1 -0
- package/dist/react/appearance.d.ts +1 -1
- package/dist/react/appearance.d.ts.map +1 -1
- package/dist/react/appearance.js +4 -1
- package/dist/react/appearance.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/useCheckout.d.ts +3 -1
- package/dist/react/useCheckout.d.ts.map +1 -1
- package/dist/react/useCheckout.js +4 -3
- package/dist/react/useCheckout.js.map +1 -1
- package/dist/server/addresses.d.ts +78 -0
- package/dist/server/addresses.d.ts.map +1 -0
- package/dist/server/addresses.js +118 -0
- package/dist/server/addresses.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +12 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/sweeps.d.ts +78 -0
- package/dist/server/sweeps.d.ts.map +1 -0
- package/dist/server/sweeps.js +117 -0
- package/dist/server/sweeps.js.map +1 -0
- package/dist/server/webhook.d.ts +60 -0
- package/dist/server/webhook.d.ts.map +1 -0
- package/dist/server/webhook.js +148 -0
- package/dist/server/webhook.js.map +1 -0
- package/dist/wallet.d.ts +10 -8
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +61 -63
- package/dist/wallet.js.map +1 -1
- package/package.json +6 -1
- package/src/checkout.ts +89 -15
- package/src/client.ts +14 -8
- package/src/deposit-address.ts +138 -0
- package/src/index.ts +19 -1
- package/src/payment.ts +72 -10
- package/src/quote.ts +10 -4
- package/src/react/Checkout.tsx +84 -72
- package/src/react/DepositAddress.tsx +213 -0
- package/src/react/Field.tsx +46 -0
- package/src/react/appearance.ts +4 -1
- package/src/react/index.ts +1 -0
- package/src/react/useCheckout.ts +6 -2
- package/src/server/addresses.ts +223 -0
- package/src/server/index.ts +38 -0
- package/src/server/sweeps.ts +197 -0
- package/src/server/webhook.ts +202 -0
- package/src/wallet.ts +74 -68
package/dist/react/Checkout.js
CHANGED
|
@@ -4,8 +4,9 @@ import { useEffect, useId, useRef, useState } from "react";
|
|
|
4
4
|
import { networkName, transactionUrl } from "../chains.js";
|
|
5
5
|
import { formatAmount, formatCountdown, formatTokenAmount, tokenAmount } from "../format.js";
|
|
6
6
|
import { quoteTransfer } from "../payment.js";
|
|
7
|
-
import { WalletError, payWithWallet, watchWallets } from "../wallet.js";
|
|
7
|
+
import { WalletError, payWithWallet, watchWallets, } from "../wallet.js";
|
|
8
8
|
import { STYLES, appearanceStyle } from "./appearance.js";
|
|
9
|
+
import { Field } from "./Field.js";
|
|
9
10
|
import { QrCode } from "./QrCode.js";
|
|
10
11
|
import { useCheckout } from "./useCheckout.js";
|
|
11
12
|
const METHODS = [
|
|
@@ -14,18 +15,25 @@ const METHODS = [
|
|
|
14
15
|
{ id: "manual", label: "Send manually" },
|
|
15
16
|
];
|
|
16
17
|
/** A checkout for one quote: pay from a browser wallet, by QR code, or manually, with live status. */
|
|
17
|
-
export function Checkout({ clientSecret, apiBase, onSuccess, onExpire, appearance, pollInterval, className, buttonText = "Pay with crypto", }) {
|
|
18
|
+
export function Checkout({ clientSecret, expectedAddress, apiBase, onSuccess, onExpire, onChange, appearance, pollInterval, className, buttonText = "Pay with crypto", walletClient, }) {
|
|
18
19
|
const { status, quote, error, refresh } = useCheckout({
|
|
19
20
|
clientSecret,
|
|
21
|
+
expectedAddress,
|
|
20
22
|
apiBase,
|
|
21
23
|
...(pollInterval === undefined ? {} : { pollInterval }),
|
|
22
24
|
});
|
|
23
25
|
const [txHash, setTxHash] = useState(null);
|
|
24
26
|
const now = useNow(status === "waiting");
|
|
25
|
-
const callbacks = useRef({ onSuccess, onExpire });
|
|
27
|
+
const callbacks = useRef({ onSuccess, onExpire, onChange });
|
|
28
|
+
const state = useRef({ status, quote, error });
|
|
26
29
|
useEffect(() => {
|
|
27
|
-
callbacks.current = { onSuccess, onExpire };
|
|
30
|
+
callbacks.current = { onSuccess, onExpire, onChange };
|
|
31
|
+
state.current = { status, quote, error };
|
|
28
32
|
});
|
|
33
|
+
// Once per status change, not on every poll.
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
callbacks.current.onChange?.(state.current);
|
|
36
|
+
}, [status]);
|
|
29
37
|
const notified = useRef(null);
|
|
30
38
|
useEffect(() => {
|
|
31
39
|
if (quote === null || notified.current === quote.id) {
|
|
@@ -40,20 +48,20 @@ export function Checkout({ clientSecret, apiBase, onSuccess, onExpire, appearanc
|
|
|
40
48
|
callbacks.current.onExpire?.(quote);
|
|
41
49
|
}
|
|
42
50
|
}, [status, quote]);
|
|
43
|
-
return (_jsxs("div", { className: className === undefined ? "pp-root" : `pp-root ${className}`, "data-theme": appearance?.theme ?? "light", style: appearanceStyle(appearance), children: [_jsx("style", { children: STYLES }), quote !== null && (_jsxs(_Fragment, { children: [_jsxs("p", { className: "pp-amount", children: [formatTokenAmount(quote), " ", quote.asset.toUpperCase()] }), _jsxs("p", { className: "pp-subtitle", children: [formatAmount(quote), " top-up \u00B7 ", networkName(quote.chain_id)] })] })), _jsx(StatusLine, { status: status, quote: quote, now: now,
|
|
51
|
+
return (_jsxs("div", { className: className === undefined ? "pp-root" : `pp-root ${className}`, "data-theme": appearance?.theme ?? "light", style: appearanceStyle(appearance), children: [_jsx("style", { children: STYLES }), quote !== null && (_jsxs(_Fragment, { children: [_jsxs("p", { className: "pp-amount", children: [formatTokenAmount(quote), " ", quote.asset.toUpperCase()] }), _jsxs("p", { className: "pp-subtitle", children: [formatAmount(quote), " top-up \u00B7 ", networkName(quote.chain_id), !quote.livemode && _jsx("span", { className: "pp-badge", children: " \u00B7 Test mode" })] })] })), _jsx(StatusLine, { status: status, quote: quote, now: now, error: error }), txHash !== null && quote !== null && _jsx(Transaction, { hash: txHash, chainId: quote.chain_id }), status === "waiting" && quote !== null && (_jsx(PaymentOptions, { quote: quote, buttonText: buttonText, walletClient: walletClient, now: now, onSent: (hash) => {
|
|
44
52
|
setTxHash(hash);
|
|
45
53
|
refresh();
|
|
46
54
|
} }))] }));
|
|
47
55
|
}
|
|
48
|
-
function StatusLine({ status, quote, now,
|
|
56
|
+
function StatusLine({ status, quote, now, error, }) {
|
|
49
57
|
const tone = status === "credited"
|
|
50
58
|
? "success"
|
|
51
|
-
: ["rejected", "expired", "canceled", "error"].includes(status)
|
|
59
|
+
: ["rejected", "reversed", "expired", "canceled", "error"].includes(status)
|
|
52
60
|
? "danger"
|
|
53
61
|
: "neutral";
|
|
54
|
-
return (_jsxs("div", { className: "pp-status", "data-tone": tone, children: [_jsxs("span", { role: "status", "aria-live": "polite", children: [statusMessage(status, quote),
|
|
62
|
+
return (_jsxs("div", { className: "pp-status", "data-tone": tone, children: [_jsxs("span", { role: "status", "aria-live": "polite", children: [statusMessage(status, quote, error?.code), error !== null && status !== "error" ? " (reconnecting…)" : ""] }), status === "waiting" && quote !== null && (_jsx("span", { className: "pp-countdown", "aria-label": "Time left to pay", children: formatCountdown(quote.expires_at, now) }))] }));
|
|
55
63
|
}
|
|
56
|
-
function statusMessage(status, quote) {
|
|
64
|
+
function statusMessage(status, quote, code) {
|
|
57
65
|
switch (status) {
|
|
58
66
|
case "loading":
|
|
59
67
|
return "Loading payment details…";
|
|
@@ -61,27 +69,31 @@ function statusMessage(status, quote) {
|
|
|
61
69
|
return "Waiting for your payment";
|
|
62
70
|
case "seen":
|
|
63
71
|
return quote?.confirmations == null
|
|
64
|
-
? "Payment received,
|
|
65
|
-
: `Payment received, ${quote.confirmations} confirmation${quote.confirmations === 1 ? "" : "s"}`;
|
|
72
|
+
? "Payment received, crediting in about 30 seconds"
|
|
73
|
+
: `Payment received, ${quote.confirmations} confirmation${quote.confirmations === 1 ? "" : "s"}. Crediting in about 30 seconds`;
|
|
66
74
|
case "confirming":
|
|
67
75
|
return "Payment confirmed on chain, crediting…";
|
|
68
76
|
case "credited":
|
|
69
77
|
return quote === null ? "Payment credited" : `Payment credited: ${formatAmount(quote)}`;
|
|
70
78
|
case "rejected":
|
|
71
79
|
return "This payment cannot be credited. Contact support with your transaction.";
|
|
80
|
+
case "reversed":
|
|
81
|
+
return "This payment was reversed: its transaction is no longer on the blockchain, so it did not happen and its credit was taken back. Check your wallet, then start a new top-up.";
|
|
72
82
|
case "expired":
|
|
73
83
|
return "This quote has expired. Do not send funds to this address; start a new top-up.";
|
|
74
84
|
case "canceled":
|
|
75
85
|
return "This quote was canceled. Do not send funds to this address.";
|
|
76
86
|
case "error":
|
|
77
|
-
return
|
|
87
|
+
return code === "address_mismatch"
|
|
88
|
+
? "This payment address could not be verified. Do not send funds; contact support."
|
|
89
|
+
: "This payment link is not valid. Start a new top-up.";
|
|
78
90
|
}
|
|
79
91
|
}
|
|
80
92
|
function Transaction({ hash, chainId }) {
|
|
81
93
|
const url = transactionUrl(chainId, hash);
|
|
82
94
|
return (_jsxs("p", { className: "pp-tx", children: ["Transaction sent:", " ", url === undefined ? (_jsx("span", { className: "pp-value", children: hash })) : (_jsx("a", { className: "pp-value", href: url, target: "_blank", rel: "noreferrer", children: hash }))] }));
|
|
83
95
|
}
|
|
84
|
-
function PaymentOptions({ quote, now, buttonText, onSent, }) {
|
|
96
|
+
function PaymentOptions({ quote, now, buttonText, walletClient, onSent, }) {
|
|
85
97
|
const [method, setMethod] = useState("wallet");
|
|
86
98
|
const id = useId();
|
|
87
99
|
const tabs = useRef([]);
|
|
@@ -106,16 +118,19 @@ function PaymentOptions({ quote, now, buttonText, onSent, }) {
|
|
|
106
118
|
};
|
|
107
119
|
return (_jsxs(_Fragment, { children: [_jsxs("p", { className: "pp-notice", children: ["Send ", _jsxs("strong", { children: ["exactly ", amount] }), " on ", networkName(quote.chain_id), " in one transfer before the timer ends. A different amount, or a payment after expiry, is credited at the market price instead of this quote. Exchanges may deduct a withdrawal fee, so the amount that arrives must be exact."] }), _jsx("div", { className: "pp-tabs", role: "tablist", "aria-label": "Payment method", onKeyDown: onKeyDown, children: METHODS.map((m, index) => (_jsx("button", { ref: (element) => {
|
|
108
120
|
tabs.current[index] = element;
|
|
109
|
-
}, type: "button", role: "tab", className: "pp-tab", id: `${id}-tab-${m.id}`, "aria-selected": method === m.id, "aria-controls": `${id}-panel-${m.id}`, tabIndex: method === m.id ? 0 : -1, onClick: () => setMethod(m.id), children: m.label }, m.id))) }), _jsxs("div", { role: "tabpanel", id: `${id}-panel-${method}`, "aria-labelledby": `${id}-tab-${method}`, tabIndex: 0, children: [method === "wallet" && _jsx(WalletPanel, { quote: quote, buttonText: buttonText, onSent: onSent }), method === "qr" && (_jsxs("div", { className: "pp-qr-panel", children: [_jsx(QrCode, { value: quote.payment_uri, label: `Payment request for ${amount}` }), _jsxs("p", { className: "pp-message", children: ["Scan with a wallet app that reads payment links, and check that it shows ", amount, " on", " ", networkName(quote.chain_id), " before you confirm."] })] })), method === "manual" && _jsx(ManualPanel, { quote: quote, now: now })] })] }));
|
|
121
|
+
}, type: "button", role: "tab", className: "pp-tab", id: `${id}-tab-${m.id}`, "aria-selected": method === m.id, "aria-controls": `${id}-panel-${m.id}`, tabIndex: method === m.id ? 0 : -1, onClick: () => setMethod(m.id), children: m.label }, m.id))) }), _jsxs("div", { role: "tabpanel", id: `${id}-panel-${method}`, "aria-labelledby": `${id}-tab-${method}`, tabIndex: 0, children: [method === "wallet" && (_jsx(WalletPanel, { quote: quote, buttonText: buttonText, walletClient: walletClient, onSent: onSent })), method === "qr" && (_jsxs("div", { className: "pp-qr-panel", children: [_jsx(QrCode, { value: quote.payment_uri, label: `Payment request for ${amount}` }), _jsxs("p", { className: "pp-message", children: ["Scan with a wallet app that reads payment links, and check that it shows ", amount, " on", " ", networkName(quote.chain_id), " before you confirm."] })] })), method === "manual" && _jsx(ManualPanel, { quote: quote, now: now })] })] }));
|
|
110
122
|
}
|
|
111
|
-
function WalletPanel({ quote, buttonText, onSent, }) {
|
|
112
|
-
const [
|
|
123
|
+
function WalletPanel({ quote, buttonText, walletClient, onSent, }) {
|
|
124
|
+
const [discovered, setDiscovered] = useState([]);
|
|
113
125
|
const [step, setStep] = useState({ kind: "idle" });
|
|
114
|
-
useEffect(() => watchWallets(
|
|
115
|
-
const
|
|
116
|
-
|
|
126
|
+
useEffect(() => (walletClient === undefined ? watchWallets(setDiscovered) : undefined), [walletClient]);
|
|
127
|
+
const wallets = walletClient === undefined
|
|
128
|
+
? discovered.map(({ info: { uuid, name, icon }, provider }) => ({ id: uuid, name, icon, wallet: provider }))
|
|
129
|
+
: [{ id: "client", name: "your wallet", icon: "", wallet: walletClient }];
|
|
130
|
+
const pay = async ({ name, wallet }) => {
|
|
131
|
+
setStep({ kind: "pending", wallet: name });
|
|
117
132
|
try {
|
|
118
|
-
onSent(await payWithWallet(wallet
|
|
133
|
+
onSent(await payWithWallet(wallet, quote));
|
|
119
134
|
setStep({ kind: "idle" });
|
|
120
135
|
}
|
|
121
136
|
catch (error) {
|
|
@@ -128,30 +143,12 @@ function WalletPanel({ quote, buttonText, onSent, }) {
|
|
|
128
143
|
if (wallets.length === 0) {
|
|
129
144
|
return (_jsx("p", { className: "pp-message", children: "No browser wallet found. Scan the QR code with a mobile wallet, or send the payment manually." }));
|
|
130
145
|
}
|
|
131
|
-
return (_jsxs("div", { className: "pp-wallets", children: [wallets.map((
|
|
146
|
+
return (_jsxs("div", { className: "pp-wallets", children: [wallets.map((choice) => (_jsxs("button", { type: "button", className: "pp-button", disabled: step.kind === "pending", onClick: () => void pay(choice), "aria-label": walletClient === undefined ? `${buttonText} (${choice.name})` : buttonText, children: [choice.icon !== "" && _jsx("img", { src: choice.icon, alt: "" }), _jsx("span", { children: buttonText }), walletClient === undefined && _jsx("span", { className: "pp-wallet-name", children: choice.name })] }, choice.id))), _jsxs("p", { className: "pp-message", "data-tone": step.kind === "failed" ? "danger" : undefined, "aria-live": "polite", children: [step.kind === "pending" && `Confirm the payment in ${step.wallet}…`, step.kind === "failed" && step.message] })] }));
|
|
132
147
|
}
|
|
133
148
|
function ManualPanel({ quote, now }) {
|
|
134
149
|
const token = quoteTransfer(quote).token;
|
|
135
150
|
return (_jsxs("dl", { className: "pp-fields", children: [_jsx(Field, { label: "Network", value: `${networkName(quote.chain_id)} (chain ID ${quote.chain_id})` }), _jsx(Field, { label: `Token (${quote.asset.toUpperCase()}) contract`, value: token, copy: true }), _jsx(Field, { label: "Send to address", value: quote.address, copy: true }), _jsx(Field, { label: "Exact amount", value: formatTokenAmount(quote), copy: tokenAmount(quote) }), _jsx(Field, { label: "Time left", value: formatCountdown(quote.expires_at, now) })] }));
|
|
136
151
|
}
|
|
137
|
-
/** `copy` adds a copy button, copying `value`, or the given string when it differs from it. */
|
|
138
|
-
function Field({ label, value, copy = false, }) {
|
|
139
|
-
return (_jsxs("div", { className: "pp-field", children: [_jsx("dt", { children: label }), _jsxs("dd", { children: [_jsx("span", { className: copy === false ? undefined : "pp-value", children: value }), copy !== false && (_jsx(CopyButton, { value: typeof copy === "string" ? copy : value, label: label }))] })] }));
|
|
140
|
-
}
|
|
141
|
-
function CopyButton({ value, label }) {
|
|
142
|
-
const [copied, setCopied] = useState(null);
|
|
143
|
-
useEffect(() => {
|
|
144
|
-
if (copied === null) {
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
const timer = setTimeout(() => setCopied(null), 2000);
|
|
148
|
-
return () => clearTimeout(timer);
|
|
149
|
-
}, [copied]);
|
|
150
|
-
const onClick = () => {
|
|
151
|
-
navigator.clipboard.writeText(value).then(() => setCopied(true), () => setCopied(false));
|
|
152
|
-
};
|
|
153
|
-
return (_jsx("button", { type: "button", className: "pp-copy", onClick: onClick, "aria-label": `Copy ${label}`, children: _jsx("span", { "aria-live": "polite", children: copied === null ? "Copy" : copied ? "Copied" : "Copy failed" }) }));
|
|
154
|
-
}
|
|
155
152
|
/** The current time in milliseconds, updated every second while `active`. */
|
|
156
153
|
function useNow(active) {
|
|
157
154
|
const [now, setNow] = useState(() => Date.now());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/react/Checkout.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Checkout.js","sourceRoot":"","sources":["../../src/react/Checkout.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type DepositAddressDetails } from "../payment.js";
|
|
2
|
+
import { type Appearance } from "./appearance.js";
|
|
3
|
+
export interface DepositAddressProps {
|
|
4
|
+
/** `address` and `networks` from your backend's `POST /v1/deposit_addresses`. */
|
|
5
|
+
depositAddress: DepositAddressDetails;
|
|
6
|
+
/** The network shown first; the first of `networks` by default. */
|
|
7
|
+
chainId?: number;
|
|
8
|
+
/** The token shown first, for example `pha`; the network's first token by default. */
|
|
9
|
+
asset?: string;
|
|
10
|
+
/**
|
|
11
|
+
* The `client_secret` of the same response. With `apiBase`, the component follows the
|
|
12
|
+
* address's payments and shows each one within about a block of arriving: received with its
|
|
13
|
+
* confirmations, then credited. Display only; credit from your `deposit.credited` webhook.
|
|
14
|
+
*/
|
|
15
|
+
clientSecret?: string;
|
|
16
|
+
/** The service origin, for example `https://pay.example.com`; needed with `clientSecret`. */
|
|
17
|
+
apiBase?: string;
|
|
18
|
+
/** Milliseconds between payment reads; default 3000. */
|
|
19
|
+
pollInterval?: number;
|
|
20
|
+
appearance?: Appearance;
|
|
21
|
+
className?: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A customer's persistent deposit address: one address for every supported token on every
|
|
25
|
+
* supported network. The payer picks a network and a token; the component shows a QR code of that
|
|
26
|
+
* EIP-681 transfer request and the address and token contract to copy. Any amount of a supported
|
|
27
|
+
* token sent is credited at the market rate when it arrives; follow it from your backend's
|
|
28
|
+
* `deposit.credited` webhook.
|
|
29
|
+
*/
|
|
30
|
+
export declare function DepositAddress({ depositAddress, chainId, asset, clientSecret, apiBase, pollInterval, appearance, className, }: DepositAddressProps): import("react").JSX.Element;
|
|
31
|
+
//# sourceMappingURL=DepositAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DepositAddress.d.ts","sourceRoot":"","sources":["../../src/react/DepositAddress.tsx"],"names":[],"mappings":"AAUA,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACnF,OAAO,EAA2B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAI3E,MAAM,WAAW,mBAAmB;IAClC,iFAAiF;IACjF,cAAc,EAAE,qBAAqB,CAAC;IACtC,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,cAAc,EACd,OAAO,EACP,KAAK,EACL,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,GACV,EAAE,mBAAmB,+BA0FrB"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { formatUnits } from "viem";
|
|
5
|
+
import { networkName } from "../chains.js";
|
|
6
|
+
import { retrieveDepositAddress, } from "../deposit-address.js";
|
|
7
|
+
import { CheckoutError, pollDelay } from "../checkout.js";
|
|
8
|
+
import { depositAddressTransfer } from "../payment.js";
|
|
9
|
+
import { STYLES, appearanceStyle } from "./appearance.js";
|
|
10
|
+
import { Field } from "./Field.js";
|
|
11
|
+
import { QrCode } from "./QrCode.js";
|
|
12
|
+
/**
|
|
13
|
+
* A customer's persistent deposit address: one address for every supported token on every
|
|
14
|
+
* supported network. The payer picks a network and a token; the component shows a QR code of that
|
|
15
|
+
* EIP-681 transfer request and the address and token contract to copy. Any amount of a supported
|
|
16
|
+
* token sent is credited at the market rate when it arrives; follow it from your backend's
|
|
17
|
+
* `deposit.credited` webhook.
|
|
18
|
+
*/
|
|
19
|
+
export function DepositAddress({ depositAddress, chainId, asset, clientSecret, apiBase, pollInterval, appearance, className, }) {
|
|
20
|
+
const { networks } = depositAddress;
|
|
21
|
+
const payments = usePayments(clientSecret, apiBase, pollInterval ?? 3000);
|
|
22
|
+
const [selectedChain, setSelectedChain] = useState(chainId ?? networks[0]?.chain_id);
|
|
23
|
+
const [selectedAsset, setSelectedAsset] = useState(asset);
|
|
24
|
+
const network = networks.find((candidate) => candidate.chain_id === selectedChain) ?? networks[0];
|
|
25
|
+
if (network === undefined) {
|
|
26
|
+
throw new TypeError("the deposit address has no network");
|
|
27
|
+
}
|
|
28
|
+
const token = network.assets.find((candidate) => candidate.asset === selectedAsset) ?? network.assets[0];
|
|
29
|
+
if (token === undefined) {
|
|
30
|
+
throw new TypeError(`the deposit address takes no token on chain ${network.chain_id}`);
|
|
31
|
+
}
|
|
32
|
+
const { token: contract, to } = depositAddressTransfer(network, token);
|
|
33
|
+
const symbol = token.asset.toUpperCase();
|
|
34
|
+
const name = networkName(network.chain_id);
|
|
35
|
+
const tokens = [...new Set(networks.flatMap((each) => each.assets.map((a) => a.asset.toUpperCase())))];
|
|
36
|
+
return (_jsxs("div", { className: className === undefined ? "pp-root" : `pp-root ${className}`, "data-theme": appearance?.theme ?? "light", style: appearanceStyle(appearance), children: [_jsx("style", { children: STYLES }), _jsx("p", { className: "pp-subtitle", children: depositAddress.address === null
|
|
37
|
+
? "Your deposit address for every supported token; it differs on some networks"
|
|
38
|
+
: "One address for all supported tokens and networks" }), networks.length > 1 && (_jsx("div", { className: "pp-tabs", role: "tablist", "aria-label": "Network", children: networks.map((each) => (_jsx("button", { type: "button", role: "tab", className: "pp-tab", "aria-selected": each.chain_id === network.chain_id, onClick: () => {
|
|
39
|
+
setSelectedChain(each.chain_id);
|
|
40
|
+
}, children: networkName(each.chain_id) }, each.chain_id))) })), network.assets.length > 1 && (_jsx("div", { className: "pp-tabs", role: "tablist", "aria-label": "Token", children: network.assets.map((each) => (_jsx("button", { type: "button", role: "tab", className: "pp-tab", "aria-selected": each.asset === token.asset, onClick: () => {
|
|
41
|
+
setSelectedAsset(each.asset);
|
|
42
|
+
}, children: each.asset.toUpperCase() }, each.asset))) })), _jsx("div", { className: "pp-qr-panel", children: _jsx(QrCode, { value: token.payment_uri, label: `Deposit address for ${symbol} on ${name}` }) }), _jsxs("dl", { className: "pp-fields", children: [_jsx(Field, { label: "Network", value: `${name} (chain ID ${network.chain_id})` }), _jsx(Field, { label: `Token (${symbol}) contract`, value: contract, copy: true }), _jsx(Field, { label: "Deposit address", value: to, copy: true })] }), payments.length > 0 && (_jsx("ul", { className: "pp-payments", "aria-live": "polite", "aria-label": "Payments", children: payments.map((payment) => (_jsx("li", { children: paymentMessage(payment) }, `${payment.chain_id}:${payment.tx_hash}:${payment.created}`))) })), _jsxs("p", { className: "pp-message", children: ["Send only ", tokens.join(", "), " on ", networks.map((each) => networkName(each.chain_id)).join(", "), ". Any amount is credited at the market rate when it arrives, usually in about 30 seconds. Other tokens and networks are not credited. You can reuse this address."] })] }));
|
|
43
|
+
}
|
|
44
|
+
/** The address's recent payments, read every `interval` while mounted; empty without a secret. */
|
|
45
|
+
function usePayments(clientSecret, apiBase, interval) {
|
|
46
|
+
const key = clientSecret === undefined || apiBase === undefined ? "" : `${apiBase} ${clientSecret}`;
|
|
47
|
+
const [current, setCurrent] = useState({
|
|
48
|
+
key: "",
|
|
49
|
+
payments: [],
|
|
50
|
+
});
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (clientSecret === undefined || apiBase === undefined) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
let stopped = false;
|
|
56
|
+
let timer;
|
|
57
|
+
let failures = 0;
|
|
58
|
+
const load = async () => {
|
|
59
|
+
let failure = null;
|
|
60
|
+
try {
|
|
61
|
+
const view = await retrieveDepositAddress({ clientSecret, apiBase });
|
|
62
|
+
failures = 0;
|
|
63
|
+
if (!stopped) {
|
|
64
|
+
setCurrent({ key, payments: view.payments });
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
failures += 1;
|
|
69
|
+
// A secret that is not valid will not become valid: stop, keep showing the address.
|
|
70
|
+
if (error instanceof CheckoutError && error.code === "invalid_client_secret") {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
failure = error instanceof CheckoutError ? error : null;
|
|
74
|
+
}
|
|
75
|
+
if (!stopped) {
|
|
76
|
+
timer = setTimeout(() => void load(), pollDelay(interval, failures, failure));
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
void load();
|
|
80
|
+
return () => {
|
|
81
|
+
stopped = true;
|
|
82
|
+
clearTimeout(timer);
|
|
83
|
+
};
|
|
84
|
+
}, [key, clientSecret, apiBase, interval]);
|
|
85
|
+
// Another address starts without the previous one's payments.
|
|
86
|
+
return current.key === key && key !== "" ? current.payments : [];
|
|
87
|
+
}
|
|
88
|
+
function paymentMessage(payment) {
|
|
89
|
+
const amount = payment.asset === null || payment.decimals === null
|
|
90
|
+
? "A payment"
|
|
91
|
+
: `${formatUnits(BigInt(payment.amount_atomic), payment.decimals)} ${payment.asset.toUpperCase()}`;
|
|
92
|
+
const on = `on ${networkName(payment.chain_id)}`;
|
|
93
|
+
switch (payment.status) {
|
|
94
|
+
case "seen":
|
|
95
|
+
return payment.confirmations === null
|
|
96
|
+
? `${amount} received ${on}, crediting shortly`
|
|
97
|
+
: `${amount} received ${on}, ${payment.confirmations} confirmation${payment.confirmations === 1 ? "" : "s"}`;
|
|
98
|
+
case "confirming":
|
|
99
|
+
return `${amount} confirmed ${on}, crediting…`;
|
|
100
|
+
case "credited":
|
|
101
|
+
return `${amount} ${on} credited`;
|
|
102
|
+
case "rejected":
|
|
103
|
+
return `${amount} ${on} cannot be credited. Contact support with your transaction.`;
|
|
104
|
+
case "reversed":
|
|
105
|
+
return `${amount} ${on} was reversed: its transaction is no longer on the blockchain.`;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=DepositAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DepositAddress.js","sourceRoot":"","sources":["../../src/react/DepositAddress.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** `copy` adds a copy button, copying `value`, or the given string when it differs from it. */
|
|
2
|
+
export declare function Field({ label, value, copy, }: {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
copy?: boolean | string;
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=Field.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../src/react/Field.tsx"],"names":[],"mappings":"AAEA,+FAA+F;AAC/F,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,KAAK,EACL,IAAY,GACb,EAAE;IACD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CACzB,+BAYA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
/** `copy` adds a copy button, copying `value`, or the given string when it differs from it. */
|
|
4
|
+
export function Field({ label, value, copy = false, }) {
|
|
5
|
+
return (_jsxs("div", { className: "pp-field", children: [_jsx("dt", { children: label }), _jsxs("dd", { children: [_jsx("span", { className: copy === false ? undefined : "pp-value", children: value }), copy !== false && (_jsx(CopyButton, { value: typeof copy === "string" ? copy : value, label: label }))] })] }));
|
|
6
|
+
}
|
|
7
|
+
function CopyButton({ value, label }) {
|
|
8
|
+
const [copied, setCopied] = useState(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (copied === null) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const timer = setTimeout(() => setCopied(null), 2000);
|
|
14
|
+
return () => clearTimeout(timer);
|
|
15
|
+
}, [copied]);
|
|
16
|
+
const onClick = () => {
|
|
17
|
+
navigator.clipboard.writeText(value).then(() => setCopied(true), () => setCopied(false));
|
|
18
|
+
};
|
|
19
|
+
return (_jsx("button", { type: "button", className: "pp-copy", onClick: onClick, "aria-label": `Copy ${label}`, children: _jsx("span", { "aria-live": "polite", children: copied === null ? "Copy" : copied ? "Copied" : "Copy failed" }) }));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=Field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.js","sourceRoot":"","sources":["../../src/react/Field.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5C,+FAA+F;AAC/F,MAAM,UAAU,KAAK,CAAC,EACpB,KAAK,EACL,KAAK,EACL,IAAI,GAAG,KAAK,GAKb;IACC,OAAO,CACL,eAAK,SAAS,EAAC,UAAU,aACvB,uBAAK,KAAK,GAAM,EAChB,yBACE,eAAM,SAAS,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,YAAG,KAAK,GAAQ,EACvE,IAAI,KAAK,KAAK,IAAI,CACjB,KAAC,UAAU,IAAC,KAAK,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CAC7E,IACE,IACD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK,EAAoC;IACpE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CACvC,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EACrB,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CACvB,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CACL,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAE,OAAO,gBAAc,QAAQ,KAAK,EAAE,YACrF,4BAAgB,QAAQ,YAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,GAAQ,GACvF,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -22,5 +22,5 @@ export declare function appearanceStyle(appearance: Appearance | undefined): CSS
|
|
|
22
22
|
* Every rule is scoped under `.pp-root`; the variables can also be set from the page's own CSS on
|
|
23
23
|
* `.pp-root`.
|
|
24
24
|
*/
|
|
25
|
-
export declare const STYLES = "\n.pp-root {\n --pp-color-primary: #0f62fe;\n --pp-accessible-color-on-color-primary: #ffffff;\n --pp-color-background: #ffffff;\n --pp-color-text: #1a1a1a;\n --pp-color-text-secondary: #5c5f66;\n --pp-color-border: #d9dce1;\n --pp-color-danger: #c62828;\n --pp-color-success: #1b7f3b;\n --pp-font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --pp-border-radius: 8px;\n box-sizing: border-box;\n max-width: 440px;\n padding: 20px;\n border: 1px solid var(--pp-color-border);\n border-radius: var(--pp-border-radius);\n background: var(--pp-color-background);\n color: var(--pp-color-text);\n font-family: var(--pp-font-family);\n font-size: 14px;\n line-height: 1.45;\n}\n.pp-root[data-theme=\"dark\"] {\n --pp-color-primary: #78a9ff;\n --pp-color-background: #161616;\n --pp-color-text: #f4f4f4;\n --pp-color-text-secondary: #a8a8a8;\n --pp-color-border: #393939;\n --pp-color-danger: #ff8389;\n --pp-color-success: #42be65;\n}\n.pp-root *, .pp-root *::before, .pp-root *::after { box-sizing: inherit; }\n.pp-amount { margin: 0; overflow-wrap: anywhere; font-size: 22px; font-weight: 600; }\n.pp-subtitle { margin: 2px 0 16px; color: var(--pp-color-text-secondary); }\n.pp-status { display: flex; gap: 8px; align-items: baseline; justify-content: space-between;\n margin-bottom: 12px; padding: 10px 12px; border-radius: var(--pp-border-radius);\n border: 1px solid var(--pp-color-border); }\n.pp-status[data-tone=\"success\"] { border-color: var(--pp-color-success); color: var(--pp-color-success); }\n.pp-status[data-tone=\"danger\"] { border-color: var(--pp-color-danger); color: var(--pp-color-danger); }\n.pp-countdown { font-variant-numeric: tabular-nums; white-space: nowrap; }\n.pp-notice { margin: 0 0 16px; color: var(--pp-color-text-secondary); font-size: 13px; }\n.pp-notice strong { color: var(--pp-color-text); }\n.pp-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--pp-color-border); margin-bottom: 16px; }\n.pp-tab { appearance: none; border: 0; border-bottom: 2px solid transparent; background: none;\n color: var(--pp-color-text-secondary); font: inherit; padding: 8px 10px; cursor: pointer; }\n.pp-tab[aria-selected=\"true\"] { color: var(--pp-color-text); border-bottom-color: var(--pp-color-primary); font-weight: 600; }\n.pp-root button:focus-visible, .pp-root a:focus-visible { outline: 2px solid var(--pp-color-primary); outline-offset: 2px; }\n.pp-wallets { display: grid; gap: 8px; }\n.pp-button { display: flex; gap: 10px; align-items: center; justify-content: center; width: 100%;\n appearance: none; border: 1px solid var(--pp-color-primary); border-radius: var(--pp-border-radius);\n background: var(--pp-color-primary); color: var(--pp-accessible-color-on-color-primary); font: inherit; font-weight: 600; padding: 10px 14px; cursor: pointer; }\n.pp-button:disabled { opacity: 0.6; cursor: progress; }\n.pp-button img { width: 20px; height: 20px; }\n.pp-wallet-name { font-weight: 400; opacity: 0.85; }\n.pp-message { margin: 10px 0 0; color: var(--pp-color-text-secondary); }\n.pp-message[data-tone=\"danger\"] { color: var(--pp-color-danger); }\n.pp-qr-panel { display: grid; justify-items: center; gap: 10px; text-align: center; }\n.pp-qr { border-radius: 4px; }\n.pp-fields { display: grid; gap: 10px; margin: 0; }\n.pp-field dt { color: var(--pp-color-text-secondary); font-size: 12px; }\n.pp-field dd { display: flex; gap: 8px; align-items: center; margin: 2px 0 0; }\n.pp-value { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; }\n.pp-copy { flex: none; appearance: none; border: 1px solid var(--pp-color-border); border-radius: 6px;\n background: none; color: var(--pp-color-text); font: inherit; font-size: 12px; padding: 3px 8px; cursor: pointer; }\n.pp-tx { margin: 0 0 12px; font-size: 13px; }\n.pp-tx a { color:
|
|
25
|
+
export declare const STYLES = "\n.pp-root {\n --pp-color-primary: #0f62fe;\n --pp-accessible-color-on-color-primary: #ffffff;\n --pp-color-background: #ffffff;\n --pp-color-text: #1a1a1a;\n --pp-color-text-secondary: #5c5f66;\n --pp-color-border: #d9dce1;\n --pp-color-danger: #c62828;\n --pp-color-success: #1b7f3b;\n --pp-font-family: system-ui, -apple-system, \"Segoe UI\", Roboto, sans-serif;\n --pp-border-radius: 8px;\n box-sizing: border-box;\n max-width: 440px;\n padding: 20px;\n border: 1px solid var(--pp-color-border);\n border-radius: var(--pp-border-radius);\n background: var(--pp-color-background);\n color: var(--pp-color-text);\n font-family: var(--pp-font-family);\n font-size: 14px;\n line-height: 1.45;\n}\n.pp-root[data-theme=\"dark\"] {\n --pp-color-primary: #78a9ff;\n --pp-color-background: #161616;\n --pp-color-text: #f4f4f4;\n --pp-color-text-secondary: #a8a8a8;\n --pp-color-border: #393939;\n --pp-color-danger: #ff8389;\n --pp-color-success: #42be65;\n}\n.pp-root *, .pp-root *::before, .pp-root *::after { box-sizing: inherit; }\n.pp-amount { margin: 0; overflow-wrap: anywhere; font-size: 22px; font-weight: 600; }\n.pp-subtitle { margin: 2px 0 16px; color: var(--pp-color-text-secondary); }\n.pp-badge { font-weight: 600; }\n.pp-payments { list-style: none; margin: 12px 0 0; padding: 0; }\n.pp-payments li { margin: 4px 0; }\n.pp-status { display: flex; gap: 8px; align-items: baseline; justify-content: space-between;\n margin-bottom: 12px; padding: 10px 12px; border-radius: var(--pp-border-radius);\n border: 1px solid var(--pp-color-border); }\n.pp-status[data-tone=\"success\"] { border-color: var(--pp-color-success); color: var(--pp-color-success); }\n.pp-status[data-tone=\"danger\"] { border-color: var(--pp-color-danger); color: var(--pp-color-danger); }\n.pp-countdown { font-variant-numeric: tabular-nums; white-space: nowrap; }\n.pp-notice { margin: 0 0 16px; color: var(--pp-color-text-secondary); font-size: 13px; }\n.pp-notice strong { color: var(--pp-color-text); }\n.pp-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--pp-color-border); margin-bottom: 16px; }\n.pp-tab { appearance: none; border: 0; border-bottom: 2px solid transparent; background: none;\n color: var(--pp-color-text-secondary); font: inherit; padding: 8px 10px; cursor: pointer; }\n.pp-tab[aria-selected=\"true\"] { color: var(--pp-color-text); border-bottom-color: var(--pp-color-primary); font-weight: 600; }\n.pp-root button:focus-visible, .pp-root a:focus-visible { outline: 2px solid var(--pp-color-primary); outline-offset: 2px; }\n.pp-wallets { display: grid; gap: 8px; }\n.pp-button { display: flex; gap: 10px; align-items: center; justify-content: center; width: 100%;\n appearance: none; border: 1px solid var(--pp-color-primary); border-radius: var(--pp-border-radius);\n background: var(--pp-color-primary); color: var(--pp-accessible-color-on-color-primary); font: inherit; font-weight: 600; padding: 10px 14px; cursor: pointer; }\n.pp-button:disabled { opacity: 0.6; cursor: progress; }\n.pp-button img { width: 20px; height: 20px; }\n.pp-wallet-name { font-weight: 400; opacity: 0.85; }\n.pp-message { margin: 10px 0 0; color: var(--pp-color-text-secondary); }\n.pp-message[data-tone=\"danger\"] { color: var(--pp-color-danger); }\n.pp-qr-panel { display: grid; justify-items: center; gap: 10px; text-align: center; }\n.pp-qr { border-radius: 4px; }\n.pp-fields { display: grid; gap: 10px; margin: 0; }\n.pp-field dt { color: var(--pp-color-text-secondary); font-size: 12px; }\n.pp-field dd { display: flex; gap: 8px; align-items: center; margin: 2px 0 0; }\n.pp-value { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; }\n.pp-copy { flex: none; appearance: none; border: 1px solid var(--pp-color-border); border-radius: 6px;\n background: none; color: var(--pp-color-text); font: inherit; font-size: 12px; padding: 3px 8px; cursor: pointer; }\n.pp-tx { margin: 0 0 12px; font-size: 13px; }\n.pp-tx a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }\n.pp-tx .pp-value { overflow-wrap: anywhere; }\n";
|
|
26
26
|
//# sourceMappingURL=appearance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../../src/react/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mGAAmG;QACnG,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAeD,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAUjF;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"appearance.d.ts","sourceRoot":"","sources":["../../src/react/appearance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE;QACV,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,mGAAmG;QACnG,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAeD,uEAAuE;AACvE,wBAAgB,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,aAAa,CAUjF;AAED;;;GAGG;AACH,eAAO,MAAM,MAAM,shIAuElB,CAAC"}
|
package/dist/react/appearance.js
CHANGED
|
@@ -61,6 +61,9 @@ export const STYLES = `
|
|
|
61
61
|
.pp-root *, .pp-root *::before, .pp-root *::after { box-sizing: inherit; }
|
|
62
62
|
.pp-amount { margin: 0; overflow-wrap: anywhere; font-size: 22px; font-weight: 600; }
|
|
63
63
|
.pp-subtitle { margin: 2px 0 16px; color: var(--pp-color-text-secondary); }
|
|
64
|
+
.pp-badge { font-weight: 600; }
|
|
65
|
+
.pp-payments { list-style: none; margin: 12px 0 0; padding: 0; }
|
|
66
|
+
.pp-payments li { margin: 4px 0; }
|
|
64
67
|
.pp-status { display: flex; gap: 8px; align-items: baseline; justify-content: space-between;
|
|
65
68
|
margin-bottom: 12px; padding: 10px 12px; border-radius: var(--pp-border-radius);
|
|
66
69
|
border: 1px solid var(--pp-color-border); }
|
|
@@ -92,7 +95,7 @@ export const STYLES = `
|
|
|
92
95
|
.pp-copy { flex: none; appearance: none; border: 1px solid var(--pp-color-border); border-radius: 6px;
|
|
93
96
|
background: none; color: var(--pp-color-text); font: inherit; font-size: 12px; padding: 3px 8px; cursor: pointer; }
|
|
94
97
|
.pp-tx { margin: 0 0 12px; font-size: 13px; }
|
|
95
|
-
.pp-tx a { color:
|
|
98
|
+
.pp-tx a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
|
|
96
99
|
.pp-tx .pp-value { overflow-wrap: anywhere; }
|
|
97
100
|
`;
|
|
98
101
|
//# sourceMappingURL=appearance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../../src/react/appearance.ts"],"names":[],"mappings":"AAoBA,MAAM,SAAS,GAA+D;IAC5E,YAAY,EAAE,oBAAoB;IAClC,6BAA6B,EAAE,wCAAwC;IACvE,eAAe,EAAE,uBAAuB;IACxC,SAAS,EAAE,iBAAiB;IAC5B,kBAAkB,EAAE,2BAA2B;IAC/C,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,oBAAoB;IAClC,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,oBAAoB;CACnC,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,UAAkC;IAChE,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAC9C,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,SAAS,CAAC,IAA8B,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG
|
|
1
|
+
{"version":3,"file":"appearance.js","sourceRoot":"","sources":["../../src/react/appearance.ts"],"names":[],"mappings":"AAoBA,MAAM,SAAS,GAA+D;IAC5E,YAAY,EAAE,oBAAoB;IAClC,6BAA6B,EAAE,wCAAwC;IACvE,eAAe,EAAE,uBAAuB;IACxC,SAAS,EAAE,iBAAiB;IAC5B,kBAAkB,EAAE,2BAA2B;IAC/C,WAAW,EAAE,mBAAmB;IAChC,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,oBAAoB;IAClC,UAAU,EAAE,kBAAkB;IAC9B,YAAY,EAAE,oBAAoB;CACnC,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,eAAe,CAAC,UAAkC;IAChE,MAAM,SAAS,GAAG,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC;IAC9C,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,SAAS,CAAC,IAA8B,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuErB,CAAC"}
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Checkout, type CheckoutProps } from "./Checkout.js";
|
|
2
|
+
export { DepositAddress, type DepositAddressProps } from "./DepositAddress.js";
|
|
2
3
|
export { useCheckout, type UseCheckoutOptions, type UseCheckoutResult } from "./useCheckout.js";
|
|
3
4
|
export type { Appearance } from "./appearance.js";
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAChG,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/react/index.js
CHANGED
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAmD,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAmD,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { type CheckoutState } from "../checkout.js";
|
|
2
2
|
export interface UseCheckoutOptions {
|
|
3
3
|
clientSecret: string;
|
|
4
|
+
/** The quote's address as your backend recomputed it; another one fails closed. */
|
|
5
|
+
expectedAddress: string;
|
|
4
6
|
apiBase: string;
|
|
5
7
|
pollInterval?: number;
|
|
6
8
|
}
|
|
@@ -9,5 +11,5 @@ export interface UseCheckoutResult extends CheckoutState {
|
|
|
9
11
|
refresh: () => void;
|
|
10
12
|
}
|
|
11
13
|
/** Follows a quote's public view for as long as the component is mounted. */
|
|
12
|
-
export declare function useCheckout({ clientSecret, apiBase, pollInterval, }: UseCheckoutOptions): UseCheckoutResult;
|
|
14
|
+
export declare function useCheckout({ clientSecret, expectedAddress, apiBase, pollInterval, }: UseCheckoutOptions): UseCheckoutResult;
|
|
13
15
|
//# sourceMappingURL=useCheckout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../src/react/useCheckout.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,qFAAqF;IACrF,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,OAAO,EACP,YAAY,GACb,EAAE,kBAAkB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../src/react/useCheckout.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE1F,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IACtD,qFAAqF;IACrF,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID,6EAA6E;AAC7E,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,eAAe,EACf,OAAO,EACP,YAAY,GACb,EAAE,kBAAkB,GAAG,iBAAiB,CA2BxC"}
|
|
@@ -2,13 +2,14 @@ import { useCallback, useEffect, useRef, useState } from "react";
|
|
|
2
2
|
import { createCheckout } from "../checkout.js";
|
|
3
3
|
const LOADING = { status: "loading", quote: null, error: null };
|
|
4
4
|
/** Follows a quote's public view for as long as the component is mounted. */
|
|
5
|
-
export function useCheckout({ clientSecret, apiBase, pollInterval, }) {
|
|
5
|
+
export function useCheckout({ clientSecret, expectedAddress, apiBase, pollInterval, }) {
|
|
6
6
|
const [current, setCurrent] = useState({ key: "", state: LOADING });
|
|
7
7
|
const checkout = useRef(null);
|
|
8
|
-
const key = `${apiBase} ${clientSecret}`;
|
|
8
|
+
const key = `${apiBase} ${clientSecret} ${expectedAddress}`;
|
|
9
9
|
useEffect(() => {
|
|
10
10
|
const instance = createCheckout({
|
|
11
11
|
clientSecret,
|
|
12
|
+
expectedAddress,
|
|
12
13
|
apiBase,
|
|
13
14
|
...(pollInterval === undefined ? {} : { pollInterval }),
|
|
14
15
|
});
|
|
@@ -19,7 +20,7 @@ export function useCheckout({ clientSecret, apiBase, pollInterval, }) {
|
|
|
19
20
|
instance.destroy();
|
|
20
21
|
checkout.current = null;
|
|
21
22
|
};
|
|
22
|
-
}, [key, clientSecret, apiBase, pollInterval]);
|
|
23
|
+
}, [key, clientSecret, expectedAddress, apiBase, pollInterval]);
|
|
23
24
|
const refresh = useCallback(() => {
|
|
24
25
|
void checkout.current?.refresh();
|
|
25
26
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../src/react/useCheckout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,cAAc,EAA4C,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCheckout.js","sourceRoot":"","sources":["../../src/react/useCheckout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,cAAc,EAA4C,MAAM,gBAAgB,CAAC;AAe1F,MAAM,OAAO,GAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAE/E,6EAA6E;AAC7E,MAAM,UAAU,WAAW,CAAC,EAC1B,YAAY,EACZ,eAAe,EACf,OAAO,EACP,YAAY,GACO;IACnB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,YAAY,IAAI,eAAe,EAAE,CAAC;IAE5D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,cAAc,CAAC;YAC9B,YAAY;YACZ,eAAe;YACf,OAAO;YACP,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;SACxD,CAAC,CAAC;QACH,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC9E,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,CAAC;YACd,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,KAAK,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,kFAAkF;IAClF,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;AACzE,CAAC"}
|