@coinflowlabs/angular 1.3.2 → 1.5.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 +8 -0
- package/fesm2022/coinflowlabs-angular.mjs +99 -59
- package/fesm2022/coinflowlabs-angular.mjs.map +1 -1
- package/package.json +5 -5
- package/types/coinflowlabs-angular.d.ts +1529 -0
- package/index.d.ts +0 -5
- package/lib/card-form/CardFormService.d.ts +0 -14
- package/lib/card-form/coinflow-card-number-input.component.d.ts +0 -17
- package/lib/card-form/coinflow-card-number-only-input.component.d.ts +0 -17
- package/lib/card-form/coinflow-cvv-input.component.d.ts +0 -6
- package/lib/card-form/coinflow-cvv-only-input.component.d.ts +0 -19
- package/lib/coinflow-iframe.component.d.ts +0 -22
- package/lib/coinflow-purchase-history.component.d.ts +0 -5
- package/lib/coinflow-purchase-protection.component.d.ts +0 -5
- package/lib/coinflow-purchase.component.d.ts +0 -11
- package/lib/coinflow-withdraw-history.component.d.ts +0 -5
- package/lib/coinflow-withdraw.component.d.ts +0 -11
- package/lib/common/CoinflowLibMessageHandlers.d.ts +0 -35
- package/lib/common/CoinflowTypes.d.ts +0 -547
- package/lib/common/CoinflowUtils.d.ts +0 -24
- package/lib/common/EventBus.d.ts +0 -6
- package/lib/common/SolanaPeerDeps.d.ts +0 -5
- package/lib/common/card-form/TokenEx.d.ts +0 -171
- package/lib/common/card-form/tokenexHelpers.d.ts +0 -35
- package/lib/common/index.d.ts +0 -11
- package/lib/common/types/AnyObject.d.ts +0 -5
- package/lib/common/types/CartitemCommon.d.ts +0 -163
- package/lib/common/types/Subtotal.d.ts +0 -210
- package/lib/common/types/cryptoCartItem.d.ts +0 -63
- package/lib/common/types/giftCardCartItem.d.ts +0 -58
- package/lib/common/types/moneyTopUpCartItem.d.ts +0 -44
- package/lib/common/types/nftCartItem.d.ts +0 -108
- package/lib/mobile-wallet/coinflow-apple-pay-button.component.d.ts +0 -11
- package/lib/mobile-wallet/coinflow-google-pay-button.component.d.ts +0 -10
- package/lib/mobile-wallet/coinflow-mobile-wallet-button.component.d.ts +0 -22
- package/lib/mobile-wallet/google-pay-overlay.component.d.ts +0 -6
- package/public-api.d.ts +0 -16
|
@@ -0,0 +1,1529 @@
|
|
|
1
|
+
import { PublicKey, Transaction, VersionedTransaction, Signer, Connection } from '@solana/web3.js';
|
|
2
|
+
import { Properties } from 'csstype';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { EventEmitter, ElementRef, OnDestroy, SimpleChanges } from '@angular/core';
|
|
5
|
+
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';
|
|
6
|
+
|
|
7
|
+
declare enum Currency {
|
|
8
|
+
USD = "USD",
|
|
9
|
+
AED = "AED",
|
|
10
|
+
AFN = "AFN",
|
|
11
|
+
ALL = "ALL",
|
|
12
|
+
AMD = "AMD",
|
|
13
|
+
ANG = "ANG",
|
|
14
|
+
AOA = "AOA",
|
|
15
|
+
ARS = "ARS",
|
|
16
|
+
AUD = "AUD",
|
|
17
|
+
AWG = "AWG",
|
|
18
|
+
AZN = "AZN",
|
|
19
|
+
BAM = "BAM",
|
|
20
|
+
BBD = "BBD",
|
|
21
|
+
BDT = "BDT",
|
|
22
|
+
BGN = "BGN",
|
|
23
|
+
BHD = "BHD",
|
|
24
|
+
BIF = "BIF",
|
|
25
|
+
BMD = "BMD",
|
|
26
|
+
BND = "BND",
|
|
27
|
+
BOB = "BOB",
|
|
28
|
+
BRL = "BRL",
|
|
29
|
+
BSD = "BSD",
|
|
30
|
+
BTN = "BTN",
|
|
31
|
+
BWP = "BWP",
|
|
32
|
+
BYN = "BYN",
|
|
33
|
+
BZD = "BZD",
|
|
34
|
+
CAD = "CAD",
|
|
35
|
+
CHF = "CHF",
|
|
36
|
+
CLF = "CLF",
|
|
37
|
+
CLP = "CLP",
|
|
38
|
+
CNY = "CNY",
|
|
39
|
+
COP = "COP",
|
|
40
|
+
CRC = "CRC",
|
|
41
|
+
CUP = "CUP",
|
|
42
|
+
CVE = "CVE",
|
|
43
|
+
CZK = "CZK",
|
|
44
|
+
DJF = "DJF",
|
|
45
|
+
DKK = "DKK",
|
|
46
|
+
DOP = "DOP",
|
|
47
|
+
DZD = "DZD",
|
|
48
|
+
EGP = "EGP",
|
|
49
|
+
ETB = "ETB",
|
|
50
|
+
EUR = "EUR",
|
|
51
|
+
FJD = "FJD",
|
|
52
|
+
GBP = "GBP",
|
|
53
|
+
GEL = "GEL",
|
|
54
|
+
GHS = "GHS",
|
|
55
|
+
GMD = "GMD",
|
|
56
|
+
GNF = "GNF",
|
|
57
|
+
GTQ = "GTQ",
|
|
58
|
+
GYD = "GYD",
|
|
59
|
+
HKD = "HKD",
|
|
60
|
+
HNL = "HNL",
|
|
61
|
+
HTG = "HTG",
|
|
62
|
+
HUF = "HUF",
|
|
63
|
+
IDR = "IDR",
|
|
64
|
+
ILS = "ILS",
|
|
65
|
+
INR = "INR",
|
|
66
|
+
IQD = "IQD",
|
|
67
|
+
IRR = "IRR",
|
|
68
|
+
ISK = "ISK",
|
|
69
|
+
JMD = "JMD",
|
|
70
|
+
JOD = "JOD",
|
|
71
|
+
JPY = "JPY",
|
|
72
|
+
KES = "KES",
|
|
73
|
+
KGS = "KGS",
|
|
74
|
+
KHR = "KHR",
|
|
75
|
+
KMF = "KMF",
|
|
76
|
+
KRW = "KRW",
|
|
77
|
+
KWD = "KWD",
|
|
78
|
+
KYD = "KYD",
|
|
79
|
+
KZT = "KZT",
|
|
80
|
+
LAK = "LAK",
|
|
81
|
+
LBP = "LBP",
|
|
82
|
+
LKR = "LKR",
|
|
83
|
+
LRD = "LRD",
|
|
84
|
+
LSL = "LSL",
|
|
85
|
+
LYD = "LYD",
|
|
86
|
+
MAD = "MAD",
|
|
87
|
+
MDL = "MDL",
|
|
88
|
+
MGA = "MGA",
|
|
89
|
+
MKD = "MKD",
|
|
90
|
+
MMK = "MMK",
|
|
91
|
+
MNT = "MNT",
|
|
92
|
+
MOP = "MOP",
|
|
93
|
+
MRU = "MRU",
|
|
94
|
+
MUR = "MUR",
|
|
95
|
+
MWK = "MWK",
|
|
96
|
+
MVR = "MVR",
|
|
97
|
+
MXN = "MXN",
|
|
98
|
+
MYR = "MYR",
|
|
99
|
+
MZN = "MZN",
|
|
100
|
+
NAD = "NAD",
|
|
101
|
+
NGN = "NGN",
|
|
102
|
+
NIO = "NIO",
|
|
103
|
+
NOK = "NOK",
|
|
104
|
+
NPR = "NPR",
|
|
105
|
+
NZD = "NZD",
|
|
106
|
+
OMR = "OMR",
|
|
107
|
+
PAB = "PAB",
|
|
108
|
+
PEN = "PEN",
|
|
109
|
+
PGK = "PGK",
|
|
110
|
+
PHP = "PHP",
|
|
111
|
+
PKR = "PKR",
|
|
112
|
+
PLN = "PLN",
|
|
113
|
+
PYG = "PYG",
|
|
114
|
+
QAR = "QAR",
|
|
115
|
+
RON = "RON",
|
|
116
|
+
RSD = "RSD",
|
|
117
|
+
RWF = "RWF",
|
|
118
|
+
SAR = "SAR",
|
|
119
|
+
SCR = "SCR",
|
|
120
|
+
SDG = "SDG",
|
|
121
|
+
SEK = "SEK",
|
|
122
|
+
SGD = "SGD",
|
|
123
|
+
SLE = "SLE",
|
|
124
|
+
SLL = "SLL",
|
|
125
|
+
SOS = "SOS",
|
|
126
|
+
SRD = "SRD",
|
|
127
|
+
STN = "STN",
|
|
128
|
+
SVC = "SVC",
|
|
129
|
+
SYP = "SYP",
|
|
130
|
+
SZL = "SZL",
|
|
131
|
+
THB = "THB",
|
|
132
|
+
TJS = "TJS",
|
|
133
|
+
TMT = "TMT",
|
|
134
|
+
TND = "TND",
|
|
135
|
+
TOP = "TOP",
|
|
136
|
+
TRY = "TRY",
|
|
137
|
+
TTD = "TTD",
|
|
138
|
+
TWD = "TWD",
|
|
139
|
+
TZS = "TZS",
|
|
140
|
+
UAH = "UAH",
|
|
141
|
+
UGX = "UGX",
|
|
142
|
+
UYU = "UYU",
|
|
143
|
+
UZS = "UZS",
|
|
144
|
+
VND = "VND",
|
|
145
|
+
VUV = "VUV",
|
|
146
|
+
WST = "WST",
|
|
147
|
+
XAF = "XAF",
|
|
148
|
+
XCD = "XCD",
|
|
149
|
+
XOF = "XOF",
|
|
150
|
+
XPF = "XPF",
|
|
151
|
+
YER = "YER",
|
|
152
|
+
ZAR = "ZAR",
|
|
153
|
+
ZMW = "ZMW",
|
|
154
|
+
ZWL = "ZWL",
|
|
155
|
+
CDF = "CDF",
|
|
156
|
+
ERN = "ERN",
|
|
157
|
+
FKP = "FKP",
|
|
158
|
+
KPW = "KPW",
|
|
159
|
+
RUB = "RUB",
|
|
160
|
+
SBD = "SBD",
|
|
161
|
+
SHP = "SHP",
|
|
162
|
+
SSP = "SSP",
|
|
163
|
+
VES = "VES"
|
|
164
|
+
}
|
|
165
|
+
declare const CurrencyToISO4217: Record<Currency, string>;
|
|
166
|
+
type WithdrawCurrency = Currency.USD | Currency.EUR | Currency.GBP | Currency.BRL | Currency.CAD;
|
|
167
|
+
declare const WithdrawCurrencies: {
|
|
168
|
+
readonly USD: Currency.USD;
|
|
169
|
+
readonly EUR: Currency.EUR;
|
|
170
|
+
readonly GBP: Currency.GBP;
|
|
171
|
+
readonly BRL: Currency.BRL;
|
|
172
|
+
readonly CAD: Currency.CAD;
|
|
173
|
+
};
|
|
174
|
+
declare function isWithdrawCurrency(currency: Currency): currency is WithdrawCurrency;
|
|
175
|
+
type BankingCurrency = Currency.USD | Currency.EUR | Currency.GBP | Currency.CAD | Currency.BRL;
|
|
176
|
+
declare const BankingCurrencies: {
|
|
177
|
+
readonly USD: Currency.USD;
|
|
178
|
+
readonly EUR: Currency.EUR;
|
|
179
|
+
readonly GBP: Currency.GBP;
|
|
180
|
+
readonly CAD: Currency.CAD;
|
|
181
|
+
readonly BRL: Currency.BRL;
|
|
182
|
+
};
|
|
183
|
+
declare function isBankingCurrency(currency: Currency): currency is BankingCurrency;
|
|
184
|
+
declare function getCurrencyDecimals(currency: Currency): number;
|
|
185
|
+
interface Cents {
|
|
186
|
+
/**
|
|
187
|
+
* @isInt Cents must be an integer
|
|
188
|
+
* @minimum 0 Minimum Cents is 0
|
|
189
|
+
*/
|
|
190
|
+
cents: number;
|
|
191
|
+
}
|
|
192
|
+
interface CurrencyCents extends Cents {
|
|
193
|
+
currency: Currency;
|
|
194
|
+
}
|
|
195
|
+
interface TypedCurrencyCents<T extends Currency> extends Cents {
|
|
196
|
+
currency: T;
|
|
197
|
+
}
|
|
198
|
+
declare function isTypedCurrencyCents<T extends Currency>(cents: CurrencyCents, currency: T): cents is TypedCurrencyCents<T>;
|
|
199
|
+
interface TokenSubtotal {
|
|
200
|
+
/**
|
|
201
|
+
* The tokens address
|
|
202
|
+
*
|
|
203
|
+
* Solana - Token Mint Address
|
|
204
|
+
* Evm - Token Contract Address
|
|
205
|
+
*/
|
|
206
|
+
address: string;
|
|
207
|
+
/**
|
|
208
|
+
* Number of tokens
|
|
209
|
+
*/
|
|
210
|
+
amount: number | string;
|
|
211
|
+
/**
|
|
212
|
+
* Number of decimals for the token
|
|
213
|
+
*/
|
|
214
|
+
decimals?: number;
|
|
215
|
+
}
|
|
216
|
+
type Subtotal = CurrencyCents | Cents | TokenSubtotal;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Address structure
|
|
220
|
+
*/
|
|
221
|
+
interface CartItemAddress {
|
|
222
|
+
/**
|
|
223
|
+
* Country code specified as a two letter code according to ISO 3166 Alpha-2
|
|
224
|
+
* Between 2 and 2 characters
|
|
225
|
+
* Example: US
|
|
226
|
+
* Pattern: ^[A-Z]{2}$
|
|
227
|
+
*/
|
|
228
|
+
country?: string;
|
|
229
|
+
/**
|
|
230
|
+
* The state or province
|
|
231
|
+
* Example: PA
|
|
232
|
+
*/
|
|
233
|
+
state?: string;
|
|
234
|
+
/**
|
|
235
|
+
* The city or locality
|
|
236
|
+
* Example: Pittsburgh
|
|
237
|
+
*/
|
|
238
|
+
city?: string;
|
|
239
|
+
/**
|
|
240
|
+
* The street name
|
|
241
|
+
* Example: Baker St
|
|
242
|
+
*/
|
|
243
|
+
street?: string;
|
|
244
|
+
/**
|
|
245
|
+
* The address postal code
|
|
246
|
+
*/
|
|
247
|
+
postalCode?: string;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Phone information structure
|
|
251
|
+
*/
|
|
252
|
+
interface PhoneInfo {
|
|
253
|
+
/**
|
|
254
|
+
* The mobile carrier
|
|
255
|
+
* Example: T-Mobile
|
|
256
|
+
*/
|
|
257
|
+
carrier?: string;
|
|
258
|
+
/**
|
|
259
|
+
* The country code (leading `+` is optional)
|
|
260
|
+
* Example: 42
|
|
261
|
+
* Pattern: ^\+?[0-9]+$
|
|
262
|
+
*/
|
|
263
|
+
countryCode: string;
|
|
264
|
+
/**
|
|
265
|
+
* The phone number without the country code or hyphens
|
|
266
|
+
* Example: 2025550169
|
|
267
|
+
* Pattern: ^[0-9]+$
|
|
268
|
+
*/
|
|
269
|
+
phone: string;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Common currency amount structure
|
|
273
|
+
*/
|
|
274
|
+
interface CurrencyAmount {
|
|
275
|
+
/**
|
|
276
|
+
* The amount in the currency, which is specified in the `currency` property
|
|
277
|
+
* Example: 90
|
|
278
|
+
*/
|
|
279
|
+
valueInCurrency: number;
|
|
280
|
+
/**
|
|
281
|
+
* Currency specified as a three letter code according to ISO 4217
|
|
282
|
+
* Example: USD
|
|
283
|
+
*/
|
|
284
|
+
currency: string;
|
|
285
|
+
}
|
|
286
|
+
interface RecipientInfo {
|
|
287
|
+
/**
|
|
288
|
+
* The ID of the account that will receive the purchased goods
|
|
289
|
+
*/
|
|
290
|
+
accountId?: string;
|
|
291
|
+
/**
|
|
292
|
+
* Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY
|
|
293
|
+
* Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
|
|
294
|
+
*/
|
|
295
|
+
dob?: string;
|
|
296
|
+
/**
|
|
297
|
+
* Email
|
|
298
|
+
* Example: lois.lane@dailyplanet.com
|
|
299
|
+
*/
|
|
300
|
+
email?: string | null;
|
|
301
|
+
/**
|
|
302
|
+
* First name
|
|
303
|
+
* Example: Lois
|
|
304
|
+
*/
|
|
305
|
+
firstName?: string;
|
|
306
|
+
/**
|
|
307
|
+
* Gender
|
|
308
|
+
* Example: female
|
|
309
|
+
*/
|
|
310
|
+
gender?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Last name
|
|
313
|
+
* Example: Lois
|
|
314
|
+
*/
|
|
315
|
+
lastName?: string;
|
|
316
|
+
/**
|
|
317
|
+
* The message that the recipient will receive
|
|
318
|
+
*/
|
|
319
|
+
message?: string;
|
|
320
|
+
/**
|
|
321
|
+
* A phone number descriptor
|
|
322
|
+
*/
|
|
323
|
+
phoneInfo?: PhoneInfo;
|
|
324
|
+
/**
|
|
325
|
+
* Shipping address
|
|
326
|
+
*/
|
|
327
|
+
shippingAddress?: CartItemAddress;
|
|
328
|
+
/**
|
|
329
|
+
* The crypto wallet that will receive the funds
|
|
330
|
+
*/
|
|
331
|
+
wallet?: {
|
|
332
|
+
/**
|
|
333
|
+
* The crypto wallet address that will receive the funds
|
|
334
|
+
*/
|
|
335
|
+
address: string;
|
|
336
|
+
/**
|
|
337
|
+
* The blockchain on which the transaction was made
|
|
338
|
+
* Example: BTC
|
|
339
|
+
* Pattern: ^[A-Z0-9-]+$
|
|
340
|
+
*/
|
|
341
|
+
blockchain: string;
|
|
342
|
+
/**
|
|
343
|
+
* The type of the wallet
|
|
344
|
+
* Allowed values: custodial, nonCustodial, unknown
|
|
345
|
+
* Example: custodial
|
|
346
|
+
*/
|
|
347
|
+
custodialType: 'custodial' | 'nonCustodial' | 'unknown';
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
interface SellerInfo {
|
|
351
|
+
/**
|
|
352
|
+
* Id of the seller
|
|
353
|
+
*/
|
|
354
|
+
id?: string;
|
|
355
|
+
/**
|
|
356
|
+
* Email
|
|
357
|
+
* Example: lois.lane@dailyplanet.com
|
|
358
|
+
*/
|
|
359
|
+
email?: string | null;
|
|
360
|
+
/**
|
|
361
|
+
* First name
|
|
362
|
+
* Example: Lois
|
|
363
|
+
*/
|
|
364
|
+
firstName?: string;
|
|
365
|
+
/**
|
|
366
|
+
* Last name
|
|
367
|
+
* Example: Lois
|
|
368
|
+
*/
|
|
369
|
+
lastName?: string;
|
|
370
|
+
/**
|
|
371
|
+
* Date of birth, formatted as YYYY-MM-DD. If only the year is known, use YYYY
|
|
372
|
+
* Pattern: ^\d{4}(-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01]))?$
|
|
373
|
+
*/
|
|
374
|
+
dob?: string;
|
|
375
|
+
/**
|
|
376
|
+
* Additional raw data about the seller
|
|
377
|
+
* Example: {"FeedbackCount":100,"FeedbackScore":99.5,"FirstSeenTimestamp":1731841819965,"LatestWithdrawal":3263,"OrderCount":101,"DisputeCount":2}
|
|
378
|
+
*/
|
|
379
|
+
rawSellerData?: Record<string, any>;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
interface GiftCardCartItem {
|
|
383
|
+
itemClass: 'giftCard';
|
|
384
|
+
productType: 'giftCard';
|
|
385
|
+
/**
|
|
386
|
+
* The cart items’s unique ID
|
|
387
|
+
*/
|
|
388
|
+
id: string;
|
|
389
|
+
/**
|
|
390
|
+
* The number of units sold
|
|
391
|
+
*/
|
|
392
|
+
quantity: number;
|
|
393
|
+
/**
|
|
394
|
+
* How the product was fulfilled.
|
|
395
|
+
*/
|
|
396
|
+
itemFulfillment: 'digital' | 'physical';
|
|
397
|
+
sellingPrice: {
|
|
398
|
+
valueInCurrency: number;
|
|
399
|
+
currency: string;
|
|
400
|
+
};
|
|
401
|
+
/**
|
|
402
|
+
* Any additional product data which can be provided, e.g. description, link to image, etc
|
|
403
|
+
*/
|
|
404
|
+
rawProductData?: Record<string, any>;
|
|
405
|
+
/**
|
|
406
|
+
* The stock-keeping unit (SKU) number
|
|
407
|
+
*/
|
|
408
|
+
sku?: string;
|
|
409
|
+
/**
|
|
410
|
+
* The name of the brand
|
|
411
|
+
*/
|
|
412
|
+
brand?: string;
|
|
413
|
+
/**
|
|
414
|
+
* The category in the site/app in which the item was classified (e.g., fashion)
|
|
415
|
+
*/
|
|
416
|
+
categories?: string[];
|
|
417
|
+
listPrice?: {
|
|
418
|
+
valueInCurrency: number;
|
|
419
|
+
currency: string;
|
|
420
|
+
};
|
|
421
|
+
isGift?: boolean;
|
|
422
|
+
/**
|
|
423
|
+
* The user's personal info
|
|
424
|
+
*/
|
|
425
|
+
recipientInfo?: RecipientInfo;
|
|
426
|
+
/**
|
|
427
|
+
* The item's selling price
|
|
428
|
+
*/
|
|
429
|
+
seller?: SellerInfo;
|
|
430
|
+
/**
|
|
431
|
+
* The expected delay in delivery, in hours
|
|
432
|
+
*/
|
|
433
|
+
expectedDeliveryDelay?: number;
|
|
434
|
+
/**
|
|
435
|
+
* Represents whether the item amount is taken from a preset list, e.g. 25, 50, 100, etc. or whether it was a different amount, e.g. 27
|
|
436
|
+
*/
|
|
437
|
+
isPresetAmount?: boolean;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
type AnyObject = {
|
|
441
|
+
[key: string]: any;
|
|
442
|
+
} & {
|
|
443
|
+
example?: string;
|
|
444
|
+
};
|
|
445
|
+
|
|
446
|
+
type TransactionHistoryItem = {
|
|
447
|
+
txHash: string;
|
|
448
|
+
blockNumber: number;
|
|
449
|
+
txTime: string;
|
|
450
|
+
assetID: string;
|
|
451
|
+
registryContract: string;
|
|
452
|
+
from: string;
|
|
453
|
+
to: string;
|
|
454
|
+
paymentToken: string;
|
|
455
|
+
paymentAmount: string;
|
|
456
|
+
chain: string;
|
|
457
|
+
txType: string;
|
|
458
|
+
};
|
|
459
|
+
type productType = 'inGameProduct' | 'gameOfSkill' | 'dataStorage' | 'computingResources' | 'sportsTicket' | 'eSportsTicket' | 'musicTicket' | 'conferenceTicket' | 'virtualSportsTicket' | 'virtualESportsTicket' | 'virtualMusicTicket' | 'virtualConferenceTicket' | 'alcohol' | 'DLC' | 'subscription' | 'fundACause' | 'realEstate' | 'computingContract' | 'digitalArt' | 'topUp' | 'ownershipContract' | 'inGameCurrency' | 'digitalCollectibles' | 'digitalCollectiblesMarketplace' | 'digitalGiftingMarketplace' | 'sweepstakes' | 'virtualSportsEvents' | 'contractInvoicing' | 'onlineCasino' | 'cryptoOnramp' | 'gaming' | 'travelDocuments' | 'musicStreaming' | 'digitalContent' | 'eBooks' | 'digitalSubscriptionContent';
|
|
460
|
+
/**
|
|
461
|
+
* An nft cart item
|
|
462
|
+
*/
|
|
463
|
+
type nftCartItem = {
|
|
464
|
+
/**
|
|
465
|
+
* Denotes the cart item class. The item schema is chosen based on this value
|
|
466
|
+
*/
|
|
467
|
+
itemClass: 'nft';
|
|
468
|
+
/**
|
|
469
|
+
* The name of the related product
|
|
470
|
+
*
|
|
471
|
+
* @minLength 1
|
|
472
|
+
*/
|
|
473
|
+
productName: string;
|
|
474
|
+
/**
|
|
475
|
+
* The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp
|
|
476
|
+
*/
|
|
477
|
+
productType: productType;
|
|
478
|
+
/**
|
|
479
|
+
* The item's list price
|
|
480
|
+
*/
|
|
481
|
+
listPrice?: {
|
|
482
|
+
/**
|
|
483
|
+
* The amount in the currency, which is specified in the `currency` property
|
|
484
|
+
*/
|
|
485
|
+
valueInCurrency?: number;
|
|
486
|
+
/**
|
|
487
|
+
* Currency specified as a three letter code according to ISO 4217
|
|
488
|
+
*/
|
|
489
|
+
currency?: string;
|
|
490
|
+
};
|
|
491
|
+
/**
|
|
492
|
+
* The item's list price
|
|
493
|
+
*/
|
|
494
|
+
sellingPrice: {
|
|
495
|
+
/**
|
|
496
|
+
* The amount in the currency, which is specified in the `currency` property
|
|
497
|
+
*/
|
|
498
|
+
valueInCurrency?: number;
|
|
499
|
+
/**
|
|
500
|
+
* Currency specified as a three-letter code according to ISO 4217
|
|
501
|
+
*/
|
|
502
|
+
currency?: string;
|
|
503
|
+
};
|
|
504
|
+
/**
|
|
505
|
+
* The number of units sold
|
|
506
|
+
*/
|
|
507
|
+
quantity: number;
|
|
508
|
+
/**
|
|
509
|
+
* Any additional data that the store can provide on the product, e.g. description, link to image, etc.
|
|
510
|
+
*/
|
|
511
|
+
rawProductData?: AnyObject;
|
|
512
|
+
seller?: SellerInfo;
|
|
513
|
+
transactionHistory?: TransactionHistoryItem[];
|
|
514
|
+
};
|
|
515
|
+
declare namespace nftCartItem {
|
|
516
|
+
/**
|
|
517
|
+
* Denotes the cart item class. The item schema is chosen based on this value
|
|
518
|
+
*/
|
|
519
|
+
enum itemClass {
|
|
520
|
+
NFT = "nft"
|
|
521
|
+
}
|
|
522
|
+
/**
|
|
523
|
+
* The product type. Possible values include: inGameProduct, gameOfSkill, dataStorage, computingResources, sportsTicket, eSportsTicket, musicTicket, conferenceTicket, virtualSportsTicket, virtualESportsTicket, virtualMusicTicket, virtualConferenceTicket, alcohol, DLC, subscription, fundACause, realEstate, computingContract, digitalArt, topUp
|
|
524
|
+
*/
|
|
525
|
+
enum productType {
|
|
526
|
+
IN_GAME_PRODUCT = "inGameProduct",
|
|
527
|
+
GAME_OF_SKILL = "gameOfSkill",
|
|
528
|
+
DATA_STORAGE = "dataStorage",
|
|
529
|
+
COMPUTING_RESOURCES = "computingResources",
|
|
530
|
+
SPORTS_TICKET = "sportsTicket",
|
|
531
|
+
E_SPORTS_TICKET = "eSportsTicket",
|
|
532
|
+
MUSIC_TICKET = "musicTicket",
|
|
533
|
+
CONFERENCE_TICKET = "conferenceTicket",
|
|
534
|
+
VIRTUAL_SPORTS_TICKET = "virtualSportsTicket",
|
|
535
|
+
VIRTUAL_ESPORTS_TICKET = "virtualESportsTicket",
|
|
536
|
+
VIRTUAL_MUSIC_TICKET = "virtualMusicTicket",
|
|
537
|
+
VIRTUAL_CONFERENCE_TICKET = "virtualConferenceTicket",
|
|
538
|
+
ALCOHOL = "alcohol",
|
|
539
|
+
DLC = "DLC",
|
|
540
|
+
SUBSCRIPTION = "subscription",
|
|
541
|
+
FUND_ACAUSE = "fundACause",
|
|
542
|
+
REAL_ESTATE = "realEstate",
|
|
543
|
+
COMPUTING_CONTRACT = "computingContract",
|
|
544
|
+
DIGITAL_ART = "digitalArt",
|
|
545
|
+
TOP_UP = "topUp",
|
|
546
|
+
OWNERSHIP_CONTRACT = "ownershipContract",
|
|
547
|
+
IN_GAME_CURRENCY = "inGameCurrency",
|
|
548
|
+
MONEY_TOP_UP_CART_ITEM = "moneyTopUpCartItem"
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
/**
|
|
553
|
+
* Represents a crypto item in a shopping cart
|
|
554
|
+
*/
|
|
555
|
+
interface CryptoCartItem {
|
|
556
|
+
/**
|
|
557
|
+
* Denotes the cart item class. The item schema is chosen based on this value.
|
|
558
|
+
* Allowed value: crypto
|
|
559
|
+
* Example: crypto
|
|
560
|
+
*/
|
|
561
|
+
itemClass: 'crypto';
|
|
562
|
+
/**
|
|
563
|
+
* The cart items's unique ID
|
|
564
|
+
* Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
|
|
565
|
+
*/
|
|
566
|
+
id?: string;
|
|
567
|
+
/**
|
|
568
|
+
* Any additional product data which can be provided, e.g. description, link to image, etc
|
|
569
|
+
* Example: {"any":"data","description":"This is the product description"}
|
|
570
|
+
*/
|
|
571
|
+
rawProductData?: AnyObject;
|
|
572
|
+
/**
|
|
573
|
+
* The amount in the crypto currency which is specified in the `cryptoCurrency` property
|
|
574
|
+
* Example: 1.04112
|
|
575
|
+
* Pattern: ^[0-9]+(\.[0-9]+)?$
|
|
576
|
+
*/
|
|
577
|
+
units: string;
|
|
578
|
+
/**
|
|
579
|
+
* The crypto-currency symbol (uppercase)
|
|
580
|
+
* Example: BTC
|
|
581
|
+
* Pattern: ^[A-Z0-9-]+$
|
|
582
|
+
*/
|
|
583
|
+
cryptoCurrency: string;
|
|
584
|
+
/**
|
|
585
|
+
* The price per 1 unit
|
|
586
|
+
*/
|
|
587
|
+
unitPrice: {
|
|
588
|
+
/**
|
|
589
|
+
* The amount in the currency, which is specified in the `currency` property
|
|
590
|
+
* Example: 90
|
|
591
|
+
*/
|
|
592
|
+
valueInCurrency: number;
|
|
593
|
+
/**
|
|
594
|
+
* Currency specified as a three letter code according to ISO 4217
|
|
595
|
+
* Example: USD
|
|
596
|
+
*/
|
|
597
|
+
currency: string;
|
|
598
|
+
};
|
|
599
|
+
/**
|
|
600
|
+
* The expected delay in delivery, in hours
|
|
601
|
+
* Min value: 0
|
|
602
|
+
*/
|
|
603
|
+
expectedDeliveryDelay?: number;
|
|
604
|
+
/**
|
|
605
|
+
* The user's personal info
|
|
606
|
+
*/
|
|
607
|
+
recipientInfo: RecipientInfo;
|
|
608
|
+
/**
|
|
609
|
+
* Seller info
|
|
610
|
+
*/
|
|
611
|
+
seller?: SellerInfo;
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
/**
|
|
615
|
+
* Represents a money top-up item in a shopping cart
|
|
616
|
+
*/
|
|
617
|
+
interface MoneyTopUpCartItem {
|
|
618
|
+
/**
|
|
619
|
+
* Denotes the cart item class. The item schema is chosen based on this value.
|
|
620
|
+
* Allowed value: moneyTopUp
|
|
621
|
+
* Example: moneyTopUp
|
|
622
|
+
*/
|
|
623
|
+
itemClass: 'moneyTopUp';
|
|
624
|
+
/**
|
|
625
|
+
* The cart items's unique ID
|
|
626
|
+
* Example: 5de33332-546a-4171-8988-2a43d2bfe9c6
|
|
627
|
+
*/
|
|
628
|
+
id?: string;
|
|
629
|
+
/**
|
|
630
|
+
* Any additional product data which can be provided, e.g. description, link to image, etc
|
|
631
|
+
* Example: {"any":"data","description":"This is the product description"}
|
|
632
|
+
*/
|
|
633
|
+
rawProductData?: Record<string, any>;
|
|
634
|
+
/**
|
|
635
|
+
* The item's selling price
|
|
636
|
+
*/
|
|
637
|
+
sellingPrice: CurrencyAmount;
|
|
638
|
+
/**
|
|
639
|
+
* The user's personal info
|
|
640
|
+
*/
|
|
641
|
+
recipientInfo?: RecipientInfo;
|
|
642
|
+
/**
|
|
643
|
+
* The item's topUp amount
|
|
644
|
+
*/
|
|
645
|
+
topUpAmount: CurrencyAmount;
|
|
646
|
+
/**
|
|
647
|
+
* Quantity
|
|
648
|
+
* Example: 2
|
|
649
|
+
*/
|
|
650
|
+
quantity: number;
|
|
651
|
+
/**
|
|
652
|
+
* Represents whether the item amount is taken from a preset list, e.g. 25, 50, 100, etc.
|
|
653
|
+
* or whether it was a different amount, e.g. 27
|
|
654
|
+
*/
|
|
655
|
+
isPresetAmount: boolean;
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
declare enum WithdrawCategory {
|
|
659
|
+
USER = "user",
|
|
660
|
+
BUSINESS = "business"
|
|
661
|
+
}
|
|
662
|
+
declare enum WithdrawSpeed {
|
|
663
|
+
ASAP = "asap",
|
|
664
|
+
SAME_DAY = "same_day",
|
|
665
|
+
STANDARD = "standard",
|
|
666
|
+
CARD = "card",
|
|
667
|
+
IBAN = "iban",
|
|
668
|
+
PIX = "pix",
|
|
669
|
+
EFT = "eft",
|
|
670
|
+
VENMO = "venmo",
|
|
671
|
+
PAYPAL = "paypal",
|
|
672
|
+
WIRE = "wire",
|
|
673
|
+
INTERAC = "interac"
|
|
674
|
+
}
|
|
675
|
+
declare enum SettlementType {
|
|
676
|
+
Credits = "Credits",
|
|
677
|
+
USDC = "USDC",
|
|
678
|
+
Bank = "Bank"
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* Configuration for zero authorization flow - controls saved payment method visibility.
|
|
682
|
+
*/
|
|
683
|
+
interface ZeroAuthSavedPaymentMethods {
|
|
684
|
+
disableSavedPaymentMethods: boolean;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Configuration for zero authorization flow - verify existing card mode.
|
|
688
|
+
* Shows the "Verify Card" flow for a specific saved card.
|
|
689
|
+
* The card token will be validated to ensure it belongs to the current user's wallet.
|
|
690
|
+
* If the card doesn't belong to the user, falls back to "Add New Card" view.
|
|
691
|
+
*/
|
|
692
|
+
interface ZeroAuthVerifyCard {
|
|
693
|
+
cardToken: string;
|
|
694
|
+
}
|
|
695
|
+
/**
|
|
696
|
+
* Configuration for zero authorization flow.
|
|
697
|
+
* The presence of this object indicates the checkout is in zero auth mode.
|
|
698
|
+
*
|
|
699
|
+
* Two mutually exclusive modes:
|
|
700
|
+
* - Saved payment methods: `{ disableSavedPaymentMethods: boolean }` - show or hide saved methods
|
|
701
|
+
* - Verify card: `{ cardToken: "token" }` - verify a specific saved card
|
|
702
|
+
*/
|
|
703
|
+
type ZeroAuthorizationConfig = ZeroAuthSavedPaymentMethods | ZeroAuthVerifyCard;
|
|
704
|
+
declare function isZeroAuthVerifyCard(config: ZeroAuthorizationConfig): config is ZeroAuthVerifyCard;
|
|
705
|
+
declare function isZeroAuthSavedPaymentMethods(config: ZeroAuthorizationConfig): config is ZeroAuthSavedPaymentMethods;
|
|
706
|
+
declare enum MerchantStyle {
|
|
707
|
+
Rounded = "rounded",
|
|
708
|
+
Sharp = "sharp",
|
|
709
|
+
Pill = "pill"
|
|
710
|
+
}
|
|
711
|
+
type MerchantTheme = {
|
|
712
|
+
primary?: string;
|
|
713
|
+
background?: string;
|
|
714
|
+
backgroundAccent?: string;
|
|
715
|
+
backgroundAccent2?: string;
|
|
716
|
+
textColor?: string;
|
|
717
|
+
textColorAccent?: string;
|
|
718
|
+
textColorAction?: string;
|
|
719
|
+
ctaColor?: string;
|
|
720
|
+
font?: string;
|
|
721
|
+
style?: MerchantStyle;
|
|
722
|
+
};
|
|
723
|
+
interface BaseCustomerInfo {
|
|
724
|
+
verificationId?: string;
|
|
725
|
+
displayName?: string;
|
|
726
|
+
address?: string;
|
|
727
|
+
city?: string;
|
|
728
|
+
state?: string;
|
|
729
|
+
zip?: string;
|
|
730
|
+
country?: string;
|
|
731
|
+
ip?: string;
|
|
732
|
+
lat?: string;
|
|
733
|
+
lng?: string;
|
|
734
|
+
/**
|
|
735
|
+
* Date of birth in YYYY-MM-DD format
|
|
736
|
+
*/
|
|
737
|
+
dob?: string;
|
|
738
|
+
email?: string;
|
|
739
|
+
}
|
|
740
|
+
interface NameCustomerInfo extends BaseCustomerInfo {
|
|
741
|
+
/**
|
|
742
|
+
* @hidden
|
|
743
|
+
*/
|
|
744
|
+
name?: string;
|
|
745
|
+
}
|
|
746
|
+
interface SplitNameCustomerInfo extends BaseCustomerInfo {
|
|
747
|
+
/**
|
|
748
|
+
* @minLength 1
|
|
749
|
+
*/
|
|
750
|
+
firstName: string;
|
|
751
|
+
/**
|
|
752
|
+
* @minLength 1
|
|
753
|
+
*/
|
|
754
|
+
lastName: string;
|
|
755
|
+
}
|
|
756
|
+
type CustomerInfo = SplitNameCustomerInfo | NameCustomerInfo;
|
|
757
|
+
/** Coinflow Types **/
|
|
758
|
+
type CoinflowBlockchain = 'solana' | 'eth' | 'polygon' | 'base' | 'arbitrum' | 'monad' | 'user';
|
|
759
|
+
type CoinflowEnvs = 'prod' | 'staging' | 'staging-live' | 'sandbox' | 'local';
|
|
760
|
+
interface CoinflowTypes {
|
|
761
|
+
merchantId: string;
|
|
762
|
+
env?: CoinflowEnvs;
|
|
763
|
+
loaderBackground?: string;
|
|
764
|
+
blockchain?: CoinflowBlockchain | undefined;
|
|
765
|
+
handleHeightChange?: (height: string) => void;
|
|
766
|
+
theme?: MerchantTheme;
|
|
767
|
+
}
|
|
768
|
+
type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
769
|
+
type MergeWithOptionalDiff<A, B> = Pick<A, Extract<keyof A, keyof B>> & Pick<B, Extract<keyof B, keyof A>> & Partial<Omit<A, keyof B>> & Partial<Omit<B, keyof A>>;
|
|
770
|
+
type OnSuccessMethod = (args: {
|
|
771
|
+
paymentId: string;
|
|
772
|
+
hash?: string | undefined;
|
|
773
|
+
} | string) => void | Promise<void>;
|
|
774
|
+
type AuthDeclinedWalletCallInfo = {
|
|
775
|
+
title: string;
|
|
776
|
+
code: string;
|
|
777
|
+
action: string;
|
|
778
|
+
message: string;
|
|
779
|
+
total: string;
|
|
780
|
+
};
|
|
781
|
+
type OnAuthDeclinedMethod = (args: AuthDeclinedWalletCallInfo) => void | Promise<void>;
|
|
782
|
+
/** Wallets **/
|
|
783
|
+
interface SolanaWallet {
|
|
784
|
+
publicKey: PublicKey | null;
|
|
785
|
+
signTransaction?: <T extends Transaction | VersionedTransaction>(transaction: T) => Promise<T>;
|
|
786
|
+
sendTransaction: <T extends Transaction | VersionedTransaction>(transaction: T) => Promise<string>;
|
|
787
|
+
signMessage?: (message: Uint8Array) => Promise<Uint8Array>;
|
|
788
|
+
}
|
|
789
|
+
type AccessList = Array<{
|
|
790
|
+
address: string;
|
|
791
|
+
storageKeys: Array<string>;
|
|
792
|
+
}>;
|
|
793
|
+
type AccessListish = AccessList | Array<[string, Array<string>]> | Record<string, Array<string>>;
|
|
794
|
+
type EthWallet = {
|
|
795
|
+
address: string | null | undefined;
|
|
796
|
+
sendTransaction: (transaction: {
|
|
797
|
+
to: string;
|
|
798
|
+
from?: string;
|
|
799
|
+
nonce?: Bytes | bigint | string | number;
|
|
800
|
+
gasLimit?: Bytes | bigint | string | number;
|
|
801
|
+
gasPrice?: Bytes | bigint | string | number;
|
|
802
|
+
data?: BytesLike;
|
|
803
|
+
value?: Bytes | bigint | string | number;
|
|
804
|
+
chainId?: number;
|
|
805
|
+
type?: number;
|
|
806
|
+
accessList?: AccessListish;
|
|
807
|
+
maxPriorityFeePerGas?: Bytes | bigint | string | number;
|
|
808
|
+
maxFeePerGas?: Bytes | bigint | string | number;
|
|
809
|
+
customData?: Record<string, any>;
|
|
810
|
+
ccipReadEnabled?: boolean;
|
|
811
|
+
}) => Promise<{
|
|
812
|
+
hash: string;
|
|
813
|
+
}>;
|
|
814
|
+
signMessage: (message: string) => Promise<string>;
|
|
815
|
+
};
|
|
816
|
+
/** History **/
|
|
817
|
+
interface CoinflowSolanaHistoryProps extends CoinflowTypes {
|
|
818
|
+
wallet: SolanaWallet;
|
|
819
|
+
connection: Connection;
|
|
820
|
+
blockchain: 'solana';
|
|
821
|
+
}
|
|
822
|
+
interface CoinflowSessionKeyHistoryProps extends CoinflowTypes {
|
|
823
|
+
sessionKey: string;
|
|
824
|
+
blockchain?: undefined;
|
|
825
|
+
}
|
|
826
|
+
interface CoinflowEvmHistoryProps extends CoinflowTypes {
|
|
827
|
+
wallet: EthWallet;
|
|
828
|
+
blockchain: 'eth' | 'polygon' | 'base' | 'arbitrum' | 'monad';
|
|
829
|
+
}
|
|
830
|
+
interface CoinflowEthHistoryProps extends CoinflowEvmHistoryProps {
|
|
831
|
+
blockchain: 'eth';
|
|
832
|
+
}
|
|
833
|
+
interface CoinflowPolygonHistoryProps extends CoinflowEvmHistoryProps {
|
|
834
|
+
blockchain: 'polygon';
|
|
835
|
+
}
|
|
836
|
+
interface CoinflowBaseHistoryProps extends CoinflowEvmHistoryProps {
|
|
837
|
+
blockchain: 'base';
|
|
838
|
+
}
|
|
839
|
+
interface CoinflowArbitrumHistoryProps extends CoinflowEvmHistoryProps {
|
|
840
|
+
blockchain: 'arbitrum';
|
|
841
|
+
}
|
|
842
|
+
interface CoinflowMonadHistoryProps extends CoinflowEvmHistoryProps {
|
|
843
|
+
blockchain: 'monad';
|
|
844
|
+
}
|
|
845
|
+
type CoinflowHistoryProps = CoinflowSolanaHistoryProps | CoinflowPolygonHistoryProps | CoinflowEthHistoryProps | CoinflowBaseHistoryProps | CoinflowArbitrumHistoryProps | CoinflowMonadHistoryProps | CoinflowSessionKeyHistoryProps;
|
|
846
|
+
type Bytes = ArrayLike<number>;
|
|
847
|
+
type BytesLike = Bytes | string;
|
|
848
|
+
/** Purchase **/
|
|
849
|
+
type CartClassOmitted = CartItemClassOmitted[];
|
|
850
|
+
type ChargebackProtectionData = CartClassOmitted;
|
|
851
|
+
type CartItemClassOmitted = NftCartItemClassOmitted | Omit<GiftCardCartItem, 'listPrice'> | CryptoCartItem | MoneyTopUpCartItem;
|
|
852
|
+
type ChargebackProtectionItem = CartItemClassOmitted;
|
|
853
|
+
type NftCartItemClassOmitted = Omit<nftCartItem, 'sellingPrice' | 'itemClass'>;
|
|
854
|
+
type Cart = CartItem[];
|
|
855
|
+
type CartItem = Omit<nftCartItem, 'listPrice' | 'sellingPrice'> | Omit<GiftCardCartItem, 'listPrice'> | CryptoCartItem | MoneyTopUpCartItem;
|
|
856
|
+
declare enum ThreeDsChallengePreference {
|
|
857
|
+
NoPreference = "NoPreference",
|
|
858
|
+
Frictionless = "Frictionless",
|
|
859
|
+
Challenge = "Challenge"
|
|
860
|
+
}
|
|
861
|
+
declare enum PaymentMethods {
|
|
862
|
+
card = "card",
|
|
863
|
+
ach = "ach",
|
|
864
|
+
fasterPayments = "fasterPayments",
|
|
865
|
+
sepa = "sepa",
|
|
866
|
+
pix = "pix",
|
|
867
|
+
usdc = "usdc",
|
|
868
|
+
googlePay = "googlePay",
|
|
869
|
+
applePay = "applePay",
|
|
870
|
+
credits = "credits",
|
|
871
|
+
crypto = "crypto",
|
|
872
|
+
instantBankTransfer = "instantBankTransfer",
|
|
873
|
+
wire = "wire"
|
|
874
|
+
}
|
|
875
|
+
declare const paymentMethodLabels: Record<PaymentMethods, string>;
|
|
876
|
+
interface CoinflowCommonPurchaseProps extends CoinflowTypes {
|
|
877
|
+
subtotal?: Subtotal;
|
|
878
|
+
presentment?: Currency;
|
|
879
|
+
onSuccess?: OnSuccessMethod;
|
|
880
|
+
onAuthDeclined?: OnAuthDeclinedMethod;
|
|
881
|
+
webhookInfo?: {
|
|
882
|
+
[key: string]: any;
|
|
883
|
+
};
|
|
884
|
+
email?: string;
|
|
885
|
+
chargebackProtectionData?: ChargebackProtectionData;
|
|
886
|
+
planCode?: string;
|
|
887
|
+
/**
|
|
888
|
+
* The payment methods displayed on the UI. If omitted, all available payment methods will be displayed.
|
|
889
|
+
*/
|
|
890
|
+
allowedPaymentMethods?: PaymentMethods[];
|
|
891
|
+
customerInfo?: CustomerInfo;
|
|
892
|
+
settlementType?: SettlementType;
|
|
893
|
+
authOnly?: boolean;
|
|
894
|
+
/**
|
|
895
|
+
* @deprecated Use zeroAuthorizationConfig instead for more control over zero auth behavior.
|
|
896
|
+
* Simple boolean flag for zero authorization mode. When true, defaults to showing saved payment methods.
|
|
897
|
+
*/
|
|
898
|
+
isZeroAuthorization?: boolean;
|
|
899
|
+
/**
|
|
900
|
+
* Configuration for zero authorization flow. Takes precedence over isZeroAuthorization if both are provided.
|
|
901
|
+
* Use this to control whether saved payment methods are shown and to pre-select a specific card for verification.
|
|
902
|
+
*/
|
|
903
|
+
zeroAuthorizationConfig?: ZeroAuthorizationConfig;
|
|
904
|
+
/**
|
|
905
|
+
* If true, pre-checks the partial USDC payment checkbox when USDC balance is available.
|
|
906
|
+
* If false or undefined, maintains default behavior (unchecked).
|
|
907
|
+
*/
|
|
908
|
+
partialUsdcChecked?: boolean;
|
|
909
|
+
/**
|
|
910
|
+
* The DeviceID gotten from the Coinflow SDK:
|
|
911
|
+
* https://docs.coinflow.cash/guides/checkout/fraud-protection/chargeback-protection/implement-chargeback-protection#how-to-add-chargeback-protection
|
|
912
|
+
*
|
|
913
|
+
* nSureSDK.getDeviceId()
|
|
914
|
+
*/
|
|
915
|
+
deviceId?: string;
|
|
916
|
+
jwtToken?: string;
|
|
917
|
+
/**
|
|
918
|
+
* Your company email address that the customer can contact.
|
|
919
|
+
*/
|
|
920
|
+
supportEmail?: string;
|
|
921
|
+
/**
|
|
922
|
+
* If rendering the Coinflow component within multiple nested iframes, all ancestors in the chain must be provided as a comma-separated list.
|
|
923
|
+
*
|
|
924
|
+
* Example:
|
|
925
|
+
* Primary origin that will be interacting with the Coinflow iFrame: foo.com
|
|
926
|
+
* Subsequent origins that will render foo.com: bar.com
|
|
927
|
+
* The origin array would then be: [https://foo.com,https://bar.com]
|
|
928
|
+
*/
|
|
929
|
+
origins?: string[];
|
|
930
|
+
threeDsChallengePreference?: ThreeDsChallengePreference;
|
|
931
|
+
destinationAuthKey?: string;
|
|
932
|
+
accountFundingTransaction?: AccountFundingTransaction;
|
|
933
|
+
}
|
|
934
|
+
/**
|
|
935
|
+
* Used for Account Funding Transactions
|
|
936
|
+
*/
|
|
937
|
+
interface AccountFundingTransaction {
|
|
938
|
+
/**
|
|
939
|
+
* Recipient information for Account Funding Transactions (AFT).
|
|
940
|
+
* Required when AFT is enabled and type requires it.
|
|
941
|
+
*/
|
|
942
|
+
recipientAftInfo?: RecipientAftInfo;
|
|
943
|
+
}
|
|
944
|
+
interface CoinflowSolanaPurchaseProps extends CoinflowCommonPurchaseProps {
|
|
945
|
+
wallet: SolanaWallet;
|
|
946
|
+
transaction?: Transaction | VersionedTransaction;
|
|
947
|
+
partialSigners?: Signer[];
|
|
948
|
+
debugTx?: boolean;
|
|
949
|
+
connection: Connection;
|
|
950
|
+
blockchain: 'solana';
|
|
951
|
+
rent?: {
|
|
952
|
+
lamports: string | number;
|
|
953
|
+
};
|
|
954
|
+
nativeSolToConvert?: {
|
|
955
|
+
lamports: string | number;
|
|
956
|
+
};
|
|
957
|
+
redemptionCheck?: boolean;
|
|
958
|
+
}
|
|
959
|
+
interface CoinflowSessionKeyPurchaseProps extends CoinflowCommonPurchaseProps {
|
|
960
|
+
sessionKey: string;
|
|
961
|
+
wallet?: undefined;
|
|
962
|
+
blockchain?: CoinflowBlockchain | undefined;
|
|
963
|
+
}
|
|
964
|
+
interface CoinflowEvmPurchaseProps extends CoinflowCommonPurchaseProps {
|
|
965
|
+
transaction?: EvmTransactionData;
|
|
966
|
+
wallet: EthWallet;
|
|
967
|
+
}
|
|
968
|
+
interface CoinflowPolygonPurchaseProps extends CoinflowEvmPurchaseProps {
|
|
969
|
+
blockchain: 'polygon';
|
|
970
|
+
}
|
|
971
|
+
interface CoinflowEthPurchaseProps extends CoinflowEvmPurchaseProps {
|
|
972
|
+
blockchain: 'eth';
|
|
973
|
+
}
|
|
974
|
+
interface CoinflowBasePurchaseProps extends CoinflowEvmPurchaseProps {
|
|
975
|
+
blockchain: 'base';
|
|
976
|
+
}
|
|
977
|
+
interface CoinflowArbitrumPurchaseProps extends CoinflowEvmPurchaseProps {
|
|
978
|
+
blockchain: 'arbitrum';
|
|
979
|
+
}
|
|
980
|
+
interface CoinflowMonadPurchaseProps extends CoinflowEvmPurchaseProps {
|
|
981
|
+
blockchain: 'monad';
|
|
982
|
+
}
|
|
983
|
+
type CoinflowPurchaseProps = CoinflowSolanaPurchaseProps | CoinflowSessionKeyPurchaseProps | CoinflowPolygonPurchaseProps | CoinflowEthPurchaseProps | CoinflowBasePurchaseProps | CoinflowArbitrumPurchaseProps | CoinflowMonadPurchaseProps;
|
|
984
|
+
/** Withdraw **/
|
|
985
|
+
interface CoinflowCommonWithdrawProps extends CoinflowTypes {
|
|
986
|
+
onSuccess?: OnSuccessMethod;
|
|
987
|
+
tokens?: string[];
|
|
988
|
+
lockDefaultToken?: boolean;
|
|
989
|
+
amount?: number;
|
|
990
|
+
email?: string;
|
|
991
|
+
bankAccountLinkRedirect?: string;
|
|
992
|
+
additionalWallets?: {
|
|
993
|
+
wallet: string;
|
|
994
|
+
blockchain: 'solana' | 'eth' | 'polygon' | 'base' | 'arbitrum' | 'monad';
|
|
995
|
+
}[];
|
|
996
|
+
lockAmount?: boolean;
|
|
997
|
+
transactionSigner?: string;
|
|
998
|
+
/**
|
|
999
|
+
* If rendering the Coinflow component within multiple nested iframes, all ancestors in the chain must be provided as a comma-separated list.
|
|
1000
|
+
*
|
|
1001
|
+
* Example:
|
|
1002
|
+
* Primary origin that will be interacting with the Coinflow iFrame: foo.com
|
|
1003
|
+
* Subsequent origins that will render foo.com: bar.com
|
|
1004
|
+
* The origin array would then be: [https://foo.com,https://bar.com]
|
|
1005
|
+
*/
|
|
1006
|
+
origins?: string[];
|
|
1007
|
+
/**
|
|
1008
|
+
* If the withdrawer is authenticated with a sessionKey pass it here.
|
|
1009
|
+
*/
|
|
1010
|
+
sessionKey?: string;
|
|
1011
|
+
/**
|
|
1012
|
+
* Array of allowed withdrawal speeds. If not provided, all speeds are allowed.
|
|
1013
|
+
*/
|
|
1014
|
+
allowedWithdrawSpeeds?: WithdrawSpeed[];
|
|
1015
|
+
}
|
|
1016
|
+
type WalletTypes = SolanaWallet | EthWallet;
|
|
1017
|
+
interface SolanaWalletProps {
|
|
1018
|
+
wallet: SolanaWallet;
|
|
1019
|
+
connection: Connection;
|
|
1020
|
+
blockchain: 'solana';
|
|
1021
|
+
}
|
|
1022
|
+
type CoinflowSolanaWithdrawProps = CoinflowCommonWithdrawProps & SolanaWalletProps;
|
|
1023
|
+
interface EvmWalletProps {
|
|
1024
|
+
wallet: EthWallet;
|
|
1025
|
+
usePermit?: boolean;
|
|
1026
|
+
}
|
|
1027
|
+
type CoinflowEvmWithdrawProps = CoinflowCommonWithdrawProps & EvmWalletProps;
|
|
1028
|
+
interface EthWalletProps {
|
|
1029
|
+
blockchain: 'eth';
|
|
1030
|
+
}
|
|
1031
|
+
type CoinflowEthWithdrawProps = CoinflowEvmWithdrawProps & EthWalletProps;
|
|
1032
|
+
interface PolygonWalletProps {
|
|
1033
|
+
blockchain: 'polygon';
|
|
1034
|
+
}
|
|
1035
|
+
type CoinflowPolygonWithdrawProps = CoinflowEvmWithdrawProps & PolygonWalletProps;
|
|
1036
|
+
interface BaseWalletProps {
|
|
1037
|
+
blockchain: 'base';
|
|
1038
|
+
}
|
|
1039
|
+
type CoinflowBaseWithdrawProps = CoinflowEvmWithdrawProps & BaseWalletProps;
|
|
1040
|
+
interface ArbitrumWalletProps {
|
|
1041
|
+
blockchain: 'arbitrum';
|
|
1042
|
+
}
|
|
1043
|
+
type CoinflowArbitrumWithdrawProps = CoinflowEvmWithdrawProps & ArbitrumWalletProps;
|
|
1044
|
+
interface MonadWalletProps {
|
|
1045
|
+
blockchain: 'monad';
|
|
1046
|
+
}
|
|
1047
|
+
type CoinflowMonadWithdrawProps = CoinflowEvmWithdrawProps & MonadWalletProps;
|
|
1048
|
+
type CoinflowWithdrawProps = CoinflowSolanaWithdrawProps | CoinflowEthWithdrawProps | CoinflowPolygonWithdrawProps | CoinflowBaseWithdrawProps | CoinflowArbitrumWithdrawProps | CoinflowMonadWithdrawProps;
|
|
1049
|
+
interface CommonEvmRedeem {
|
|
1050
|
+
/**
|
|
1051
|
+
* Whether the UI should wait
|
|
1052
|
+
* for the transaction to be sent and
|
|
1053
|
+
* the hash to be returned.
|
|
1054
|
+
*/
|
|
1055
|
+
waitForHash?: boolean;
|
|
1056
|
+
}
|
|
1057
|
+
/**
|
|
1058
|
+
* (EVM only) If your contract sends the item/service being purchased via a custom "receiver" field, then utilize this object.
|
|
1059
|
+
*
|
|
1060
|
+
* The coinflow contract calls the "to" contract, which transfers the NFT/item to the "receiver" address defined in the contract function arguments.
|
|
1061
|
+
*/
|
|
1062
|
+
interface NormalRedeem extends CommonEvmRedeem {
|
|
1063
|
+
/**
|
|
1064
|
+
* Transaction to be called.
|
|
1065
|
+
*/
|
|
1066
|
+
transaction: {
|
|
1067
|
+
/**
|
|
1068
|
+
* The merchant's whitelisted contract
|
|
1069
|
+
*/
|
|
1070
|
+
to: string;
|
|
1071
|
+
/**
|
|
1072
|
+
* The data to call this contract with, HEX encoded.
|
|
1073
|
+
*
|
|
1074
|
+
* The coinflow contract calls the "to" contract, contract pulls USDC from msg.sender, and transfers the NFT/item to the "receiver" address defined in the contract function arguments.
|
|
1075
|
+
*/
|
|
1076
|
+
data: string;
|
|
1077
|
+
};
|
|
1078
|
+
}
|
|
1079
|
+
/**
|
|
1080
|
+
* (EVM only) If your know the ID of the NFT being purchased, then utilize this object.
|
|
1081
|
+
*
|
|
1082
|
+
* The contract transfers the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract fwd's the NFT to the end user's wallet.
|
|
1083
|
+
*/
|
|
1084
|
+
interface KnownTokenIdRedeem extends NormalRedeem {
|
|
1085
|
+
/**
|
|
1086
|
+
* The address of the Nft's Contract
|
|
1087
|
+
*
|
|
1088
|
+
* @minLength 42 Please provide a valid EVM Address (42 Characters Long)
|
|
1089
|
+
* @maxLength 42 Please provide a valid EVM Address (42 Characters Long)
|
|
1090
|
+
*/
|
|
1091
|
+
nftContract: string;
|
|
1092
|
+
/**
|
|
1093
|
+
* The ID of the NFT being purchased. Will be forwarded by the Coinflow contract to the customer's wallet.
|
|
1094
|
+
*
|
|
1095
|
+
* @minLength 1 Please provide a valid Nft Id
|
|
1096
|
+
*/
|
|
1097
|
+
nftId: string;
|
|
1098
|
+
}
|
|
1099
|
+
/**
|
|
1100
|
+
* (EVM only) If your contract mints an NFT via a OpenZeppelin Safe Mint Call, then utilize this object.
|
|
1101
|
+
*
|
|
1102
|
+
* The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the SafeMint event, and fwd's the NFT to the end user's wallet.
|
|
1103
|
+
*/
|
|
1104
|
+
interface SafeMintRedeem extends NormalRedeem {
|
|
1105
|
+
type: 'safeMint';
|
|
1106
|
+
nftContract?: string;
|
|
1107
|
+
}
|
|
1108
|
+
/**
|
|
1109
|
+
* (EVM only) If your contract returns the NFT ID, then utilize this object.
|
|
1110
|
+
*
|
|
1111
|
+
* The contract mints the NFT to msg.sender (which is the Coinflow contract), the Coinflow contract picks up the returned NFT ID, and fwd's the NFT to the end user's wallet.
|
|
1112
|
+
*/
|
|
1113
|
+
interface ReturnedTokenIdRedeem extends NormalRedeem {
|
|
1114
|
+
type: 'returned';
|
|
1115
|
+
nftContract?: string;
|
|
1116
|
+
}
|
|
1117
|
+
interface TokenRedeem extends CommonEvmRedeem {
|
|
1118
|
+
type: 'token';
|
|
1119
|
+
destination: string;
|
|
1120
|
+
}
|
|
1121
|
+
/**
|
|
1122
|
+
* If your contract exists on a chain supported by Decent, pass this object in order to call it.
|
|
1123
|
+
*/
|
|
1124
|
+
interface DecentRedeem extends CommonEvmRedeem {
|
|
1125
|
+
type: 'decent';
|
|
1126
|
+
/**
|
|
1127
|
+
* ID of the destination chain you will be using
|
|
1128
|
+
* Find your chain ID here: https://chainlist.org/
|
|
1129
|
+
*/
|
|
1130
|
+
dstChainId: number;
|
|
1131
|
+
/**
|
|
1132
|
+
* Address on that chain of the token you will be receiving
|
|
1133
|
+
*/
|
|
1134
|
+
dstToken: string;
|
|
1135
|
+
/**
|
|
1136
|
+
* The contract address which will be called on the destination chain
|
|
1137
|
+
*/
|
|
1138
|
+
contractAddress: string;
|
|
1139
|
+
contractData: string;
|
|
1140
|
+
/**
|
|
1141
|
+
* Amount of the token on the destination chain you will be receiving
|
|
1142
|
+
*/
|
|
1143
|
+
cost: {
|
|
1144
|
+
/**
|
|
1145
|
+
* This is the raw amount of the token
|
|
1146
|
+
* ex: 50000000000000n
|
|
1147
|
+
*/
|
|
1148
|
+
amount: string;
|
|
1149
|
+
/**
|
|
1150
|
+
* Whether or not the token is the native token for the chain (ex: Ethereum - ETH, Polygon - POL).
|
|
1151
|
+
* If native dstToken should be the 0 address (0x00...)
|
|
1152
|
+
*/
|
|
1153
|
+
isNative: boolean;
|
|
1154
|
+
};
|
|
1155
|
+
}
|
|
1156
|
+
/**
|
|
1157
|
+
* (EVM only) if you want to execute an EVM transaction on a successful purchase, you can pass a transaction request here.
|
|
1158
|
+
*
|
|
1159
|
+
* Gas fees for the transaction will be automatically calculated and added to the total charged to the customer. Optionally the merchant can opt to pay for these gas fees.
|
|
1160
|
+
*/
|
|
1161
|
+
type EvmTransactionData = SafeMintRedeem | ReturnedTokenIdRedeem | KnownTokenIdRedeem | NormalRedeem | TokenRedeem | DecentRedeem;
|
|
1162
|
+
interface CoinflowIFrameProps extends Omit<CoinflowTypes, 'merchantId' | 'handleHeightChange'>, Pick<CoinflowCommonPurchaseProps, 'chargebackProtectionData' | 'webhookInfo' | 'subtotal' | 'presentment' | 'customerInfo' | 'settlementType' | 'email' | 'planCode' | 'deviceId' | 'jwtToken' | 'origins' | 'threeDsChallengePreference' | 'supportEmail' | 'allowedPaymentMethods' | 'accountFundingTransaction' | 'partialUsdcChecked' | 'isZeroAuthorization' | 'zeroAuthorizationConfig'>, Pick<CoinflowCommonWithdrawProps, 'bankAccountLinkRedirect' | 'additionalWallets' | 'transactionSigner' | 'lockAmount' | 'lockDefaultToken' | 'origins' | 'allowedWithdrawSpeeds'>, Pick<CoinflowEvmPurchaseProps, 'authOnly'>, Pick<CoinflowSolanaPurchaseProps, 'rent' | 'nativeSolToConvert' | 'destinationAuthKey' | 'redemptionCheck'> {
|
|
1163
|
+
walletPubkey: string | null | undefined;
|
|
1164
|
+
sessionKey?: string;
|
|
1165
|
+
route: string;
|
|
1166
|
+
routePrefix?: string;
|
|
1167
|
+
transaction?: string;
|
|
1168
|
+
tokens?: string[] | PublicKey[];
|
|
1169
|
+
merchantCss?: string;
|
|
1170
|
+
color?: 'white' | 'black';
|
|
1171
|
+
disableApplePay?: boolean;
|
|
1172
|
+
disableGooglePay?: boolean;
|
|
1173
|
+
theme?: MerchantTheme;
|
|
1174
|
+
usePermit?: boolean;
|
|
1175
|
+
handleHeightChangeId: string | number;
|
|
1176
|
+
}
|
|
1177
|
+
declare enum CardType {
|
|
1178
|
+
VISA = "VISA",
|
|
1179
|
+
MASTERCARD = "MSTR",
|
|
1180
|
+
AMEX = "AMEX",
|
|
1181
|
+
DISCOVER = "DISC"
|
|
1182
|
+
}
|
|
1183
|
+
interface RecipientAftInfo {
|
|
1184
|
+
/**
|
|
1185
|
+
* @minLength 2
|
|
1186
|
+
*/
|
|
1187
|
+
firstName: string;
|
|
1188
|
+
/**
|
|
1189
|
+
* @minLength 2
|
|
1190
|
+
*/
|
|
1191
|
+
lastName: string;
|
|
1192
|
+
/**
|
|
1193
|
+
* @minLength 2
|
|
1194
|
+
*/
|
|
1195
|
+
address1: string;
|
|
1196
|
+
/**
|
|
1197
|
+
* @minLength 2
|
|
1198
|
+
*/
|
|
1199
|
+
city: string;
|
|
1200
|
+
/**
|
|
1201
|
+
* @minLength 2
|
|
1202
|
+
*/
|
|
1203
|
+
postalCode: string;
|
|
1204
|
+
/**
|
|
1205
|
+
* @minLength 2
|
|
1206
|
+
*/
|
|
1207
|
+
state?: string;
|
|
1208
|
+
/**
|
|
1209
|
+
* @minLength 2
|
|
1210
|
+
* @maxLength 2
|
|
1211
|
+
*/
|
|
1212
|
+
countryCode: string;
|
|
1213
|
+
/**
|
|
1214
|
+
* Recipients Date Of Birth in YYYMMDD format.
|
|
1215
|
+
* @pattern ^\d{8}$
|
|
1216
|
+
*/
|
|
1217
|
+
dateOfBirth?: string;
|
|
1218
|
+
/**
|
|
1219
|
+
* @pattern ^\d+$
|
|
1220
|
+
*/
|
|
1221
|
+
phoneNumber?: string;
|
|
1222
|
+
documentReference?: string;
|
|
1223
|
+
}
|
|
1224
|
+
declare const RN_REDIRECT_MESSAGE_NAME = "rnredirect";
|
|
1225
|
+
|
|
1226
|
+
declare class CoinflowUtils {
|
|
1227
|
+
env: CoinflowEnvs;
|
|
1228
|
+
url: string;
|
|
1229
|
+
constructor(env?: CoinflowEnvs);
|
|
1230
|
+
getNSurePartnerId(merchantId: string): Promise<string | undefined>;
|
|
1231
|
+
static getCoinflowBaseUrl(env?: CoinflowEnvs): string;
|
|
1232
|
+
static getCoinflowAppBaseUrl(env?: CoinflowEnvs): string;
|
|
1233
|
+
static getCoinflowApiUrl(env?: CoinflowEnvs): string;
|
|
1234
|
+
static getCoinflowUrl({ walletPubkey, sessionKey, route, routePrefix, env, subtotal, presentment, transaction, blockchain, webhookInfo, email, loaderBackground, handleHeightChangeId, bankAccountLinkRedirect, additionalWallets, chargebackProtectionData, merchantCss, color, rent, lockDefaultToken, tokens, planCode, disableApplePay, disableGooglePay, customerInfo, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, deviceId, jwtToken, origins, threeDsChallengePreference, supportEmail, destinationAuthKey, allowedPaymentMethods, accountFundingTransaction, partialUsdcChecked, redemptionCheck, allowedWithdrawSpeeds, isZeroAuthorization, zeroAuthorizationConfig, baseUrl, }: CoinflowIFrameProps & {
|
|
1235
|
+
baseUrl?: string;
|
|
1236
|
+
}): string;
|
|
1237
|
+
static getTransaction(props: CoinflowPurchaseProps): string | undefined;
|
|
1238
|
+
static byBlockchain<T>(blockchain: CoinflowBlockchain, args: {
|
|
1239
|
+
solana: T;
|
|
1240
|
+
eth: T;
|
|
1241
|
+
polygon: T;
|
|
1242
|
+
base: T;
|
|
1243
|
+
arbitrum: T;
|
|
1244
|
+
monad: T;
|
|
1245
|
+
user: T;
|
|
1246
|
+
}): T;
|
|
1247
|
+
}
|
|
1248
|
+
interface FullName {
|
|
1249
|
+
firstName: string;
|
|
1250
|
+
lastName: string;
|
|
1251
|
+
}
|
|
1252
|
+
declare function getCustomerName(info: CustomerInfo | undefined): FullName | undefined;
|
|
1253
|
+
|
|
1254
|
+
type WalletCall = {
|
|
1255
|
+
method: IFrameMessageMethods;
|
|
1256
|
+
data: string;
|
|
1257
|
+
} | SuccessWalletCall;
|
|
1258
|
+
type SuccessWalletCall = {
|
|
1259
|
+
method: IFrameMessageMethods.Success;
|
|
1260
|
+
data: string;
|
|
1261
|
+
info: {
|
|
1262
|
+
paymentId: string;
|
|
1263
|
+
hash?: string;
|
|
1264
|
+
};
|
|
1265
|
+
};
|
|
1266
|
+
interface IFrameMessageHandlers {
|
|
1267
|
+
handleSendTransaction: (transaction: string) => Promise<string>;
|
|
1268
|
+
handleSignMessage?: (message: string) => Promise<string>;
|
|
1269
|
+
handleSignTransaction?: (transaction: string) => Promise<string>;
|
|
1270
|
+
handleHeightChange?: (height: string) => void;
|
|
1271
|
+
onSuccess: OnSuccessMethod | undefined;
|
|
1272
|
+
onAuthDeclined: OnAuthDeclinedMethod | undefined;
|
|
1273
|
+
}
|
|
1274
|
+
declare enum IFrameMessageMethods {
|
|
1275
|
+
SignMessage = "signMessage",
|
|
1276
|
+
SignTransaction = "signTransaction",
|
|
1277
|
+
SendTransaction = "sendTransaction",
|
|
1278
|
+
HeightChange = "heightChange",
|
|
1279
|
+
Success = "success",
|
|
1280
|
+
AuthDeclined = "authDeclined",
|
|
1281
|
+
Loaded = "loaded",
|
|
1282
|
+
AccountLinked = "accountLinked"
|
|
1283
|
+
}
|
|
1284
|
+
declare function getWalletPubkey(input: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): string | null | undefined;
|
|
1285
|
+
declare function handleIFrameMessage(rawMessage: string, handlers: IFrameMessageHandlers, handleHeightChangeId: string | number): Promise<string> | void;
|
|
1286
|
+
declare function getHandlers(props: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain' | 'onSuccess' | 'onAuthDeclined'>): Omit<IFrameMessageHandlers, 'handleHeightChange'>;
|
|
1287
|
+
|
|
1288
|
+
type EventBusCallback = (event: Event) => void;
|
|
1289
|
+
declare class EventBus {
|
|
1290
|
+
static on(type: string, callback: EventBusCallback): void;
|
|
1291
|
+
static dispatch(type: string, data: any): void;
|
|
1292
|
+
static remove(type: string, callback: EventBusCallback): void;
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
declare const TokenExCardNumberIframeId = "tokenExCardNumber";
|
|
1296
|
+
declare const TokenExCvvContainerID = "tokenExCardCvv";
|
|
1297
|
+
interface TokenExIframe extends ReturnType<typeof TokenEx.Iframe> {
|
|
1298
|
+
tokenize: () => Promise<TokenizationResponse>;
|
|
1299
|
+
}
|
|
1300
|
+
declare const CARD_TYPE_MAPPING: Record<CardType, string>;
|
|
1301
|
+
interface TokenExIFrameConfiguration {
|
|
1302
|
+
origin: string;
|
|
1303
|
+
timestamp: string;
|
|
1304
|
+
tokenExID: string;
|
|
1305
|
+
tokenScheme: string;
|
|
1306
|
+
authenticationKey: string;
|
|
1307
|
+
pci: true;
|
|
1308
|
+
token?: string;
|
|
1309
|
+
use3DS?: boolean;
|
|
1310
|
+
threeDSMethodNotificationUrl?: string;
|
|
1311
|
+
}
|
|
1312
|
+
interface CardFormInputStyles {
|
|
1313
|
+
base: Properties | string;
|
|
1314
|
+
placeholder?: Properties | string;
|
|
1315
|
+
focus?: Properties | string;
|
|
1316
|
+
error?: Properties | string;
|
|
1317
|
+
}
|
|
1318
|
+
type CoinflowCardTokenResponse = {
|
|
1319
|
+
token: string;
|
|
1320
|
+
};
|
|
1321
|
+
interface CoinflowCardNumberInputProps {
|
|
1322
|
+
env: CoinflowEnvs;
|
|
1323
|
+
css: CardFormInputStyles & {
|
|
1324
|
+
cvv: CardFormInputStyles;
|
|
1325
|
+
};
|
|
1326
|
+
debug?: boolean;
|
|
1327
|
+
origins: string[];
|
|
1328
|
+
font?: string;
|
|
1329
|
+
}
|
|
1330
|
+
interface CoinflowCvvOnlyInputProps {
|
|
1331
|
+
token: string;
|
|
1332
|
+
cardType: CardType;
|
|
1333
|
+
env: CoinflowEnvs;
|
|
1334
|
+
css: CardFormInputStyles & {
|
|
1335
|
+
cvv: CardFormInputStyles;
|
|
1336
|
+
};
|
|
1337
|
+
debug?: boolean;
|
|
1338
|
+
origins: string[];
|
|
1339
|
+
font?: string;
|
|
1340
|
+
}
|
|
1341
|
+
interface VersionDetail {
|
|
1342
|
+
threeDSMethodURL: string;
|
|
1343
|
+
acsStartProtocolVersion: string;
|
|
1344
|
+
acsEndProtocolVersion: string;
|
|
1345
|
+
threeDSServerStartVersion: string;
|
|
1346
|
+
threeDSServerEndVersion?: string;
|
|
1347
|
+
acsInfoInd: [string];
|
|
1348
|
+
directoryServerID: string;
|
|
1349
|
+
dsStartProtocolVersion: string;
|
|
1350
|
+
dsEndProtocolVersion: string;
|
|
1351
|
+
dsIdentifier: string;
|
|
1352
|
+
threeDSServerTransID: string;
|
|
1353
|
+
}
|
|
1354
|
+
interface TokenizationResponse {
|
|
1355
|
+
cardType: string;
|
|
1356
|
+
cvvIncluded: true;
|
|
1357
|
+
firstSix: string;
|
|
1358
|
+
lastFour: string;
|
|
1359
|
+
referenceNumber: string;
|
|
1360
|
+
token: string;
|
|
1361
|
+
tokenHMAC: string;
|
|
1362
|
+
recommended3dsVersion?: Record<string, string>;
|
|
1363
|
+
threeDSecureResponse?: VersionDetail[];
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
type MerchantIdOrCheckoutJwt = {
|
|
1367
|
+
checkoutJwt: string;
|
|
1368
|
+
} | {
|
|
1369
|
+
merchantId: string;
|
|
1370
|
+
};
|
|
1371
|
+
interface CommonDoInitializeTokenExIframeArgs {
|
|
1372
|
+
css: string;
|
|
1373
|
+
debug?: boolean;
|
|
1374
|
+
font?: string;
|
|
1375
|
+
origins: string[];
|
|
1376
|
+
tokenExScriptLoaded: boolean;
|
|
1377
|
+
env: CoinflowEnvs;
|
|
1378
|
+
setCachedToken: (s: string | undefined) => void;
|
|
1379
|
+
setLoaded: (b: boolean) => void;
|
|
1380
|
+
}
|
|
1381
|
+
type DoInitializeTokenExIframeArgs = CommonDoInitializeTokenExIframeArgs & MerchantIdOrCheckoutJwt;
|
|
1382
|
+
type DoInitializeCvvOnlyTokenExIframeArgs = DoInitializeTokenExIframeArgs & {
|
|
1383
|
+
token: string;
|
|
1384
|
+
cardType: CardType;
|
|
1385
|
+
};
|
|
1386
|
+
type GetIFrameConfigArgs = {
|
|
1387
|
+
token?: string;
|
|
1388
|
+
origins: string[];
|
|
1389
|
+
env: CoinflowEnvs;
|
|
1390
|
+
} & MerchantIdOrCheckoutJwt;
|
|
1391
|
+
declare function getIframeConfig(args: GetIFrameConfigArgs): Promise<TokenExIFrameConfiguration>;
|
|
1392
|
+
declare function setTokenExScriptTag({ env, setTokenExScriptLoaded, }: {
|
|
1393
|
+
env: CoinflowEnvs;
|
|
1394
|
+
setTokenExScriptLoaded: (b: boolean) => void;
|
|
1395
|
+
}): void;
|
|
1396
|
+
declare function doInitializeCvvOnlyTokenExIframe(args: DoInitializeCvvOnlyTokenExIframeArgs): Promise<TokenExIframe | undefined>;
|
|
1397
|
+
declare function doInitializeTokenExIframe(args: DoInitializeTokenExIframeArgs): Promise<TokenExIframe | undefined>;
|
|
1398
|
+
declare function doInitializeTokenExCardOnlyIframe(args: DoInitializeTokenExIframeArgs): Promise<TokenExIframe | undefined>;
|
|
1399
|
+
|
|
1400
|
+
declare class CoinflowIFrameComponent {
|
|
1401
|
+
private sanitizer;
|
|
1402
|
+
iframeProps: CoinflowIFrameProps;
|
|
1403
|
+
messageHandlers: IFrameMessageHandlers;
|
|
1404
|
+
onLoad?: () => void | Promise<void>;
|
|
1405
|
+
waitForLoadedMessage?: boolean;
|
|
1406
|
+
messageEvent: EventEmitter<any>;
|
|
1407
|
+
dynamicUrl?: SafeResourceUrl;
|
|
1408
|
+
iframe?: ElementRef<HTMLIFrameElement>;
|
|
1409
|
+
private isLoading;
|
|
1410
|
+
constructor(sanitizer: DomSanitizer);
|
|
1411
|
+
ngOnInit(): void;
|
|
1412
|
+
onPostMessage(event: any): void;
|
|
1413
|
+
sendMessage(message: string): void;
|
|
1414
|
+
handleIframeLoad(): void;
|
|
1415
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowIFrameComponent, never>;
|
|
1416
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowIFrameComponent, "lib-coinflow-iframe", never, { "iframeProps": { "alias": "iframeProps"; "required": false; }; "messageHandlers": { "alias": "messageHandlers"; "required": false; }; "onLoad": { "alias": "onLoad"; "required": false; }; "waitForLoadedMessage": { "alias": "waitForLoadedMessage"; "required": false; }; }, { "messageEvent": "messageEvent"; }, never, never, true, never>;
|
|
1417
|
+
}
|
|
1418
|
+
|
|
1419
|
+
declare class CoinflowPurchaseComponent {
|
|
1420
|
+
purchaseProps: CoinflowPurchaseProps & WithOnLoad;
|
|
1421
|
+
iframeProps?: CoinflowIFrameProps;
|
|
1422
|
+
messageHandlers?: IFrameMessageHandlers;
|
|
1423
|
+
ngOnInit(): void;
|
|
1424
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowPurchaseComponent, never>;
|
|
1425
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowPurchaseComponent, "lib-coinflow-purchase", never, { "purchaseProps": { "alias": "purchaseProps"; "required": false; }; }, {}, never, never, true, never>;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
declare class CoinflowPurchaseHistoryComponent {
|
|
1429
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowPurchaseHistoryComponent, never>;
|
|
1430
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowPurchaseHistoryComponent, "lib-coinflow-purchase-history", never, {}, {}, never, never, true, never>;
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
declare class CoinflowPurchaseProtectionComponent {
|
|
1434
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowPurchaseProtectionComponent, never>;
|
|
1435
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowPurchaseProtectionComponent, "lib-coinflow-purchase-protection", never, {}, {}, never, never, true, never>;
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
declare class CoinflowWithdrawComponent {
|
|
1439
|
+
withdrawProps: CoinflowWithdrawProps & WithOnLoad;
|
|
1440
|
+
iframeProps?: CoinflowIFrameProps;
|
|
1441
|
+
messageHandlers?: IFrameMessageHandlers;
|
|
1442
|
+
ngOnInit(): void;
|
|
1443
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowWithdrawComponent, never>;
|
|
1444
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowWithdrawComponent, "lib-coinflow-withdraw", never, { "withdrawProps": { "alias": "withdrawProps"; "required": false; }; }, {}, never, never, true, never>;
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
declare class CoinflowWithdrawHistoryComponent {
|
|
1448
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowWithdrawHistoryComponent, never>;
|
|
1449
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowWithdrawHistoryComponent, "lib-coinflow-withdraw-history", never, {}, {}, never, never, true, never>;
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
declare class CoinflowCardNumberInput implements OnDestroy {
|
|
1453
|
+
private cardFormService;
|
|
1454
|
+
args: CoinflowCardNumberInputProps & MerchantIdOrCheckoutJwt;
|
|
1455
|
+
private iframe;
|
|
1456
|
+
private onScriptLoaded;
|
|
1457
|
+
private initializeTokenEx;
|
|
1458
|
+
reinitialize(): void;
|
|
1459
|
+
ngOnInit(): void;
|
|
1460
|
+
ngOnDestroy(): void;
|
|
1461
|
+
tokenize(): Promise<TokenizationResponse>;
|
|
1462
|
+
protected readonly TokenExCardNumberIframeId = "tokenExCardNumber";
|
|
1463
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowCardNumberInput, never>;
|
|
1464
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowCardNumberInput, "lib-coinflow-card-number-input", never, { "args": { "alias": "args"; "required": false; }; }, {}, never, never, true, never>;
|
|
1465
|
+
}
|
|
1466
|
+
|
|
1467
|
+
declare class CoinflowCardNumberOnlyInput implements OnDestroy {
|
|
1468
|
+
private cardFormService;
|
|
1469
|
+
args: CoinflowCardNumberInputProps & MerchantIdOrCheckoutJwt;
|
|
1470
|
+
private iframe;
|
|
1471
|
+
private onScriptLoaded;
|
|
1472
|
+
private initializeTokenEx;
|
|
1473
|
+
reinitialize(): void;
|
|
1474
|
+
ngOnInit(): void;
|
|
1475
|
+
ngOnDestroy(): void;
|
|
1476
|
+
tokenize(): Promise<TokenizationResponse>;
|
|
1477
|
+
protected readonly TokenExCardNumberIframeId = "tokenExCardNumber";
|
|
1478
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowCardNumberOnlyInput, never>;
|
|
1479
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowCardNumberOnlyInput, "lib-coinflow-card-number-only-input", never, { "args": { "alias": "args"; "required": false; }; }, {}, never, never, true, never>;
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
declare class CoinflowCvvInputComponent {
|
|
1483
|
+
protected readonly TokenExCvvContainerID = "tokenExCardCvv";
|
|
1484
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowCvvInputComponent, never>;
|
|
1485
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowCvvInputComponent, "lib-coinflow-cvv-input", never, {}, {}, never, never, true, never>;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
declare class CoinflowCvvOnlyInputComponent implements OnDestroy {
|
|
1489
|
+
private cardFormService;
|
|
1490
|
+
args: CoinflowCvvOnlyInputProps & MerchantIdOrCheckoutJwt;
|
|
1491
|
+
private iframe;
|
|
1492
|
+
private onScriptLoaded;
|
|
1493
|
+
private cleanup;
|
|
1494
|
+
private initializeTokenEx;
|
|
1495
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
1496
|
+
reinitialize(): void;
|
|
1497
|
+
ngOnInit(): void;
|
|
1498
|
+
ngOnDestroy(): void;
|
|
1499
|
+
tokenize(): Promise<TokenizationResponse>;
|
|
1500
|
+
protected readonly TokenExCvvContainerID = "tokenExCardCvv";
|
|
1501
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowCvvOnlyInputComponent, never>;
|
|
1502
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowCvvOnlyInputComponent, "lib-coinflow-cvv-only-input", never, { "args": { "alias": "args"; "required": false; }; }, {}, never, never, true, never>;
|
|
1503
|
+
}
|
|
1504
|
+
|
|
1505
|
+
declare class CoinflowApplePayButtonComponent {
|
|
1506
|
+
purchaseProps: CoinflowPurchaseProps & {
|
|
1507
|
+
color: 'white' | 'black';
|
|
1508
|
+
onError?: (message: string) => void;
|
|
1509
|
+
};
|
|
1510
|
+
fill(): "#000" | "#FFF";
|
|
1511
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowApplePayButtonComponent, never>;
|
|
1512
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowApplePayButtonComponent, "lib-coinflow-apple-pay-button", never, { "purchaseProps": { "alias": "purchaseProps"; "required": false; }; }, {}, never, never, true, never>;
|
|
1513
|
+
}
|
|
1514
|
+
|
|
1515
|
+
declare class CoinflowGooglePayButtonComponent {
|
|
1516
|
+
purchaseProps: CoinflowPurchaseProps & {
|
|
1517
|
+
color: 'white' | 'black';
|
|
1518
|
+
onError?: (message: string) => void;
|
|
1519
|
+
};
|
|
1520
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CoinflowGooglePayButtonComponent, never>;
|
|
1521
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CoinflowGooglePayButtonComponent, "lib-coinflow-google-pay-button", never, { "purchaseProps": { "alias": "purchaseProps"; "required": false; }; }, {}, never, never, true, never>;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
type WithOnLoad = {
|
|
1525
|
+
onLoad?: () => void | Promise<void>;
|
|
1526
|
+
};
|
|
1527
|
+
|
|
1528
|
+
export { BankingCurrencies, CARD_TYPE_MAPPING, CardType, CoinflowApplePayButtonComponent, CoinflowCardNumberInput, CoinflowCardNumberOnlyInput, CoinflowCvvInputComponent, CoinflowCvvOnlyInputComponent, CoinflowGooglePayButtonComponent, CoinflowIFrameComponent, CoinflowPurchaseComponent, CoinflowPurchaseHistoryComponent, CoinflowPurchaseProtectionComponent, CoinflowUtils, CoinflowWithdrawComponent, CoinflowWithdrawHistoryComponent, Currency, CurrencyToISO4217, EventBus, IFrameMessageMethods, MerchantStyle, PaymentMethods, RN_REDIRECT_MESSAGE_NAME, SettlementType, ThreeDsChallengePreference, TokenExCardNumberIframeId, TokenExCvvContainerID, WithdrawCategory, WithdrawCurrencies, WithdrawSpeed, doInitializeCvvOnlyTokenExIframe, doInitializeTokenExCardOnlyIframe, doInitializeTokenExIframe, getCurrencyDecimals, getCustomerName, getHandlers, getIframeConfig, getWalletPubkey, handleIFrameMessage, isBankingCurrency, isTypedCurrencyCents, isWithdrawCurrency, isZeroAuthSavedPaymentMethods, isZeroAuthVerifyCard, nftCartItem, paymentMethodLabels, productType, setTokenExScriptTag };
|
|
1529
|
+
export type { AccountFundingTransaction, AnyObject, ArbitrumWalletProps, AuthDeclinedWalletCallInfo, BankingCurrency, BaseWalletProps, CardFormInputStyles, Cart, CartClassOmitted, CartItem, CartItemClassOmitted, Cents, ChargebackProtectionData, ChargebackProtectionItem, CoinflowArbitrumHistoryProps, CoinflowArbitrumPurchaseProps, CoinflowArbitrumWithdrawProps, CoinflowBaseHistoryProps, CoinflowBasePurchaseProps, CoinflowBaseWithdrawProps, CoinflowBlockchain, CoinflowCardNumberInputProps, CoinflowCardTokenResponse, CoinflowCommonPurchaseProps, CoinflowCommonWithdrawProps, CoinflowCvvOnlyInputProps, CoinflowEnvs, CoinflowEthHistoryProps, CoinflowEthPurchaseProps, CoinflowEthWithdrawProps, CoinflowEvmHistoryProps, CoinflowEvmPurchaseProps, CoinflowHistoryProps, CoinflowIFrameProps, CoinflowMonadHistoryProps, CoinflowMonadPurchaseProps, CoinflowMonadWithdrawProps, CoinflowPolygonHistoryProps, CoinflowPolygonPurchaseProps, CoinflowPolygonWithdrawProps, CoinflowPurchaseProps, CoinflowSessionKeyHistoryProps, CoinflowSessionKeyPurchaseProps, CoinflowSolanaHistoryProps, CoinflowSolanaPurchaseProps, CoinflowSolanaWithdrawProps, CoinflowTypes, CoinflowWithdrawProps, CommonDoInitializeTokenExIframeArgs, CommonEvmRedeem, CryptoCartItem, CurrencyCents, CustomerInfo, DecentRedeem, DoInitializeCvvOnlyTokenExIframeArgs, DoInitializeTokenExIframeArgs, EthWallet, EthWalletProps, EventBusCallback, EvmTransactionData, FullName, GetIFrameConfigArgs, GiftCardCartItem, IFrameMessageHandlers, KnownTokenIdRedeem, MerchantIdOrCheckoutJwt, MerchantTheme, MergeWithOptionalDiff, MonadWalletProps, NameCustomerInfo, NftCartItemClassOmitted, NormalRedeem, OnAuthDeclinedMethod, OnSuccessMethod, PartialBy, PolygonWalletProps, RecipientAftInfo, ReturnedTokenIdRedeem, SafeMintRedeem, SolanaWallet, SolanaWalletProps, SplitNameCustomerInfo, Subtotal, TokenExIFrameConfiguration, TokenExIframe, TokenRedeem, TokenSubtotal, TokenizationResponse, TypedCurrencyCents, VersionDetail, WalletCall, WalletTypes, WithOnLoad, WithdrawCurrency, ZeroAuthSavedPaymentMethods, ZeroAuthVerifyCard, ZeroAuthorizationConfig };
|