@phala/pay 0.10.4 → 0.10.6
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 +8 -3
- package/dist/deposit-address.d.ts +3 -0
- package/dist/deposit-address.d.ts.map +1 -1
- package/dist/deposit-address.js +30 -0
- package/dist/deposit-address.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/payment.d.ts +7 -1
- package/dist/payment.d.ts.map +1 -1
- package/dist/payment.js.map +1 -1
- package/package.json +1 -1
- package/src/deposit-address.ts +36 -0
- package/src/index.ts +1 -1
- package/src/payment.ts +7 -1
package/README.md
CHANGED
|
@@ -156,12 +156,17 @@ as usual. The QR code and manual tabs do not change.
|
|
|
156
156
|
|
|
157
157
|
### A customer's deposit address
|
|
158
158
|
|
|
159
|
-
For top-ups
|
|
159
|
+
For top-ups within your deposit limits, your backend creates the customer's persistent deposit address with
|
|
160
160
|
`POST /v1/deposit_addresses` (its API key) and passes its `address` and `networks` to the page:
|
|
161
161
|
one address for all supported tokens and networks. `<DepositAddress>` lets the payer pick a
|
|
162
162
|
network and a token and shows a QR code of that token's transfer request, the token contract, and
|
|
163
|
-
the address to copy, with
|
|
164
|
-
|
|
163
|
+
the address to copy, with the selected token’s per-transfer USD credit minimum (`min_amount`,
|
|
164
|
+
in cents) and token maximum (`max_deposit_atomic`). A positive `min_deposit_atomic` adds the
|
|
165
|
+
independent token minimum; a zero atomic minimum is omitted. Atomic-unit strings are formatted
|
|
166
|
+
with `decimals` and English thousands grouping without precision loss. The copy says "Eligible
|
|
167
|
+
transfers are credited at the market rate". The latest public view supplies current limits when
|
|
168
|
+
available; missing or malformed limits show neutral copy without a range. Where a network’s address differs
|
|
169
|
+
(another treasury), it shows that network’s own.
|
|
165
170
|
Credit the customer from the `deposit.credited` webhook.
|
|
166
171
|
|
|
167
172
|
```tsx
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { DepositAddressAsset } from "./payment.js";
|
|
1
2
|
/** A payment to a deposit address as the customer's page sees it. Display only. */
|
|
2
3
|
export interface DepositAddressPayment {
|
|
3
4
|
/**
|
|
@@ -23,6 +24,8 @@ export interface ClientDepositAddressNetwork {
|
|
|
23
24
|
chain_id: number;
|
|
24
25
|
/** The forwarder address to pay on this chain. */
|
|
25
26
|
address: string;
|
|
27
|
+
/** Accepted tokens and their per-transfer bounds at view time, when provided by the server. */
|
|
28
|
+
assets?: DepositAddressAsset[];
|
|
26
29
|
/**
|
|
27
30
|
* Typical seconds from payment to credit at the confirmation this chain's payments are credited
|
|
28
31
|
* at: about 30 on Ethereum (two blocks), 7 on an OP-stack chain (three blocks), 300 under a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deposit-address.d.ts","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deposit-address.d.ts","sourceRoot":"","sources":["../src/deposit-address.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,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,+FAA+F;IAC/F,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B;;;;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
|
@@ -62,8 +62,10 @@ export function parseClientDepositAddress(value) {
|
|
|
62
62
|
function parseNetwork(value) {
|
|
63
63
|
const n = record(value);
|
|
64
64
|
const seconds = n["typical_credit_seconds"];
|
|
65
|
+
const assets = n["assets"];
|
|
65
66
|
if (!Number.isSafeInteger(n["chain_id"]) ||
|
|
66
67
|
typeof n["address"] !== "string" ||
|
|
68
|
+
!(assets === undefined || Array.isArray(assets)) ||
|
|
67
69
|
!Number.isSafeInteger(seconds) ||
|
|
68
70
|
seconds < 0) {
|
|
69
71
|
throw new TypeError("network does not match the public deposit address view");
|
|
@@ -71,9 +73,37 @@ function parseNetwork(value) {
|
|
|
71
73
|
return {
|
|
72
74
|
chain_id: n["chain_id"],
|
|
73
75
|
address: n["address"],
|
|
76
|
+
...(assets === undefined ? {} : { assets: assets.map(parseAsset) }),
|
|
74
77
|
typical_credit_seconds: seconds,
|
|
75
78
|
};
|
|
76
79
|
}
|
|
80
|
+
function parseAsset(value) {
|
|
81
|
+
const a = record(value);
|
|
82
|
+
const decimals = a["decimals"];
|
|
83
|
+
const creditMinimum = a["min_amount"];
|
|
84
|
+
const minimum = a["min_deposit_atomic"];
|
|
85
|
+
const maximum = a["max_deposit_atomic"];
|
|
86
|
+
if (typeof a["asset"] !== "string" ||
|
|
87
|
+
typeof a["contract"] !== "string" ||
|
|
88
|
+
typeof a["payment_uri"] !== "string" ||
|
|
89
|
+
typeof decimals !== "number" ||
|
|
90
|
+
!Number.isInteger(decimals) || decimals < 0 || decimals > 255 ||
|
|
91
|
+
!(creditMinimum === undefined || (typeof creditMinimum === "number" && Number.isSafeInteger(creditMinimum) && creditMinimum > 0)) ||
|
|
92
|
+
!(minimum === undefined || (typeof minimum === "string" && minimum.length > 0 && !/[^0-9]/.test(minimum))) ||
|
|
93
|
+
!(maximum === undefined || (typeof maximum === "string" && maximum.length > 0 && !/[^0-9]/.test(maximum))) ||
|
|
94
|
+
(minimum !== undefined && maximum !== undefined && BigInt(minimum) > BigInt(maximum))) {
|
|
95
|
+
throw new TypeError("asset does not match the public deposit address view");
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
asset: a["asset"],
|
|
99
|
+
contract: a["contract"],
|
|
100
|
+
decimals,
|
|
101
|
+
payment_uri: a["payment_uri"],
|
|
102
|
+
...(creditMinimum === undefined ? {} : { min_amount: creditMinimum }),
|
|
103
|
+
...(minimum === undefined ? {} : { min_deposit_atomic: minimum }),
|
|
104
|
+
...(maximum === undefined ? {} : { max_deposit_atomic: maximum }),
|
|
105
|
+
};
|
|
106
|
+
}
|
|
77
107
|
function parsePayment(value) {
|
|
78
108
|
const p = record(value);
|
|
79
109
|
const status = p["status"];
|
|
@@ -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;
|
|
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
|
@@ -2,7 +2,7 @@ export { CheckoutError, checkoutStatus, pollDelay, createCheckout, retrieveQuote
|
|
|
2
2
|
export { PhalaPay, type PhalaPayOptions } from "./client.js";
|
|
3
3
|
export { depositAddressIdFromClientSecret, parseClientDepositAddress, retrieveDepositAddress, type ClientDepositAddress, type ClientDepositAddressNetwork, type DepositAddressPayment, type RetrieveDepositAddressOptions, } from "./deposit-address.js";
|
|
4
4
|
export { knownChain, networkName, transactionUrl, networkIconName } from "./chains.js";
|
|
5
|
-
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatWait, tokenAmount } from "./format.js";
|
|
5
|
+
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatUnitsGrouped, formatWait, tokenAmount } from "./format.js";
|
|
6
6
|
export { depositAddressTransfer, parseTransferUri, quoteTransfer, type DepositAddressAsset, type DepositAddressDetails, type DepositAddressNetwork, type TokenTransfer, type TransferRequest, } from "./payment.js";
|
|
7
7
|
export { parseClientQuote, quoteIdFromClientSecret, type ClientQuote } from "./quote.js";
|
|
8
8
|
export { assetIconName, iconMonogram, type IconName } from "./icon-names.js";
|
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;
|
|
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,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/I,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
|
@@ -2,7 +2,7 @@ export { CheckoutError, checkoutStatus, pollDelay, createCheckout, retrieveQuote
|
|
|
2
2
|
export { PhalaPay } from "./client.js";
|
|
3
3
|
export { depositAddressIdFromClientSecret, parseClientDepositAddress, retrieveDepositAddress, } from "./deposit-address.js";
|
|
4
4
|
export { knownChain, networkName, transactionUrl, networkIconName } from "./chains.js";
|
|
5
|
-
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatWait, tokenAmount } from "./format.js";
|
|
5
|
+
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatUnitsGrouped, formatWait, tokenAmount } from "./format.js";
|
|
6
6
|
export { depositAddressTransfer, parseTransferUri, quoteTransfer, } from "./payment.js";
|
|
7
7
|
export { parseClientQuote, quoteIdFromClientSecret } from "./quote.js";
|
|
8
8
|
export { assetIconName, iconMonogram } from "./icon-names.js";
|
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;
|
|
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,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/I,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/payment.d.ts
CHANGED
|
@@ -21,6 +21,12 @@ export interface DepositAddressAsset {
|
|
|
21
21
|
/** The ERC-20 contract. */
|
|
22
22
|
contract: string;
|
|
23
23
|
decimals: number;
|
|
24
|
+
/** Minimum per-transfer credit in account currency minor units (USD cents), independent of atomic bounds; absent on older servers and admin restore. */
|
|
25
|
+
min_amount?: number;
|
|
26
|
+
/** Inclusive per-transfer token minimum; zero does not waive min_amount. Absent on older servers and admin restore. */
|
|
27
|
+
min_deposit_atomic?: string;
|
|
28
|
+
/** Inclusive per-transfer maximum at view time, in atomic units; absent on older servers and admin restore. */
|
|
29
|
+
max_deposit_atomic?: string;
|
|
24
30
|
/** The EIP-681 transfer request of this token to the network's address, without an amount. */
|
|
25
31
|
payment_uri: string;
|
|
26
32
|
}
|
|
@@ -34,7 +40,7 @@ export interface DepositAddressNetwork {
|
|
|
34
40
|
/**
|
|
35
41
|
* The fields of a deposit address that a payer's page shows: pass them from your backend's
|
|
36
42
|
* `POST /v1/deposit_addresses` response. One address takes every supported token on every
|
|
37
|
-
* supported network;
|
|
43
|
+
* supported network; eligible transfers within its deposit limits are credited at the market rate.
|
|
38
44
|
*/
|
|
39
45
|
export interface DepositAddressDetails {
|
|
40
46
|
/** The address shared by every network, or `null` when a network's address differs. */
|
package/dist/payment.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,EAAE,EAAE,OAAO,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE7F,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,mBAAmB,GACzB,eAAe,CAWjB"}
|
|
1
|
+
{"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,oEAAoE;IACpE,EAAE,EAAE,OAAO,CAAC;IACZ,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAE7F,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,wJAAwJ;IACxJ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uHAAuH;IACvH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+GAA+G;IAC/G,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8FAA8F;IAC9F,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAKD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAoB7D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,aAAa,CAW/D;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,mBAAmB,GACzB,eAAe,CAWjB"}
|
package/dist/payment.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAgB,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"payment.js","sourceRoot":"","sources":["../src/payment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAgB,MAAM,MAAM,CAAC;AAqDhE,MAAM,eAAe,GACnB,0EAA0E,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW;IAC1C,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACrC,IACE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;QACxB,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS;QACtB,EAAE,KAAK,IAAI;QACX,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAC1C,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IACD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC;QAClB,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;KACrD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkB;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,IACE,QAAQ,CAAC,MAAM,KAAK,SAAS;QAC7B,QAAQ,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ;QACnC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA8B,EAC9B,KAA0B;IAE1B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACrD,IACE,QAAQ,CAAC,MAAM,KAAK,SAAS;QAC7B,QAAQ,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ;QACrC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC3D,CAAC;QACD,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
package/package.json
CHANGED
package/src/deposit-address.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { requestSignal, trimTrailingSlashes } from "./request.js";
|
|
2
2
|
import { CheckoutError, responseError } from "./checkout.js";
|
|
3
|
+
import type { DepositAddressAsset } from "./payment.js";
|
|
3
4
|
|
|
4
5
|
/** A payment to a deposit address as the customer's page sees it. Display only. */
|
|
5
6
|
export interface DepositAddressPayment {
|
|
@@ -27,6 +28,8 @@ export interface ClientDepositAddressNetwork {
|
|
|
27
28
|
chain_id: number;
|
|
28
29
|
/** The forwarder address to pay on this chain. */
|
|
29
30
|
address: string;
|
|
31
|
+
/** Accepted tokens and their per-transfer bounds at view time, when provided by the server. */
|
|
32
|
+
assets?: DepositAddressAsset[];
|
|
30
33
|
/**
|
|
31
34
|
* Typical seconds from payment to credit at the confirmation this chain's payments are credited
|
|
32
35
|
* at: about 30 on Ethereum (two blocks), 7 on an OP-stack chain (three blocks), 300 under a
|
|
@@ -127,9 +130,11 @@ export function parseClientDepositAddress(value: unknown): ClientDepositAddress
|
|
|
127
130
|
function parseNetwork(value: unknown): ClientDepositAddressNetwork {
|
|
128
131
|
const n = record(value);
|
|
129
132
|
const seconds = n["typical_credit_seconds"];
|
|
133
|
+
const assets = n["assets"];
|
|
130
134
|
if (
|
|
131
135
|
!Number.isSafeInteger(n["chain_id"]) ||
|
|
132
136
|
typeof n["address"] !== "string" ||
|
|
137
|
+
!(assets === undefined || Array.isArray(assets)) ||
|
|
133
138
|
!Number.isSafeInteger(seconds) ||
|
|
134
139
|
(seconds as number) < 0
|
|
135
140
|
) {
|
|
@@ -138,10 +143,41 @@ function parseNetwork(value: unknown): ClientDepositAddressNetwork {
|
|
|
138
143
|
return {
|
|
139
144
|
chain_id: n["chain_id"] as number,
|
|
140
145
|
address: n["address"],
|
|
146
|
+
...(assets === undefined ? {} : { assets: assets.map(parseAsset) }),
|
|
141
147
|
typical_credit_seconds: seconds as number,
|
|
142
148
|
};
|
|
143
149
|
}
|
|
144
150
|
|
|
151
|
+
function parseAsset(value: unknown): DepositAddressAsset {
|
|
152
|
+
const a = record(value);
|
|
153
|
+
const decimals = a["decimals"];
|
|
154
|
+
const creditMinimum = a["min_amount"];
|
|
155
|
+
const minimum = a["min_deposit_atomic"];
|
|
156
|
+
const maximum = a["max_deposit_atomic"];
|
|
157
|
+
if (
|
|
158
|
+
typeof a["asset"] !== "string" ||
|
|
159
|
+
typeof a["contract"] !== "string" ||
|
|
160
|
+
typeof a["payment_uri"] !== "string" ||
|
|
161
|
+
typeof decimals !== "number" ||
|
|
162
|
+
!Number.isInteger(decimals) || decimals < 0 || decimals > 255 ||
|
|
163
|
+
!(creditMinimum === undefined || (typeof creditMinimum === "number" && Number.isSafeInteger(creditMinimum) && creditMinimum > 0)) ||
|
|
164
|
+
!(minimum === undefined || (typeof minimum === "string" && minimum.length > 0 && !/[^0-9]/.test(minimum))) ||
|
|
165
|
+
!(maximum === undefined || (typeof maximum === "string" && maximum.length > 0 && !/[^0-9]/.test(maximum))) ||
|
|
166
|
+
(minimum !== undefined && maximum !== undefined && BigInt(minimum) > BigInt(maximum))
|
|
167
|
+
) {
|
|
168
|
+
throw new TypeError("asset does not match the public deposit address view");
|
|
169
|
+
}
|
|
170
|
+
return {
|
|
171
|
+
asset: a["asset"],
|
|
172
|
+
contract: a["contract"],
|
|
173
|
+
decimals,
|
|
174
|
+
payment_uri: a["payment_uri"],
|
|
175
|
+
...(creditMinimum === undefined ? {} : { min_amount: creditMinimum }),
|
|
176
|
+
...(minimum === undefined ? {} : { min_deposit_atomic: minimum }),
|
|
177
|
+
...(maximum === undefined ? {} : { max_deposit_atomic: maximum }),
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
|
|
145
181
|
function parsePayment(value: unknown): DepositAddressPayment {
|
|
146
182
|
const p = record(value);
|
|
147
183
|
const status = p["status"];
|
package/src/index.ts
CHANGED
|
@@ -23,7 +23,7 @@ export {
|
|
|
23
23
|
type RetrieveDepositAddressOptions,
|
|
24
24
|
} from "./deposit-address.js";
|
|
25
25
|
export { knownChain, networkName, transactionUrl, networkIconName } from "./chains.js";
|
|
26
|
-
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatWait, tokenAmount } from "./format.js";
|
|
26
|
+
export { formatAmount, formatCountdown, formatMinorAmount, formatTokenAmount, formatUnitsGrouped, formatWait, tokenAmount } from "./format.js";
|
|
27
27
|
export {
|
|
28
28
|
depositAddressTransfer,
|
|
29
29
|
parseTransferUri,
|
package/src/payment.ts
CHANGED
|
@@ -22,6 +22,12 @@ export interface DepositAddressAsset {
|
|
|
22
22
|
/** The ERC-20 contract. */
|
|
23
23
|
contract: string;
|
|
24
24
|
decimals: number;
|
|
25
|
+
/** Minimum per-transfer credit in account currency minor units (USD cents), independent of atomic bounds; absent on older servers and admin restore. */
|
|
26
|
+
min_amount?: number;
|
|
27
|
+
/** Inclusive per-transfer token minimum; zero does not waive min_amount. Absent on older servers and admin restore. */
|
|
28
|
+
min_deposit_atomic?: string;
|
|
29
|
+
/** Inclusive per-transfer maximum at view time, in atomic units; absent on older servers and admin restore. */
|
|
30
|
+
max_deposit_atomic?: string;
|
|
25
31
|
/** The EIP-681 transfer request of this token to the network's address, without an amount. */
|
|
26
32
|
payment_uri: string;
|
|
27
33
|
}
|
|
@@ -37,7 +43,7 @@ export interface DepositAddressNetwork {
|
|
|
37
43
|
/**
|
|
38
44
|
* The fields of a deposit address that a payer's page shows: pass them from your backend's
|
|
39
45
|
* `POST /v1/deposit_addresses` response. One address takes every supported token on every
|
|
40
|
-
* supported network;
|
|
46
|
+
* supported network; eligible transfers within its deposit limits are credited at the market rate.
|
|
41
47
|
*/
|
|
42
48
|
export interface DepositAddressDetails {
|
|
43
49
|
/** The address shared by every network, or `null` when a network's address differs. */
|