@phala/pay 0.9.1 → 0.10.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/README.md +88 -31
- package/dist/checkout.d.ts +12 -4
- package/dist/checkout.d.ts.map +1 -1
- package/dist/checkout.js +64 -15
- package/dist/checkout.js.map +1 -1
- package/dist/client.d.ts +4 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +5 -0
- package/dist/client.js.map +1 -1
- package/dist/deposit-address.d.ts.map +1 -1
- package/dist/deposit-address.js +1 -0
- package/dist/deposit-address.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/quote.d.ts +2 -0
- package/dist/quote.d.ts.map +1 -1
- package/dist/quote.js +3 -0
- package/dist/quote.js.map +1 -1
- package/dist/transactions.d.ts +21 -0
- package/dist/transactions.d.ts.map +1 -0
- package/dist/transactions.js +39 -0
- package/dist/transactions.js.map +1 -0
- package/dist/wallet.d.ts.map +1 -1
- package/dist/wallet.js +4 -1
- package/dist/wallet.js.map +1 -1
- package/package.json +2 -6
- package/src/checkout.ts +72 -14
- package/src/client.ts +11 -0
- package/src/deposit-address.ts +1 -0
- package/src/index.ts +2 -0
- package/src/quote.ts +5 -0
- package/src/transactions.ts +54 -0
- package/src/wallet.ts +4 -1
- package/src/generated/openapi.d.ts +0 -9482
package/README.md
CHANGED
|
@@ -57,7 +57,7 @@ connects a wallet with wagmi, RainbowKit, ConnectKit, or AppKit, pass it in inst
|
|
|
57
57
|
3. Credit the account when your webhook endpoint receives `deposit.credited`. `onSuccess` is for the
|
|
58
58
|
UI only: the browser is not a trusted source of payment.
|
|
59
59
|
|
|
60
|
-
The component reads `GET /v1/quotes/{id}?client_secret=…` every three seconds. That endpoint is
|
|
60
|
+
The component reads `GET /v1/quotes/{id}?client_secret=…` about every three seconds. That endpoint is
|
|
61
61
|
public (`Access-Control-Allow-Origin: *`) and shows only what the payer needs: the amount, the
|
|
62
62
|
token, the chain, the deposit address, the EIP-681 payment request, the expiry, and the payment
|
|
63
63
|
status. Keep the client secret out of logs and URLs you share; anyone holding it can see that view.
|
|
@@ -66,6 +66,17 @@ address, the checkout shows "This payment address could not be verified" and not
|
|
|
66
66
|
compromised service cannot make the page show its own address). A test-mode quote says "Test
|
|
67
67
|
mode".
|
|
68
68
|
|
|
69
|
+
Checkout and React deposit-address polling apply uniform ±20% jitter to normal intervals and
|
|
70
|
+
failure backoff, while respecting `Retry-After`. Hidden tabs pause polling and read immediately
|
|
71
|
+
when visible again. Jittered delays are capped at 30 seconds; a longer `Retry-After` remains
|
|
72
|
+
a minimum. The checkout core also works without `document`. `pollInterval` sets the
|
|
73
|
+
normal polling interval. Explicit `checkout.refresh()` still reads immediately while hidden,
|
|
74
|
+
including the post-broadcast refresh used by `<Checkout>`.
|
|
75
|
+
`pollInterval` is in milliseconds (default 3000). Other than 408/429, non-terminal 4xx responses
|
|
76
|
+
stop checkout polling after three consecutive occurrences and surface the existing `error`
|
|
77
|
+
state. Success or another kind of failure resets that count. An unknown client secret (404)
|
|
78
|
+
still stops immediately.
|
|
79
|
+
|
|
69
80
|
### Statuses
|
|
70
81
|
|
|
71
82
|
| `status` | Shown |
|
|
@@ -78,12 +89,17 @@ mode".
|
|
|
78
89
|
| `rejected` | Will not be credited; the payer contacts support |
|
|
79
90
|
| `reversed` | A reorganization before finality replaced the credited payment |
|
|
80
91
|
| `expired`, `canceled` | The address is hidden; `onExpire` is called once |
|
|
81
|
-
| `error` | Invalid client secret or
|
|
92
|
+
| `error` | Invalid client secret, address mismatch, or three consecutive non-retryable 4xx; nothing to pay |
|
|
82
93
|
|
|
83
94
|
`onChange(state)` is called once per status change with `{ status, quote, error }`, like Stripe
|
|
84
95
|
Elements' `onChange`, for example to hide your own "new payment" control while a payment is
|
|
85
96
|
`seen` or `confirming`.
|
|
86
97
|
|
|
98
|
+
`CheckoutError` exposes `code`, `message`, and optional readonly fields `status` (the HTTP status
|
|
99
|
+
when the error came from a response), `requestId` (the response's `Request-Id`), and `retryAfter`
|
|
100
|
+
(seconds to wait before the next read). `status` is `undefined` for network errors and errors
|
|
101
|
+
created without a response.
|
|
102
|
+
|
|
87
103
|
Before the wallet tab sends a payment, it reads the wallet's token balance; when the wallet holds
|
|
88
104
|
less than the quote, it sends nothing (the transfer would revert and still cost gas) and says how
|
|
89
105
|
much the wallet holds. `onWalletError(error, wallet)` is called with the `WalletError` and the
|
|
@@ -107,6 +123,9 @@ amount, or after expiry, is still credited, at the market price instead of the q
|
|
|
107
123
|
checkout then says so ("Payment credited: $10.00 of $25.00"), and `onSuccess` receives the quote
|
|
108
124
|
with what was credited as `amount_credited`, beside the quoted `amount`.
|
|
109
125
|
|
|
126
|
+
Checkout opens the QR code tab when no browser wallet is discovered; the Wallet tab remains
|
|
127
|
+
available.
|
|
128
|
+
|
|
110
129
|
### Your own wallet connection
|
|
111
130
|
|
|
112
131
|
By default the wallet tab lists the browser's wallets. If your page already connects one, pass its
|
|
@@ -157,12 +176,22 @@ import { DepositAddress } from "@phala/pay-react";
|
|
|
157
176
|
/>;
|
|
158
177
|
```
|
|
159
178
|
|
|
160
|
-
With `clientSecret` and `apiBase` it reads the address's public view every three seconds and lists
|
|
179
|
+
With `clientSecret` and `apiBase` it reads the address's public view about every three seconds and lists
|
|
161
180
|
its payments of the last 24 hours: "1.5 PHA received on Sepolia, 1 confirmation" within about a
|
|
162
181
|
block of the transfer, then "credited" (or rejected or reversed). Display only. It also states each
|
|
163
182
|
network's typical credit time from the view's `typical_credit_seconds` ("usually in about 30 seconds
|
|
164
183
|
on Sepolia and about 7 seconds on Base Sepolia"); until the view is loaded it names no time.
|
|
165
184
|
|
|
185
|
+
After ten minutes without a change in the public view, `<DepositAddress>` uses a base interval
|
|
186
|
+
of `max(pollInterval, 15000)` milliseconds, with the same jitter and failure backoff, so a longer
|
|
187
|
+
configured interval stays unchanged. Any view change or visibility regain resets
|
|
188
|
+
the idle window and restores `pollInterval`. Optional `onChange(state)` receives the existing
|
|
189
|
+
`ClientDepositAddress` public view after the first successful read and then once per content change,
|
|
190
|
+
including payment confirmations and network credit times. Unlike `<Checkout onChange>`, it does
|
|
191
|
+
not report loading. Unchanged polls, callback replacements,
|
|
192
|
+
and reconnecting alone do not trigger it. Use it to update your page without additional polling;
|
|
193
|
+
fulfil from the `deposit.credited` webhook.
|
|
194
|
+
|
|
166
195
|
`depositAddressTransfer(network, asset)` reads and checks one token's amount-less EIP-681
|
|
167
196
|
`payment_uri` without React.
|
|
168
197
|
|
|
@@ -179,18 +208,29 @@ on Sepolia and about 7 seconds on Base Sepolia"); until the view is loaded it na
|
|
|
179
208
|
/>
|
|
180
209
|
```
|
|
181
210
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
|
188
|
-
|
|
|
189
|
-
| `--pp-color-
|
|
190
|
-
| `--pp-color-
|
|
191
|
-
| `--pp-color-
|
|
192
|
-
| `--pp-
|
|
193
|
-
| `--pp-
|
|
211
|
+
The default theme is neutral, like a form native to your page: a near-black (dark theme:
|
|
212
|
+
near-white) primary color, zinc greys, and your page's font. The components draw no frame or
|
|
213
|
+
background and fill their container's width: place them in your own card or dialog, and pick
|
|
214
|
+
the theme (or map the colors) that suits its background.
|
|
215
|
+
|
|
216
|
+
| CSS custom property | Light default | Dark default | Use |
|
|
217
|
+
| ------------------------------- | ----------------- | ------------ | --------------------------------------------------- |
|
|
218
|
+
| `--pp-color-surface` | `#f4f4f5` | `#18181b` | Status row, loading placeholder, copy button hover |
|
|
219
|
+
| `--pp-color-text` | `#18181b` | `#fafafa` | Text |
|
|
220
|
+
| `--pp-color-text-muted` | `#52525b` | `#a1a1aa` | Labels, hints, in-progress status icon |
|
|
221
|
+
| `--pp-color-border` | `#e4e4e7` | `#27272a` | Dividers and the QR code's frame |
|
|
222
|
+
| `--pp-color-input` | `#8a8a93` | `#71717a` | Edges of the network and token choices |
|
|
223
|
+
| `--pp-color-primary` | `#171717` | `#fafafa` | Pay button, selected tab and choice |
|
|
224
|
+
| `--pp-color-primary-foreground` | `#fafafa` | `#18181b` | Text on the primary color |
|
|
225
|
+
| `--pp-color-focus` | `#2563eb` | `#60a5fa` | Keyboard focus ring |
|
|
226
|
+
| `--pp-color-success` | `#15803d` | `#4ade80` | Credited icon |
|
|
227
|
+
| `--pp-color-warning` | `#b45309` | `#fbbf24` | "Test mode" |
|
|
228
|
+
| `--pp-color-danger` | `#dc2626` | `#f87171` | Failure icon, wallet errors |
|
|
229
|
+
| `--pp-font-family` | inherited | inherited | Font |
|
|
230
|
+
| `--pp-font-family-mono` | `ui-monospace, …` | same | Addresses, amounts to copy, hashes |
|
|
231
|
+
| `--pp-font-size` | `14px` | `14px` | Root text size; other text sizes are relative to it |
|
|
232
|
+
| `--pp-radius` | `8px` | `8px` | Corner radius of controls and the status row |
|
|
233
|
+
| `--pp-control-height` | `44px` | `44px` | Minimum height of the pay button, tabs, and choices |
|
|
194
234
|
|
|
195
235
|
Import the static stylesheet once in your application entry point:
|
|
196
236
|
|
|
@@ -198,28 +238,43 @@ Import the static stylesheet once in your application entry point:
|
|
|
198
238
|
import "@phala/pay-react/styles.css";
|
|
199
239
|
```
|
|
200
240
|
|
|
201
|
-
Set these CSS custom properties in your own stylesheet, after the SDK stylesheet,
|
|
202
|
-
|
|
203
|
-
`--pp-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
`--pp-
|
|
207
|
-
|
|
208
|
-
`var(--pp-color-background)`. Checkout opens QR code when no browser wallet is discovered;
|
|
209
|
-
the Wallet tab remains available.
|
|
241
|
+
Set these CSS custom properties in your own stylesheet, after the SDK stylesheet, on
|
|
242
|
+
`.pp-root[data-theme]`; they are the supported way to theme the components. Pair a light primary
|
|
243
|
+
color with a dark `--pp-color-primary-foreground`. Set `--pp-font-size: 1em` to follow your
|
|
244
|
+
page's text size. Keep `--pp-color-focus` distinct from `--pp-color-primary`, with at least 3:1
|
|
245
|
+
contrast to the background: it is how a keyboard user tells the focused choice from the selected
|
|
246
|
+
one. Keep `--pp-color-input` at 3:1 or more against the background too, as WCAG 1.4.11 asks of the
|
|
247
|
+
edge that shows where a control is; `--pp-color-border` draws only dividers and may be fainter.
|
|
210
248
|
|
|
211
249
|
```css
|
|
212
250
|
.pp-root[data-theme] {
|
|
213
251
|
--pp-color-primary: #cdfa50;
|
|
214
|
-
--pp-
|
|
215
|
-
--pp-
|
|
252
|
+
--pp-color-primary-foreground: #161616;
|
|
253
|
+
--pp-color-focus: #2563eb;
|
|
254
|
+
--pp-radius: 12px;
|
|
216
255
|
}
|
|
217
256
|
```
|
|
218
257
|
|
|
219
|
-
To map your own light/dark tokens
|
|
220
|
-
|
|
221
|
-
`.pp-root[data-theme="dark"]` overrides a plain `.pp-root` mapping
|
|
222
|
-
|
|
258
|
+
To map your own light/dark tokens, omit `appearance.theme` and load your mapping after the SDK
|
|
259
|
+
stylesheet. Passing `theme: "dark"` sets `data-theme="dark"`, whose SDK selector
|
|
260
|
+
`.pp-root[data-theme="dark"]` overrides a plain `.pp-root` mapping, so target
|
|
261
|
+
`.pp-root[data-theme]` in your mapping. Without `theme`, defaults suit light backgrounds only; on
|
|
262
|
+
dark hosts map every color variable: one left unmapped keeps its light default (a light status
|
|
263
|
+
row on a dark card, for example). Mappings written for earlier releases use renamed variables, which
|
|
264
|
+
are silently ignored: `--pp-color-text-secondary` is now `--pp-color-text-muted`; see the CHANGELOG
|
|
265
|
+
for the others.
|
|
266
|
+
|
|
267
|
+
The components draw no frame or background: give the card or dialog around them inner padding of
|
|
268
|
+
at least 4px, so that the 2px focus outline (offset by 2px) is not clipped by `overflow: hidden`.
|
|
269
|
+
|
|
270
|
+
The components show a payer's receive address and token contract in full, in groups of four
|
|
271
|
+
characters after `0x` (`0x5290 8400 0985 …`), never shortened, so that a payer can compare it
|
|
272
|
+
group by group with what their wallet shows; selecting and copying it gives the address without
|
|
273
|
+
spaces. The QR code keeps the standard quiet zone of four modules inside 8px of white, so it scans
|
|
274
|
+
on a dark page too. The status row's text stays the body color on a neutral surface; its icon
|
|
275
|
+
carries the tone. Transitions and the loading placeholder's pulse stop under
|
|
276
|
+
`prefers-reduced-motion: reduce`, and the selected choice and tab keep a system color in
|
|
277
|
+
forced-colors mode.
|
|
223
278
|
|
|
224
279
|
### Content Security Policy
|
|
225
280
|
|
|
@@ -277,7 +332,9 @@ Install `@phala/pay-react` for `Checkout`, `DepositAddress`, hooks, icons, and s
|
|
|
277
332
|
npm install @phala/pay-react react react-dom @phala/pay viem
|
|
278
333
|
```
|
|
279
334
|
|
|
280
|
-
Import components from `@phala/pay-react` and styles from `@phala/pay-react/styles.css`.
|
|
335
|
+
Import components from `@phala/pay-react` and styles from `@phala/pay-react/styles.css`. Import
|
|
336
|
+
the server client and API types from `@phala/pay-server`, and offline helpers from
|
|
337
|
+
`@phala/pay-server/helpers`; see its [README](../js-server/README.md).
|
|
281
338
|
|
|
282
339
|
The checkout session retains its last known status and quote during temporary network/5xx outages
|
|
283
340
|
and exposes `reconnecting: true` with no permanent error. Polling resumes with bounded backoff and
|
package/dist/checkout.d.ts
CHANGED
|
@@ -15,6 +15,8 @@ import { type ClientQuote } from "./quote.js";
|
|
|
15
15
|
export type CheckoutStatus = "loading" | "waiting" | "seen" | "confirming" | "credited" | "rejected" | "reversed" | "expired" | "canceled" | "error";
|
|
16
16
|
export type CheckoutErrorCode = "invalid_client_secret" | "address_mismatch" | "rate_limited" | "network_error" | "service_unavailable" | "invalid_response" | "api_error";
|
|
17
17
|
export interface CheckoutErrorOptions extends ErrorOptions {
|
|
18
|
+
/** The HTTP status, when the error came from a response. */
|
|
19
|
+
status?: number;
|
|
18
20
|
/** The failed response's `Request-Id`, `req_…`, to quote to support. */
|
|
19
21
|
requestId?: string;
|
|
20
22
|
/** For `rate_limited`: the seconds the service asked to wait (`Retry-After`). */
|
|
@@ -23,6 +25,8 @@ export interface CheckoutErrorOptions extends ErrorOptions {
|
|
|
23
25
|
export declare class CheckoutError extends Error {
|
|
24
26
|
readonly code: CheckoutErrorCode;
|
|
25
27
|
readonly name = "CheckoutError";
|
|
28
|
+
/** The HTTP status, when the error came from a response. */
|
|
29
|
+
readonly status?: number;
|
|
26
30
|
/** The failed response's `Request-Id`, when the service answered. */
|
|
27
31
|
readonly requestId: string | undefined;
|
|
28
32
|
/** For `rate_limited`: the seconds to wait before the next read. */
|
|
@@ -30,12 +34,16 @@ export declare class CheckoutError extends Error {
|
|
|
30
34
|
constructor(code: CheckoutErrorCode, message: string, options?: CheckoutErrorOptions);
|
|
31
35
|
}
|
|
32
36
|
/**
|
|
33
|
-
* The error of a failed read of a public view, with the response's `Request-Id`
|
|
34
|
-
* its `Retry-After`.
|
|
37
|
+
* The error of a failed read of a public view, with the response's HTTP status, `Request-Id`
|
|
38
|
+
* and, on `429`, its `Retry-After`.
|
|
35
39
|
*/
|
|
36
40
|
export declare function responseError(response: Response, notFound: string): CheckoutError;
|
|
37
|
-
/**
|
|
38
|
-
|
|
41
|
+
/**
|
|
42
|
+
* The next read's delay with uniform ±20% jitter capped at MAX_BACKOFF after jitter.
|
|
43
|
+
* Retry-After remains a minimum, even when it asks for longer than the backoff cap.
|
|
44
|
+
* `random` defaults to Math.random and can be injected for deterministic tests.
|
|
45
|
+
*/
|
|
46
|
+
export declare function pollDelay(interval: number, failures: number, error: CheckoutError | null, random?: () => number): number;
|
|
39
47
|
export interface CheckoutState {
|
|
40
48
|
status: CheckoutStatus;
|
|
41
49
|
/** The last known view is retained while polling reconnects after a temporary outage. */
|
package/dist/checkout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"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"}
|
package/dist/checkout.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
+
import { bindQuoteSubmission } from "./transactions.js";
|
|
1
2
|
import { requestSignal, trimTrailingSlashes } from "./request.js";
|
|
2
3
|
import { getAddress, isAddress, isAddressEqual } from "viem";
|
|
3
4
|
import { parseClientQuote, quoteIdFromClientSecret } from "./quote.js";
|
|
4
5
|
export class CheckoutError extends Error {
|
|
5
6
|
code;
|
|
6
7
|
name = "CheckoutError";
|
|
8
|
+
/** The HTTP status, when the error came from a response. */
|
|
9
|
+
status;
|
|
7
10
|
/** The failed response's `Request-Id`, when the service answered. */
|
|
8
11
|
requestId;
|
|
9
12
|
/** For `rate_limited`: the seconds to wait before the next read. */
|
|
@@ -11,40 +14,49 @@ export class CheckoutError extends Error {
|
|
|
11
14
|
constructor(code, message, options) {
|
|
12
15
|
super(message, options);
|
|
13
16
|
this.code = code;
|
|
17
|
+
if (options?.status !== undefined) {
|
|
18
|
+
this.status = options.status;
|
|
19
|
+
}
|
|
14
20
|
this.requestId = options?.requestId;
|
|
15
21
|
this.retryAfter = options?.retryAfter;
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
|
-
* The error of a failed read of a public view, with the response's `Request-Id`
|
|
20
|
-
* its `Retry-After`.
|
|
25
|
+
* The error of a failed read of a public view, with the response's HTTP status, `Request-Id`
|
|
26
|
+
* and, on `429`, its `Retry-After`.
|
|
21
27
|
*/
|
|
22
28
|
export function responseError(response, notFound) {
|
|
23
29
|
const header = response.headers.get("request-id");
|
|
24
|
-
const
|
|
30
|
+
const options = { status: response.status, ...(header === null ? {} : { requestId: header }) };
|
|
25
31
|
if (response.status === 404) {
|
|
26
|
-
return new CheckoutError("invalid_client_secret", notFound,
|
|
32
|
+
return new CheckoutError("invalid_client_secret", notFound, options);
|
|
27
33
|
}
|
|
28
34
|
if (response.status >= 500) {
|
|
29
35
|
const seconds = Number(response.headers.get("retry-after"));
|
|
30
36
|
return new CheckoutError("service_unavailable", "the payment service is temporarily unavailable", {
|
|
31
|
-
...
|
|
37
|
+
...options,
|
|
32
38
|
...(Number.isFinite(seconds) && seconds > 0 ? { retryAfter: seconds } : {}),
|
|
33
39
|
});
|
|
34
40
|
}
|
|
35
41
|
if (response.status === 429) {
|
|
36
42
|
const seconds = Number(response.headers.get("retry-after"));
|
|
37
43
|
return new CheckoutError("rate_limited", "too many status requests", {
|
|
38
|
-
...
|
|
44
|
+
...options,
|
|
39
45
|
...(Number.isFinite(seconds) && seconds > 0 ? { retryAfter: seconds } : {}),
|
|
40
46
|
});
|
|
41
47
|
}
|
|
42
|
-
return new CheckoutError("api_error", `the payment service answered ${response.status}`,
|
|
48
|
+
return new CheckoutError("api_error", `the payment service answered ${response.status}`, options);
|
|
43
49
|
}
|
|
44
|
-
/**
|
|
45
|
-
|
|
50
|
+
/**
|
|
51
|
+
* The next read's delay with uniform ±20% jitter capped at MAX_BACKOFF after jitter.
|
|
52
|
+
* Retry-After remains a minimum, even when it asks for longer than the backoff cap.
|
|
53
|
+
* `random` defaults to Math.random and can be injected for deterministic tests.
|
|
54
|
+
*/
|
|
55
|
+
export function pollDelay(interval, failures, error, random = Math.random) {
|
|
46
56
|
const backoff = failures === 0 ? interval : Math.min(interval * 2 ** failures, MAX_BACKOFF);
|
|
47
|
-
|
|
57
|
+
const retryAfter = (error?.retryAfter ?? 0) * 1000;
|
|
58
|
+
const jittered = Math.max(backoff, retryAfter) * (0.8 + 0.4 * random());
|
|
59
|
+
return Math.max(Math.min(jittered, MAX_BACKOFF), retryAfter);
|
|
48
60
|
}
|
|
49
61
|
const DEFAULT_POLL_INTERVAL = 3000;
|
|
50
62
|
const MAX_BACKOFF = 30_000;
|
|
@@ -75,11 +87,17 @@ export async function retrieveQuote(options) {
|
|
|
75
87
|
catch (cause) {
|
|
76
88
|
throw new CheckoutError("invalid_response", "unexpected response from the payment service", {
|
|
77
89
|
cause,
|
|
90
|
+
status: response.status,
|
|
78
91
|
});
|
|
79
92
|
}
|
|
80
93
|
if (!isAddressEqual(getAddress(quote.address), expected)) {
|
|
81
|
-
throw new CheckoutError("address_mismatch", "the quote's address is not the one the merchant expects");
|
|
94
|
+
throw new CheckoutError("address_mismatch", "the quote's address is not the one the merchant expects", { status: response.status });
|
|
82
95
|
}
|
|
96
|
+
bindQuoteSubmission(quote, {
|
|
97
|
+
apiBase: options.apiBase, clientSecret: options.clientSecret,
|
|
98
|
+
...(options.fetch === undefined ? {} : { fetch: options.fetch }),
|
|
99
|
+
...(options.requestTimeout === undefined ? {} : { requestTimeout: options.requestTimeout }),
|
|
100
|
+
});
|
|
83
101
|
return quote;
|
|
84
102
|
}
|
|
85
103
|
function expectedAddress(value) {
|
|
@@ -117,9 +135,11 @@ export function createCheckout(options) {
|
|
|
117
135
|
const now = options.now ?? Date.now;
|
|
118
136
|
const interval = options.pollInterval ?? DEFAULT_POLL_INTERVAL;
|
|
119
137
|
const listeners = new Set();
|
|
138
|
+
const visibilityDocument = typeof document === "undefined" ? undefined : document;
|
|
120
139
|
let state = { status: "loading", quote: null, error: null };
|
|
121
140
|
let timer;
|
|
122
141
|
let failures = 0;
|
|
142
|
+
let clientFailures = 0;
|
|
123
143
|
let lastFailure = null;
|
|
124
144
|
let destroyed = false;
|
|
125
145
|
let inFlight;
|
|
@@ -153,6 +173,7 @@ export function createCheckout(options) {
|
|
|
153
173
|
return;
|
|
154
174
|
}
|
|
155
175
|
failures = 0;
|
|
176
|
+
clientFailures = 0;
|
|
156
177
|
lastFailure = null;
|
|
157
178
|
setState({ status: checkoutStatus(quote, now() / 1000), quote, error: null });
|
|
158
179
|
}
|
|
@@ -164,6 +185,14 @@ export function createCheckout(options) {
|
|
|
164
185
|
? cause
|
|
165
186
|
: new CheckoutError("network_error", "could not reach the payment service", { cause });
|
|
166
187
|
failures += 1;
|
|
188
|
+
clientFailures =
|
|
189
|
+
error.status !== undefined &&
|
|
190
|
+
error.status >= 400 &&
|
|
191
|
+
error.status < 500 &&
|
|
192
|
+
error.status !== 408 &&
|
|
193
|
+
error.status !== 429
|
|
194
|
+
? clientFailures + 1
|
|
195
|
+
: 0;
|
|
167
196
|
lastFailure = error;
|
|
168
197
|
const quote = state.quote;
|
|
169
198
|
if (error.code === "address_mismatch") {
|
|
@@ -173,6 +202,9 @@ export function createCheckout(options) {
|
|
|
173
202
|
else if (error.code === "invalid_client_secret") {
|
|
174
203
|
setState({ status: "error", quote, error });
|
|
175
204
|
}
|
|
205
|
+
else if (clientFailures >= 3) {
|
|
206
|
+
setState({ status: "error", quote, error });
|
|
207
|
+
}
|
|
176
208
|
else if (error.code === "network_error" || error.code === "service_unavailable") {
|
|
177
209
|
// Do not infer expiry or discard the payer's view while chain progress is unknown.
|
|
178
210
|
setState({ status: state.status, quote, error: null, reconnecting: true });
|
|
@@ -196,15 +228,32 @@ export function createCheckout(options) {
|
|
|
196
228
|
return inFlight;
|
|
197
229
|
}
|
|
198
230
|
function schedule() {
|
|
199
|
-
|
|
231
|
+
clearTimeout(timer);
|
|
232
|
+
if (finished() || visibilityDocument?.visibilityState === "hidden") {
|
|
200
233
|
return;
|
|
201
234
|
}
|
|
202
235
|
const delay = pollDelay(interval, failures, lastFailure);
|
|
203
236
|
timer = setTimeout(() => {
|
|
204
|
-
|
|
237
|
+
if (!finished() && visibilityDocument?.visibilityState !== "hidden") {
|
|
238
|
+
void refresh().then(schedule);
|
|
239
|
+
}
|
|
205
240
|
}, delay);
|
|
206
241
|
}
|
|
207
|
-
|
|
242
|
+
function visibilityChanged() {
|
|
243
|
+
clearTimeout(timer);
|
|
244
|
+
if (visibilityDocument?.visibilityState !== "hidden" && !finished()) {
|
|
245
|
+
void refresh().then(schedule);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
function stopPolling() {
|
|
249
|
+
clearTimeout(timer);
|
|
250
|
+
visibilityDocument?.removeEventListener("visibilitychange", visibilityChanged);
|
|
251
|
+
}
|
|
252
|
+
visibilityDocument?.addEventListener("visibilitychange", visibilityChanged);
|
|
253
|
+
signal.addEventListener("abort", stopPolling, { once: true });
|
|
254
|
+
if (visibilityDocument?.visibilityState !== "hidden") {
|
|
255
|
+
void refresh().then(schedule);
|
|
256
|
+
}
|
|
208
257
|
return {
|
|
209
258
|
getState: () => state,
|
|
210
259
|
subscribe(listener) {
|
|
@@ -217,7 +266,7 @@ export function createCheckout(options) {
|
|
|
217
266
|
destroy() {
|
|
218
267
|
destroyed = true;
|
|
219
268
|
controller.abort();
|
|
220
|
-
|
|
269
|
+
stopPolling();
|
|
221
270
|
listeners.clear();
|
|
222
271
|
},
|
|
223
272
|
};
|
package/dist/checkout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAoB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../src/checkout.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Hash } from "viem";
|
|
2
|
+
import { type SubmitTransactionOptions } from "./transactions.js";
|
|
1
3
|
import { type CheckoutOptions, type CheckoutSession, type RetrieveQuoteOptions } from "./checkout.js";
|
|
2
4
|
import type { ClientQuote } from "./quote.js";
|
|
3
5
|
export interface PhalaPayOptions {
|
|
@@ -23,5 +25,7 @@ export declare class PhalaPay {
|
|
|
23
25
|
retrieveQuote(clientSecret: string, expectedAddress: string, options?: Pick<RetrieveQuoteOptions, "signal" | "requestTimeout">): Promise<ClientQuote>;
|
|
24
26
|
/** Follows the quote until it is credited, rejected, reversed, canceled, or expired. */
|
|
25
27
|
checkout(clientSecret: string, options: Pick<CheckoutOptions, "expectedAddress" | "pollInterval" | "signal" | "requestTimeout">): CheckoutSession;
|
|
28
|
+
/** Acknowledges a hint only; continue polling the object for payment status. */
|
|
29
|
+
submitTransaction(clientSecret: string, transactionHash: Hash, options?: Pick<SubmitTransactionOptions, "chainId" | "signal" | "requestTimeout">): Promise<void>;
|
|
26
30
|
}
|
|
27
31
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGb,OAAO,EAAE,eAAe;IAKpC,+FAA+F;IAC/F,aAAa,CACX,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,gBAAgB,CAAM,GACpE,OAAO,CAAC,WAAW,CAAC;IAUvB,wFAAwF;IACxF,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC,GAC/F,eAAe;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAqB,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AACrF,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED;;;;;;;;;GASG;AACH,qBAAa,QAAQ;;IACnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAGb,OAAO,EAAE,eAAe;IAKpC,+FAA+F;IAC/F,aAAa,CACX,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,IAAI,CAAC,oBAAoB,EAAE,QAAQ,GAAG,gBAAgB,CAAM,GACpE,OAAO,CAAC,WAAW,CAAC;IAUvB,wFAAwF;IACxF,QAAQ,CACN,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,iBAAiB,GAAG,cAAc,GAAG,QAAQ,GAAG,gBAAgB,CAAC,GAC/F,eAAe;IASlB,gFAAgF;IAChF,iBAAiB,CACf,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,IAAI,EACrB,OAAO,GAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,GAAG,QAAQ,GAAG,gBAAgB,CAAM,GACpF,OAAO,CAAC,IAAI,CAAC;CAOjB"}
|
package/dist/client.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { submitTransaction } from "./transactions.js";
|
|
1
2
|
import { createCheckout, retrieveQuote, } from "./checkout.js";
|
|
2
3
|
/**
|
|
3
4
|
* The browser client, in the shape of Stripe.js: it holds no key, only the service origin, and
|
|
@@ -35,6 +36,10 @@ export class PhalaPay {
|
|
|
35
36
|
...this.#fetchOption(),
|
|
36
37
|
});
|
|
37
38
|
}
|
|
39
|
+
/** Acknowledges a hint only; continue polling the object for payment status. */
|
|
40
|
+
submitTransaction(clientSecret, transactionHash, options = {}) {
|
|
41
|
+
return submitTransaction({ ...options, clientSecret, transactionHash, apiBase: this.apiBase, ...this.#fetchOption() });
|
|
42
|
+
}
|
|
38
43
|
#fetchOption() {
|
|
39
44
|
return this.#fetch === undefined ? {} : { fetch: this.#fetch };
|
|
40
45
|
}
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAiC,MAAM,mBAAmB,CAAC;AACrF,OAAO,EACL,cAAc,EACd,aAAa,GAId,MAAM,eAAe,CAAC;AASvB;;;;;;;;;GASG;AACH,MAAM,OAAO,QAAQ;IACV,OAAO,CAAS;IAChB,MAAM,CAAsC;IAErD,YAAY,OAAwB;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,+FAA+F;IAC/F,aAAa,CACX,YAAoB,EACpB,eAAuB,EACvB,UAAmE,EAAE;QAErE,OAAO,aAAa,CAAC;YACnB,YAAY;YACZ,eAAe;YACf,GAAG,OAAO;YACV,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,IAAI,CAAC,YAAY,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,wFAAwF;IACxF,QAAQ,CACN,YAAoB,EACpB,OAAgG;QAEhG,OAAO,cAAc,CAAC;YACpB,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,OAAO;YACV,GAAG,IAAI,CAAC,YAAY,EAAE;SACvB,CAAC,CAAC;IACL,CAAC;IAED,gFAAgF;IAChF,iBAAiB,CACf,YAAoB,EACpB,eAAqB,EACrB,UAAmF,EAAE;QAErF,OAAO,iBAAiB,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IACzH,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit-address.d.ts","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IACxC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC5C,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAID,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"deposit-address.d.ts","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"AAGA,mFAAmF;AACnF,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wEAAwE;AACxE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,2BAA2B,EAAE,CAAC;IACxC,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC5C,wFAAwF;IACxF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAID,2FAA2F;AAC3F,wBAAgB,gCAAgC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAM7E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,oBAAoB,CAAC,CAsB/B;AAED,kGAAkG;AAClG,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,CAsB9E"}
|
package/dist/deposit-address.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit-address.js","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AA2D7D,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;AAE7F,2FAA2F;AAC3F,MAAM,UAAU,gCAAgC,CAAC,YAAoB;IACnE,MAAM,KAAK,GAAG,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAsC;IAEtC,MAAM,EAAE,GAAG,gCAAgC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,GAAG,IAAI,yBAAyB,EAAE,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3G,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACrE,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE;QACpC,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC;KAC/B,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,aAAa,CAAC,QAAQ,EAAE,6CAA6C,CAAC,CAAC;IAC/E,CAAC;IACD,IAAI,CAAC;QACH,OAAO,yBAAyB,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,kBAAkB,EAAE,8CAA8C,EAAE;YAC1F,KAAK;
|
|
1
|
+
{"version":3,"file":"deposit-address.js","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,4 +9,5 @@ export { assetIconName, iconMonogram, type IconName } from "./icon-names.js";
|
|
|
9
9
|
export { INJECTED_WALLET_UUID, WalletError, payWithWallet, watchWallets, type EthereumProvider, type Wallet, type WalletErrorCode, type WalletInfo, } from "./wallet.js";
|
|
10
10
|
export { networkIcon, assetIcon } from "./icons.js";
|
|
11
11
|
export type { CheckoutParams } from "./shared/checkout-params.js";
|
|
12
|
+
export { submitTransaction, type SubmitTransactionOptions } from "./transactions.js";
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,eAAe,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,KAAK,gBAAgB,EACrB,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,KAAK,wBAAwB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,4 +8,5 @@ export { parseClientQuote, quoteIdFromClientSecret } from "./quote.js";
|
|
|
8
8
|
export { assetIconName, iconMonogram } from "./icon-names.js";
|
|
9
9
|
export { INJECTED_WALLET_UUID, WalletError, payWithWallet, watchWallets, } from "./wallet.js";
|
|
10
10
|
export { networkIcon, assetIcon } from "./icons.js";
|
|
11
|
+
export { submitTransaction } from "./transactions.js";
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,GAQd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,GAKvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GAMd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAoB,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,SAAS,EACT,cAAc,EACd,aAAa,GAQd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,gCAAgC,EAChC,yBAAyB,EACzB,sBAAsB,GAKvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3H,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,aAAa,GAMd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAoB,MAAM,YAAY,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,YAAY,GAKb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,iBAAiB,EAAiC,MAAM,mBAAmB,CAAC"}
|
package/dist/quote.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface ClientQuote {
|
|
|
23
23
|
payment_uri: string;
|
|
24
24
|
/** Unix seconds; after this the address must no longer be shown. */
|
|
25
25
|
expires_at: number;
|
|
26
|
+
/** Unix seconds of a cancellation request; the quote stays open until dual coverage closes it. */
|
|
27
|
+
cancel_requested_at?: number | null;
|
|
26
28
|
/**
|
|
27
29
|
* `seen` once in a block (a reorg can remove it), `confirming` while a payment at the route's
|
|
28
30
|
* confirmation is valued and screened, `credited` once it is credited (typically
|
package/dist/quote.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../src/quote.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,iGAAiG;IACjG,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACrD,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACtF,8EAA8E;IAC9E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAKD,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../src/quote.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,iGAAiG;IACjG,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;IACrD,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,yFAAyF;IACzF,aAAa,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,kGAAkG;IAClG,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;IACtF,8EAA8E;IAC9E,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;OAIG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAKD,oFAAoF;AACpF,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAMpE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,CAoD5D"}
|