>> probe system/locale/currencies/list [ AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BTC BGN BHD BIF BMD BND BOB BRL BSD BTN BWP BYN BZD CAD CDF CHF CKD CLP CNY COP CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB ETH EUR FJD FKP FOK GBP GEL GGP GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS IMP INR IQD IRR ISK JEP JMD JOD JPY KES KGS KHR KID KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRU MUR MVR MWK MXN MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PND PRB PYG QAR RED RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SLS SOS SRD SSP STN SYP SZL THB TJS TMT TND TOP TRY TTD TVD TWD TZS UAH UGX USD UYU UZS VES VND VUV WST CFA XAF XCD XOF CFP XPF YER ZAR ZMW ]
>> m: XYZ$30 *** Syntax Error: (line 1) invalid money at XYZ$30 >> append system/locale/currencies/list 'XYZ >> m: XYZ$42 == XYZ$42.00
>> ?? system/locale/currencies/on-deep-change* system/locale/currencies/on-deep-change*: func [owner word target action new index part][ if any [ word <> 'list not find [append appended] action not word? :new all [action = 'append any [find list new 255 < length? list]] 3 <> length? form new ] [cause-error 'script 'protected ] if action = 'appended [set-slot-quiet back tail list to word! uppercase form new] ]
3 <> length? form newline.
interesting, that DASH is there.
OK, but without some upper boundary we're setting up a fertile ground for things like
Anyway, if using currencies with more than 3 letters is something urgent for your project, I can look into that, but the usual procedure is that you open a wish ticket and wait for eons for it to be evaluated and then maybe fulfilled :wink:
we don't follow the standard strictly
As I said, ISO 4217 doesn't mandate that "all the rest of the currency codes not in the list are forbidden to be in use, and if you do use them then you are Bad and you should feel Bad!". By saying that ISO 4217 is supported we say that e.g.
PHP is Philippine peso and not some token that PHP Language Foundation decided to create, like Red Foundation did with RED.
The goal is to be useful to the most people, and the standard helps with that as a guideline. BTC, ETH, and RED are special crypto cases. Beyond that, we may want to consider a model like the standard uses (country code + currency letter, or X + precious metal symbol). There are pros and cons to short names too. In finance it's well known, and makes it easy to format things uniformly. That is, the codes are not meant to be self explanatory. That may help normal people, but not experts in the domain.
The proliferation of cryptocurrencies is insane, but it's a new world too. We have to choose between playing favorites (RED) and blessing some, eliminating limits, or telling people that they just need to come up with a moniker that fits our 3-letter model. Right now we've blessed a few, and if someone wants to use theirs with money, how painful is it to use
3 letters is certainly limiting, but we should think about other issues, e.g., special characters.
>> append system/locale/currencies/list 'x3mb () >> X3MB$1330 + 7 == X3MB$1337.00 >> append system/locale/currencies/list 'moon-soon () >> negate -moon-soon$42 == MOON-SOON$42.00
Exclusive offer! :wink: Hacked in a few hours and not thoroughly tested though, so play with that and see how bad it is. I'll keep the branch around as a PoC for your wish, in case it will be granted.