mirror of
https://github.com/status-im/status-go.git
synced 2025-01-17 18:22:13 +00:00
chore_: create currency store and get currencies RPC (#5541)
This commit - moves the base currency list from status-desktop to status-go - introduces a new RPC GetCurrencies to fetch the list which can be shared across platforms Signed-off-by: Mohamed Javid <19339952+smohamedjavid@users.noreply.github.com>
This commit is contained in:
parent
0809c0b156
commit
c1d94e214a
@ -32,6 +32,7 @@ import (
|
||||
"github.com/status-im/status-go/rpc"
|
||||
"github.com/status-im/status-go/server"
|
||||
accountssvc "github.com/status-im/status-go/services/accounts"
|
||||
appgeneral "github.com/status-im/status-go/services/app-general"
|
||||
appmetricsservice "github.com/status-im/status-go/services/appmetrics"
|
||||
"github.com/status-im/status-go/services/browsers"
|
||||
"github.com/status-im/status-go/services/chat"
|
||||
@ -130,6 +131,7 @@ type StatusNode struct {
|
||||
updatesSrvc *updates.Service
|
||||
pendingTracker *transactions.PendingTxTracker
|
||||
connectorSrvc *connector.Service
|
||||
appGeneralSrvc *appgeneral.Service
|
||||
|
||||
walletFeed event.Feed
|
||||
}
|
||||
@ -493,6 +495,7 @@ func (n *StatusNode) stop() error {
|
||||
n.connectorSrvc = nil
|
||||
n.publicMethods = make(map[string]bool)
|
||||
n.pendingTracker = nil
|
||||
n.appGeneralSrvc = nil
|
||||
n.log.Debug("status node stopped")
|
||||
return nil
|
||||
}
|
||||
|
@ -33,6 +33,7 @@ import (
|
||||
"github.com/status-im/status-go/rpc"
|
||||
accountssvc "github.com/status-im/status-go/services/accounts"
|
||||
"github.com/status-im/status-go/services/accounts/settingsevent"
|
||||
appgeneral "github.com/status-im/status-go/services/app-general"
|
||||
appmetricsservice "github.com/status-im/status-go/services/appmetrics"
|
||||
"github.com/status-im/status-go/services/browsers"
|
||||
"github.com/status-im/status-go/services/chat"
|
||||
@ -87,6 +88,7 @@ func (b *StatusNode) initServices(config *params.NodeConfig, mediaServer *server
|
||||
services = append(services, b.subscriptionService())
|
||||
services = append(services, b.rpcStatsService())
|
||||
services = append(services, b.appmetricsService())
|
||||
services = append(services, b.appgeneralService())
|
||||
services = append(services, b.peerService())
|
||||
services = append(services, b.personalService())
|
||||
services = append(services, b.statusPublicService())
|
||||
@ -562,6 +564,13 @@ func (b *StatusNode) appmetricsService() common.StatusService {
|
||||
return b.appMetricsSrvc
|
||||
}
|
||||
|
||||
func (b *StatusNode) appgeneralService() *appgeneral.Service {
|
||||
if b.appGeneralSrvc == nil {
|
||||
b.appGeneralSrvc = appgeneral.New()
|
||||
}
|
||||
return b.appGeneralSrvc
|
||||
}
|
||||
|
||||
func (b *StatusNode) WalletService() *wallet.Service {
|
||||
return b.walletSrvc
|
||||
}
|
||||
|
18
services/app-general/api.go
Normal file
18
services/app-general/api.go
Normal file
@ -0,0 +1,18 @@
|
||||
package appgeneral
|
||||
|
||||
import (
|
||||
"context"
|
||||
)
|
||||
|
||||
type API struct {
|
||||
s *Service
|
||||
}
|
||||
|
||||
func NewAPI(s *Service) *API {
|
||||
return &API{s: s}
|
||||
}
|
||||
|
||||
// Returns a list of currencies for user's selection
|
||||
func (api *API) GetCurrencies(context context.Context) []*Currency {
|
||||
return GetCurrencies()
|
||||
}
|
852
services/app-general/currency_store.go
Normal file
852
services/app-general/currency_store.go
Normal file
@ -0,0 +1,852 @@
|
||||
package appgeneral
|
||||
|
||||
type Currency struct {
|
||||
Id string `json:"id"`
|
||||
ShortName string `json:"shortName"`
|
||||
Name string `json:"name"`
|
||||
Symbol string `json:"symbol"`
|
||||
Emoji string `json:"emoji"`
|
||||
Unicode string `json:"unicode"`
|
||||
IsToken bool `json:"isToken"`
|
||||
IsPopular bool `json:"isPopular"` // to help the UI to show popular currencies in separate section
|
||||
}
|
||||
|
||||
// This list serves as a common currencies data which can be used across platforms
|
||||
// This data is moved from status-desktop
|
||||
// https://github.com/status-im/status-desktop/blob/2b415bdc5359f424fbfcabf1b5319bc3a8595921/ui/imports/shared/stores/CurrenciesStore.qml#L30
|
||||
var currencyList = []*Currency{
|
||||
{
|
||||
Id: "usd",
|
||||
ShortName: "USD",
|
||||
Name: "United States Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇺🇸",
|
||||
Unicode: "1f1fa-1f1f8",
|
||||
IsPopular: true,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "gbp",
|
||||
ShortName: "GBP",
|
||||
Name: "Great Britain Pound",
|
||||
Symbol: "£",
|
||||
Emoji: "🇬🇧",
|
||||
Unicode: "1f1ec-1f1e7",
|
||||
IsPopular: true,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "eur",
|
||||
ShortName: "EUR",
|
||||
Name: "Euro",
|
||||
Symbol: "€",
|
||||
Emoji: "🇪🇺",
|
||||
Unicode: "1f1ea-1f1fa",
|
||||
IsPopular: true,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "rub",
|
||||
ShortName: "RUB",
|
||||
Name: "Russian Ruble",
|
||||
Symbol: "₽",
|
||||
Emoji: "🇷🇺",
|
||||
Unicode: "1f1f7-1f1fa",
|
||||
IsPopular: true,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "krw",
|
||||
ShortName: "KRW",
|
||||
Name: "South Korean Won",
|
||||
Symbol: "₩",
|
||||
Emoji: "🇰🇷",
|
||||
Unicode: "1f1f0-1f1f7",
|
||||
IsPopular: true,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "eth",
|
||||
ShortName: "ETH",
|
||||
Name: "Ethereum",
|
||||
Symbol: "",
|
||||
Emoji: "",
|
||||
Unicode: "",
|
||||
IsPopular: false,
|
||||
IsToken: true,
|
||||
},
|
||||
{
|
||||
Id: "btc",
|
||||
ShortName: "BTC",
|
||||
Name: "Bitcoin",
|
||||
Symbol: "",
|
||||
Emoji: "",
|
||||
Unicode: "",
|
||||
IsPopular: false,
|
||||
IsToken: true,
|
||||
},
|
||||
{
|
||||
Id: "snt",
|
||||
ShortName: "SNT",
|
||||
Name: "Status Network Token",
|
||||
Symbol: "",
|
||||
Emoji: "",
|
||||
Unicode: "",
|
||||
IsPopular: false,
|
||||
IsToken: true,
|
||||
},
|
||||
{
|
||||
Id: "dai",
|
||||
ShortName: "DAI",
|
||||
Name: "DAI",
|
||||
Symbol: "",
|
||||
Emoji: "",
|
||||
Unicode: "",
|
||||
IsPopular: false,
|
||||
IsToken: true,
|
||||
},
|
||||
{
|
||||
Id: "aed",
|
||||
ShortName: "AED",
|
||||
Name: "United Arab Emirates Dirham",
|
||||
Symbol: "د.إ",
|
||||
Emoji: "🇦🇪",
|
||||
Unicode: "1f1e6-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "afn",
|
||||
ShortName: "AFN",
|
||||
Name: "Afghan Afghani",
|
||||
Symbol: "؋",
|
||||
Emoji: "🇦🇫",
|
||||
Unicode: "1f1e6-1f1eb",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ars",
|
||||
ShortName: "ARS",
|
||||
Name: "Argentine Peso",
|
||||
Symbol: "$",
|
||||
Emoji: "🇦🇷",
|
||||
Unicode: "1f1e6-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "aud",
|
||||
ShortName: "AUD",
|
||||
Name: "Australian Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇦🇺",
|
||||
Unicode: "1f1e6-1f1fa",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bbd",
|
||||
ShortName: "BBD",
|
||||
Name: "Barbadian Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇧🇧",
|
||||
Unicode: "1f1e7-1f1e7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bdt",
|
||||
ShortName: "BDT",
|
||||
Name: "Bangladeshi Taka",
|
||||
Symbol: "Tk",
|
||||
Emoji: "🇧🇩",
|
||||
Unicode: "1f1e7-1f1e9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bgn",
|
||||
ShortName: "BGN",
|
||||
Name: "Bulgarian Lev",
|
||||
Symbol: "лв",
|
||||
Emoji: "🇧🇬",
|
||||
Unicode: "1f1e7-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bhd",
|
||||
ShortName: "BHD",
|
||||
Name: "Bahraini Dinar",
|
||||
Symbol: "BD",
|
||||
Emoji: "🇧🇭",
|
||||
Unicode: "1f1e7-1f1ed",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bnd",
|
||||
ShortName: "BND",
|
||||
Name: "Brunei Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇧🇳",
|
||||
Unicode: "1f1e7-1f1f3",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "bob",
|
||||
ShortName: "BOB",
|
||||
Name: "Bolivian Boliviano",
|
||||
Symbol: "$b",
|
||||
Emoji: "🇧🇴",
|
||||
Unicode: "1f1e7-1f1f4",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "brl",
|
||||
ShortName: "BRL",
|
||||
Name: "Brazilian Real",
|
||||
Symbol: "R$",
|
||||
Emoji: "🇧🇷",
|
||||
Unicode: "1f1e7-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "btn",
|
||||
ShortName: "BTN",
|
||||
Name: "Bhutanese Ngultrum",
|
||||
Symbol: "Nu.",
|
||||
Emoji: "🇧🇹",
|
||||
Unicode: "1f1e7-1f1f9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "cad",
|
||||
ShortName: "CAD",
|
||||
Name: "Canadian Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇨🇦",
|
||||
Unicode: "1f1e8-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "chf",
|
||||
ShortName: "CHF",
|
||||
Name: "Swiss Franc",
|
||||
Symbol: "CHF",
|
||||
Emoji: "🇨🇭",
|
||||
Unicode: "1f1e8-1f1ed",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "clp",
|
||||
ShortName: "CLP",
|
||||
Name: "Chilean Peso",
|
||||
Symbol: "$",
|
||||
Emoji: "🇨🇱",
|
||||
Unicode: "1f1e8-1f1f1",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "cny",
|
||||
ShortName: "CNY",
|
||||
Name: "Chinese Yuan",
|
||||
Symbol: "¥",
|
||||
Emoji: "🇨🇳",
|
||||
Unicode: "1f1e8-1f1f3",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "cop",
|
||||
ShortName: "COP",
|
||||
Name: "Colombian Peso",
|
||||
Symbol: "$",
|
||||
Emoji: "🇨🇴",
|
||||
Unicode: "1f1e8-1f1f4",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "crc",
|
||||
ShortName: "CRC",
|
||||
Name: "Costa Rican Colón",
|
||||
Symbol: "₡",
|
||||
Emoji: "🇨🇷",
|
||||
Unicode: "1f1e8-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "czk",
|
||||
ShortName: "CZK",
|
||||
Name: "Czech Koruna",
|
||||
Symbol: "Kč",
|
||||
Emoji: "🇨🇿",
|
||||
Unicode: "1f1e8-1f1ff",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "dkk",
|
||||
ShortName: "DKK",
|
||||
Name: "Danish Krone",
|
||||
Symbol: "kr",
|
||||
Emoji: "🇩🇰",
|
||||
Unicode: "1f1e9-1f1f0",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "dop",
|
||||
ShortName: "DOP",
|
||||
Name: "Dominican Peso",
|
||||
Symbol: "RD$",
|
||||
Emoji: "🇩🇴",
|
||||
Unicode: "1f1e9-1f1f4",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "egp",
|
||||
ShortName: "EGP",
|
||||
Name: "Egyptian Pound",
|
||||
Symbol: "£",
|
||||
Emoji: "🇪🇬",
|
||||
Unicode: "1f1ea-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "etb",
|
||||
ShortName: "ETB",
|
||||
Name: "Ethiopian Birr",
|
||||
Symbol: "Br",
|
||||
Emoji: "🇪🇹",
|
||||
Unicode: "1f1ea-1f1f9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "gel",
|
||||
ShortName: "GEL",
|
||||
Name: "Georgian Lari",
|
||||
Symbol: "₾",
|
||||
Emoji: "🇬🇪",
|
||||
Unicode: "1f1ec-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ghs",
|
||||
ShortName: "GHS",
|
||||
Name: "Ghanaian Cedi",
|
||||
Symbol: "¢",
|
||||
Emoji: "🇬🇭",
|
||||
Unicode: "1f1ec-1f1ed",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "hkd",
|
||||
ShortName: "HKD",
|
||||
Name: "Hong Kong Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇭🇰",
|
||||
Unicode: "1f1ed-1f1f0",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "hrk",
|
||||
ShortName: "HRK",
|
||||
Name: "Croatian Kuna",
|
||||
Symbol: "kn",
|
||||
Emoji: "🇭🇷",
|
||||
Unicode: "1f1ed-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "huf",
|
||||
ShortName: "HUF",
|
||||
Name: "Hungarian Forint",
|
||||
Symbol: "Ft",
|
||||
Emoji: "🇭🇺",
|
||||
Unicode: "1f1ed-1f1fa",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "idr",
|
||||
ShortName: "IDR",
|
||||
Name: "Indonesian Rupiah",
|
||||
Symbol: "Rp",
|
||||
Emoji: "🇮🇩",
|
||||
Unicode: "1f1ee-1f1e9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ils",
|
||||
ShortName: "ILS",
|
||||
Name: "Israeli New Shekel",
|
||||
Symbol: "₪",
|
||||
Emoji: "🇮🇱",
|
||||
Unicode: "1f1ee-1f1f1",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "inr",
|
||||
ShortName: "INR",
|
||||
Name: "Indian Rupee",
|
||||
Symbol: "₹",
|
||||
Emoji: "🇮🇳",
|
||||
Unicode: "1f1ee-1f1f3",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "isk",
|
||||
ShortName: "ISK",
|
||||
Name: "Icelandic Króna",
|
||||
Symbol: "kr",
|
||||
Emoji: "🇮🇸",
|
||||
Unicode: "1f1ee-1f1f8",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "jmd",
|
||||
ShortName: "JMD",
|
||||
Name: "Jamaican Dollar",
|
||||
Symbol: "J$",
|
||||
Emoji: "🇯🇲",
|
||||
Unicode: "1f1ef-1f1f2",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "jpy",
|
||||
ShortName: "JPY",
|
||||
Name: "Japanese Yen",
|
||||
Symbol: "¥",
|
||||
Emoji: "🇯🇵",
|
||||
Unicode: "1f1ef-1f1f5",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "kes",
|
||||
ShortName: "KES",
|
||||
Name: "Kenyan Shilling",
|
||||
Symbol: "KSh",
|
||||
Emoji: "🇰🇪",
|
||||
Unicode: "1f1f0-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "kwd",
|
||||
ShortName: "KWD",
|
||||
Name: "Kuwaiti Dinar",
|
||||
Symbol: "د.ك",
|
||||
Emoji: "🇰🇼",
|
||||
Unicode: "1f1f0-1f1fc",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "kzt",
|
||||
ShortName: "KZT",
|
||||
Name: "Kazakhstani Tenge",
|
||||
Symbol: "лв",
|
||||
Emoji: "🇰🇿",
|
||||
Unicode: "1f1f0-1f1ff",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "lkr",
|
||||
ShortName: "LKR",
|
||||
Name: "Sri Lankan Rupee",
|
||||
Symbol: "₨",
|
||||
Emoji: "🇱🇰",
|
||||
Unicode: "1f1f1-1f1f0",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mad",
|
||||
ShortName: "MAD",
|
||||
Name: "Moroccan Dirham",
|
||||
Symbol: "MAD",
|
||||
Emoji: "🇲🇦",
|
||||
Unicode: "1f1f2-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mdl",
|
||||
ShortName: "MDL",
|
||||
Name: "Moldovan Leu",
|
||||
Symbol: "MDL",
|
||||
Emoji: "🇲🇩",
|
||||
Unicode: "1f1f2-1f1e9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mur",
|
||||
ShortName: "MUR",
|
||||
Name: "Mauritian Rupee",
|
||||
Symbol: "₨",
|
||||
Emoji: "🇲🇺",
|
||||
Unicode: "1f1f2-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mwk",
|
||||
ShortName: "MWK",
|
||||
Name: "Malawian Kwacha",
|
||||
Symbol: "MK",
|
||||
Emoji: "🇲🇼",
|
||||
Unicode: "1f1f2-1f1fc",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mxn",
|
||||
ShortName: "MXN",
|
||||
Name: "Mexican Peso",
|
||||
Symbol: "$",
|
||||
Emoji: "🇲🇽",
|
||||
Unicode: "1f1f2-1f1fd",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "myr",
|
||||
ShortName: "MYR",
|
||||
Name: "Malaysian Ringgit",
|
||||
Symbol: "RM",
|
||||
Emoji: "🇲🇾",
|
||||
Unicode: "1f1f2-1f1fe",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "mzn",
|
||||
ShortName: "MZN",
|
||||
Name: "Mozambican metical",
|
||||
Symbol: "MT",
|
||||
Emoji: "🇲🇿",
|
||||
Unicode: "1f1f2-1f1ff",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "nad",
|
||||
ShortName: "NAD",
|
||||
Name: "Namibian Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇳🇦",
|
||||
Unicode: "1f1f3-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ngn",
|
||||
ShortName: "NGN",
|
||||
Name: "Nigerian Naira",
|
||||
Symbol: "₦",
|
||||
Emoji: "🇳🇬",
|
||||
Unicode: "1f1f3-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "nok",
|
||||
ShortName: "NOK",
|
||||
Name: "Norwegian Krone",
|
||||
Symbol: "kr",
|
||||
Emoji: "🇳🇴",
|
||||
Unicode: "1f1f3-1f1f4",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "npr",
|
||||
ShortName: "NPR",
|
||||
Name: "Nepalese Rupee",
|
||||
Symbol: "₨",
|
||||
Emoji: "🇳🇵",
|
||||
Unicode: "1f1f3-1f1f5",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "nzd",
|
||||
ShortName: "NZD",
|
||||
Name: "New Zealand Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇳🇿",
|
||||
Unicode: "1f1f3-1f1ff",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "omr",
|
||||
ShortName: "OMR",
|
||||
Name: "Omani Rial",
|
||||
Symbol: "﷼",
|
||||
Emoji: "🇴🇲",
|
||||
Unicode: "1f1f4-1f1f2",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "pen",
|
||||
ShortName: "PEN",
|
||||
Name: "Peruvian Sol",
|
||||
Symbol: "S/.",
|
||||
Emoji: "🇵🇪",
|
||||
Unicode: "1f1f5-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "pgk",
|
||||
ShortName: "PGK",
|
||||
Name: "Papua New Guinean Kina",
|
||||
Symbol: "K",
|
||||
Emoji: "🇵🇬",
|
||||
Unicode: "1f1f5-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "php",
|
||||
ShortName: "PHP",
|
||||
Name: "Philippine peso",
|
||||
Symbol: "₱",
|
||||
Emoji: "🇵🇭",
|
||||
Unicode: "1f1f5-1f1ed",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "pkr",
|
||||
ShortName: "PKR",
|
||||
Name: "Pakistani Rupee",
|
||||
Symbol: "₨",
|
||||
Emoji: "🇵🇰",
|
||||
Unicode: "1f1f5-1f1f0",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "pln",
|
||||
ShortName: "PLN",
|
||||
Name: "Polish złoty",
|
||||
Symbol: "zł",
|
||||
Emoji: "🇵🇱",
|
||||
Unicode: "1f1f5-1f1f1",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "pyg",
|
||||
ShortName: "PYG",
|
||||
Name: "Paraguayan Guarani",
|
||||
Symbol: "Gs",
|
||||
Emoji: "🇵🇾",
|
||||
Unicode: "1f1f5-1f1fe",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "qar",
|
||||
ShortName: "QAR",
|
||||
Name: "Qatari Riyal",
|
||||
Symbol: "﷼",
|
||||
Emoji: "🇶🇦",
|
||||
Unicode: "1f1f6-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ron",
|
||||
ShortName: "RON",
|
||||
Name: "Romanian Leu",
|
||||
Symbol: "lei",
|
||||
Emoji: "🇷🇴",
|
||||
Unicode: "1f1f7-1f1f4",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "rsd",
|
||||
ShortName: "RSD",
|
||||
Name: "Serbian Dinar",
|
||||
Symbol: "Дин.",
|
||||
Emoji: "🇷🇸",
|
||||
Unicode: "1f1f7-1f1f8",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "sar",
|
||||
ShortName: "SAR",
|
||||
Name: "Saudi Riyal",
|
||||
Symbol: "﷼",
|
||||
Emoji: "🇸🇦",
|
||||
Unicode: "1f1f8-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "sek",
|
||||
ShortName: "SEK",
|
||||
Name: "Swedish Krona",
|
||||
Symbol: "kr",
|
||||
Emoji: "🇸🇪",
|
||||
Unicode: "1f1f8-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "sgd",
|
||||
ShortName: "SGD",
|
||||
Name: "Singapore Dollar",
|
||||
Symbol: "$",
|
||||
Emoji: "🇸🇬",
|
||||
Unicode: "1f1f8-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "thb",
|
||||
ShortName: "THB",
|
||||
Name: "Thai Baht",
|
||||
Symbol: "฿",
|
||||
Emoji: "🇹🇭",
|
||||
Unicode: "1f1f9-1f1ed",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ttd",
|
||||
ShortName: "TTD",
|
||||
Name: "Trinidad and Tobago Dollar",
|
||||
Symbol: "TT$",
|
||||
Emoji: "🇹🇹",
|
||||
Unicode: "1f1f9-1f1f9",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "twd",
|
||||
ShortName: "TWD",
|
||||
Name: "New Taiwan dollar",
|
||||
Symbol: "NT$",
|
||||
Emoji: "🇹🇼",
|
||||
Unicode: "1f1f9-1f1fc",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "tzs",
|
||||
ShortName: "TZS",
|
||||
Name: "Tanzanian Shilling",
|
||||
Symbol: "TSh",
|
||||
Emoji: "🇹🇿",
|
||||
Unicode: "1f1f9-1f1ff",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "try",
|
||||
ShortName: "TRY",
|
||||
Name: "Turkish lira",
|
||||
Symbol: "₺",
|
||||
Emoji: "🇹🇷",
|
||||
Unicode: "1f1f9-1f1f7",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "uah",
|
||||
ShortName: "UAH",
|
||||
Name: "Ukrainian hryvnia",
|
||||
Symbol: "₴",
|
||||
Emoji: "🇺🇦",
|
||||
Unicode: "1f1fa-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "ugx",
|
||||
ShortName: "UGX",
|
||||
Name: "Ugandan Shilling",
|
||||
Symbol: "USh",
|
||||
Emoji: "🇺🇬",
|
||||
Unicode: "1f1fa-1f1ec",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "uyu",
|
||||
ShortName: "UYU",
|
||||
Name: "Uruguayan peso",
|
||||
Symbol: "$U",
|
||||
Emoji: "🇺🇾",
|
||||
Unicode: "1f1fa-1f1fe",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "vef",
|
||||
ShortName: "VEF",
|
||||
Name: "Venezuelan Bolívar",
|
||||
Symbol: "Bs",
|
||||
Emoji: "🇻🇪",
|
||||
Unicode: "1f1fb-1f1ea",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "vnd",
|
||||
ShortName: "VND",
|
||||
Name: "Vietnamese đồng",
|
||||
Symbol: "₫",
|
||||
Emoji: "🇻🇳",
|
||||
Unicode: "1f1fb-1f1f3",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
{
|
||||
Id: "zar",
|
||||
ShortName: "ZAR",
|
||||
Name: "South African Rand",
|
||||
Symbol: "R",
|
||||
Emoji: "🇿🇦",
|
||||
Unicode: "1f1ff-1f1e6",
|
||||
IsPopular: false,
|
||||
IsToken: false,
|
||||
},
|
||||
}
|
||||
|
||||
func GetCurrencies() []*Currency {
|
||||
return currencyList
|
||||
}
|
32
services/app-general/currency_store_test.go
Normal file
32
services/app-general/currency_store_test.go
Normal file
@ -0,0 +1,32 @@
|
||||
package appgeneral
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestCurrencyList(t *testing.T) {
|
||||
currencies := GetCurrencies()
|
||||
require.NotNil(t, currencies)
|
||||
require.Equal(t, 83, len(currencies))
|
||||
|
||||
popularCurrencies := make([]*Currency, 0)
|
||||
cryptoCurrencies := make([]*Currency, 0)
|
||||
otherFiatCurrencies := make([]*Currency, 0)
|
||||
for _, c := range currencies {
|
||||
if c.IsPopular {
|
||||
popularCurrencies = append(popularCurrencies, c)
|
||||
}
|
||||
if c.IsToken {
|
||||
cryptoCurrencies = append(cryptoCurrencies, c)
|
||||
}
|
||||
if !c.IsToken && !c.IsPopular {
|
||||
otherFiatCurrencies = append(otherFiatCurrencies, c)
|
||||
}
|
||||
}
|
||||
|
||||
require.Equal(t, 5, len(popularCurrencies))
|
||||
require.Equal(t, 4, len(cryptoCurrencies))
|
||||
require.Equal(t, 74, len(otherFiatCurrencies))
|
||||
}
|
38
services/app-general/service.go
Normal file
38
services/app-general/service.go
Normal file
@ -0,0 +1,38 @@
|
||||
package appgeneral
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/p2p"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
)
|
||||
|
||||
type Service struct{}
|
||||
|
||||
func New() *Service {
|
||||
return &Service{}
|
||||
}
|
||||
|
||||
func NewService() *Service {
|
||||
return &Service{}
|
||||
}
|
||||
|
||||
func (s *Service) APIs() []rpc.API {
|
||||
return []rpc.API{
|
||||
{
|
||||
Namespace: "appgeneral",
|
||||
Version: "0.1.0",
|
||||
Service: NewAPI(s),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Service) Protocols() []p2p.Protocol {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Service) Start() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Service) Stop() error {
|
||||
return nil
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user