Revert "feat/currency rounding (#3041)" (#3046)

This reverts commit 3d22f4a86d.
This commit is contained in:
dlipicar 2023-01-04 09:40:26 -03:00 committed by GitHub
parent 99ff0a18b0
commit 7d04be3613
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 189 additions and 897 deletions

1
go.mod
View File

@ -80,7 +80,6 @@ require github.com/fogleman/gg v1.3.0
require ( require (
github.com/gorilla/sessions v1.2.1 github.com/gorilla/sessions v1.2.1
github.com/meirf/gopart v0.0.0-20180520194036-37e9492a85a8 github.com/meirf/gopart v0.0.0-20180520194036-37e9492a85a8
github.com/rmg/iso4217 v1.0.0
github.com/waku-org/go-waku v0.2.3-test.0.20221212154545-7443daea4cd4 github.com/waku-org/go-waku v0.2.3-test.0.20221212154545-7443daea4cd4
) )

2
go.sum
View File

@ -1835,8 +1835,6 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho= github.com/rjeczalik/notify v0.9.1/go.mod h1:rKwnCoCGeuQnwBtTSPL9Dad03Vh2n40ePRrjvIXnJho=
github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8= github.com/rjeczalik/notify v0.9.2 h1:MiTWrPj55mNDHEiIX5YUSKefw/+lCQVoAFmD6oQm5w8=
github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM=
github.com/rmg/iso4217 v1.0.0 h1:qZP5nhSwHDKkgpuapOL6BDfHUbBgwXfiPTbPGcwZ92E=
github.com/rmg/iso4217 v1.0.0/go.mod h1:AbFI9wPu0EAO+Q6swPiMEfAtyz7T7EfNigAOKNNyiBE=
github.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s= github.com/robertkrimen/godocdown v0.0.0-20130622164427-0bfa04905481/go.mod h1:C9WhFzY47SzYBIvzFqSvHIR6ROgDo4TtdTuRaOMjF/s=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=

View File

@ -2,13 +2,10 @@ package wallet
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"math/big" "math/big"
"strings" "strings"
"github.com/rmg/iso4217"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/log"
@ -315,14 +312,14 @@ func (api *API) GetEthereumChains(ctx context.Context, onlyEnabled bool) ([]*par
return api.s.rpcClient.NetworkManager.Get(onlyEnabled) return api.s.rpcClient.NetworkManager.Get(onlyEnabled)
} }
func (api *API) FetchPrices(ctx context.Context, symbols []string, currencies []string) (map[string]map[string]float64, error) { func (api *API) FetchPrices(ctx context.Context, symbols []string, currency string) (map[string]float64, error) {
log.Debug("call to FetchPrices") log.Debug("call to FetchPrices")
return fetchCryptoComparePrices(symbols, currencies) return fetchCryptoComparePrices(symbols, currency)
} }
func (api *API) FetchMarketValues(ctx context.Context, symbols []string, currencies []string) (map[string]map[string]MarketCoinValues, error) { func (api *API) FetchMarketValues(ctx context.Context, symbols []string, currency string) (map[string]MarketCoinValues, error) {
log.Debug("call to FetchMarketValues") log.Debug("call to FetchMarketValues")
return fetchTokenMarketValues(symbols, currencies) return fetchTokenMarketValues(symbols, currency)
} }
func (api *API) GetHourlyMarketValues(ctx context.Context, symbol string, currency string, limit int, aggregate int) ([]TokenHistoricalPairs, error) { func (api *API) GetHourlyMarketValues(ctx context.Context, symbol string, currency string, limit int, aggregate int) ([]TokenHistoricalPairs, error) {
@ -524,19 +521,3 @@ func (api *API) CreateMultiTransaction(ctx context.Context, multiTransaction *Mu
log.Debug("[WalletAPI:: CreateMultiTransaction] create multi transaction") log.Debug("[WalletAPI:: CreateMultiTransaction] create multi transaction")
return api.s.transactionManager.createMultiTransaction(ctx, multiTransaction, data, api.router.bridges, password) return api.s.transactionManager.createMultiTransaction(ctx, multiTransaction, data, api.router.bridges, password)
} }
func (api *API) IsCurrencyFiat(name string) bool {
code, _ := iso4217.ByName(strings.ToUpper(name))
return (code != 0)
}
func (api *API) GetFiatCurrencyMinorUnit(name string) (int, error) {
code, minor := iso4217.ByName(strings.ToUpper(name))
if code == 0 {
return code, errors.New("Unknown currency: " + name)
}
return minor, nil
}

View File

@ -29,13 +29,13 @@ type Coin struct {
} }
type MarketCoinValues struct { type MarketCoinValues struct {
MKTCAP float64 `json:"MKTCAP"` MKTCAP string `json:"MKTCAP"`
HIGHDAY float64 `json:"HIGHDAY"` HIGHDAY string `json:"HIGHDAY"`
LOWDAY float64 `json:"LOWDAY"` LOWDAY string `json:"LOWDAY"`
CHANGEPCTHOUR float64 `json:"CHANGEPCTHOUR"` CHANGEPCTHOUR string `json:"CHANGEPCTHOUR"`
CHANGEPCTDAY float64 `json:"CHANGEPCTDAY"` CHANGEPCTDAY string `json:"CHANGEPCTDAY"`
CHANGEPCT24HOUR float64 `json:"CHANGEPCT24HOUR"` CHANGEPCT24HOUR string `json:"CHANGEPCT24HOUR"`
CHANGE24HOUR float64 `json:"CHANGE24HOUR"` CHANGE24HOUR string `json:"CHANGE24HOUR"`
} }
type TokenHistoricalPairs struct { type TokenHistoricalPairs struct {
@ -61,7 +61,7 @@ type CoinsContainer struct {
} }
type MarketValuesContainer struct { type MarketValuesContainer struct {
Raw map[string]map[string]MarketCoinValues `json:"Raw"` Display map[string]map[string]MarketCoinValues `json:"Display"`
} }
func renameSymbols(symbols []string) (renames []string) { func renameSymbols(symbols []string) (renames []string) {
@ -94,14 +94,13 @@ func chunkSymbols(symbols []string) [][]string {
return chunks return chunks
} }
func fetchCryptoComparePrices(symbols []string, currencies []string) (map[string]map[string]float64, error) { func fetchCryptoComparePrices(symbols []string, currency string) (map[string]float64, error) {
chunks := chunkSymbols(symbols) chunks := chunkSymbols(symbols)
result := make(map[string]map[string]float64) result := make(map[string]float64)
realCurrencies := renameSymbols(currencies)
for _, smbls := range chunks { for _, smbls := range chunks {
realSymbols := renameSymbols(smbls) realSymbols := renameSymbols(smbls)
httpClient := http.Client{Timeout: time.Minute} httpClient := http.Client{Timeout: time.Minute}
url := fmt.Sprintf("%s/data/pricemulti?fsyms=%s&tsyms=%s&extraParams=Status.im", cryptocompareURL, strings.Join(realSymbols, ","), strings.Join(realCurrencies, ",")) url := fmt.Sprintf("%s/data/pricemulti?fsyms=%s&tsyms=%s&extraParams=Status.im", cryptocompareURL, strings.Join(realSymbols, ","), currency)
resp, err := httpClient.Get(url) resp, err := httpClient.Get(url)
if err != nil { if err != nil {
return nil, err return nil, err
@ -120,10 +119,7 @@ func fetchCryptoComparePrices(symbols []string, currencies []string) (map[string
} }
for _, symbol := range smbls { for _, symbol := range smbls {
result[symbol] = map[string]float64{} result[symbol] = prices[getRealSymbol(symbol)][strings.ToUpper(currency)]
for _, currency := range currencies {
result[symbol][currency] = prices[getRealSymbol(symbol)][getRealSymbol(currency)]
}
} }
} }
return result, nil return result, nil
@ -159,13 +155,12 @@ func fetchCryptoCompareTokenDetails(symbols []string) (map[string]Coin, error) {
return coins, nil return coins, nil
} }
func fetchTokenMarketValues(symbols []string, currencies []string) (map[string]map[string]MarketCoinValues, error) { func fetchTokenMarketValues(symbols []string, currency string) (map[string]MarketCoinValues, error) {
realCurrencies := renameSymbols(currencies)
realSymbols := renameSymbols(symbols) realSymbols := renameSymbols(symbols)
item := map[string]map[string]MarketCoinValues{} item := map[string]MarketCoinValues{}
httpClient := http.Client{Timeout: time.Minute} httpClient := http.Client{Timeout: time.Minute}
url := fmt.Sprintf("%s/data/pricemultifull?fsyms=%s&tsyms=%s&extraParams=Status.im", cryptocompareURL, strings.Join(realSymbols, ","), strings.Join(realCurrencies, ",")) url := fmt.Sprintf("%s/data/pricemultifull?fsyms=%s&tsyms=%s&extraParams=Status.im", cryptocompareURL, strings.Join(realSymbols, ","), currency)
resp, err := httpClient.Get(url) resp, err := httpClient.Get(url)
if err != nil { if err != nil {
return item, err return item, err
@ -184,10 +179,7 @@ func fetchTokenMarketValues(symbols []string, currencies []string) (map[string]m
} }
for _, symbol := range symbols { for _, symbol := range symbols {
item[symbol] = map[string]MarketCoinValues{} item[symbol] = container.Display[getRealSymbol(symbol)][strings.ToUpper(currency)]
for _, currency := range currencies {
item[symbol][currency] = container.Raw[getRealSymbol(symbol)][getRealSymbol(currency)]
}
} }
return item, nil return item, nil

View File

@ -20,10 +20,6 @@ import (
// WalletTickReload emitted every 15mn to reload the wallet balance and history // WalletTickReload emitted every 15mn to reload the wallet balance and history
const EventWalletTickReload walletevent.EventType = "wallet-tick-reload" const EventWalletTickReload walletevent.EventType = "wallet-tick-reload"
func getFixedCurrencies() []string {
return []string{"usd"}
}
func NewReader(rpcClient *rpc.Client, tokenManager *token.Manager, accountsDB *accounts.Database, walletFeed *event.Feed) *Reader { func NewReader(rpcClient *rpc.Client, tokenManager *token.Manager, accountsDB *accounts.Database, walletFeed *event.Feed) *Reader {
return &Reader{rpcClient, tokenManager, accountsDB, walletFeed, nil} return &Reader{rpcClient, tokenManager, accountsDB, walletFeed, nil}
} }
@ -36,17 +32,6 @@ type Reader struct {
cancel context.CancelFunc cancel context.CancelFunc
} }
type TokenMarketValues struct {
MarketCap float64 `json:"marketCap"`
HighDay float64 `json:"highDay"`
LowDay float64 `json:"lowDay"`
ChangePctHour float64 `json:"changePctHour"`
ChangePctDay float64 `json:"changePctDay"`
ChangePct24hour float64 `json:"changePct24hour"`
Change24hour float64 `json:"change24hour"`
Price float64 `json:"price"`
}
type ChainBalance struct { type ChainBalance struct {
Balance *big.Float `json:"balance"` Balance *big.Float `json:"balance"`
Address common.Address `json:"address"` Address common.Address `json:"address"`
@ -62,8 +47,14 @@ type Token struct {
Description string `json:"description"` Description string `json:"description"`
AssetWebsiteURL string `json:"assetWebsiteUrl"` AssetWebsiteURL string `json:"assetWebsiteUrl"`
BuiltOn string `json:"builtOn"` BuiltOn string `json:"builtOn"`
MarketValuesPerCurrency map[string]TokenMarketValues `json:"marketValuesPerCurrency"` MarketCap string `json:"marketCap"`
PegSymbol string `json:"pegSymbol"` HighDay string `json:"highDay"`
LowDay string `json:"lowDay"`
ChangePctHour string `json:"changePctHour"`
ChangePctDay string `json:"changePctDay"`
ChangePct24hour string `json:"changePct24hour"`
Change24hour string `json:"change24hour"`
CurrencyPrice float64 `json:"currencyPrice"`
} }
func getTokenBySymbols(tokens []*token.Token) map[string][]*token.Token { func getTokenBySymbols(tokens []*token.Token) map[string][]*token.Token {
@ -139,13 +130,10 @@ func (r *Reader) GetWalletToken(ctx context.Context, addresses []common.Address)
chainIDs = append(chainIDs, network.ChainID) chainIDs = append(chainIDs, network.ChainID)
} }
currencies := make([]string, 0)
currency, err := r.accountsDB.GetCurrency() currency, err := r.accountsDB.GetCurrency()
if err != nil { if err != nil {
return nil, err return nil, err
} }
currencies = append(currencies, currency)
currencies = append(currencies, getFixedCurrencies()...)
allTokens, err := r.tokenManager.GetAllTokens() allTokens, err := r.tokenManager.GetAllTokens()
if err != nil { if err != nil {
@ -160,14 +148,14 @@ func (r *Reader) GetWalletToken(ctx context.Context, addresses []common.Address)
var ( var (
group = async.NewAtomicGroup(ctx) group = async.NewAtomicGroup(ctx)
prices = map[string]map[string]float64{} prices = map[string]float64{}
tokenDetails = map[string]Coin{} tokenDetails = map[string]Coin{}
tokenMarketValues = map[string]map[string]MarketCoinValues{} tokenMarketValues = map[string]MarketCoinValues{}
balances = map[uint64]map[common.Address]map[common.Address]*hexutil.Big{} balances = map[uint64]map[common.Address]map[common.Address]*hexutil.Big{}
) )
group.Add(func(parent context.Context) error { group.Add(func(parent context.Context) error {
prices, err = fetchCryptoComparePrices(tokenSymbols, currencies) prices, err = fetchCryptoComparePrices(tokenSymbols, currency)
if err != nil { if err != nil {
return err return err
} }
@ -183,7 +171,7 @@ func (r *Reader) GetWalletToken(ctx context.Context, addresses []common.Address)
}) })
group.Add(func(parent context.Context) error { group.Add(func(parent context.Context) error {
tokenMarketValues, err = fetchTokenMarketValues(tokenSymbols, currencies) tokenMarketValues, err = fetchTokenMarketValues(tokenSymbols, currency)
if err != nil { if err != nil {
return err return err
} }
@ -233,20 +221,6 @@ func (r *Reader) GetWalletToken(ctx context.Context, addresses []common.Address)
} }
} }
marketValuesPerCurrency := make(map[string]TokenMarketValues)
for _, currency := range currencies {
marketValuesPerCurrency[currency] = TokenMarketValues{
MarketCap: tokenMarketValues[symbol][currency].MKTCAP,
HighDay: tokenMarketValues[symbol][currency].HIGHDAY,
LowDay: tokenMarketValues[symbol][currency].LOWDAY,
ChangePctHour: tokenMarketValues[symbol][currency].CHANGEPCTHOUR,
ChangePctDay: tokenMarketValues[symbol][currency].CHANGEPCTDAY,
ChangePct24hour: tokenMarketValues[symbol][currency].CHANGEPCT24HOUR,
Change24hour: tokenMarketValues[symbol][currency].CHANGE24HOUR,
Price: prices[symbol][currency],
}
}
walletToken := Token{ walletToken := Token{
Name: tokens[0].Name, Name: tokens[0].Name,
Color: tokens[0].Color, Color: tokens[0].Color,
@ -256,8 +230,14 @@ func (r *Reader) GetWalletToken(ctx context.Context, addresses []common.Address)
Description: tokenDetails[symbol].Description, Description: tokenDetails[symbol].Description,
AssetWebsiteURL: tokenDetails[symbol].AssetWebsiteURL, AssetWebsiteURL: tokenDetails[symbol].AssetWebsiteURL,
BuiltOn: tokenDetails[symbol].BuiltOn, BuiltOn: tokenDetails[symbol].BuiltOn,
MarketValuesPerCurrency: marketValuesPerCurrency, MarketCap: tokenMarketValues[symbol].MKTCAP,
PegSymbol: tokens[0].PegSymbol, HighDay: tokenMarketValues[symbol].HIGHDAY,
LowDay: tokenMarketValues[symbol].LOWDAY,
ChangePctHour: tokenMarketValues[symbol].CHANGEPCTHOUR,
ChangePctDay: tokenMarketValues[symbol].CHANGEPCTDAY,
ChangePct24hour: tokenMarketValues[symbol].CHANGEPCT24HOUR,
Change24hour: tokenMarketValues[symbol].CHANGE24HOUR,
CurrencyPrice: prices[symbol],
} }
result[address] = append(result[address], walletToken) result[address] = append(result[address], walletToken)

View File

@ -401,14 +401,10 @@ func (r *Router) suggestedRoutes(
return nil, err return nil, err
} }
pricesMap, err := fetchCryptoComparePrices([]string{"ETH", tokenSymbol}, []string{"USD"}) prices, err := fetchCryptoComparePrices([]string{"ETH", tokenSymbol}, "USD")
if err != nil { if err != nil {
return nil, err return nil, err
} }
prices := make(map[string]float64, 0)
for symbol, pricePerCurrency := range pricesMap {
prices[symbol] = pricePerCurrency["USD"]
}
var ( var (
group = async.NewAtomicGroup(ctx) group = async.NewAtomicGroup(ctx)

View File

@ -34,10 +34,6 @@ type Token struct {
// to be traded. // to be traded.
Decimals uint `json:"decimals"` Decimals uint `json:"decimals"`
ChainID uint64 `json:"chainId"` ChainID uint64 `json:"chainId"`
// PegSymbol indicates that the token is pegged to some fiat currency, using the
// ISO 4217 alphabetic code. For example, an empty string means it is not
// pegged, while "USD" means it's pegged to the United States Dollar.
PegSymbol string `json:"pegSymbol"`
} }
func (t *Token) IsNative() bool { func (t *Token) IsNative() bool {

View File

@ -11,7 +11,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"): &Token{ common.HexToAddress("0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"): &Token{
Address: common.HexToAddress("0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"), Address: common.HexToAddress("0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359"),
@ -20,7 +19,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"): &Token{ common.HexToAddress("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"): &Token{
Address: common.HexToAddress("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"), Address: common.HexToAddress("0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2"),
@ -733,7 +731,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0x58b6a8a3302369daec383334672404ee733ab239"): &Token{ common.HexToAddress("0x58b6a8a3302369daec383334672404ee733ab239"): &Token{
Address: common.HexToAddress("0x58b6a8a3302369daec383334672404ee733ab239"), Address: common.HexToAddress("0x58b6a8a3302369daec383334672404ee733ab239"),
@ -870,7 +867,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664"): &Token{ common.HexToAddress("0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664"): &Token{
Address: common.HexToAddress("0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664"), Address: common.HexToAddress("0xEA26c4aC16D4a5A106820BC8AEE85fd0b7b2b664"),
@ -887,7 +883,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "XAU",
}, },
common.HexToAddress("0x865ec58b06bF6305B886793AA20A2da31D034E68"): &Token{ common.HexToAddress("0x865ec58b06bF6305B886793AA20A2da31D034E68"): &Token{
Address: common.HexToAddress("0x865ec58b06bF6305B886793AA20A2da31D034E68"), Address: common.HexToAddress("0x865ec58b06bF6305B886793AA20A2da31D034E68"),
@ -944,7 +939,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "CAD",
}, },
common.HexToAddress("0x6710c63432A2De02954fc0f851db07146a6c0312"): &Token{ common.HexToAddress("0x6710c63432A2De02954fc0f851db07146a6c0312"): &Token{
Address: common.HexToAddress("0x6710c63432A2De02954fc0f851db07146a6c0312"), Address: common.HexToAddress("0x6710c63432A2De02954fc0f851db07146a6c0312"),
@ -985,7 +979,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433"): &Token{ common.HexToAddress("0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433"): &Token{
Address: common.HexToAddress("0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433"), Address: common.HexToAddress("0xD0a4b8946Cb52f0661273bfbC6fD0E0C75Fc6433"),
@ -1010,7 +1003,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "GBP",
}, },
common.HexToAddress("0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e"): &Token{ common.HexToAddress("0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e"): &Token{
Address: common.HexToAddress("0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e"), Address: common.HexToAddress("0xbf2179859fc6D5BEE9Bf9158632Dc51678a4100e"),
@ -1051,7 +1043,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e"): &Token{ common.HexToAddress("0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e"): &Token{
Address: common.HexToAddress("0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e"), Address: common.HexToAddress("0xa3d58c4E56fedCae3a7c43A725aeE9A71F0ece4e"),
@ -1092,7 +1083,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "AUD",
}, },
common.HexToAddress("0x66497A283E0a007bA3974e837784C6AE323447de"): &Token{ common.HexToAddress("0x66497A283E0a007bA3974e837784C6AE323447de"): &Token{
Address: common.HexToAddress("0x66497A283E0a007bA3974e837784C6AE323447de"), Address: common.HexToAddress("0x66497A283E0a007bA3974e837784C6AE323447de"),
@ -1181,7 +1171,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986"): &Token{ common.HexToAddress("0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986"): &Token{
Address: common.HexToAddress("0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986"), Address: common.HexToAddress("0xB98d4C97425d9908E66E53A6fDf673ACcA0BE986"),
@ -1246,7 +1235,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"): &Token{ common.HexToAddress("0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"): &Token{
Address: common.HexToAddress("0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"), Address: common.HexToAddress("0x5d3a536E4D6DbD6114cc1Ead35777bAB948E3643"),
@ -1311,7 +1299,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 1, ChainID: 1,
PegSymbol: "USD",
}, },
common.HexToAddress("0xc944e90c64b2c07662a292be6244bdf05cda44a7"): &Token{ common.HexToAddress("0xc944e90c64b2c07662a292be6244bdf05cda44a7"): &Token{
Address: common.HexToAddress("0xc944e90c64b2c07662a292be6244bdf05cda44a7"), Address: common.HexToAddress("0xc944e90c64b2c07662a292be6244bdf05cda44a7"),
@ -1470,7 +1457,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 5, ChainID: 5,
PegSymbol: "USD",
}, },
common.HexToAddress("0x022e292b44b5a146f2e8ee36ff44d3dd863c915c"): &Token{ common.HexToAddress("0x022e292b44b5a146f2e8ee36ff44d3dd863c915c"): &Token{
Address: common.HexToAddress("0x022e292b44b5a146f2e8ee36ff44d3dd863c915c"), Address: common.HexToAddress("0x022e292b44b5a146f2e8ee36ff44d3dd863c915c"),
@ -1513,7 +1499,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 10, ChainID: 10,
PegSymbol: "USD",
}, },
}, },
100: { 100: {
@ -1534,7 +1519,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 420, ChainID: 420,
PegSymbol: "USD",
}, },
}, },
42161: { 42161: {
@ -1545,7 +1529,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 42161, ChainID: 42161,
PegSymbol: "USD",
}, },
common.HexToAddress("0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"): &Token{ common.HexToAddress("0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"): &Token{
Address: common.HexToAddress("0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"), Address: common.HexToAddress("0xff970a61a04b1ca14834a43f5de4533ebddb5cc8"),
@ -1554,7 +1537,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 42161, ChainID: 42161,
PegSymbol: "USD",
}, },
common.HexToAddress("0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"): &Token{ common.HexToAddress("0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"): &Token{
Address: common.HexToAddress("0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"), Address: common.HexToAddress("0xda10009cbd5d07dd0cecc66161fc93d7c9000da1"),
@ -1563,7 +1545,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 42161, ChainID: 42161,
PegSymbol: "USD",
}, },
common.HexToAddress("0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"): &Token{ common.HexToAddress("0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"): &Token{
Address: common.HexToAddress("0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"), Address: common.HexToAddress("0x2f2a2543b76a4166549f7aab2e75bef0aefc5b0f"),
@ -1604,7 +1585,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 42161, ChainID: 42161,
PegSymbol: "USD",
}, },
common.HexToAddress("0x23a941036ae778ac51ab04cea08ed6e2fe103614"): &Token{ common.HexToAddress("0x23a941036ae778ac51ab04cea08ed6e2fe103614"): &Token{
Address: common.HexToAddress("0x23a941036ae778ac51ab04cea08ed6e2fe103614"), Address: common.HexToAddress("0x23a941036ae778ac51ab04cea08ed6e2fe103614"),
@ -1621,7 +1601,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 18, Decimals: 18,
ChainID: 42161, ChainID: 42161,
PegSymbol: "USD",
}, },
common.HexToAddress("0x11cdb42b0eb46d95f990bedd4695a6e3fa034978"): &Token{ common.HexToAddress("0x11cdb42b0eb46d95f990bedd4695a6e3fa034978"): &Token{
Address: common.HexToAddress("0x11cdb42b0eb46d95f990bedd4695a6e3fa034978"), Address: common.HexToAddress("0x11cdb42b0eb46d95f990bedd4695a6e3fa034978"),
@ -1640,7 +1619,6 @@ var tokenStore = map[uint64]map[common.Address]*Token{
Color: "#f8f8f8", Color: "#f8f8f8",
Decimals: 6, Decimals: 6,
ChainID: 421613, ChainID: 421613,
PegSymbol: "USD",
}, },
common.HexToAddress("0x265B25e22bcd7f10a5bD6E6410F10537Cc7567e8"): &Token{ common.HexToAddress("0x265B25e22bcd7f10a5bD6E6410F10537Cc7567e8"): &Token{
Address: common.HexToAddress("0x265B25e22bcd7f10a5bD6E6410F10537Cc7567e8"), Address: common.HexToAddress("0x265B25e22bcd7f10a5bD6E6410F10537Cc7567e8"),

View File

@ -1,23 +0,0 @@
# Compiled Object files, Static and Dynamic libs (Shared Objects)
*.o
*.a
*.so
# Folders
_obj
_test
# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*
_testmain.go
*.exe
*.test

View File

@ -1,21 +0,0 @@
The MIT License (MIT)
Copyright (c) 2014 Ryan Graham
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -1,5 +0,0 @@
test: constants.go
go test -v
constants.go: src/iso4217-table.xml src/update.go
go run src/update.go < src/iso4217-table.xml | gofmt > $@

View File

@ -1,6 +0,0 @@
iso4217
=======
[![Go Reference](https://pkg.go.dev/badge/github.com/rmg/iso4217.svg)](https://pkg.go.dev/github.com/rmg/iso4217)
Golang convenience library containing ISO 4217 currency codes

View File

@ -1,570 +0,0 @@
// Package iso4217 is a convenience library containing ISO 4217 currency codes
package iso4217
var names = map[int]string{
0: "",
8: "ALL",
12: "DZD",
32: "ARS",
36: "AUD",
44: "BSD",
48: "BHD",
50: "BDT",
51: "AMD",
52: "BBD",
60: "BMD",
64: "BTN",
68: "BOB",
72: "BWP",
84: "BZD",
90: "SBD",
96: "BND",
104: "MMK",
108: "BIF",
116: "KHR",
124: "CAD",
132: "CVE",
136: "KYD",
144: "LKR",
152: "CLP",
156: "CNY",
170: "COP",
174: "KMF",
188: "CRC",
191: "HRK",
192: "CUP",
203: "CZK",
208: "DKK",
214: "DOP",
222: "SVC",
230: "ETB",
232: "ERN",
238: "FKP",
242: "FJD",
262: "DJF",
270: "GMD",
292: "GIP",
320: "GTQ",
324: "GNF",
328: "GYD",
332: "HTG",
340: "HNL",
344: "HKD",
348: "HUF",
352: "ISK",
356: "INR",
360: "IDR",
364: "IRR",
368: "IQD",
376: "ILS",
388: "JMD",
392: "JPY",
398: "KZT",
400: "JOD",
404: "KES",
408: "KPW",
410: "KRW",
414: "KWD",
417: "KGS",
418: "LAK",
422: "LBP",
426: "LSL",
430: "LRD",
434: "LYD",
446: "MOP",
454: "MWK",
458: "MYR",
462: "MVR",
480: "MUR",
484: "MXN",
496: "MNT",
498: "MDL",
504: "MAD",
512: "OMR",
516: "NAD",
524: "NPR",
532: "ANG",
533: "AWG",
548: "VUV",
554: "NZD",
558: "NIO",
566: "NGN",
578: "NOK",
586: "PKR",
590: "PAB",
598: "PGK",
600: "PYG",
604: "PEN",
608: "PHP",
634: "QAR",
643: "RUB",
646: "RWF",
654: "SHP",
682: "SAR",
690: "SCR",
694: "SLL",
702: "SGD",
704: "VND",
706: "SOS",
710: "ZAR",
728: "SSP",
748: "SZL",
752: "SEK",
756: "CHF",
760: "SYP",
764: "THB",
776: "TOP",
780: "TTD",
784: "AED",
788: "TND",
800: "UGX",
807: "MKD",
818: "EGP",
826: "GBP",
834: "TZS",
840: "USD",
858: "UYU",
860: "UZS",
882: "WST",
886: "YER",
901: "TWD",
925: "SLE",
926: "VED",
927: "UYW",
928: "VES",
929: "MRU",
930: "STN",
931: "CUC",
932: "ZWL",
933: "BYN",
934: "TMT",
936: "GHS",
938: "SDG",
940: "UYI",
941: "RSD",
943: "MZN",
944: "AZN",
946: "RON",
947: "CHE",
948: "CHW",
949: "TRY",
950: "XAF",
951: "XCD",
952: "XOF",
953: "XPF",
955: "XBA",
956: "XBB",
957: "XBC",
958: "XBD",
959: "XAU",
960: "XDR",
961: "XAG",
962: "XPT",
963: "XTS",
964: "XPD",
965: "XUA",
967: "ZMW",
968: "SRD",
969: "MGA",
970: "COU",
971: "AFN",
972: "TJS",
973: "AOA",
975: "BGN",
976: "CDF",
977: "BAM",
978: "EUR",
979: "MXV",
980: "UAH",
981: "GEL",
984: "BOV",
985: "PLN",
986: "BRL",
990: "CLF",
994: "XSU",
997: "USN",
999: "XXX",
}
var codes = map[string]int{
"": 0,
"ALL": 8,
"DZD": 12,
"ARS": 32,
"AUD": 36,
"BSD": 44,
"BHD": 48,
"BDT": 50,
"AMD": 51,
"BBD": 52,
"BMD": 60,
"BTN": 64,
"BOB": 68,
"BWP": 72,
"BZD": 84,
"SBD": 90,
"BND": 96,
"MMK": 104,
"BIF": 108,
"KHR": 116,
"CAD": 124,
"CVE": 132,
"KYD": 136,
"LKR": 144,
"CLP": 152,
"CNY": 156,
"COP": 170,
"KMF": 174,
"CRC": 188,
"HRK": 191,
"CUP": 192,
"CZK": 203,
"DKK": 208,
"DOP": 214,
"SVC": 222,
"ETB": 230,
"ERN": 232,
"FKP": 238,
"FJD": 242,
"DJF": 262,
"GMD": 270,
"GIP": 292,
"GTQ": 320,
"GNF": 324,
"GYD": 328,
"HTG": 332,
"HNL": 340,
"HKD": 344,
"HUF": 348,
"ISK": 352,
"INR": 356,
"IDR": 360,
"IRR": 364,
"IQD": 368,
"ILS": 376,
"JMD": 388,
"JPY": 392,
"KZT": 398,
"JOD": 400,
"KES": 404,
"KPW": 408,
"KRW": 410,
"KWD": 414,
"KGS": 417,
"LAK": 418,
"LBP": 422,
"LSL": 426,
"LRD": 430,
"LYD": 434,
"MOP": 446,
"MWK": 454,
"MYR": 458,
"MVR": 462,
"MUR": 480,
"MXN": 484,
"MNT": 496,
"MDL": 498,
"MAD": 504,
"OMR": 512,
"NAD": 516,
"NPR": 524,
"ANG": 532,
"AWG": 533,
"VUV": 548,
"NZD": 554,
"NIO": 558,
"NGN": 566,
"NOK": 578,
"PKR": 586,
"PAB": 590,
"PGK": 598,
"PYG": 600,
"PEN": 604,
"PHP": 608,
"QAR": 634,
"RUB": 643,
"RWF": 646,
"SHP": 654,
"SAR": 682,
"SCR": 690,
"SLL": 694,
"SGD": 702,
"VND": 704,
"SOS": 706,
"ZAR": 710,
"SSP": 728,
"SZL": 748,
"SEK": 752,
"CHF": 756,
"SYP": 760,
"THB": 764,
"TOP": 776,
"TTD": 780,
"AED": 784,
"TND": 788,
"UGX": 800,
"MKD": 807,
"EGP": 818,
"GBP": 826,
"TZS": 834,
"USD": 840,
"UYU": 858,
"UZS": 860,
"WST": 882,
"YER": 886,
"TWD": 901,
"SLE": 925,
"VED": 926,
"UYW": 927,
"VES": 928,
"MRU": 929,
"STN": 930,
"CUC": 931,
"ZWL": 932,
"BYN": 933,
"TMT": 934,
"GHS": 936,
"SDG": 938,
"UYI": 940,
"RSD": 941,
"MZN": 943,
"AZN": 944,
"RON": 946,
"CHE": 947,
"CHW": 948,
"TRY": 949,
"XAF": 950,
"XCD": 951,
"XOF": 952,
"XPF": 953,
"XBA": 955,
"XBB": 956,
"XBC": 957,
"XBD": 958,
"XAU": 959,
"XDR": 960,
"XAG": 961,
"XPT": 962,
"XTS": 963,
"XPD": 964,
"XUA": 965,
"ZMW": 967,
"SRD": 968,
"MGA": 969,
"COU": 970,
"AFN": 971,
"TJS": 972,
"AOA": 973,
"BGN": 975,
"CDF": 976,
"BAM": 977,
"EUR": 978,
"MXV": 979,
"UAH": 980,
"GEL": 981,
"BOV": 984,
"PLN": 985,
"BRL": 986,
"CLF": 990,
"XSU": 994,
"USN": 997,
"XXX": 999,
}
var minorUnits = map[int]int{
0: 0,
8: 2,
12: 2,
32: 2,
36: 2,
44: 2,
48: 3,
50: 2,
51: 2,
52: 2,
60: 2,
64: 2,
68: 2,
72: 2,
84: 2,
90: 2,
96: 2,
104: 2,
108: 0,
116: 2,
124: 2,
132: 2,
136: 2,
144: 2,
152: 0,
156: 2,
170: 2,
174: 0,
188: 2,
191: 2,
192: 2,
203: 2,
208: 2,
214: 2,
222: 2,
230: 2,
232: 2,
238: 2,
242: 2,
262: 0,
270: 2,
292: 2,
320: 2,
324: 0,
328: 2,
332: 2,
340: 2,
344: 2,
348: 2,
352: 0,
356: 2,
360: 2,
364: 2,
368: 3,
376: 2,
388: 2,
392: 0,
398: 2,
400: 3,
404: 2,
408: 2,
410: 0,
414: 3,
417: 2,
418: 2,
422: 2,
426: 2,
430: 2,
434: 3,
446: 2,
454: 2,
458: 2,
462: 2,
480: 2,
484: 2,
496: 2,
498: 2,
504: 2,
512: 3,
516: 2,
524: 2,
532: 2,
533: 2,
548: 0,
554: 2,
558: 2,
566: 2,
578: 2,
586: 2,
590: 2,
598: 2,
600: 0,
604: 2,
608: 2,
634: 2,
643: 2,
646: 0,
654: 2,
682: 2,
690: 2,
694: 2,
702: 2,
704: 0,
706: 2,
710: 2,
728: 2,
748: 2,
752: 2,
756: 2,
760: 2,
764: 2,
776: 2,
780: 2,
784: 2,
788: 3,
800: 0,
807: 2,
818: 2,
826: 2,
834: 2,
840: 2,
858: 2,
860: 2,
882: 2,
886: 2,
901: 2,
925: 2,
926: 2,
927: 4,
928: 2,
929: 2,
930: 2,
931: 2,
932: 2,
933: 2,
934: 2,
936: 2,
938: 2,
940: 0,
941: 2,
943: 2,
944: 2,
946: 2,
947: 2,
948: 2,
949: 2,
950: 0,
951: 2,
952: 0,
953: 0,
955: 0,
956: 0,
957: 0,
958: 0,
959: 0,
960: 0,
961: 0,
962: 0,
963: 0,
964: 0,
965: 0,
967: 2,
968: 2,
969: 2,
970: 2,
971: 2,
972: 2,
973: 2,
975: 2,
976: 2,
977: 2,
978: 2,
979: 2,
980: 2,
981: 2,
984: 2,
985: 2,
986: 2,
990: 4,
994: 0,
997: 2,
999: 0,
}
// ByCode resolves the given code to the 3 character string and the number of
// minor unit digits to display for the given currency.
func ByCode(n int) (string, int) {
return names[n], minorUnits[n]
}
// ByName resolves the given name to the numeric code and the number of minor
// unit digits to display for the given currency.
func ByName(s string) (int, int) {
code := codes[s]
return code, minorUnits[code]
}

3
vendor/modules.txt vendored
View File

@ -865,9 +865,6 @@ github.com/rivo/uniseg
# github.com/rjeczalik/notify v0.9.2 # github.com/rjeczalik/notify v0.9.2
## explicit ## explicit
github.com/rjeczalik/notify github.com/rjeczalik/notify
# github.com/rmg/iso4217 v1.0.0
## explicit; go 1.12
github.com/rmg/iso4217
# github.com/rs/cors v1.7.0 # github.com/rs/cors v1.7.0
## explicit ## explicit
github.com/rs/cors github.com/rs/cors