@fun-xyz/fiat-contract 0.2.1 → 0.3.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.mjs CHANGED
@@ -8,10 +8,274 @@ import {
8
8
  isTerminal,
9
9
  stateKey,
10
10
  tableEntry
11
- } from "./chunk-IUYT5BR2.mjs";
11
+ } from "./chunk-UWR2DRHB.mjs";
12
+
13
+ // src/codes.ts
14
+ var COUNTRY_CURRENCY_LIST = [
15
+ { country: "AD", countryName: "Andorra", currency: "EUR", currencyName: "Euro" },
16
+ { country: "AE", countryName: "United Arab Emirates", currency: "AED", currencyName: "UAE Dirham" },
17
+ { country: "AF", countryName: "Afghanistan", currency: "AFN", currencyName: "Afghan Afghani" },
18
+ { country: "AG", countryName: "Antigua and Barbuda", currency: "XCD", currencyName: "East Caribbean Dollar" },
19
+ { country: "AI", countryName: "Anguilla", currency: "XCD", currencyName: "East Caribbean Dollar" },
20
+ { country: "AL", countryName: "Albania", currency: "ALL", currencyName: "Albanian Lek" },
21
+ { country: "AM", countryName: "Armenia", currency: "AMD", currencyName: "Armenian Dram" },
22
+ { country: "AO", countryName: "Angola", currency: "AOA", currencyName: "Angolan Kwanza" },
23
+ { country: "AQ", countryName: "Antarctica", currency: "USD", currencyName: "US Dollar" },
24
+ { country: "AR", countryName: "Argentina", currency: "ARS", currencyName: "Argentine Peso" },
25
+ { country: "AS", countryName: "American Samoa", currency: "USD", currencyName: "US Dollar" },
26
+ { country: "AT", countryName: "Austria", currency: "EUR", currencyName: "Euro" },
27
+ { country: "AU", countryName: "Australia", currency: "AUD", currencyName: "Australian Dollar" },
28
+ { country: "AW", countryName: "Aruba", currency: "AWG", currencyName: "Aruban Florin" },
29
+ { country: "AX", countryName: "\xC5land Islands", currency: "EUR", currencyName: "Euro" },
30
+ { country: "AZ", countryName: "Azerbaijan", currency: "AZN", currencyName: "Azerbaijani Manat" },
31
+ { country: "BA", countryName: "Bosnia and Herzegovina", currency: "BAM", currencyName: "Bosnia-Herzegovina Convertible Mark" },
32
+ { country: "BB", countryName: "Barbados", currency: "BBD", currencyName: "Barbadian Dollar" },
33
+ { country: "BD", countryName: "Bangladesh", currency: "BDT", currencyName: "Bangladeshi Taka" },
34
+ { country: "BE", countryName: "Belgium", currency: "EUR", currencyName: "Euro" },
35
+ { country: "BF", countryName: "Burkina Faso", currency: "XOF", currencyName: "West African CFA Franc" },
36
+ { country: "BG", countryName: "Bulgaria", currency: "BGN", currencyName: "Bulgarian Lev" },
37
+ { country: "BH", countryName: "Bahrain", currency: "BHD", currencyName: "Bahraini Dinar" },
38
+ { country: "BI", countryName: "Burundi", currency: "BIF", currencyName: "Burundian Franc" },
39
+ { country: "BJ", countryName: "Benin", currency: "XOF", currencyName: "West African CFA Franc" },
40
+ { country: "BL", countryName: "Saint Barth\xE9lemy", currency: "EUR", currencyName: "Euro" },
41
+ { country: "BM", countryName: "Bermuda", currency: "BMD", currencyName: "Bermudan Dollar" },
42
+ { country: "BN", countryName: "Brunei", currency: "BND", currencyName: "Brunei Dollar" },
43
+ { country: "BO", countryName: "Bolivia", currency: "BOB", currencyName: "Bolivian Boliviano" },
44
+ { country: "BQ", countryName: "Bonaire, Sint Eustatius and Saba", currency: "USD", currencyName: "US Dollar" },
45
+ { country: "BR", countryName: "Brazil", currency: "BRL", currencyName: "Brazilian Real" },
46
+ { country: "BS", countryName: "Bahamas", currency: "BSD", currencyName: "Bahamian Dollar" },
47
+ { country: "BT", countryName: "Bhutan", currency: "BTN", currencyName: "Bhutanese Ngultrum" },
48
+ { country: "BV", countryName: "Bouvet Island", currency: "NOK", currencyName: "Norwegian Krone" },
49
+ { country: "BW", countryName: "Botswana", currency: "BWP", currencyName: "Botswanan Pula" },
50
+ { country: "BY", countryName: "Belarus", currency: "BYN", currencyName: "Belarusian Ruble" },
51
+ { country: "BZ", countryName: "Belize", currency: "BZD", currencyName: "Belize Dollar" },
52
+ { country: "CA", countryName: "Canada", currency: "CAD", currencyName: "Canadian Dollar" },
53
+ { country: "CC", countryName: "Cocos (Keeling) Islands", currency: "AUD", currencyName: "Australian Dollar" },
54
+ { country: "CD", countryName: "DR Congo", currency: "CDF", currencyName: "Congolese Franc" },
55
+ { country: "CF", countryName: "Central African Republic", currency: "XAF", currencyName: "Central African CFA Franc" },
56
+ { country: "CG", countryName: "Congo", currency: "XAF", currencyName: "Central African CFA Franc" },
57
+ { country: "CH", countryName: "Switzerland", currency: "CHF", currencyName: "Swiss Franc" },
58
+ { country: "CI", countryName: "C\xF4te d'Ivoire", currency: "XOF", currencyName: "West African CFA Franc" },
59
+ { country: "CK", countryName: "Cook Islands", currency: "NZD", currencyName: "New Zealand Dollar" },
60
+ { country: "CL", countryName: "Chile", currency: "CLP", currencyName: "Chilean Peso" },
61
+ { country: "CM", countryName: "Cameroon", currency: "XAF", currencyName: "Central African CFA Franc" },
62
+ { country: "CN", countryName: "China", currency: "CNY", currencyName: "Chinese Yuan" },
63
+ { country: "CO", countryName: "Colombia", currency: "COP", currencyName: "Colombian Peso" },
64
+ { country: "CR", countryName: "Costa Rica", currency: "CRC", currencyName: "Costa Rican Col\xF3n" },
65
+ { country: "CU", countryName: "Cuba", currency: "CUP", currencyName: "Cuban Peso" },
66
+ { country: "CV", countryName: "Cabo Verde", currency: "CVE", currencyName: "Cape Verdean Escudo" },
67
+ { country: "CW", countryName: "Cura\xE7ao", currency: "ANG", currencyName: "Netherlands Antillean Guilder" },
68
+ { country: "CX", countryName: "Christmas Island", currency: "AUD", currencyName: "Australian Dollar" },
69
+ { country: "CY", countryName: "Cyprus", currency: "EUR", currencyName: "Euro" },
70
+ { country: "CZ", countryName: "Czechia", currency: "CZK", currencyName: "Czech Koruna" },
71
+ { country: "DE", countryName: "Germany", currency: "EUR", currencyName: "Euro" },
72
+ { country: "DJ", countryName: "Djibouti", currency: "DJF", currencyName: "Djiboutian Franc" },
73
+ { country: "DK", countryName: "Denmark", currency: "DKK", currencyName: "Danish Krone" },
74
+ { country: "DM", countryName: "Dominica", currency: "XCD", currencyName: "East Caribbean Dollar" },
75
+ { country: "DO", countryName: "Dominican Republic", currency: "DOP", currencyName: "Dominican Peso" },
76
+ { country: "DZ", countryName: "Algeria", currency: "DZD", currencyName: "Algerian Dinar" },
77
+ { country: "EC", countryName: "Ecuador", currency: "USD", currencyName: "US Dollar" },
78
+ { country: "EE", countryName: "Estonia", currency: "EUR", currencyName: "Euro" },
79
+ { country: "EG", countryName: "Egypt", currency: "EGP", currencyName: "Egyptian Pound" },
80
+ { country: "EH", countryName: "Western Sahara", currency: "MAD", currencyName: "Moroccan Dirham" },
81
+ { country: "ER", countryName: "Eritrea", currency: "ERN", currencyName: "Eritrean Nakfa" },
82
+ { country: "ES", countryName: "Spain", currency: "EUR", currencyName: "Euro" },
83
+ { country: "ET", countryName: "Ethiopia", currency: "ETB", currencyName: "Ethiopian Birr" },
84
+ { country: "FI", countryName: "Finland", currency: "EUR", currencyName: "Euro" },
85
+ { country: "FJ", countryName: "Fiji", currency: "FJD", currencyName: "Fijian Dollar" },
86
+ { country: "FK", countryName: "Falkland Islands", currency: "FKP", currencyName: "Falkland Islands Pound" },
87
+ { country: "FM", countryName: "Micronesia", currency: "USD", currencyName: "US Dollar" },
88
+ { country: "FO", countryName: "Faroe Islands", currency: "DKK", currencyName: "Danish Krone" },
89
+ { country: "FR", countryName: "France", currency: "EUR", currencyName: "Euro" },
90
+ { country: "GA", countryName: "Gabon", currency: "XAF", currencyName: "Central African CFA Franc" },
91
+ { country: "GB", countryName: "United Kingdom", currency: "GBP", currencyName: "British Pound" },
92
+ { country: "GD", countryName: "Grenada", currency: "XCD", currencyName: "East Caribbean Dollar" },
93
+ { country: "GE", countryName: "Georgia", currency: "GEL", currencyName: "Georgian Lari" },
94
+ { country: "GF", countryName: "French Guiana", currency: "EUR", currencyName: "Euro" },
95
+ { country: "GG", countryName: "Guernsey", currency: "GBP", currencyName: "British Pound" },
96
+ { country: "GH", countryName: "Ghana", currency: "GHS", currencyName: "Ghanaian Cedi" },
97
+ { country: "GI", countryName: "Gibraltar", currency: "GIP", currencyName: "Gibraltar Pound" },
98
+ { country: "GL", countryName: "Greenland", currency: "DKK", currencyName: "Danish Krone" },
99
+ { country: "GM", countryName: "Gambia", currency: "GMD", currencyName: "Gambian Dalasi" },
100
+ { country: "GN", countryName: "Guinea", currency: "GNF", currencyName: "Guinean Franc" },
101
+ { country: "GP", countryName: "Guadeloupe", currency: "EUR", currencyName: "Euro" },
102
+ { country: "GQ", countryName: "Equatorial Guinea", currency: "XAF", currencyName: "Central African CFA Franc" },
103
+ { country: "GR", countryName: "Greece", currency: "EUR", currencyName: "Euro" },
104
+ { country: "GS", countryName: "South Georgia and the South Sandwich Islands", currency: "GBP", currencyName: "British Pound" },
105
+ { country: "GT", countryName: "Guatemala", currency: "GTQ", currencyName: "Guatemalan Quetzal" },
106
+ { country: "GU", countryName: "Guam", currency: "USD", currencyName: "US Dollar" },
107
+ { country: "GW", countryName: "Guinea-Bissau", currency: "XOF", currencyName: "West African CFA Franc" },
108
+ { country: "GY", countryName: "Guyana", currency: "GYD", currencyName: "Guyanaese Dollar" },
109
+ { country: "HK", countryName: "Hong Kong", currency: "HKD", currencyName: "Hong Kong Dollar" },
110
+ { country: "HM", countryName: "Heard Island and McDonald Islands", currency: "AUD", currencyName: "Australian Dollar" },
111
+ { country: "HN", countryName: "Honduras", currency: "HNL", currencyName: "Honduran Lempira" },
112
+ { country: "HR", countryName: "Croatia", currency: "EUR", currencyName: "Euro" },
113
+ { country: "HT", countryName: "Haiti", currency: "HTG", currencyName: "Haitian Gourde" },
114
+ { country: "HU", countryName: "Hungary", currency: "HUF", currencyName: "Hungarian Forint" },
115
+ { country: "ID", countryName: "Indonesia", currency: "IDR", currencyName: "Indonesian Rupiah" },
116
+ { country: "IE", countryName: "Ireland", currency: "EUR", currencyName: "Euro" },
117
+ { country: "IL", countryName: "Israel", currency: "ILS", currencyName: "Israeli New Shekel" },
118
+ { country: "IM", countryName: "Isle of Man", currency: "GBP", currencyName: "British Pound" },
119
+ { country: "IN", countryName: "India", currency: "INR", currencyName: "Indian Rupee" },
120
+ { country: "IO", countryName: "British Indian Ocean Territory", currency: "USD", currencyName: "US Dollar" },
121
+ { country: "IQ", countryName: "Iraq", currency: "IQD", currencyName: "Iraqi Dinar" },
122
+ { country: "IR", countryName: "Iran", currency: "IRR", currencyName: "Iranian Rial" },
123
+ { country: "IS", countryName: "Iceland", currency: "ISK", currencyName: "Icelandic Kr\xF3na" },
124
+ { country: "IT", countryName: "Italy", currency: "EUR", currencyName: "Euro" },
125
+ { country: "JE", countryName: "Jersey", currency: "GBP", currencyName: "British Pound" },
126
+ { country: "JM", countryName: "Jamaica", currency: "JMD", currencyName: "Jamaican Dollar" },
127
+ { country: "JO", countryName: "Jordan", currency: "JOD", currencyName: "Jordanian Dinar" },
128
+ { country: "JP", countryName: "Japan", currency: "JPY", currencyName: "Japanese Yen" },
129
+ { country: "KE", countryName: "Kenya", currency: "KES", currencyName: "Kenyan Shilling" },
130
+ { country: "KG", countryName: "Kyrgyzstan", currency: "KGS", currencyName: "Kyrgystani Som" },
131
+ { country: "KH", countryName: "Cambodia", currency: "KHR", currencyName: "Cambodian Riel" },
132
+ { country: "KI", countryName: "Kiribati", currency: "AUD", currencyName: "Australian Dollar" },
133
+ { country: "KM", countryName: "Comoros", currency: "KMF", currencyName: "Comorian Franc" },
134
+ { country: "KN", countryName: "Saint Kitts and Nevis", currency: "XCD", currencyName: "East Caribbean Dollar" },
135
+ { country: "KP", countryName: "North Korea", currency: "KPW", currencyName: "North Korean Won" },
136
+ { country: "KR", countryName: "South Korea", currency: "KRW", currencyName: "South Korean Won" },
137
+ { country: "KW", countryName: "Kuwait", currency: "KWD", currencyName: "Kuwaiti Dinar" },
138
+ { country: "KY", countryName: "Cayman Islands", currency: "KYD", currencyName: "Cayman Islands Dollar" },
139
+ { country: "KZ", countryName: "Kazakhstan", currency: "KZT", currencyName: "Kazakhstani Tenge" },
140
+ { country: "LA", countryName: "Laos", currency: "LAK", currencyName: "Laotian Kip" },
141
+ { country: "LB", countryName: "Lebanon", currency: "LBP", currencyName: "Lebanese Pound" },
142
+ { country: "LC", countryName: "Saint Lucia", currency: "XCD", currencyName: "East Caribbean Dollar" },
143
+ { country: "LI", countryName: "Liechtenstein", currency: "CHF", currencyName: "Swiss Franc" },
144
+ { country: "LK", countryName: "Sri Lanka", currency: "LKR", currencyName: "Sri Lankan Rupee" },
145
+ { country: "LR", countryName: "Liberia", currency: "LRD", currencyName: "Liberian Dollar" },
146
+ { country: "LS", countryName: "Lesotho", currency: "LSL", currencyName: "Lesotho Loti" },
147
+ { country: "LT", countryName: "Lithuania", currency: "EUR", currencyName: "Euro" },
148
+ { country: "LU", countryName: "Luxembourg", currency: "EUR", currencyName: "Euro" },
149
+ { country: "LV", countryName: "Latvia", currency: "EUR", currencyName: "Euro" },
150
+ { country: "LY", countryName: "Libya", currency: "LYD", currencyName: "Libyan Dinar" },
151
+ { country: "MA", countryName: "Morocco", currency: "MAD", currencyName: "Moroccan Dirham" },
152
+ { country: "MC", countryName: "Monaco", currency: "EUR", currencyName: "Euro" },
153
+ { country: "MD", countryName: "Moldova", currency: "MDL", currencyName: "Moldovan Leu" },
154
+ { country: "ME", countryName: "Montenegro", currency: "EUR", currencyName: "Euro" },
155
+ { country: "MF", countryName: "Saint Martin", currency: "EUR", currencyName: "Euro" },
156
+ { country: "MG", countryName: "Madagascar", currency: "MGA", currencyName: "Malagasy Ariary" },
157
+ { country: "MH", countryName: "Marshall Islands", currency: "USD", currencyName: "US Dollar" },
158
+ { country: "MK", countryName: "North Macedonia", currency: "MKD", currencyName: "Macedonian Denar" },
159
+ { country: "ML", countryName: "Mali", currency: "XOF", currencyName: "West African CFA Franc" },
160
+ { country: "MM", countryName: "Myanmar", currency: "MMK", currencyName: "Myanmar Kyat" },
161
+ { country: "MN", countryName: "Mongolia", currency: "MNT", currencyName: "Mongolian Tugrik" },
162
+ { country: "MO", countryName: "Macao", currency: "MOP", currencyName: "Macanese Pataca" },
163
+ { country: "MP", countryName: "Northern Mariana Islands", currency: "USD", currencyName: "US Dollar" },
164
+ { country: "MQ", countryName: "Martinique", currency: "EUR", currencyName: "Euro" },
165
+ { country: "MR", countryName: "Mauritania", currency: "MRU", currencyName: "Mauritanian Ouguiya" },
166
+ { country: "MS", countryName: "Montserrat", currency: "XCD", currencyName: "East Caribbean Dollar" },
167
+ { country: "MT", countryName: "Malta", currency: "EUR", currencyName: "Euro" },
168
+ { country: "MU", countryName: "Mauritius", currency: "MUR", currencyName: "Mauritian Rupee" },
169
+ { country: "MV", countryName: "Maldives", currency: "MVR", currencyName: "Maldivian Rufiyaa" },
170
+ { country: "MW", countryName: "Malawi", currency: "MWK", currencyName: "Malawian Kwacha" },
171
+ { country: "MX", countryName: "Mexico", currency: "MXN", currencyName: "Mexican Peso" },
172
+ { country: "MY", countryName: "Malaysia", currency: "MYR", currencyName: "Malaysian Ringgit" },
173
+ { country: "MZ", countryName: "Mozambique", currency: "MZN", currencyName: "Mozambican Metical" },
174
+ { country: "NA", countryName: "Namibia", currency: "NAD", currencyName: "Namibian Dollar" },
175
+ { country: "NC", countryName: "New Caledonia", currency: "XPF", currencyName: "CFP Franc" },
176
+ { country: "NE", countryName: "Niger", currency: "XOF", currencyName: "West African CFA Franc" },
177
+ { country: "NF", countryName: "Norfolk Island", currency: "AUD", currencyName: "Australian Dollar" },
178
+ { country: "NG", countryName: "Nigeria", currency: "NGN", currencyName: "Nigerian Naira" },
179
+ { country: "NI", countryName: "Nicaragua", currency: "NIO", currencyName: "Nicaraguan C\xF3rdoba" },
180
+ { country: "NL", countryName: "Netherlands", currency: "EUR", currencyName: "Euro" },
181
+ { country: "NO", countryName: "Norway", currency: "NOK", currencyName: "Norwegian Krone" },
182
+ { country: "NP", countryName: "Nepal", currency: "NPR", currencyName: "Nepalese Rupee" },
183
+ { country: "NR", countryName: "Nauru", currency: "AUD", currencyName: "Australian Dollar" },
184
+ { country: "NU", countryName: "Niue", currency: "NZD", currencyName: "New Zealand Dollar" },
185
+ { country: "NZ", countryName: "New Zealand", currency: "NZD", currencyName: "New Zealand Dollar" },
186
+ { country: "OM", countryName: "Oman", currency: "OMR", currencyName: "Omani Rial" },
187
+ { country: "PA", countryName: "Panama", currency: "PAB", currencyName: "Panamanian Balboa" },
188
+ { country: "PE", countryName: "Peru", currency: "PEN", currencyName: "Peruvian Sol" },
189
+ { country: "PF", countryName: "French Polynesia", currency: "XPF", currencyName: "CFP Franc" },
190
+ { country: "PG", countryName: "Papua New Guinea", currency: "PGK", currencyName: "Papua New Guinean Kina" },
191
+ { country: "PH", countryName: "Philippines", currency: "PHP", currencyName: "Philippine Peso" },
192
+ { country: "PK", countryName: "Pakistan", currency: "PKR", currencyName: "Pakistani Rupee" },
193
+ { country: "PL", countryName: "Poland", currency: "PLN", currencyName: "Polish Z\u0142oty" },
194
+ { country: "PM", countryName: "Saint Pierre and Miquelon", currency: "EUR", currencyName: "Euro" },
195
+ { country: "PN", countryName: "Pitcairn", currency: "NZD", currencyName: "New Zealand Dollar" },
196
+ { country: "PR", countryName: "Puerto Rico", currency: "USD", currencyName: "US Dollar" },
197
+ { country: "PS", countryName: "Palestine", currency: "ILS", currencyName: "Israeli New Shekel" },
198
+ { country: "PT", countryName: "Portugal", currency: "EUR", currencyName: "Euro" },
199
+ { country: "PW", countryName: "Palau", currency: "USD", currencyName: "US Dollar" },
200
+ { country: "PY", countryName: "Paraguay", currency: "PYG", currencyName: "Paraguayan Guarani" },
201
+ { country: "QA", countryName: "Qatar", currency: "QAR", currencyName: "Qatari Riyal" },
202
+ { country: "RE", countryName: "R\xE9union", currency: "EUR", currencyName: "Euro" },
203
+ { country: "RO", countryName: "Romania", currency: "RON", currencyName: "Romanian Leu" },
204
+ { country: "RS", countryName: "Serbia", currency: "RSD", currencyName: "Serbian Dinar" },
205
+ { country: "RU", countryName: "Russia", currency: "RUB", currencyName: "Russian Ruble" },
206
+ { country: "RW", countryName: "Rwanda", currency: "RWF", currencyName: "Rwandan Franc" },
207
+ { country: "SA", countryName: "Saudi Arabia", currency: "SAR", currencyName: "Saudi Riyal" },
208
+ { country: "SB", countryName: "Solomon Islands", currency: "SBD", currencyName: "Solomon Islands Dollar" },
209
+ { country: "SC", countryName: "Seychelles", currency: "SCR", currencyName: "Seychellois Rupee" },
210
+ { country: "SD", countryName: "Sudan", currency: "SDG", currencyName: "Sudanese Pound" },
211
+ { country: "SE", countryName: "Sweden", currency: "SEK", currencyName: "Swedish Krona" },
212
+ { country: "SG", countryName: "Singapore", currency: "SGD", currencyName: "Singapore Dollar" },
213
+ { country: "SH", countryName: "Saint Helena, Ascension and Tristan da Cunha", currency: "SHP", currencyName: "Saint Helena Pound" },
214
+ { country: "SI", countryName: "Slovenia", currency: "EUR", currencyName: "Euro" },
215
+ { country: "SJ", countryName: "Svalbard and Jan Mayen", currency: "NOK", currencyName: "Norwegian Krone" },
216
+ { country: "SK", countryName: "Slovakia", currency: "EUR", currencyName: "Euro" },
217
+ { country: "SL", countryName: "Sierra Leone", currency: "SLE", currencyName: "Sierra Leonean Leone" },
218
+ { country: "SM", countryName: "San Marino", currency: "EUR", currencyName: "Euro" },
219
+ { country: "SN", countryName: "Senegal", currency: "XOF", currencyName: "West African CFA Franc" },
220
+ { country: "SO", countryName: "Somalia", currency: "SOS", currencyName: "Somali Shilling" },
221
+ { country: "SR", countryName: "Suriname", currency: "SRD", currencyName: "Surinamese Dollar" },
222
+ { country: "SS", countryName: "South Sudan", currency: "SSP", currencyName: "South Sudanese Pound" },
223
+ { country: "ST", countryName: "S\xE3o Tom\xE9 and Pr\xEDncipe", currency: "STN", currencyName: "S\xE3o Tom\xE9 and Pr\xEDncipe Dobra" },
224
+ { country: "SV", countryName: "El Salvador", currency: "USD", currencyName: "US Dollar" },
225
+ { country: "SX", countryName: "Sint Maarten", currency: "ANG", currencyName: "Netherlands Antillean Guilder" },
226
+ { country: "SY", countryName: "Syria", currency: "SYP", currencyName: "Syrian Pound" },
227
+ { country: "SZ", countryName: "Eswatini", currency: "SZL", currencyName: "Swazi Lilangeni" },
228
+ { country: "TC", countryName: "Turks and Caicos Islands", currency: "USD", currencyName: "US Dollar" },
229
+ { country: "TD", countryName: "Chad", currency: "XAF", currencyName: "Central African CFA Franc" },
230
+ { country: "TF", countryName: "French Southern Territories", currency: "EUR", currencyName: "Euro" },
231
+ { country: "TG", countryName: "Togo", currency: "XOF", currencyName: "West African CFA Franc" },
232
+ { country: "TH", countryName: "Thailand", currency: "THB", currencyName: "Thai Baht" },
233
+ { country: "TJ", countryName: "Tajikistan", currency: "TJS", currencyName: "Tajikistani Somoni" },
234
+ { country: "TK", countryName: "Tokelau", currency: "NZD", currencyName: "New Zealand Dollar" },
235
+ { country: "TL", countryName: "Timor-Leste", currency: "USD", currencyName: "US Dollar" },
236
+ { country: "TM", countryName: "Turkmenistan", currency: "TMT", currencyName: "Turkmenistani Manat" },
237
+ { country: "TN", countryName: "Tunisia", currency: "TND", currencyName: "Tunisian Dinar" },
238
+ { country: "TO", countryName: "Tonga", currency: "TOP", currencyName: "Tongan Pa\u02BBanga" },
239
+ { country: "TR", countryName: "Turkey", currency: "TRY", currencyName: "Turkish Lira" },
240
+ { country: "TT", countryName: "Trinidad and Tobago", currency: "TTD", currencyName: "Trinidad and Tobago Dollar" },
241
+ { country: "TV", countryName: "Tuvalu", currency: "AUD", currencyName: "Australian Dollar" },
242
+ { country: "TW", countryName: "Taiwan", currency: "TWD", currencyName: "New Taiwan Dollar" },
243
+ { country: "TZ", countryName: "Tanzania", currency: "TZS", currencyName: "Tanzanian Shilling" },
244
+ { country: "UA", countryName: "Ukraine", currency: "UAH", currencyName: "Ukrainian Hryvnia" },
245
+ { country: "UG", countryName: "Uganda", currency: "UGX", currencyName: "Ugandan Shilling" },
246
+ { country: "UM", countryName: "United States Minor Outlying Islands", currency: "USD", currencyName: "US Dollar" },
247
+ { country: "US", countryName: "United States", currency: "USD", currencyName: "US Dollar" },
248
+ { country: "UY", countryName: "Uruguay", currency: "UYU", currencyName: "Uruguayan Peso" },
249
+ { country: "UZ", countryName: "Uzbekistan", currency: "UZS", currencyName: "Uzbekistani Som" },
250
+ { country: "VA", countryName: "Vatican City", currency: "EUR", currencyName: "Euro" },
251
+ { country: "VC", countryName: "Saint Vincent and the Grenadines", currency: "XCD", currencyName: "East Caribbean Dollar" },
252
+ { country: "VE", countryName: "Venezuela", currency: "VES", currencyName: "Venezuelan Bol\xEDvar" },
253
+ { country: "VG", countryName: "British Virgin Islands", currency: "USD", currencyName: "US Dollar" },
254
+ { country: "VI", countryName: "United States Virgin Islands", currency: "USD", currencyName: "US Dollar" },
255
+ { country: "VN", countryName: "Vietnam", currency: "VND", currencyName: "Vietnamese Dong" },
256
+ { country: "VU", countryName: "Vanuatu", currency: "VUV", currencyName: "Vanuatu Vatu" },
257
+ { country: "WF", countryName: "Wallis and Futuna", currency: "XPF", currencyName: "CFP Franc" },
258
+ { country: "WS", countryName: "Samoa", currency: "WST", currencyName: "Samoan Tala" },
259
+ { country: "YE", countryName: "Yemen", currency: "YER", currencyName: "Yemeni Rial" },
260
+ { country: "YT", countryName: "Mayotte", currency: "EUR", currencyName: "Euro" },
261
+ { country: "ZA", countryName: "South Africa", currency: "ZAR", currencyName: "South African Rand" },
262
+ { country: "ZM", countryName: "Zambia", currency: "ZMW", currencyName: "Zambian Kwacha" },
263
+ { country: "ZW", countryName: "Zimbabwe", currency: "ZWL", currencyName: "Zimbabwean Dollar" }
264
+ ];
265
+ var CountryCode = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.country]));
266
+ var uniqueCurrencies = /* @__PURE__ */ new Map();
267
+ for (const entry of COUNTRY_CURRENCY_LIST) {
268
+ if (!uniqueCurrencies.has(entry.currency)) uniqueCurrencies.set(entry.currency, entry.currencyName);
269
+ }
270
+ var FiatCurrencyCode = Object.fromEntries([...uniqueCurrencies.keys()].map((code) => [code, code]));
271
+ var COUNTRY_NAMES = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.countryName]));
272
+ var FIAT_CURRENCY_NAMES = Object.fromEntries(uniqueCurrencies);
273
+ var COUNTRY_TO_CURRENCY = Object.fromEntries(COUNTRY_CURRENCY_LIST.map((e) => [e.country, e.currency]));
274
+ var PAYMENT_METHOD_CATEGORIES = ["card", "apple_pay", "google_pay", "bank_transfer"];
12
275
 
13
276
  // src/schemas.ts
14
277
  import { z } from "zod";
278
+ var FIAT_CURRENCY_CODES = Object.keys(FIAT_CURRENCY_NAMES);
15
279
  var obj = (shape) => z.object(shape).strict();
16
280
  var JsonSchema = z.lazy(
17
281
  () => z.union([
@@ -69,7 +333,7 @@ var $failureReason = z.union([
69
333
  })
70
334
  ]);
71
335
  var FailureReasonSchema = $failureReason;
72
- var $money = obj({ currency: z.string(), amount: z.string() });
336
+ var $money = obj({ currency: z.enum(FIAT_CURRENCY_CODES), amount: z.string() });
73
337
  var FiatAmountSchema = $money;
74
338
  var $cryptoAmount = obj({
75
339
  currency: z.string(),
@@ -86,7 +350,7 @@ var $quote = obj({
86
350
  rate: z.string(),
87
351
  totalFee: z.string(),
88
352
  feeBreakdown: z.array($feeLine),
89
- paymentMethod: z.string(),
353
+ paymentMethod: z.enum(PAYMENT_METHOD_CATEGORIES),
90
354
  expiresAt: z.string()
91
355
  });
92
356
  var QuoteSchema = $quote;
@@ -96,7 +360,7 @@ var $orderRef = obj({
96
360
  orderId: z.string(),
97
361
  fiat: $money,
98
362
  crypto: $cryptoAmount,
99
- method: z.string(),
363
+ method: z.enum(PAYMENT_METHOD_CATEGORIES),
100
364
  createdAt: z.string(),
101
365
  status: $orderStatus
102
366
  });
@@ -105,7 +369,7 @@ var $orderSummary = obj({
105
369
  orderId: z.string(),
106
370
  fiat: $money,
107
371
  crypto: $cryptoAmount.optional(),
108
- method: z.string(),
372
+ method: z.enum(PAYMENT_METHOD_CATEGORIES),
109
373
  createdAt: z.string(),
110
374
  instrument: $instrument.optional()
111
375
  });
@@ -115,7 +379,7 @@ var StatusHistoryEntrySchema = $statusHistoryEntry;
115
379
  var $tx = obj({ chainId: z.number(), hash: z.string() });
116
380
  var TxSchema = $tx;
117
381
  var $refund = obj({
118
- currency: z.string(),
382
+ currency: z.enum(FIAT_CURRENCY_CODES),
119
383
  amount: z.string(),
120
384
  expectedBy: z.string()
121
385
  });
@@ -1178,17 +1442,22 @@ function assertAllFixtures() {
1178
1442
  export {
1179
1443
  AuthChallengeSchema,
1180
1444
  BlockedStateSchema,
1445
+ COUNTRY_NAMES,
1446
+ COUNTRY_TO_CURRENCY,
1181
1447
  ContractViolation,
1448
+ CountryCode,
1182
1449
  CryptoAmountSchema,
1183
1450
  DOCUMENTED_ENDPOINTS,
1184
1451
  ENDPOINT_PATTERN,
1185
1452
  EnvelopeSchema,
1453
+ FIAT_CURRENCY_NAMES,
1186
1454
  FIELD_SPEC_TYPES,
1187
1455
  FIXTURES,
1188
1456
  FIXTURE_COVERAGE_GAPS,
1189
1457
  FailureReasonSchema,
1190
1458
  FeeLineSchema,
1191
1459
  FiatAmountSchema,
1460
+ FiatCurrencyCode,
1192
1461
  FiatEndpointSchema,
1193
1462
  FiatProviderSchema,
1194
1463
  FieldSpecSchema,
@@ -1210,6 +1479,7 @@ export {
1210
1479
  OrderRefSchema,
1211
1480
  OrderStatusSchema,
1212
1481
  OrderSummarySchema,
1482
+ PAYMENT_METHOD_CATEGORIES,
1213
1483
  PaymentCaptureStateSchema,
1214
1484
  PaymentInstructStateSchema,
1215
1485
  PendingOrderStateSchema,
package/dist/table.d.ts CHANGED
@@ -22,7 +22,7 @@ import type { FiatEndpoint, FlowState, OrderStatus, TransitionMode } from './typ
22
22
  * The package version IS the capability handshake's table version (contract §Conformance
23
23
  * package → Versioning). Must equal `package.json#version` — asserted in the test suite.
24
24
  */
25
- export declare const TABLE_VERSION = "0.2.1";
25
+ export declare const TABLE_VERSION = "0.3.0";
26
26
  /**
27
27
  * State identity = kind + phase + the state's named discriminant (FE doc §Decisions).
28
28
  * The table keys on kind + phase (+ `reason` for KYC, whose three reasons differ in terminality
package/dist/table.js CHANGED
@@ -30,7 +30,7 @@ __export(table_exports, {
30
30
  tableEntry: () => tableEntry
31
31
  });
32
32
  module.exports = __toCommonJS(table_exports);
33
- var TABLE_VERSION = "0.2.1";
33
+ var TABLE_VERSION = "0.3.0";
34
34
  var TERMINAL_ORDER_STATUSES = [
35
35
  "SETTLED",
36
36
  "EXPIRED",
package/dist/table.mjs CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  isTerminal,
8
8
  stateKey,
9
9
  tableEntry
10
- } from "./chunk-IUYT5BR2.mjs";
10
+ } from "./chunk-UWR2DRHB.mjs";
11
11
  export {
12
12
  DOCUMENTED_ENDPOINTS,
13
13
  STATE_KEYS,
package/dist/types.d.ts CHANGED
@@ -18,6 +18,7 @@
18
18
  * - `params` = server literals · `inputs` = collected FieldSpecs · `expects` = injected surface results
19
19
  * - terminality comes from the table (`src/table.ts`), never from `transitions.length`
20
20
  */
21
+ import type { FiatCurrencyCode, PaymentMethodCategory } from './codes';
21
22
  /**
22
23
  * JSON value. `params` carry these — opaque literals the client spreads verbatim.
23
24
  * Named `JsonValue` rather than `Json` because this package's surface is re-exported wholesale;
@@ -122,11 +123,13 @@ export type FailureReason = {
122
123
  /**
123
124
  * Amounts are decimal strings in the docs' envelopes ("100.00") — never numbers.
124
125
  * Named to pair with `CryptoAmount`: every use site is a `fiat:` field.
126
+ * `currency` is ISO 4217 — see `./codes`.
125
127
  */
126
128
  export interface FiatAmount {
127
- currency: string;
129
+ currency: FiatCurrencyCode;
128
130
  amount: string;
129
131
  }
132
+ /** `currency` is the token's ticker symbol (e.g. `"USDC"`) — no ISO-4217-style registry exists for tickers. */
130
133
  export interface CryptoAmount {
131
134
  currency: string;
132
135
  network: string;
@@ -141,8 +144,7 @@ export interface FeeLine {
141
144
  /**
142
145
  * `expiresAt` is BE-stamped, not a provider passthrough (contract §Quote semantics).
143
146
  * All v1 quotes are estimates as a global fact, not a field.
144
- * `paymentMethod` is an agnostic category (`card`, `apple_pay`, `bank_transfer`, …) the docs
145
- * leave the set open, so it stays `string` rather than a fabricated enum.
147
+ * `paymentMethod` is closed to `PaymentMethodCategory` — see `./codes`.
146
148
  */
147
149
  export interface Quote {
148
150
  quoteRef: string;
@@ -151,7 +153,7 @@ export interface Quote {
151
153
  rate: string;
152
154
  totalFee: string;
153
155
  feeBreakdown: FeeLine[];
154
- paymentMethod: string;
156
+ paymentMethod: PaymentMethodCategory;
155
157
  expiresAt: string;
156
158
  }
157
159
  /** Deferred to the credit-card iteration (FE doc port ledger) — optional wherever it appears. */
@@ -164,7 +166,7 @@ export interface OrderRef {
164
166
  orderId: string;
165
167
  fiat: FiatAmount;
166
168
  crypto: CryptoAmount;
167
- method: string;
169
+ method: PaymentMethodCategory;
168
170
  createdAt: string;
169
171
  status: OrderStatus;
170
172
  }
@@ -176,7 +178,7 @@ export interface OrderSummary {
176
178
  orderId: string;
177
179
  fiat: FiatAmount;
178
180
  crypto?: CryptoAmount;
179
- method: string;
181
+ method: PaymentMethodCategory;
180
182
  createdAt: string;
181
183
  instrument?: Instrument;
182
184
  }
@@ -193,7 +195,7 @@ export interface Tx {
193
195
  hash: string;
194
196
  }
195
197
  export interface Refund {
196
- currency: string;
198
+ currency: FiatCurrencyCode;
197
199
  amount: string;
198
200
  expectedBy: string;
199
201
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fun-xyz/fiat-contract",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "Published conformance contract for Fun's headless fiat onramp: FlowState/Transition types, zod schemas, the transition table as data, recorded fixtures, assertion helpers.",
5
5
  "license": "MIT",
6
6
  "repository": {