@fun-xyz/fiat-contract 0.2.1 → 0.4.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/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@
6
6
  * The package version IS the capability handshake's table version (`TABLE_VERSION`).
7
7
  */
8
8
  export * from './types';
9
+ export * from './codes';
9
10
  export * from './schemas';
10
11
  export * from './table';
11
12
  export * from './assert';
package/dist/index.js CHANGED
@@ -22,17 +22,22 @@ var index_exports = {};
22
22
  __export(index_exports, {
23
23
  AuthChallengeSchema: () => AuthChallengeSchema,
24
24
  BlockedStateSchema: () => BlockedStateSchema,
25
+ COUNTRY_NAMES: () => COUNTRY_NAMES,
26
+ COUNTRY_TO_CURRENCY: () => COUNTRY_TO_CURRENCY,
25
27
  ContractViolation: () => ContractViolation,
28
+ CountryCode: () => CountryCode,
26
29
  CryptoAmountSchema: () => CryptoAmountSchema,
27
30
  DOCUMENTED_ENDPOINTS: () => DOCUMENTED_ENDPOINTS,
28
31
  ENDPOINT_PATTERN: () => ENDPOINT_PATTERN,
29
32
  EnvelopeSchema: () => EnvelopeSchema,
33
+ FIAT_CURRENCY_NAMES: () => FIAT_CURRENCY_NAMES,
30
34
  FIELD_SPEC_TYPES: () => FIELD_SPEC_TYPES,
31
35
  FIXTURES: () => FIXTURES,
32
36
  FIXTURE_COVERAGE_GAPS: () => FIXTURE_COVERAGE_GAPS,
33
37
  FailureReasonSchema: () => FailureReasonSchema,
34
38
  FeeLineSchema: () => FeeLineSchema,
35
39
  FiatAmountSchema: () => FiatAmountSchema,
40
+ FiatCurrencyCode: () => FiatCurrencyCode,
36
41
  FiatEndpointSchema: () => FiatEndpointSchema,
37
42
  FiatProviderSchema: () => FiatProviderSchema,
38
43
  FieldSpecSchema: () => FieldSpecSchema,
@@ -54,6 +59,7 @@ __export(index_exports, {
54
59
  OrderRefSchema: () => OrderRefSchema,
55
60
  OrderStatusSchema: () => OrderStatusSchema,
56
61
  OrderSummarySchema: () => OrderSummarySchema,
62
+ PAYMENT_METHOD_CATEGORIES: () => PAYMENT_METHOD_CATEGORIES,
57
63
  PaymentCaptureStateSchema: () => PaymentCaptureStateSchema,
58
64
  PaymentInstructStateSchema: () => PaymentInstructStateSchema,
59
65
  PendingOrderStateSchema: () => PendingOrderStateSchema,
@@ -96,8 +102,272 @@ __export(index_exports, {
96
102
  });
97
103
  module.exports = __toCommonJS(index_exports);
98
104
 
105
+ // src/codes.ts
106
+ var COUNTRY_CURRENCY_LIST = [
107
+ { country: "AD", countryName: "Andorra", currency: "EUR", currencyName: "Euro" },
108
+ { country: "AE", countryName: "United Arab Emirates", currency: "AED", currencyName: "UAE Dirham" },
109
+ { country: "AF", countryName: "Afghanistan", currency: "AFN", currencyName: "Afghan Afghani" },
110
+ { country: "AG", countryName: "Antigua and Barbuda", currency: "XCD", currencyName: "East Caribbean Dollar" },
111
+ { country: "AI", countryName: "Anguilla", currency: "XCD", currencyName: "East Caribbean Dollar" },
112
+ { country: "AL", countryName: "Albania", currency: "ALL", currencyName: "Albanian Lek" },
113
+ { country: "AM", countryName: "Armenia", currency: "AMD", currencyName: "Armenian Dram" },
114
+ { country: "AO", countryName: "Angola", currency: "AOA", currencyName: "Angolan Kwanza" },
115
+ { country: "AQ", countryName: "Antarctica", currency: "USD", currencyName: "US Dollar" },
116
+ { country: "AR", countryName: "Argentina", currency: "ARS", currencyName: "Argentine Peso" },
117
+ { country: "AS", countryName: "American Samoa", currency: "USD", currencyName: "US Dollar" },
118
+ { country: "AT", countryName: "Austria", currency: "EUR", currencyName: "Euro" },
119
+ { country: "AU", countryName: "Australia", currency: "AUD", currencyName: "Australian Dollar" },
120
+ { country: "AW", countryName: "Aruba", currency: "AWG", currencyName: "Aruban Florin" },
121
+ { country: "AX", countryName: "\xC5land Islands", currency: "EUR", currencyName: "Euro" },
122
+ { country: "AZ", countryName: "Azerbaijan", currency: "AZN", currencyName: "Azerbaijani Manat" },
123
+ { country: "BA", countryName: "Bosnia and Herzegovina", currency: "BAM", currencyName: "Bosnia-Herzegovina Convertible Mark" },
124
+ { country: "BB", countryName: "Barbados", currency: "BBD", currencyName: "Barbadian Dollar" },
125
+ { country: "BD", countryName: "Bangladesh", currency: "BDT", currencyName: "Bangladeshi Taka" },
126
+ { country: "BE", countryName: "Belgium", currency: "EUR", currencyName: "Euro" },
127
+ { country: "BF", countryName: "Burkina Faso", currency: "XOF", currencyName: "West African CFA Franc" },
128
+ { country: "BG", countryName: "Bulgaria", currency: "BGN", currencyName: "Bulgarian Lev" },
129
+ { country: "BH", countryName: "Bahrain", currency: "BHD", currencyName: "Bahraini Dinar" },
130
+ { country: "BI", countryName: "Burundi", currency: "BIF", currencyName: "Burundian Franc" },
131
+ { country: "BJ", countryName: "Benin", currency: "XOF", currencyName: "West African CFA Franc" },
132
+ { country: "BL", countryName: "Saint Barth\xE9lemy", currency: "EUR", currencyName: "Euro" },
133
+ { country: "BM", countryName: "Bermuda", currency: "BMD", currencyName: "Bermudan Dollar" },
134
+ { country: "BN", countryName: "Brunei", currency: "BND", currencyName: "Brunei Dollar" },
135
+ { country: "BO", countryName: "Bolivia", currency: "BOB", currencyName: "Bolivian Boliviano" },
136
+ { country: "BQ", countryName: "Bonaire, Sint Eustatius and Saba", currency: "USD", currencyName: "US Dollar" },
137
+ { country: "BR", countryName: "Brazil", currency: "BRL", currencyName: "Brazilian Real" },
138
+ { country: "BS", countryName: "Bahamas", currency: "BSD", currencyName: "Bahamian Dollar" },
139
+ { country: "BT", countryName: "Bhutan", currency: "BTN", currencyName: "Bhutanese Ngultrum" },
140
+ { country: "BV", countryName: "Bouvet Island", currency: "NOK", currencyName: "Norwegian Krone" },
141
+ { country: "BW", countryName: "Botswana", currency: "BWP", currencyName: "Botswanan Pula" },
142
+ { country: "BY", countryName: "Belarus", currency: "BYN", currencyName: "Belarusian Ruble" },
143
+ { country: "BZ", countryName: "Belize", currency: "BZD", currencyName: "Belize Dollar" },
144
+ { country: "CA", countryName: "Canada", currency: "CAD", currencyName: "Canadian Dollar" },
145
+ { country: "CC", countryName: "Cocos (Keeling) Islands", currency: "AUD", currencyName: "Australian Dollar" },
146
+ { country: "CD", countryName: "DR Congo", currency: "CDF", currencyName: "Congolese Franc" },
147
+ { country: "CF", countryName: "Central African Republic", currency: "XAF", currencyName: "Central African CFA Franc" },
148
+ { country: "CG", countryName: "Congo", currency: "XAF", currencyName: "Central African CFA Franc" },
149
+ { country: "CH", countryName: "Switzerland", currency: "CHF", currencyName: "Swiss Franc" },
150
+ { country: "CI", countryName: "C\xF4te d'Ivoire", currency: "XOF", currencyName: "West African CFA Franc" },
151
+ { country: "CK", countryName: "Cook Islands", currency: "NZD", currencyName: "New Zealand Dollar" },
152
+ { country: "CL", countryName: "Chile", currency: "CLP", currencyName: "Chilean Peso" },
153
+ { country: "CM", countryName: "Cameroon", currency: "XAF", currencyName: "Central African CFA Franc" },
154
+ { country: "CN", countryName: "China", currency: "CNY", currencyName: "Chinese Yuan" },
155
+ { country: "CO", countryName: "Colombia", currency: "COP", currencyName: "Colombian Peso" },
156
+ { country: "CR", countryName: "Costa Rica", currency: "CRC", currencyName: "Costa Rican Col\xF3n" },
157
+ { country: "CU", countryName: "Cuba", currency: "CUP", currencyName: "Cuban Peso" },
158
+ { country: "CV", countryName: "Cabo Verde", currency: "CVE", currencyName: "Cape Verdean Escudo" },
159
+ { country: "CW", countryName: "Cura\xE7ao", currency: "ANG", currencyName: "Netherlands Antillean Guilder" },
160
+ { country: "CX", countryName: "Christmas Island", currency: "AUD", currencyName: "Australian Dollar" },
161
+ { country: "CY", countryName: "Cyprus", currency: "EUR", currencyName: "Euro" },
162
+ { country: "CZ", countryName: "Czechia", currency: "CZK", currencyName: "Czech Koruna" },
163
+ { country: "DE", countryName: "Germany", currency: "EUR", currencyName: "Euro" },
164
+ { country: "DJ", countryName: "Djibouti", currency: "DJF", currencyName: "Djiboutian Franc" },
165
+ { country: "DK", countryName: "Denmark", currency: "DKK", currencyName: "Danish Krone" },
166
+ { country: "DM", countryName: "Dominica", currency: "XCD", currencyName: "East Caribbean Dollar" },
167
+ { country: "DO", countryName: "Dominican Republic", currency: "DOP", currencyName: "Dominican Peso" },
168
+ { country: "DZ", countryName: "Algeria", currency: "DZD", currencyName: "Algerian Dinar" },
169
+ { country: "EC", countryName: "Ecuador", currency: "USD", currencyName: "US Dollar" },
170
+ { country: "EE", countryName: "Estonia", currency: "EUR", currencyName: "Euro" },
171
+ { country: "EG", countryName: "Egypt", currency: "EGP", currencyName: "Egyptian Pound" },
172
+ { country: "EH", countryName: "Western Sahara", currency: "MAD", currencyName: "Moroccan Dirham" },
173
+ { country: "ER", countryName: "Eritrea", currency: "ERN", currencyName: "Eritrean Nakfa" },
174
+ { country: "ES", countryName: "Spain", currency: "EUR", currencyName: "Euro" },
175
+ { country: "ET", countryName: "Ethiopia", currency: "ETB", currencyName: "Ethiopian Birr" },
176
+ { country: "FI", countryName: "Finland", currency: "EUR", currencyName: "Euro" },
177
+ { country: "FJ", countryName: "Fiji", currency: "FJD", currencyName: "Fijian Dollar" },
178
+ { country: "FK", countryName: "Falkland Islands", currency: "FKP", currencyName: "Falkland Islands Pound" },
179
+ { country: "FM", countryName: "Micronesia", currency: "USD", currencyName: "US Dollar" },
180
+ { country: "FO", countryName: "Faroe Islands", currency: "DKK", currencyName: "Danish Krone" },
181
+ { country: "FR", countryName: "France", currency: "EUR", currencyName: "Euro" },
182
+ { country: "GA", countryName: "Gabon", currency: "XAF", currencyName: "Central African CFA Franc" },
183
+ { country: "GB", countryName: "United Kingdom", currency: "GBP", currencyName: "British Pound" },
184
+ { country: "GD", countryName: "Grenada", currency: "XCD", currencyName: "East Caribbean Dollar" },
185
+ { country: "GE", countryName: "Georgia", currency: "GEL", currencyName: "Georgian Lari" },
186
+ { country: "GF", countryName: "French Guiana", currency: "EUR", currencyName: "Euro" },
187
+ { country: "GG", countryName: "Guernsey", currency: "GBP", currencyName: "British Pound" },
188
+ { country: "GH", countryName: "Ghana", currency: "GHS", currencyName: "Ghanaian Cedi" },
189
+ { country: "GI", countryName: "Gibraltar", currency: "GIP", currencyName: "Gibraltar Pound" },
190
+ { country: "GL", countryName: "Greenland", currency: "DKK", currencyName: "Danish Krone" },
191
+ { country: "GM", countryName: "Gambia", currency: "GMD", currencyName: "Gambian Dalasi" },
192
+ { country: "GN", countryName: "Guinea", currency: "GNF", currencyName: "Guinean Franc" },
193
+ { country: "GP", countryName: "Guadeloupe", currency: "EUR", currencyName: "Euro" },
194
+ { country: "GQ", countryName: "Equatorial Guinea", currency: "XAF", currencyName: "Central African CFA Franc" },
195
+ { country: "GR", countryName: "Greece", currency: "EUR", currencyName: "Euro" },
196
+ { country: "GS", countryName: "South Georgia and the South Sandwich Islands", currency: "GBP", currencyName: "British Pound" },
197
+ { country: "GT", countryName: "Guatemala", currency: "GTQ", currencyName: "Guatemalan Quetzal" },
198
+ { country: "GU", countryName: "Guam", currency: "USD", currencyName: "US Dollar" },
199
+ { country: "GW", countryName: "Guinea-Bissau", currency: "XOF", currencyName: "West African CFA Franc" },
200
+ { country: "GY", countryName: "Guyana", currency: "GYD", currencyName: "Guyanaese Dollar" },
201
+ { country: "HK", countryName: "Hong Kong", currency: "HKD", currencyName: "Hong Kong Dollar" },
202
+ { country: "HM", countryName: "Heard Island and McDonald Islands", currency: "AUD", currencyName: "Australian Dollar" },
203
+ { country: "HN", countryName: "Honduras", currency: "HNL", currencyName: "Honduran Lempira" },
204
+ { country: "HR", countryName: "Croatia", currency: "EUR", currencyName: "Euro" },
205
+ { country: "HT", countryName: "Haiti", currency: "HTG", currencyName: "Haitian Gourde" },
206
+ { country: "HU", countryName: "Hungary", currency: "HUF", currencyName: "Hungarian Forint" },
207
+ { country: "ID", countryName: "Indonesia", currency: "IDR", currencyName: "Indonesian Rupiah" },
208
+ { country: "IE", countryName: "Ireland", currency: "EUR", currencyName: "Euro" },
209
+ { country: "IL", countryName: "Israel", currency: "ILS", currencyName: "Israeli New Shekel" },
210
+ { country: "IM", countryName: "Isle of Man", currency: "GBP", currencyName: "British Pound" },
211
+ { country: "IN", countryName: "India", currency: "INR", currencyName: "Indian Rupee" },
212
+ { country: "IO", countryName: "British Indian Ocean Territory", currency: "USD", currencyName: "US Dollar" },
213
+ { country: "IQ", countryName: "Iraq", currency: "IQD", currencyName: "Iraqi Dinar" },
214
+ { country: "IR", countryName: "Iran", currency: "IRR", currencyName: "Iranian Rial" },
215
+ { country: "IS", countryName: "Iceland", currency: "ISK", currencyName: "Icelandic Kr\xF3na" },
216
+ { country: "IT", countryName: "Italy", currency: "EUR", currencyName: "Euro" },
217
+ { country: "JE", countryName: "Jersey", currency: "GBP", currencyName: "British Pound" },
218
+ { country: "JM", countryName: "Jamaica", currency: "JMD", currencyName: "Jamaican Dollar" },
219
+ { country: "JO", countryName: "Jordan", currency: "JOD", currencyName: "Jordanian Dinar" },
220
+ { country: "JP", countryName: "Japan", currency: "JPY", currencyName: "Japanese Yen" },
221
+ { country: "KE", countryName: "Kenya", currency: "KES", currencyName: "Kenyan Shilling" },
222
+ { country: "KG", countryName: "Kyrgyzstan", currency: "KGS", currencyName: "Kyrgystani Som" },
223
+ { country: "KH", countryName: "Cambodia", currency: "KHR", currencyName: "Cambodian Riel" },
224
+ { country: "KI", countryName: "Kiribati", currency: "AUD", currencyName: "Australian Dollar" },
225
+ { country: "KM", countryName: "Comoros", currency: "KMF", currencyName: "Comorian Franc" },
226
+ { country: "KN", countryName: "Saint Kitts and Nevis", currency: "XCD", currencyName: "East Caribbean Dollar" },
227
+ { country: "KP", countryName: "North Korea", currency: "KPW", currencyName: "North Korean Won" },
228
+ { country: "KR", countryName: "South Korea", currency: "KRW", currencyName: "South Korean Won" },
229
+ { country: "KW", countryName: "Kuwait", currency: "KWD", currencyName: "Kuwaiti Dinar" },
230
+ { country: "KY", countryName: "Cayman Islands", currency: "KYD", currencyName: "Cayman Islands Dollar" },
231
+ { country: "KZ", countryName: "Kazakhstan", currency: "KZT", currencyName: "Kazakhstani Tenge" },
232
+ { country: "LA", countryName: "Laos", currency: "LAK", currencyName: "Laotian Kip" },
233
+ { country: "LB", countryName: "Lebanon", currency: "LBP", currencyName: "Lebanese Pound" },
234
+ { country: "LC", countryName: "Saint Lucia", currency: "XCD", currencyName: "East Caribbean Dollar" },
235
+ { country: "LI", countryName: "Liechtenstein", currency: "CHF", currencyName: "Swiss Franc" },
236
+ { country: "LK", countryName: "Sri Lanka", currency: "LKR", currencyName: "Sri Lankan Rupee" },
237
+ { country: "LR", countryName: "Liberia", currency: "LRD", currencyName: "Liberian Dollar" },
238
+ { country: "LS", countryName: "Lesotho", currency: "LSL", currencyName: "Lesotho Loti" },
239
+ { country: "LT", countryName: "Lithuania", currency: "EUR", currencyName: "Euro" },
240
+ { country: "LU", countryName: "Luxembourg", currency: "EUR", currencyName: "Euro" },
241
+ { country: "LV", countryName: "Latvia", currency: "EUR", currencyName: "Euro" },
242
+ { country: "LY", countryName: "Libya", currency: "LYD", currencyName: "Libyan Dinar" },
243
+ { country: "MA", countryName: "Morocco", currency: "MAD", currencyName: "Moroccan Dirham" },
244
+ { country: "MC", countryName: "Monaco", currency: "EUR", currencyName: "Euro" },
245
+ { country: "MD", countryName: "Moldova", currency: "MDL", currencyName: "Moldovan Leu" },
246
+ { country: "ME", countryName: "Montenegro", currency: "EUR", currencyName: "Euro" },
247
+ { country: "MF", countryName: "Saint Martin", currency: "EUR", currencyName: "Euro" },
248
+ { country: "MG", countryName: "Madagascar", currency: "MGA", currencyName: "Malagasy Ariary" },
249
+ { country: "MH", countryName: "Marshall Islands", currency: "USD", currencyName: "US Dollar" },
250
+ { country: "MK", countryName: "North Macedonia", currency: "MKD", currencyName: "Macedonian Denar" },
251
+ { country: "ML", countryName: "Mali", currency: "XOF", currencyName: "West African CFA Franc" },
252
+ { country: "MM", countryName: "Myanmar", currency: "MMK", currencyName: "Myanmar Kyat" },
253
+ { country: "MN", countryName: "Mongolia", currency: "MNT", currencyName: "Mongolian Tugrik" },
254
+ { country: "MO", countryName: "Macao", currency: "MOP", currencyName: "Macanese Pataca" },
255
+ { country: "MP", countryName: "Northern Mariana Islands", currency: "USD", currencyName: "US Dollar" },
256
+ { country: "MQ", countryName: "Martinique", currency: "EUR", currencyName: "Euro" },
257
+ { country: "MR", countryName: "Mauritania", currency: "MRU", currencyName: "Mauritanian Ouguiya" },
258
+ { country: "MS", countryName: "Montserrat", currency: "XCD", currencyName: "East Caribbean Dollar" },
259
+ { country: "MT", countryName: "Malta", currency: "EUR", currencyName: "Euro" },
260
+ { country: "MU", countryName: "Mauritius", currency: "MUR", currencyName: "Mauritian Rupee" },
261
+ { country: "MV", countryName: "Maldives", currency: "MVR", currencyName: "Maldivian Rufiyaa" },
262
+ { country: "MW", countryName: "Malawi", currency: "MWK", currencyName: "Malawian Kwacha" },
263
+ { country: "MX", countryName: "Mexico", currency: "MXN", currencyName: "Mexican Peso" },
264
+ { country: "MY", countryName: "Malaysia", currency: "MYR", currencyName: "Malaysian Ringgit" },
265
+ { country: "MZ", countryName: "Mozambique", currency: "MZN", currencyName: "Mozambican Metical" },
266
+ { country: "NA", countryName: "Namibia", currency: "NAD", currencyName: "Namibian Dollar" },
267
+ { country: "NC", countryName: "New Caledonia", currency: "XPF", currencyName: "CFP Franc" },
268
+ { country: "NE", countryName: "Niger", currency: "XOF", currencyName: "West African CFA Franc" },
269
+ { country: "NF", countryName: "Norfolk Island", currency: "AUD", currencyName: "Australian Dollar" },
270
+ { country: "NG", countryName: "Nigeria", currency: "NGN", currencyName: "Nigerian Naira" },
271
+ { country: "NI", countryName: "Nicaragua", currency: "NIO", currencyName: "Nicaraguan C\xF3rdoba" },
272
+ { country: "NL", countryName: "Netherlands", currency: "EUR", currencyName: "Euro" },
273
+ { country: "NO", countryName: "Norway", currency: "NOK", currencyName: "Norwegian Krone" },
274
+ { country: "NP", countryName: "Nepal", currency: "NPR", currencyName: "Nepalese Rupee" },
275
+ { country: "NR", countryName: "Nauru", currency: "AUD", currencyName: "Australian Dollar" },
276
+ { country: "NU", countryName: "Niue", currency: "NZD", currencyName: "New Zealand Dollar" },
277
+ { country: "NZ", countryName: "New Zealand", currency: "NZD", currencyName: "New Zealand Dollar" },
278
+ { country: "OM", countryName: "Oman", currency: "OMR", currencyName: "Omani Rial" },
279
+ { country: "PA", countryName: "Panama", currency: "PAB", currencyName: "Panamanian Balboa" },
280
+ { country: "PE", countryName: "Peru", currency: "PEN", currencyName: "Peruvian Sol" },
281
+ { country: "PF", countryName: "French Polynesia", currency: "XPF", currencyName: "CFP Franc" },
282
+ { country: "PG", countryName: "Papua New Guinea", currency: "PGK", currencyName: "Papua New Guinean Kina" },
283
+ { country: "PH", countryName: "Philippines", currency: "PHP", currencyName: "Philippine Peso" },
284
+ { country: "PK", countryName: "Pakistan", currency: "PKR", currencyName: "Pakistani Rupee" },
285
+ { country: "PL", countryName: "Poland", currency: "PLN", currencyName: "Polish Z\u0142oty" },
286
+ { country: "PM", countryName: "Saint Pierre and Miquelon", currency: "EUR", currencyName: "Euro" },
287
+ { country: "PN", countryName: "Pitcairn", currency: "NZD", currencyName: "New Zealand Dollar" },
288
+ { country: "PR", countryName: "Puerto Rico", currency: "USD", currencyName: "US Dollar" },
289
+ { country: "PS", countryName: "Palestine", currency: "ILS", currencyName: "Israeli New Shekel" },
290
+ { country: "PT", countryName: "Portugal", currency: "EUR", currencyName: "Euro" },
291
+ { country: "PW", countryName: "Palau", currency: "USD", currencyName: "US Dollar" },
292
+ { country: "PY", countryName: "Paraguay", currency: "PYG", currencyName: "Paraguayan Guarani" },
293
+ { country: "QA", countryName: "Qatar", currency: "QAR", currencyName: "Qatari Riyal" },
294
+ { country: "RE", countryName: "R\xE9union", currency: "EUR", currencyName: "Euro" },
295
+ { country: "RO", countryName: "Romania", currency: "RON", currencyName: "Romanian Leu" },
296
+ { country: "RS", countryName: "Serbia", currency: "RSD", currencyName: "Serbian Dinar" },
297
+ { country: "RU", countryName: "Russia", currency: "RUB", currencyName: "Russian Ruble" },
298
+ { country: "RW", countryName: "Rwanda", currency: "RWF", currencyName: "Rwandan Franc" },
299
+ { country: "SA", countryName: "Saudi Arabia", currency: "SAR", currencyName: "Saudi Riyal" },
300
+ { country: "SB", countryName: "Solomon Islands", currency: "SBD", currencyName: "Solomon Islands Dollar" },
301
+ { country: "SC", countryName: "Seychelles", currency: "SCR", currencyName: "Seychellois Rupee" },
302
+ { country: "SD", countryName: "Sudan", currency: "SDG", currencyName: "Sudanese Pound" },
303
+ { country: "SE", countryName: "Sweden", currency: "SEK", currencyName: "Swedish Krona" },
304
+ { country: "SG", countryName: "Singapore", currency: "SGD", currencyName: "Singapore Dollar" },
305
+ { country: "SH", countryName: "Saint Helena, Ascension and Tristan da Cunha", currency: "SHP", currencyName: "Saint Helena Pound" },
306
+ { country: "SI", countryName: "Slovenia", currency: "EUR", currencyName: "Euro" },
307
+ { country: "SJ", countryName: "Svalbard and Jan Mayen", currency: "NOK", currencyName: "Norwegian Krone" },
308
+ { country: "SK", countryName: "Slovakia", currency: "EUR", currencyName: "Euro" },
309
+ { country: "SL", countryName: "Sierra Leone", currency: "SLE", currencyName: "Sierra Leonean Leone" },
310
+ { country: "SM", countryName: "San Marino", currency: "EUR", currencyName: "Euro" },
311
+ { country: "SN", countryName: "Senegal", currency: "XOF", currencyName: "West African CFA Franc" },
312
+ { country: "SO", countryName: "Somalia", currency: "SOS", currencyName: "Somali Shilling" },
313
+ { country: "SR", countryName: "Suriname", currency: "SRD", currencyName: "Surinamese Dollar" },
314
+ { country: "SS", countryName: "South Sudan", currency: "SSP", currencyName: "South Sudanese Pound" },
315
+ { country: "ST", countryName: "S\xE3o Tom\xE9 and Pr\xEDncipe", currency: "STN", currencyName: "S\xE3o Tom\xE9 and Pr\xEDncipe Dobra" },
316
+ { country: "SV", countryName: "El Salvador", currency: "USD", currencyName: "US Dollar" },
317
+ { country: "SX", countryName: "Sint Maarten", currency: "ANG", currencyName: "Netherlands Antillean Guilder" },
318
+ { country: "SY", countryName: "Syria", currency: "SYP", currencyName: "Syrian Pound" },
319
+ { country: "SZ", countryName: "Eswatini", currency: "SZL", currencyName: "Swazi Lilangeni" },
320
+ { country: "TC", countryName: "Turks and Caicos Islands", currency: "USD", currencyName: "US Dollar" },
321
+ { country: "TD", countryName: "Chad", currency: "XAF", currencyName: "Central African CFA Franc" },
322
+ { country: "TF", countryName: "French Southern Territories", currency: "EUR", currencyName: "Euro" },
323
+ { country: "TG", countryName: "Togo", currency: "XOF", currencyName: "West African CFA Franc" },
324
+ { country: "TH", countryName: "Thailand", currency: "THB", currencyName: "Thai Baht" },
325
+ { country: "TJ", countryName: "Tajikistan", currency: "TJS", currencyName: "Tajikistani Somoni" },
326
+ { country: "TK", countryName: "Tokelau", currency: "NZD", currencyName: "New Zealand Dollar" },
327
+ { country: "TL", countryName: "Timor-Leste", currency: "USD", currencyName: "US Dollar" },
328
+ { country: "TM", countryName: "Turkmenistan", currency: "TMT", currencyName: "Turkmenistani Manat" },
329
+ { country: "TN", countryName: "Tunisia", currency: "TND", currencyName: "Tunisian Dinar" },
330
+ { country: "TO", countryName: "Tonga", currency: "TOP", currencyName: "Tongan Pa\u02BBanga" },
331
+ { country: "TR", countryName: "Turkey", currency: "TRY", currencyName: "Turkish Lira" },
332
+ { country: "TT", countryName: "Trinidad and Tobago", currency: "TTD", currencyName: "Trinidad and Tobago Dollar" },
333
+ { country: "TV", countryName: "Tuvalu", currency: "AUD", currencyName: "Australian Dollar" },
334
+ { country: "TW", countryName: "Taiwan", currency: "TWD", currencyName: "New Taiwan Dollar" },
335
+ { country: "TZ", countryName: "Tanzania", currency: "TZS", currencyName: "Tanzanian Shilling" },
336
+ { country: "UA", countryName: "Ukraine", currency: "UAH", currencyName: "Ukrainian Hryvnia" },
337
+ { country: "UG", countryName: "Uganda", currency: "UGX", currencyName: "Ugandan Shilling" },
338
+ { country: "UM", countryName: "United States Minor Outlying Islands", currency: "USD", currencyName: "US Dollar" },
339
+ { country: "US", countryName: "United States", currency: "USD", currencyName: "US Dollar" },
340
+ { country: "UY", countryName: "Uruguay", currency: "UYU", currencyName: "Uruguayan Peso" },
341
+ { country: "UZ", countryName: "Uzbekistan", currency: "UZS", currencyName: "Uzbekistani Som" },
342
+ { country: "VA", countryName: "Vatican City", currency: "EUR", currencyName: "Euro" },
343
+ { country: "VC", countryName: "Saint Vincent and the Grenadines", currency: "XCD", currencyName: "East Caribbean Dollar" },
344
+ { country: "VE", countryName: "Venezuela", currency: "VES", currencyName: "Venezuelan Bol\xEDvar" },
345
+ { country: "VG", countryName: "British Virgin Islands", currency: "USD", currencyName: "US Dollar" },
346
+ { country: "VI", countryName: "United States Virgin Islands", currency: "USD", currencyName: "US Dollar" },
347
+ { country: "VN", countryName: "Vietnam", currency: "VND", currencyName: "Vietnamese Dong" },
348
+ { country: "VU", countryName: "Vanuatu", currency: "VUV", currencyName: "Vanuatu Vatu" },
349
+ { country: "WF", countryName: "Wallis and Futuna", currency: "XPF", currencyName: "CFP Franc" },
350
+ { country: "WS", countryName: "Samoa", currency: "WST", currencyName: "Samoan Tala" },
351
+ { country: "YE", countryName: "Yemen", currency: "YER", currencyName: "Yemeni Rial" },
352
+ { country: "YT", countryName: "Mayotte", currency: "EUR", currencyName: "Euro" },
353
+ { country: "ZA", countryName: "South Africa", currency: "ZAR", currencyName: "South African Rand" },
354
+ { country: "ZM", countryName: "Zambia", currency: "ZMW", currencyName: "Zambian Kwacha" },
355
+ { country: "ZW", countryName: "Zimbabwe", currency: "ZWL", currencyName: "Zimbabwean Dollar" }
356
+ ];
357
+ var CountryCode = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.country]));
358
+ var uniqueCurrencies = /* @__PURE__ */ new Map();
359
+ for (const entry of COUNTRY_CURRENCY_LIST) {
360
+ if (!uniqueCurrencies.has(entry.currency)) uniqueCurrencies.set(entry.currency, entry.currencyName);
361
+ }
362
+ var FiatCurrencyCode = Object.fromEntries([...uniqueCurrencies.keys()].map((code) => [code, code]));
363
+ var COUNTRY_NAMES = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.countryName]));
364
+ var FIAT_CURRENCY_NAMES = Object.fromEntries(uniqueCurrencies);
365
+ var COUNTRY_TO_CURRENCY = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.currency]));
366
+ var PAYMENT_METHOD_CATEGORIES = ["card", "apple_pay", "google_pay", "bank_transfer"];
367
+
99
368
  // src/schemas.ts
100
369
  var import_zod = require("zod");
370
+ var FIAT_CURRENCY_CODES = Object.keys(FIAT_CURRENCY_NAMES);
101
371
  var obj = (shape) => import_zod.z.object(shape).strict();
102
372
  var JsonSchema = import_zod.z.lazy(
103
373
  () => import_zod.z.union([
@@ -155,7 +425,7 @@ var $failureReason = import_zod.z.union([
155
425
  })
156
426
  ]);
157
427
  var FailureReasonSchema = $failureReason;
158
- var $money = obj({ currency: import_zod.z.string(), amount: import_zod.z.string() });
428
+ var $money = obj({ currency: import_zod.z.enum(FIAT_CURRENCY_CODES), amount: import_zod.z.string() });
159
429
  var FiatAmountSchema = $money;
160
430
  var $cryptoAmount = obj({
161
431
  currency: import_zod.z.string(),
@@ -172,7 +442,7 @@ var $quote = obj({
172
442
  rate: import_zod.z.string(),
173
443
  totalFee: import_zod.z.string(),
174
444
  feeBreakdown: import_zod.z.array($feeLine),
175
- paymentMethod: import_zod.z.string(),
445
+ paymentMethod: import_zod.z.enum(PAYMENT_METHOD_CATEGORIES),
176
446
  expiresAt: import_zod.z.string()
177
447
  });
178
448
  var QuoteSchema = $quote;
@@ -182,7 +452,7 @@ var $orderRef = obj({
182
452
  orderId: import_zod.z.string(),
183
453
  fiat: $money,
184
454
  crypto: $cryptoAmount,
185
- method: import_zod.z.string(),
455
+ method: import_zod.z.enum(PAYMENT_METHOD_CATEGORIES),
186
456
  createdAt: import_zod.z.string(),
187
457
  status: $orderStatus
188
458
  });
@@ -191,7 +461,7 @@ var $orderSummary = obj({
191
461
  orderId: import_zod.z.string(),
192
462
  fiat: $money,
193
463
  crypto: $cryptoAmount.optional(),
194
- method: import_zod.z.string(),
464
+ method: import_zod.z.enum(PAYMENT_METHOD_CATEGORIES),
195
465
  createdAt: import_zod.z.string(),
196
466
  instrument: $instrument.optional()
197
467
  });
@@ -201,7 +471,7 @@ var StatusHistoryEntrySchema = $statusHistoryEntry;
201
471
  var $tx = obj({ chainId: import_zod.z.number(), hash: import_zod.z.string() });
202
472
  var TxSchema = $tx;
203
473
  var $refund = obj({
204
- currency: import_zod.z.string(),
474
+ currency: import_zod.z.enum(FIAT_CURRENCY_CODES),
205
475
  amount: import_zod.z.string(),
206
476
  expectedBy: import_zod.z.string()
207
477
  });
@@ -440,7 +710,7 @@ var StepResponseFragmentSchema = $stepResponseFragment;
440
710
  var EnvelopeSchema = StepResponseSchema;
441
711
 
442
712
  // src/table.ts
443
- var TABLE_VERSION = "0.2.1";
713
+ var TABLE_VERSION = "0.4.0";
444
714
  var TERMINAL_ORDER_STATUSES = [
445
715
  "SETTLED",
446
716
  "EXPIRED",