currency

package
v0.0.0-...-095394f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 7, 2024 License: MIT Imports: 19 Imported by: 335

README

GoCryptoTrader package Currency

Build Status Software License GoDoc Coverage Status Go Report Card

This currency package is part of the GoCryptoTrader codebase.

This is still in active development

You can track ideas, planned features and what's in progress on this Trello board: https://trello.com/b/ZAhMhpOy/gocryptotrader.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Current Features for currency

  • Currency package contains a full suite of packages that provide:
    • Foreign exchange data fetching for FIAT currencies
    • Currency Pair generation
    • Symbol mapping
    • Translation between currencies that have similar strings e.g. XBT, BTC
Please click GoDocs chevron above to view current GoDoc information for this package

Contribution

Please feel free to submit any pull requests or suggest any desired features to be added.

When submitting a PR, please abide by our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

bc1qk0jareu4jytc0cfrhr5wgshsq8282awpavfahc

Documentation

Index

Constants

View Source
const (
	Unset Role = 0
	Fiat  Role = 1 << (iota - 1)
	Cryptocurrency
	Token
	Contract
	Stable

	UnsetRoleString      = "roleUnset"
	FiatCurrencyString   = "fiatcurrency"
	CryptocurrencyString = "cryptocurrency"
	TokenString          = "token"
	ContractString       = "contract"
	StableString         = "stablecurrency"
)

Bitmasks const for currency roles

View Source
const (
	UnderscoreDelimiter   = "_"
	DashDelimiter         = "-"
	ForwardSlashDelimiter = "/"
	ColonDelimiter        = ":"
)

Const here are packaged defined delimiters

View Source
const (
	DefaultCurrencyFileDelay    = 168 * time.Hour
	DefaultForeignExchangeDelay = 1 * time.Minute
	DefaultStorageFile          = "currency.json"
)

CurrencyFileUpdateDelay defines the rate at which the currency.json file is updated

Variables

View Source
var (
	// ErrCurrencyCodeEmpty defines an error if the currency code is empty
	ErrCurrencyCodeEmpty = errors.New("currency code is empty")
	// ErrCurrencyNotFound returned when a currency is not found in a list
	ErrCurrencyNotFound = errors.New("currency code not found in list")
	// ErrCurrencyPairEmpty defines an error if the currency pair is empty
	ErrCurrencyPairEmpty = errors.New("currency pair is empty")
	// ErrCurrencyNotSupported defines an error if the currency pair is not supported
	ErrCurrencyNotSupported = errors.New("currency not supported")
	// ErrCurrencyPairsEmpty returns when a currency.Pairs has len == 0
	ErrCurrencyPairsEmpty = errors.New("currency pairs is empty")
	// EMPTYCODE is an empty currency code
	EMPTYCODE = Code{}
	// EMPTYPAIR is an empty currency pair
	EMPTYPAIR = Pair{}
)
View Source
var (
	BTC              = NewCode("BTC")
	LTC              = NewCode("LTC")
	ETH              = NewCode("ETH")
	XRP              = NewCode("XRP")
	BCH              = NewCode("BCH")
	EOS              = NewCode("EOS")
	XLM              = NewCode("XLM")
	USDT             = NewCode("USDT")
	USDC             = NewCode("USDC")
	ADA              = NewCode("ADA")
	XMR              = NewCode("XMR")
	TRX              = NewCode("TRX")
	MIOTA            = NewCode("MIOTA")
	DASH             = NewCode("DASH")
	BNB              = NewCode("BNB")
	NEO              = NewCode("NEO")
	ETC              = NewCode("ETC")
	XEM              = NewCode("XEM")
	XTZ              = NewCode("XTZ")
	VET              = NewCode("VET")
	DOGE             = NewCode("DOGE")
	ZEC              = NewCode("ZEC")
	OMG              = NewCode("OMG")
	BTG              = NewCode("BTG")
	MKR              = NewCode("MKR")
	BCN              = NewCode("BCN")
	ONT              = NewCode("ONT")
	ZRX              = NewCode("ZRX")
	LSK              = NewCode("LSK")
	DCR              = NewCode("DCR")
	QTUM             = NewCode("QTUM")
	BCD              = NewCode("BCD")
	BTS              = NewCode("BTS")
	NANO             = NewCode("NANO")
	ZIL              = NewCode("ZIL")
	SC               = NewCode("SC")
	DGB              = NewCode("DGB")
	ICX              = NewCode("ICX")
	STEEM            = NewCode("STEEM")
	AE               = NewCode("AE")
	XVG              = NewCode("XVG")
	WAVES            = NewCode("WAVES")
	NPXS             = NewCode("NPXS")
	ETN              = NewCode("ETN")
	BTM              = NewCode("BTM")
	BAT              = NewCode("BAT")
	ETP              = NewCode("ETP")
	HOT              = NewCode("HOT")
	STRAT            = NewCode("STRAT") //nolint // Cryptocurrency code
	GNT              = NewCode("GNT")
	REP              = NewCode("REP")
	SNT              = NewCode("SNT")
	PPT              = NewCode("PPT")
	KMD              = NewCode("KMD")
	TUSD             = NewCode("TUSD")
	CNX              = NewCode("CNX")
	LINK             = NewCode("LINK")
	WTC              = NewCode("WTC")
	ARDR             = NewCode("ARDR")
	WAN              = NewCode("WAN")
	MITH             = NewCode("MITH")
	RDD              = NewCode("RDD")
	IOST             = NewCode("IOST")
	IOT              = NewCode("IOT")
	KCS              = NewCode("KCS")
	MAID             = NewCode("MAID")
	XET              = NewCode("XET")
	MOAC             = NewCode("MOAC")
	HC               = NewCode("HC")
	AION             = NewCode("AION")
	AOA              = NewCode("AOA")
	HT               = NewCode("HT")
	ELF              = NewCode("ELF")
	LRC              = NewCode("LRC")
	BNT              = NewCode("BNT")
	CMT              = NewCode("CMT")
	DGD              = NewCode("DGD")
	DCN              = NewCode("DCN")
	FUN              = NewCode("FUN")
	GXS              = NewCode("GXS")
	DROP             = NewCode("DROP")
	MANA             = NewCode("MANA")
	APE              = NewCode("APE")
	PAY              = NewCode("PAY")
	MCO              = NewCode("MCO")
	THETA            = NewCode("THETA")
	NXT              = NewCode("NXT")
	NOAH             = NewCode("NOAH")
	LOOM             = NewCode("LOOM")
	POWR             = NewCode("POWR")
	WAX              = NewCode("WAX")
	ELA              = NewCode("ELA")
	PIVX             = NewCode("PIVX")
	XIN              = NewCode("XIN")
	DAI              = NewCode("DAI")
	BTCP             = NewCode("BTCP")
	NEXO             = NewCode("NEXO")
	XBT              = NewCode("XBT")
	SAN              = NewCode("SAN")
	GAS              = NewCode("GAS")
	BCC              = NewCode("BCC")
	HCC              = NewCode("HCC")
	OAX              = NewCode("OAX")
	DNT              = NewCode("DNT")
	ICN              = NewCode("ICN")
	LLT              = NewCode("LLT")
	YOYO             = NewCode("YOYO")
	SNGLS            = NewCode("SNGLS")
	BQX              = NewCode("BQX")
	KNC              = NewCode("KNC")
	SNM              = NewCode("SNM")
	CTR              = NewCode("CTR")
	SALT             = NewCode("SALT")
	MDA              = NewCode("MDA")
	IOTA             = NewCode("IOTA")
	SUB              = NewCode("SUB")
	MTL              = NewCode("MTL")
	MTH              = NewCode("MTH")
	ENG              = NewCode("ENG")
	AST              = NewCode("AST")
	CLN              = NewCode("CLN")
	EDG              = NewCode("EDG")
	FIRST            = NewCode("1ST")
	GOLOS            = NewCode("GOLOS")
	ANT              = NewCode("ANT")
	GBG              = NewCode("GBG")
	HMQ              = NewCode("HMQ")
	INCNT            = NewCode("INCNT")
	ACE              = NewCode("ACE")
	ACT              = NewCode("ACT")
	AAC              = NewCode("AAC")
	AIDOC            = NewCode("AIDOC")
	SOC              = NewCode("SOC")
	ATL              = NewCode("ATL")
	AVT              = NewCode("AVT")
	BKX              = NewCode("BKX")
	BEC              = NewCode("BEC")
	VEE              = NewCode("VEE")
	PTOY             = NewCode("PTOY")
	CAG              = NewCode("CAG")
	CIC              = NewCode("CIC")
	CBT              = NewCode("CBT")
	CAN              = NewCode("CAN")
	DAT              = NewCode("DAT")
	DNA              = NewCode("DNA")
	INT              = NewCode("INT")
	IPC              = NewCode("IPC")
	ILA              = NewCode("ILA")
	LIGHT            = NewCode("LIGHT")
	MAG              = NewCode("MAG")
	AMM              = NewCode("AMM")
	MOF              = NewCode("MOF")
	MGC              = NewCode("MGC")
	OF               = NewCode("OF")
	LA               = NewCode("LA")
	LEV              = NewCode("LEV")
	NGC              = NewCode("NGC")
	OKB              = NewCode("OKB")
	MOT              = NewCode("MOT")
	PRA              = NewCode("PRA")
	R                = NewCode("R")
	SSC              = NewCode("SSC")
	SHOW             = NewCode("SHOW")
	SPF              = NewCode("SPF")
	PF               = NewCode("PF")
	SNC              = NewCode("SNC")
	SWFTC            = NewCode("SWFTC")
	TRA              = NewCode("TRA")
	TOPC             = NewCode("TOPC")
	TRIO             = NewCode("TRIO")
	QVT              = NewCode("QVT")
	UCT              = NewCode("UCT")
	UKG              = NewCode("UKG")
	UTK              = NewCode("UTK")
	VIU              = NewCode("VIU")
	WFEE             = NewCode("WFEE")
	WRC              = NewCode("WRC")
	UGC              = NewCode("UGC")
	YEE              = NewCode("YEE")
	YOYOW            = NewCode("YOYOW")
	ZIP              = NewCode("ZIP")
	READ             = NewCode("READ")
	RCT              = NewCode("RCT")
	REF              = NewCode("REF")
	XUC              = NewCode("XUC")
	FAIR             = NewCode("FAIR")
	GSC              = NewCode("GSC")
	HMC              = NewCode("HMC")
	PLU              = NewCode("PLU")
	PRO              = NewCode("PRO")
	QRL              = NewCode("QRL")
	REN              = NewCode("REN")
	ROUND            = NewCode("ROUND")
	SRN              = NewCode("SRN")
	XID              = NewCode("XID")
	SBD              = NewCode("SBD")
	TAAS             = NewCode("TAAS")
	TKN              = NewCode("TKN")
	VEN              = NewCode("VEN")
	VSL              = NewCode("VSL")
	TRST             = NewCode("TRST")
	XXX              = NewCode("XXX")
	IND              = NewCode("IND")
	LDC              = NewCode("LDC")
	GUP              = NewCode("GUP")
	MGO              = NewCode("MGO")
	MYST             = NewCode("MYST")
	NEU              = NewCode("NEU")
	NET              = NewCode("NET")
	BMC              = NewCode("BMC")
	BCAP             = NewCode("BCAP")
	TIME             = NewCode("TIME")
	CFI              = NewCode("CFI")
	EVX              = NewCode("EVX")
	REQ              = NewCode("REQ")
	VIB              = NewCode("VIB")
	ARK              = NewCode("ARK")
	MOD              = NewCode("MOD")
	ENJ              = NewCode("ENJ")
	PFC              = NewCode("PFC")
	STORJ            = NewCode("STORJ")
	RCN              = NewCode("RCN")
	NULS             = NewCode("NULS")
	RDN              = NewCode("RDN")
	DLT              = NewCode("DLT")
	AMB              = NewCode("AMB")
	BCPT             = NewCode("BCPT")
	ARN              = NewCode("ARN")
	GVT              = NewCode("GVT")
	CDT              = NewCode("CDT")
	POE              = NewCode("POE")
	QSP              = NewCode("QSP")
	XZC              = NewCode("XZC")
	TNT              = NewCode("TNT")
	FUEL             = NewCode("FUEL")
	ADX              = NewCode("ADX")
	CND              = NewCode("CND")
	LEND             = NewCode("LEND")
	WABI             = NewCode("WABI")
	SBTC             = NewCode("SBTC")
	BCX              = NewCode("BCX")
	TNB              = NewCode("TNB")
	GTO              = NewCode("GTO")
	OST              = NewCode("OST")
	CVC              = NewCode("CVC")
	DATA             = NewCode("DATA")
	ETF              = NewCode("ETF")
	BRD              = NewCode("BRD")
	NEBL             = NewCode("NEBL")
	VIBE             = NewCode("VIBE")
	LUN              = NewCode("LUN")
	CHAT             = NewCode("CHAT")
	RLC              = NewCode("RLC")
	INS              = NewCode("INS")
	VIA              = NewCode("VIA")
	BLZ              = NewCode("BLZ")
	SYS              = NewCode("SYS")
	NCASH            = NewCode("NCASH")
	POA              = NewCode("POA")
	STORM            = NewCode("STORM")
	WPR              = NewCode("WPR")
	QLC              = NewCode("QLC")
	GRS              = NewCode("GRS")
	CLOAK            = NewCode("CLOAK")
	ZEN              = NewCode("ZEN")
	SKY              = NewCode("SKY")
	IOTX             = NewCode("IOTX")
	QKC              = NewCode("QKC")
	AGI              = NewCode("AGI")
	NXS              = NewCode("NXS")
	EON              = NewCode("EON")
	KEY              = NewCode("KEY")
	NAS              = NewCode("NAS")
	ADD              = NewCode("ADD")
	MEETONE          = NewCode("MEETONE")
	ATD              = NewCode("ATD")
	MFT              = NewCode("MFT")
	EOP              = NewCode("EOP")
	DENT             = NewCode("DENT")
	IQ               = NewCode("IQ")
	DOCK             = NewCode("DOCK")
	POLY             = NewCode("POLY")
	VTHO             = NewCode("VTHO")
	ONG              = NewCode("ONG")
	PHX              = NewCode("PHX")
	GO               = NewCode("GO")
	PAX              = NewCode("PAX")
	PAXG             = NewCode("PAXG")
	EDO              = NewCode("EDO")
	WINGS            = NewCode("WINGS")
	NAV              = NewCode("NAV")
	TRIG             = NewCode("TRIG")
	APPC             = NewCode("APPC")
	KRW              = NewCode("KRW")
	HSR              = NewCode("HSR")
	ETHOS            = NewCode("ETHOS")
	CTXC             = NewCode("CTXC")
	ITC              = NewCode("ITC")
	TRUE             = NewCode("TRUE")
	ABT              = NewCode("ABT")
	RNT              = NewCode("RNT")
	PLY              = NewCode("PLY")
	PST              = NewCode("PST")
	KICK             = NewCode("KICK")
	BTCZ             = NewCode("BTCZ")
	DXT              = NewCode("DXT")
	STQ              = NewCode("STQ")
	INK              = NewCode("INK")
	HBZ              = NewCode("HBZ")
	USDT_ETH         = NewCode("USDT_ETH") //nolint // Cryptocurrency code
	QTUM_ETH         = NewCode("QTUM_ETH") //nolint // Cryptocurrency code
	BTM_ETH          = NewCode("BTM_ETH")  //nolint // Cryptocurrency code
	FIL              = NewCode("FIL")
	STX              = NewCode("STX")
	BOT              = NewCode("BOT")
	VERI             = NewCode("VERI")
	ZSC              = NewCode("ZSC")
	QBT              = NewCode("QBT")
	MED              = NewCode("MED")
	QASH             = NewCode("QASH")
	MDS              = NewCode("MDS")
	GOD              = NewCode("GOD")
	SMT              = NewCode("SMT")
	BTF              = NewCode("BTF")
	NAS_ETH          = NewCode("NAS_ETH") //nolint // Cryptocurrency code
	TSL              = NewCode("TSL")
	BIFI             = NewCode("BIFI")
	BNTY             = NewCode("BNTY")
	DRGN             = NewCode("DRGN")
	GTC              = NewCode("GTC")
	MDT              = NewCode("MDT")
	QUN              = NewCode("QUN")
	GNX              = NewCode("GNX")
	DDD              = NewCode("DDD")
	BTO              = NewCode("BTO")
	TIO              = NewCode("TIO")
	OCN              = NewCode("OCN")
	RUFF             = NewCode("RUFF")
	TNC              = NewCode("TNC")
	SNET             = NewCode("SNET")
	COFI             = NewCode("COFI")
	ZPT              = NewCode("ZPT")
	JNT              = NewCode("JNT")
	MTN              = NewCode("MTN")
	GEM              = NewCode("GEM")
	DADI             = NewCode("DADI")
	RFR              = NewCode("RFR")
	MOBI             = NewCode("MOBI")
	LEDU             = NewCode("LEDU")
	DBC              = NewCode("DBC")
	MKR_OLD          = NewCode("MKR_OLD") //nolint // Cryptocurrency code
	DPY              = NewCode("DPY")
	BCDN             = NewCode("BCDN")
	EOSDAC           = NewCode("EOSDAC")
	TIPS             = NewCode("TIPS")
	XMC              = NewCode("XMC")
	PPS              = NewCode("PPS")
	BOE              = NewCode("BOE")
	MEDX             = NewCode("MEDX")
	SMT_ETH          = NewCode("SMT_ETH") //nolint // Cryptocurrency code
	CS               = NewCode("CS")
	MAN              = NewCode("MAN")
	REM              = NewCode("REM")
	LYM              = NewCode("LYM")
	INSTAR           = NewCode("INSTAR")
	BFT              = NewCode("BFT")
	IHT              = NewCode("IHT")
	SENC             = NewCode("SENC")
	TOMO             = NewCode("TOMO")
	ELEC             = NewCode("ELEC")
	SHIP             = NewCode("SHIP")
	TFD              = NewCode("TFD")
	HAV              = NewCode("HAV")
	HUR              = NewCode("HUR")
	LST              = NewCode("LST")
	LINO             = NewCode("LINO")
	SWTH             = NewCode("SWTH")
	NKN              = NewCode("NKN")
	SOUL             = NewCode("SOUL")
	GALA_NEO         = NewCode("GALA_NEO") //nolint // Cryptocurrency code
	LRN              = NewCode("LRN")
	GSE              = NewCode("GSE")
	RATING           = NewCode("RATING")
	HSC              = NewCode("HSC")
	HIT              = NewCode("HIT")
	DX               = NewCode("DX")
	BXC              = NewCode("BXC")
	GARD             = NewCode("GARD")
	FTI              = NewCode("FTI")
	SOP              = NewCode("SOP")
	LEMO             = NewCode("LEMO")
	RED              = NewCode("RED")
	LBA              = NewCode("LBA")
	KAN              = NewCode("KAN")
	OPEN             = NewCode("OPEN")
	SKM              = NewCode("SKM")
	NBAI             = NewCode("NBAI")
	UPP              = NewCode("UPP")
	ATMI             = NewCode("ATMI")
	TMT              = NewCode("TMT")
	BBK              = NewCode("BBK")
	EDR              = NewCode("EDR")
	MET              = NewCode("MET")
	TCT              = NewCode("TCT")
	EXC              = NewCode("EXC")
	CNC              = NewCode("CNC")
	TIX              = NewCode("TIX")
	XTC              = NewCode("XTC")
	BU               = NewCode("BU")
	GNO              = NewCode("GNO")
	MLN              = NewCode("MLN")
	XBC              = NewCode("XBC")
	BTCD             = NewCode("BTCD")
	BURST            = NewCode("BURST")
	CLAM             = NewCode("CLAM")
	XCP              = NewCode("XCP")
	EMC2             = NewCode("EMC2")
	EXP              = NewCode("EXP")
	FCT              = NewCode("FCT")
	GAME             = NewCode("GAME")
	GRC              = NewCode("GRC")
	HUC              = NewCode("HUC")
	LBC              = NewCode("LBC")
	NMC              = NewCode("NMC")
	NEOS             = NewCode("NEOS")
	OMNI             = NewCode("OMNI")
	PASC             = NewCode("PASC")
	PPC              = NewCode("PPC")
	DSH              = NewCode("DSH")
	GML              = NewCode("GML")
	GSY              = NewCode("GSY")
	POT              = NewCode("POT")
	XPM              = NewCode("XPM")
	AMP              = NewCode("AMP")
	VRC              = NewCode("VRC")
	VTC              = NewCode("VTC")
	ZERO07           = NewCode("007")
	BIT16            = NewCode("BIT16")
	TWO015           = NewCode("2015")
	TWO56            = NewCode("256")
	TWOBACCO         = NewCode("2BACCO")
	TWOGIVE          = NewCode("2GIVE")
	THIRTY2BIT       = NewCode("32BIT")
	THREE65          = NewCode("365")
	FOUR04           = NewCode("404")
	SEVEN00          = NewCode("700")
	EIGHTBIT         = NewCode("8BIT")
	ACLR             = NewCode("ACLR")
	ACES             = NewCode("ACES")
	ACPR             = NewCode("ACPR")
	ACID             = NewCode("ACID")
	ACOIN            = NewCode("ACOIN")
	ACRN             = NewCode("ACRN")
	ADAM             = NewCode("ADAM")
	ADT              = NewCode("ADT")
	AIB              = NewCode("AIB")
	ADZ              = NewCode("ADZ")
	AECC             = NewCode("AECC")
	AM               = NewCode("AM")
	AGRI             = NewCode("AGRI")
	AGT              = NewCode("AGT")
	AIR              = NewCode("AIR")
	ALEX             = NewCode("ALEX")
	AUM              = NewCode("AUM")
	ALIEN            = NewCode("ALIEN")
	ALIS             = NewCode("ALIS")
	ALL              = NewCode("ALL")
	ASAFE            = NewCode("ASAFE")
	AMBER            = NewCode("AMBER")
	AMS              = NewCode("AMS")
	ANAL             = NewCode("ANAL")
	ACP              = NewCode("ACP")
	ANI              = NewCode("ANI")
	ANTI             = NewCode("ANTI")
	ALTC             = NewCode("ALTC")
	APT              = NewCode("APT")
	ARCO             = NewCode("ARCO")
	ALC              = NewCode("ALC")
	ARB              = NewCode("ARB")
	ARCT             = NewCode("ARCT")
	ARCX             = NewCode("ARCX")
	ARGUS            = NewCode("ARGUS")
	ARH              = NewCode("ARH")
	ARM              = NewCode("ARM")
	ARNA             = NewCode("ARNA")
	ARPA             = NewCode("ARPA")
	ARTA             = NewCode("ARTA")
	ABY              = NewCode("ABY")
	ARTC             = NewCode("ARTC")
	AL               = NewCode("AL")
	ASN              = NewCode("ASN")
	ADCN             = NewCode("ADCN")
	ATB              = NewCode("ATB")
	ATM              = NewCode("ATM")
	ATMCHA           = NewCode("ATMCHA")
	ATOM             = NewCode("ATOM")
	ADC              = NewCode("ADC")
	ARE              = NewCode("ARE")
	AUR              = NewCode("AUR")
	AV               = NewCode("AV")
	AXIOM            = NewCode("AXIOM")
	B2B              = NewCode("B2B")
	B2               = NewCode("B2")
	B3               = NewCode("B3")
	BAB              = NewCode("BAB")
	BAN              = NewCode("BAN")
	BamitCoin        = NewCode("BamitCoin")
	NANAS            = NewCode("NANAS")
	BBCC             = NewCode("BBCC")
	BTA              = NewCode("BTA")
	BSTK             = NewCode("BSTK")
	BATL             = NewCode("BATL")
	BBH              = NewCode("BBH")
	BITB             = NewCode("BITB")
	BRDD             = NewCode("BRDD")
	XBTS             = NewCode("XBTS")
	BVC              = NewCode("BVC")
	CHATX            = NewCode("CHATX")
	BEEP             = NewCode("BEEP")
	BEEZ             = NewCode("BEEZ")
	BENJI            = NewCode("BENJI")
	BERN             = NewCode("BERN")
	PROFIT           = NewCode("PROFIT")
	BEST             = NewCode("BEST")
	BGF              = NewCode("BGF")
	BIGUP            = NewCode("BIGUP")
	BLRY             = NewCode("BLRY")
	BILL             = NewCode("BILL")
	BIOB             = NewCode("BIOB")
	BIO              = NewCode("BIO")
	BIOS             = NewCode("BIOS")
	BPTN             = NewCode("BPTN")
	BTCA             = NewCode("BTCA")
	BA               = NewCode("BA")
	BAC              = NewCode("BAC")
	BBT              = NewCode("BBT")
	BOSS             = NewCode("BOSS")
	BRONZ            = NewCode("BRONZ")
	CAT              = NewCode("CAT")
	BTD              = NewCode("BTD")
	XBTC21           = NewCode("XBTC21")
	BCA              = NewCode("BCA")
	BCP              = NewCode("BCP")
	BTDOLL           = NewCode("BTDOLL")
	LIZA             = NewCode("LIZA")
	BTCRED           = NewCode("BTCRED")
	BTCS             = NewCode("BTCS")
	BTU              = NewCode("BTU")
	BUM              = NewCode("BUM")
	LITE             = NewCode("LITE")
	BCM              = NewCode("BCM")
	BCS              = NewCode("BCS")
	BTCU             = NewCode("BTCU")
	BM               = NewCode("BM")
	BTCRY            = NewCode("BTCRY")
	BTCR             = NewCode("BTCR")
	HIRE             = NewCode("HIRE")
	STU              = NewCode("STU")
	BITOK            = NewCode("BITOK")
	BITON            = NewCode("BITON")
	BPC              = NewCode("BPC")
	BPOK             = NewCode("BPOK")
	BTP              = NewCode("BTP")
	BITCNY           = NewCode("bitCNY")
	RNTB             = NewCode("RNTB")
	BSH              = NewCode("BSH")
	XBS              = NewCode("XBS")
	BITS             = NewCode("BITS")
	BST              = NewCode("BST")
	BXT              = NewCode("BXT")
	VEG              = NewCode("VEG")
	VOLT             = NewCode("VOLT")
	BTV              = NewCode("BTV")
	BITZ             = NewCode("BITZ")
	BTZ              = NewCode("BTZ")
	BHC              = NewCode("BHC")
	BDC              = NewCode("BDC")
	JACK             = NewCode("JACK")
	BS               = NewCode("BS")
	BSTAR            = NewCode("BSTAR")
	BLAZR            = NewCode("BLAZR")
	BOD              = NewCode("BOD")
	BLUE             = NewCode("BLUE")
	BLU              = NewCode("BLU")
	BLUS             = NewCode("BLUS")
	BMT              = NewCode("BMT")
	BOLI             = NewCode("BOLI")
	BOMB             = NewCode("BOMB")
	BON              = NewCode("BON")
	BOOM             = NewCode("BOOM")
	BOSON            = NewCode("BOSON")
	BSC              = NewCode("BSC")
	BRH              = NewCode("BRH")
	BRAIN            = NewCode("BRAIN")
	BRE              = NewCode("BRE")
	BTCM             = NewCode("BTCM")
	BTCO             = NewCode("BTCO")
	TALK             = NewCode("TALK")
	BUB              = NewCode("BUB")
	BUY              = NewCode("BUY")
	BUZZ             = NewCode("BUZZ")
	BTH              = NewCode("BTH")
	C0C0             = NewCode("C0C0")
	CAB              = NewCode("CAB")
	CF               = NewCode("CF")
	CLO              = NewCode("CLO")
	CAM              = NewCode("CAM")
	CD               = NewCode("CD")
	CANN             = NewCode("CANN")
	CNNC             = NewCode("CNNC")
	CPC              = NewCode("CPC")
	CST              = NewCode("CST")
	CAPT             = NewCode("CAPT")
	CARBON           = NewCode("CARBON")
	CME              = NewCode("CME")
	CTK              = NewCode("CTK")
	CBD              = NewCode("CBD")
	CCC              = NewCode("CCC")
	CNT              = NewCode("CNT")
	XCE              = NewCode("XCE")
	CHRG             = NewCode("CHRG")
	CHEMX            = NewCode("CHEMX")
	CHESS            = NewCode("CHESS")
	CKS              = NewCode("CKS")
	CHILL            = NewCode("CHILL")
	CHIP             = NewCode("CHIP")
	CHOOF            = NewCode("CHOOF")
	CRX              = NewCode("CRX")
	CIN              = NewCode("CIN")
	POLL             = NewCode("POLL")
	CLICK            = NewCode("CLICK")
	CLINT            = NewCode("CLINT")
	CLUB             = NewCode("CLUB")
	CLUD             = NewCode("CLUD")
	COX              = NewCode("COX")
	COXST            = NewCode("COXST")
	CFC              = NewCode("CFC")
	CTIC2            = NewCode("CTIC2")
	COIN             = NewCode("COIN")
	BTTF             = NewCode("BTTF")
	C2               = NewCode("C2")
	CAID             = NewCode("CAID")
	CL               = NewCode("CL")
	CTIC             = NewCode("CTIC")
	CXT              = NewCode("CXT")
	CHP              = NewCode("CHP")
	CV2              = NewCode("CV2")
	COC              = NewCode("COC")
	COMP             = NewCode("COMP")
	CMS              = NewCode("CMS")
	CONX             = NewCode("CONX")
	CCX              = NewCode("CCX")
	CLR              = NewCode("CLR")
	CORAL            = NewCode("CORAL")
	CORG             = NewCode("CORG")
	CSMIC            = NewCode("CSMIC")
	CMC              = NewCode("CMC")
	COV              = NewCode("COV")
	COVX             = NewCode("COVX")
	CRAB             = NewCode("CRAB")
	CRAFT            = NewCode("CRAFT")
	CRNK             = NewCode("CRNK")
	CRAVE            = NewCode("CRAVE")
	CRM              = NewCode("CRM")
	XCRE             = NewCode("XCRE")
	CREDIT           = NewCode("CREDIT")
	CREVA            = NewCode("CREVA")
	CRIME            = NewCode("CRIME")
	CROC             = NewCode("CROC")
	CRC              = NewCode("CRC")
	CRW              = NewCode("CRW")
	CRY              = NewCode("CRY")
	CBX              = NewCode("CBX")
	TKTX             = NewCode("TKTX")
	CB               = NewCode("CB")
	CIRC             = NewCode("CIRC")
	CCB              = NewCode("CCB")
	CDO              = NewCode("CDO")
	CG               = NewCode("CG")
	CJ               = NewCode("CJ")
	CJC              = NewCode("CJC")
	CYT              = NewCode("CYT")
	CRPS             = NewCode("CRPS")
	PING             = NewCode("PING")
	CWXT             = NewCode("CWXT")
	CCT              = NewCode("CCT")
	CTL              = NewCode("CTL")
	CURVES           = NewCode("CURVES")
	CC               = NewCode("CC")
	CYC              = NewCode("CYC")
	CYG              = NewCode("CYG")
	CYP              = NewCode("CYP")
	FUNK             = NewCode("FUNK")
	CZECO            = NewCode("CZECO")
	DALC             = NewCode("DALC")
	DLISK            = NewCode("DLISK")
	MOOND            = NewCode("MOOND")
	DB               = NewCode("DB")
	DCC              = NewCode("DCC")
	DCYP             = NewCode("DCYP")
	DETH             = NewCode("DETH")
	DKC              = NewCode("DKC")
	DISK             = NewCode("DISK")
	DRKT             = NewCode("DRKT")
	DTT              = NewCode("DTT")
	DASHS            = NewCode("DASHS")
	DBTC             = NewCode("DBTC")
	DCT              = NewCode("DCT")
	DBET             = NewCode("DBET")
	DEC              = NewCode("DEC")
	DECR             = NewCode("DECR")
	DEA              = NewCode("DEA")
	DPAY             = NewCode("DPAY")
	DCRE             = NewCode("DCRE")
	DC               = NewCode("DC")
	DES              = NewCode("DES")
	DEM              = NewCode("DEM")
	DXC              = NewCode("DXC")
	DCK              = NewCode("DCK")
	CUBE             = NewCode("CUBE")
	DGMS             = NewCode("DGMS")
	DBG              = NewCode("DBG")
	DGCS             = NewCode("DGCS")
	DBLK             = NewCode("DBLK")
	DIME             = NewCode("DIME")
	DIRT             = NewCode("DIRT")
	DVD              = NewCode("DVD")
	DMT              = NewCode("DMT")
	NOTE             = NewCode("NOTE")
	DGORE            = NewCode("DGORE")
	DLC              = NewCode("DLC")
	DRT              = NewCode("DRT")
	DOTA             = NewCode("DOTA")
	DOX              = NewCode("DOX")
	DRA              = NewCode("DRA")
	DFT              = NewCode("DFT")
	XDB              = NewCode("XDB")
	DRM              = NewCode("DRM")
	DRZ              = NewCode("DRZ")
	DRACO            = NewCode("DRACO")
	DBIC             = NewCode("DBIC")
	DUB              = NewCode("DUB")
	GUM              = NewCode("GUM")
	DUR              = NewCode("DUR")
	DUST             = NewCode("DUST")
	DUX              = NewCode("DUX")
	DXO              = NewCode("DXO")
	ECN              = NewCode("ECN")
	EDR2             = NewCode("EDR2")
	EA               = NewCode("EA")
	EAGS             = NewCode("EAGS")
	EMT              = NewCode("EMT")
	EBONUS           = NewCode("EBONUS")
	ECCHI            = NewCode("ECCHI")
	EKO              = NewCode("EKO")
	ECLI             = NewCode("ECLI")
	ECOB             = NewCode("ECOB")
	ECO              = NewCode("ECO")
	EDIT             = NewCode("EDIT")
	EDRC             = NewCode("EDRC")
	EDC              = NewCode("EDC")
	EGAME            = NewCode("EGAME")
	EGG              = NewCode("EGG")
	EGO              = NewCode("EGO")
	ELC              = NewCode("ELC")
	ELCO             = NewCode("ELCO")
	ECA              = NewCode("ECA")
	EPC              = NewCode("EPC")
	ELE              = NewCode("ELE")
	ONE337           = NewCode("1337")
	EMB              = NewCode("EMB")
	EMC              = NewCode("EMC")
	EPY              = NewCode("EPY")
	EMPC             = NewCode("EMPC")
	EMP              = NewCode("EMP")
	ENE              = NewCode("ENE")
	EET              = NewCode("EET")
	XNG              = NewCode("XNG")
	EGMA             = NewCode("EGMA")
	ENTER            = NewCode("ENTER")
	ETRUST           = NewCode("ETRUST")
	EQL              = NewCode("EQL")
	EQM              = NewCode("EQM")
	EQT              = NewCode("EQT")
	ERR              = NewCode("ERR")
	ESC              = NewCode("ESC")
	ESP              = NewCode("ESP")
	ENT              = NewCode("ENT")
	ETCO             = NewCode("ETCO")
	DOGETH           = NewCode("DOGETH")
	ECASH            = NewCode("ECASH")
	ELITE            = NewCode("ELITE")
	ETHS             = NewCode("ETHS")
	ETL              = NewCode("ETL")
	ETZ              = NewCode("ETZ")
	EUC              = NewCode("EUC")
	EURC             = NewCode("EURC")
	EUROPE           = NewCode("EUROPE")
	EVA              = NewCode("EVA")
	EGC              = NewCode("EGC")
	EOC              = NewCode("EOC")
	EVIL             = NewCode("EVIL")
	EVO              = NewCode("EVO")
	EXB              = NewCode("EXB")
	EXIT             = NewCode("EXIT")
	XT               = NewCode("XT")
	F16              = NewCode("F16")
	FADE             = NewCode("FADE")
	FAZZ             = NewCode("FAZZ")
	FX               = NewCode("FX")
	FIDEL            = NewCode("FIDEL")
	FIDGT            = NewCode("FIDGT")
	FIND             = NewCode("FIND")
	FPC              = NewCode("FPC")
	FIRE             = NewCode("FIRE")
	FFC              = NewCode("FFC")
	FRST             = NewCode("FRST")
	FIST             = NewCode("FIST")
	FIT              = NewCode("FIT")
	FLX              = NewCode("FLX")
	FLVR             = NewCode("FLVR")
	FLY              = NewCode("FLY")
	FONZ             = NewCode("FONZ")
	XFCX             = NewCode("XFCX")
	FOREX            = NewCode("FOREX")
	FRN              = NewCode("FRN")
	FRK              = NewCode("FRK")
	FRWC             = NewCode("FRWC")
	FGZ              = NewCode("FGZ")
	FRE              = NewCode("FRE")
	FRDC             = NewCode("FRDC")
	FJC              = NewCode("FJC")
	FURY             = NewCode("FURY")
	FSN              = NewCode("FSN")
	FCASH            = NewCode("FCASH")
	FTO              = NewCode("FTO")
	FUZZ             = NewCode("FUZZ")
	GAKH             = NewCode("GAKH")
	GBT              = NewCode("GBT")
	UNITS            = NewCode("UNITS")
	FOUR20G          = NewCode("420G")
	GENIUS           = NewCode("GENIUS")
	GEN              = NewCode("GEN")
	GEO              = NewCode("GEO")
	GER              = NewCode("GER")
	GSR              = NewCode("GSR")
	SPKTR            = NewCode("SPKTR")
	GIFT             = NewCode("GIFT")
	WTT              = NewCode("WTT")
	GHS              = NewCode("GHS")
	GIG              = NewCode("GIG")
	GOT              = NewCode("GOT")
	XGTC             = NewCode("XGTC")
	GIZ              = NewCode("GIZ")
	GLO              = NewCode("GLO")
	GCR              = NewCode("GCR")
	BSTY             = NewCode("BSTY")
	GLC              = NewCode("GLC")
	GSX              = NewCode("GSX")
	GOAT             = NewCode("GOAT")
	GB               = NewCode("GB")
	GFL              = NewCode("GFL")
	MNTP             = NewCode("MNTP")
	GP               = NewCode("GP")
	GLUCK            = NewCode("GLUCK")
	GOON             = NewCode("GOON")
	GTFO             = NewCode("GTFO")
	GOTX             = NewCode("GOTX")
	GPU              = NewCode("GPU")
	GRF              = NewCode("GRF")
	GRAM             = NewCode("GRAM")
	GRAV             = NewCode("GRAV")
	GBIT             = NewCode("GBIT")
	GREED            = NewCode("GREED")
	GE               = NewCode("GE")
	GREENF           = NewCode("GREENF")
	GRE              = NewCode("GRE")
	GREXIT           = NewCode("GREXIT")
	GMCX             = NewCode("GMCX")
	GROW             = NewCode("GROW")
	GSM              = NewCode("GSM")
	GT               = NewCode("GT")
	NLG              = NewCode("NLG")
	HKN              = NewCode("HKN")
	HAC              = NewCode("HAC")
	HALLO            = NewCode("HALLO")
	HAMS             = NewCode("HAMS")
	HPC              = NewCode("HPC")
	HAWK             = NewCode("HAWK")
	HAZE             = NewCode("HAZE")
	HZT              = NewCode("HZT")
	HDG              = NewCode("HDG")
	HEDG             = NewCode("HEDG")
	HEEL             = NewCode("HEEL")
	HMP              = NewCode("HMP")
	PLAY             = NewCode("PLAY")
	HXX              = NewCode("HXX")
	XHI              = NewCode("XHI")
	HVCO             = NewCode("HVCO")
	HTC              = NewCode("HTC")
	MINH             = NewCode("MINH")
	HODL             = NewCode("HODL")
	HON              = NewCode("HON")
	HOPE             = NewCode("HOPE")
	HQX              = NewCode("HQX")
	HSP              = NewCode("HSP")
	HTML5            = NewCode("HTML5")
	HYPERX           = NewCode("HYPERX")
	HPS              = NewCode("HPS")
	IOC              = NewCode("IOC")
	IBANK            = NewCode("IBANK")
	IBITS            = NewCode("IBITS")
	ICASH            = NewCode("ICASH")
	ICOB             = NewCode("ICOB")
	ICON             = NewCode("ICON")
	IETH             = NewCode("IETH")
	ILM              = NewCode("ILM")
	IMPS             = NewCode("IMPS")
	NKA              = NewCode("NKA")
	INCP             = NewCode("INCP")
	IN               = NewCode("IN")
	INC              = NewCode("INC")
	OneINCH          = NewCode("1INCH")
	FLR              = NewCode("FLR")
	IMS              = NewCode("IMS")
	IFLT             = NewCode("IFLT")
	INFX             = NewCode("INFX")
	INGT             = NewCode("INGT")
	INPAY            = NewCode("INPAY")
	INSANE           = NewCode("INSANE")
	INXT             = NewCode("INXT")
	IFT              = NewCode("IFT")
	INV              = NewCode("INV")
	IVZ              = NewCode("IVZ")
	ILT              = NewCode("ILT")
	IONX             = NewCode("IONX")
	ISL              = NewCode("ISL")
	ITI              = NewCode("ITI")
	ING              = NewCode("ING")
	IEC              = NewCode("IEC")
	IW               = NewCode("IW")
	IXC              = NewCode("IXC")
	IXT              = NewCode("IXT")
	JPC              = NewCode("JPC")
	JANE             = NewCode("JANE")
	JWL              = NewCode("JWL")
	JIF              = NewCode("JIF")
	JOBS             = NewCode("JOBS")
	JOCKER           = NewCode("JOCKER")
	JW               = NewCode("JW")
	JOK              = NewCode("JOK")
	XJO              = NewCode("XJO")
	KGB              = NewCode("KGB")
	KARMC            = NewCode("KARMC")
	KARMA            = NewCode("KARMA")
	KASHH            = NewCode("KASHH")
	KAT              = NewCode("KAT")
	KC               = NewCode("KC")
	KIDS             = NewCode("KIDS")
	KIN              = NewCode("KIN")
	KISS             = NewCode("KISS")
	KOBO             = NewCode("KOBO")
	TP1              = NewCode("TP1")
	KRAK             = NewCode("KRAK")
	KGC              = NewCode("KGC")
	KTK              = NewCode("KTK")
	KR               = NewCode("KR")
	KUBO             = NewCode("KUBO")
	KURT             = NewCode("KURT")
	KUSH             = NewCode("KUSH")
	LANA             = NewCode("LANA")
	LTH              = NewCode("LTH")
	LAZ              = NewCode("LAZ")
	LEA              = NewCode("LEA")
	LEAF             = NewCode("LEAF")
	LENIN            = NewCode("LENIN")
	LEPEN            = NewCode("LEPEN")
	LIR              = NewCode("LIR")
	LVG              = NewCode("LVG")
	LGBTQ            = NewCode("LGBTQ")
	LHC              = NewCode("LHC")
	EXT              = NewCode("EXT")
	LBTC             = NewCode("LBTC")
	LSD              = NewCode("LSD")
	LIMX             = NewCode("LIMX")
	LTD              = NewCode("LTD")
	LINDA            = NewCode("LINDA")
	LKC              = NewCode("LKC")
	LBTCX            = NewCode("LBTCX")
	LCC              = NewCode("LCC")
	LTCU             = NewCode("LTCU")
	LTCR             = NewCode("LTCR")
	LDOGE            = NewCode("LDOGE")
	LTS              = NewCode("LTS")
	LIV              = NewCode("LIV")
	LIZI             = NewCode("LIZI")
	LOC              = NewCode("LOC")
	LOCX             = NewCode("LOCX")
	LOOK             = NewCode("LOOK")
	LOOT             = NewCode("LOOT")
	XLTCG            = NewCode("XLTCG")
	BASH             = NewCode("BASH")
	LUCKY            = NewCode("LUCKY")
	L7S              = NewCode("L7S")
	LDM              = NewCode("LDM")
	LUMI             = NewCode("LUMI")
	LUNA             = NewCode("LUNA")
	LC               = NewCode("LC")
	LUX              = NewCode("LUX")
	MCRN             = NewCode("MCRN")
	XMG              = NewCode("XMG")
	MMXIV            = NewCode("MMXIV")
	MAT              = NewCode("MAT")
	MAO              = NewCode("MAO")
	MAPC             = NewCode("MAPC")
	MRB              = NewCode("MRB")
	MXT              = NewCode("MXT")
	MARV             = NewCode("MARV")
	MARX             = NewCode("MARX")
	MCAR             = NewCode("MCAR")
	MM               = NewCode("MM")
	MVC              = NewCode("MVC")
	MAVRO            = NewCode("MAVRO")
	MAX              = NewCode("MAX")
	MAZE             = NewCode("MAZE")
	MBIT             = NewCode("MBIT")
	MCOIN            = NewCode("MCOIN")
	MPRO             = NewCode("MPRO")
	XMS              = NewCode("XMS")
	MLITE            = NewCode("MLITE")
	MLNC             = NewCode("MLNC")
	MENTAL           = NewCode("MENTAL")
	MERGEC           = NewCode("MERGEC")
	MTLMC3           = NewCode("MTLMC3")
	METAL            = NewCode("METAL")
	MUU              = NewCode("MUU")
	MILO             = NewCode("MILO")
	MND              = NewCode("MND")
	XMINE            = NewCode("XMINE")
	MNM              = NewCode("MNM")
	XNM              = NewCode("XNM")
	MIRO             = NewCode("MIRO")
	MIS              = NewCode("MIS")
	MMXVI            = NewCode("MMXVI")
	MOIN             = NewCode("MOIN")
	MOJO             = NewCode("MOJO")
	TAB              = NewCode("TAB")
	MONETA           = NewCode("MONETA")
	MUE              = NewCode("MUE")
	MONEY            = NewCode("MONEY")
	MRP              = NewCode("MRP")
	MOTO             = NewCode("MOTO")
	MULTI            = NewCode("MULTI")
	MST              = NewCode("MST")
	MVR              = NewCode("MVR")
	MYSTIC           = NewCode("MYSTIC")
	WISH             = NewCode("WISH")
	NKT              = NewCode("NKT")
	NAT              = NewCode("NAT")
	ENAU             = NewCode("ENAU")
	NEBU             = NewCode("NEBU")
	NEF              = NewCode("NEF")
	NBIT             = NewCode("NBIT")
	NETKO            = NewCode("NETKO")
	NTM              = NewCode("NTM")
	NETC             = NewCode("NETC")
	NRC              = NewCode("NRC")
	NTK              = NewCode("NTK")
	NTRN             = NewCode("NTRN")
	NEVA             = NewCode("NEVA")
	NIC              = NewCode("NIC")
	NKC              = NewCode("NKC")
	NYC              = NewCode("NYC")
	NZC              = NewCode("NZC")
	NICE             = NewCode("NICE")
	NDOGE            = NewCode("NDOGE")
	XTR              = NewCode("XTR")
	N2O              = NewCode("N2O")
	NIXON            = NewCode("NIXON")
	NOC              = NewCode("NOC")
	NODC             = NewCode("NODC")
	NODES            = NewCode("NODES")
	NODX             = NewCode("NODX")
	NLC              = NewCode("NLC")
	NLC2             = NewCode("NLC2")
	NOO              = NewCode("NOO")
	NVC              = NewCode("NVC")
	NPC              = NewCode("NPC")
	NUBIS            = NewCode("NUBIS")
	NUKE             = NewCode("NUKE")
	N7               = NewCode("N7")
	NUM              = NewCode("NUM")
	NMR              = NewCode("NMR")
	NXE              = NewCode("NXE")
	OBS              = NewCode("OBS")
	OCEAN            = NewCode("OCEAN")
	OCOW             = NewCode("OCOW")
	EIGHT88          = NewCode("888")
	OCC              = NewCode("OCC")
	OK               = NewCode("OK")
	ODNT             = NewCode("ODNT")
	FLAV             = NewCode("FLAV")
	OLIT             = NewCode("OLIT")
	OLYMP            = NewCode("OLYMP")
	OMA              = NewCode("OMA")
	OMC              = NewCode("OMC")
	ONEK             = NewCode("ONEK")
	ONX              = NewCode("ONX")
	XPO              = NewCode("XPO")
	OPAL             = NewCode("OPAL")
	OTN              = NewCode("OTN")
	OP               = NewCode("OP")
	OPES             = NewCode("OPES")
	OPTION           = NewCode("OPTION")
	ORLY             = NewCode("ORLY")
	OS76             = NewCode("OS76")
	OZC              = NewCode("OZC")
	P7C              = NewCode("P7C")
	PAC              = NewCode("PAC")
	PAK              = NewCode("PAK")
	PAL              = NewCode("PAL")
	PND              = NewCode("PND")
	PINKX            = NewCode("PINKX")
	POPPY            = NewCode("POPPY")
	DUO              = NewCode("DUO")
	PARA             = NewCode("PARA")
	PKB              = NewCode("PKB")
	GENE             = NewCode("GENE")
	PARTY            = NewCode("PARTY")
	PYN              = NewCode("PYN")
	XPY              = NewCode("XPY")
	CON              = NewCode("CON")
	PAYP             = NewCode("PAYP")
	GUESS            = NewCode("GUESS")
	PEN              = NewCode("PEN")
	PTA              = NewCode("PTA")
	PEO              = NewCode("PEO")
	PSB              = NewCode("PSB")
	XPD              = NewCode("XPD")
	PXL              = NewCode("PXL")
	PHR              = NewCode("PHR")
	PIE              = NewCode("PIE")
	PIO              = NewCode("PIO")
	PIPR             = NewCode("PIPR")
	SKULL            = NewCode("SKULL")
	PLANET           = NewCode("PLANET")
	PNC              = NewCode("PNC")
	XPTX             = NewCode("XPTX")
	PLNC             = NewCode("PLNC")
	XPS              = NewCode("XPS")
	POKE             = NewCode("POKE")
	PLBT             = NewCode("PLBT")
	POM              = NewCode("POM")
	PONZ2            = NewCode("PONZ2")
	PONZI            = NewCode("PONZI")
	XSP              = NewCode("XSP")
	XPC              = NewCode("XPC")
	PEX              = NewCode("PEX")
	TRON             = NewCode("TRON")
	POST             = NewCode("POST")
	POSW             = NewCode("POSW")
	PWR              = NewCode("PWR")
	POWER            = NewCode("POWER")
	PRE              = NewCode("PRE")
	PRS              = NewCode("PRS")
	PXI              = NewCode("PXI")
	PEXT             = NewCode("PEXT")
	PRIMU            = NewCode("PRIMU")
	PRX              = NewCode("PRX")
	PRM              = NewCode("PRM")
	PRIX             = NewCode("PRIX")
	XPRO             = NewCode("XPRO")
	PCM              = NewCode("PCM")
	PROC             = NewCode("PROC")
	NANOX            = NewCode("NANOX")
	VRP              = NewCode("VRP")
	PTY              = NewCode("PTY")
	PSI              = NewCode("PSI")
	PSY              = NewCode("PSY")
	PULSE            = NewCode("PULSE")
	PUPA             = NewCode("PUPA")
	PURE             = NewCode("PURE")
	VIDZ             = NewCode("VIDZ")
	PUTIN            = NewCode("PUTIN")
	PX               = NewCode("PX")
	QTM              = NewCode("QTM")
	QTZ              = NewCode("QTZ")
	QBC              = NewCode("QBC")
	XQN              = NewCode("XQN")
	RBBT             = NewCode("RBBT")
	RAC              = NewCode("RAC")
	RADI             = NewCode("RADI")
	RAD              = NewCode("RAD")
	RAI              = NewCode("RAI")
	XRA              = NewCode("XRA")
	RATIO            = NewCode("RATIO")
	REA              = NewCode("REA")
	RCX              = NewCode("RCX")
	REE              = NewCode("REE")
	REC              = NewCode("REC")
	RMS              = NewCode("RMS")
	RBIT             = NewCode("RBIT")
	RNC              = NewCode("RNC")
	REV              = NewCode("REV")
	RH               = NewCode("RH")
	XRL              = NewCode("XRL")
	RICE             = NewCode("RICE")
	RICHX            = NewCode("RICHX")
	RID              = NewCode("RID")
	RIDE             = NewCode("RIDE")
	RBT              = NewCode("RBT")
	RING             = NewCode("RING")
	RIO              = NewCode("RIO")
	RISE             = NewCode("RISE")
	ROCKET           = NewCode("ROCKET")
	RPC              = NewCode("RPC")
	ROS              = NewCode("ROS")
	ROYAL            = NewCode("ROYAL")
	RSGP             = NewCode("RSGP")
	RBIES            = NewCode("RBIES")
	RUBIT            = NewCode("RUBIT")
	RBY              = NewCode("RBY")
	RUC              = NewCode("RUC")
	RUPX             = NewCode("RUPX")
	RUP              = NewCode("RUP")
	RUST             = NewCode("RUST")
	SFE              = NewCode("SFE")
	SLS              = NewCode("SLS")
	SMSR             = NewCode("SMSR")
	RONIN            = NewCode("RONIN")
	STV              = NewCode("STV")
	HIFUN            = NewCode("HIFUN")
	MAD              = NewCode("MAD")
	SANDG            = NewCode("SANDG")
	STO              = NewCode("STO")
	SCAN             = NewCode("SCAN")
	SCITW            = NewCode("SCITW")
	SCRPT            = NewCode("SCRPT")
	SCRT             = NewCode("SCRT")
	SED              = NewCode("SED")
	SEEDS            = NewCode("SEEDS")
	B2X              = NewCode("B2X")
	SEL              = NewCode("SEL")
	SLFI             = NewCode("SLFI")
	SMBR             = NewCode("SMBR")
	SEN              = NewCode("SEN")
	SENT             = NewCode("SENT")
	SRNT             = NewCode("SRNT")
	SEV              = NewCode("SEV")
	SP               = NewCode("SP")
	SXC              = NewCode("SXC")
	GELD             = NewCode("GELD")
	SHDW             = NewCode("SHDW")
	SDC              = NewCode("SDC")
	SAK              = NewCode("SAK")
	SHRP             = NewCode("SHRP")
	SHELL            = NewCode("SHELL")
	SH               = NewCode("SH")
	SHORTY           = NewCode("SHORTY")
	SHREK            = NewCode("SHREK")
	SHRM             = NewCode("SHRM")
	SIB              = NewCode("SIB")
	SIGT             = NewCode("SIGT")
	SLCO             = NewCode("SLCO")
	SIGU             = NewCode("SIGU")
	SIX              = NewCode("SIX")
	SJW              = NewCode("SJW")
	SKB              = NewCode("SKB")
	SW               = NewCode("SW")
	SLEEP            = NewCode("SLEEP")
	SLING            = NewCode("SLING")
	SMART            = NewCode("SMART")
	SMC              = NewCode("SMC")
	SMF              = NewCode("SMF")
	SOCC             = NewCode("SOCC")
	SCL              = NewCode("SCL")
	SDAO             = NewCode("SDAO")
	SOLAR            = NewCode("SOLAR")
	SOLO             = NewCode("SOLO")
	SCT              = NewCode("SCT")
	SONG             = NewCode("SONG")
	ALTCOM           = NewCode("ALTCOM")
	SPHTX            = NewCode("SPHTX")
	SPC              = NewCode("SPC")
	SPACE            = NewCode("SPACE")
	SBT              = NewCode("SBT")
	SPEC             = NewCode("SPEC")
	SPX              = NewCode("SPX")
	SCS              = NewCode("SCS")
	SPORT            = NewCode("SPORT")
	SPT              = NewCode("SPT")
	SPR              = NewCode("SPR")
	SPEX             = NewCode("SPEX")
	SQL              = NewCode("SQL")
	SBIT             = NewCode("SBIT")
	STHR             = NewCode("STHR")
	STALIN           = NewCode("STALIN")
	STAR             = NewCode("STAR")
	STA              = NewCode("STA")
	START            = NewCode("START")
	STP              = NewCode("STP")
	PNK              = NewCode("PNK")
	STEPS            = NewCode("STEPS")
	STK              = NewCode("STK")
	STONK            = NewCode("STONK")
	STS              = NewCode("STS")
	STRP             = NewCode("STRP")
	STY              = NewCode("STY")
	XMT              = NewCode("XMT")
	SSTC             = NewCode("SSTC")
	SUPER            = NewCode("SUPER")
	SRND             = NewCode("SRND")
	STRB             = NewCode("STRB")
	M1               = NewCode("M1")
	SPM              = NewCode("SPM")
	BUCKS            = NewCode("BUCKS")
	TOKEN            = NewCode("TOKEN")
	SWT              = NewCode("SWT")
	SWEET            = NewCode("SWEET")
	SWING            = NewCode("SWING")
	CHSB             = NewCode("CHSB")
	SIC              = NewCode("SIC")
	SDP              = NewCode("SDP")
	XSY              = NewCode("XSY")
	SYNX             = NewCode("SYNX")
	SNRG             = NewCode("SNRG")
	TAG              = NewCode("TAG")
	TAGR             = NewCode("TAGR")
	TAJ              = NewCode("TAJ")
	TAK              = NewCode("TAK")
	TAKE             = NewCode("TAKE")
	TAM              = NewCode("TAM")
	XTO              = NewCode("XTO")
	TAP              = NewCode("TAP")
	TLE              = NewCode("TLE")
	TSE              = NewCode("TSE")
	TLEX             = NewCode("TLEX")
	TAXI             = NewCode("TAXI")
	TCN              = NewCode("TCN")
	TDFB             = NewCode("TDFB")
	TEAM             = NewCode("TEAM")
	TECH             = NewCode("TECH")
	TEC              = NewCode("TEC")
	TEK              = NewCode("TEK")
	TB               = NewCode("TB")
	TLX              = NewCode("TLX")
	TELL             = NewCode("TELL")
	TENNET           = NewCode("TENNET")
	TES              = NewCode("TES")
	TGS              = NewCode("TGS")
	XVE              = NewCode("XVE")
	TCR              = NewCode("TCR")
	GCC              = NewCode("GCC")
	MAY              = NewCode("MAY")
	THOM             = NewCode("THOM")
	TIA              = NewCode("TIA")
	TIDE             = NewCode("TIDE")
	TIE              = NewCode("TIE")
	TIT              = NewCode("TIT")
	TTC              = NewCode("TTC")
	TODAY            = NewCode("TODAY")
	TBX              = NewCode("TBX")
	TDS              = NewCode("TDS")
	TLOSH            = NewCode("TLOSH")
	TOKC             = NewCode("TOKC")
	TMRW             = NewCode("TMRW")
	TOOL             = NewCode("TOOL")
	TCX              = NewCode("TCX")
	TOT              = NewCode("TOT")
	TX               = NewCode("TX")
	TRANSF           = NewCode("TRANSF")
	TRAP             = NewCode("TRAP")
	TBCX             = NewCode("TBCX")
	TRICK            = NewCode("TRICK")
	TPG              = NewCode("TPG")
	TFL              = NewCode("TFL")
	TRUMP            = NewCode("TRUMP")
	TNG              = NewCode("TNG")
	TUR              = NewCode("TUR")
	TWERK            = NewCode("TWERK")
	TWIST            = NewCode("TWIST")
	TWO              = NewCode("TWO")
	UCASH            = NewCode("UCASH")
	UAE              = NewCode("UAE")
	XBU              = NewCode("XBU")
	UBQ              = NewCode("UBQ")
	U                = NewCode("U")
	UDOWN            = NewCode("UDOWN")
	GAIN             = NewCode("GAIN")
	USC              = NewCode("USC")
	UMC              = NewCode("UMC")
	UNF              = NewCode("UNF")
	UNIFY            = NewCode("UNIFY")
	USDE             = NewCode("USDE")
	UBTC             = NewCode("UBTC")
	UIS              = NewCode("UIS")
	UNIT             = NewCode("UNIT")
	UNI              = NewCode("UNI")
	UXC              = NewCode("UXC")
	URC              = NewCode("URC")
	XUP              = NewCode("XUP")
	UFR              = NewCode("UFR")
	URO              = NewCode("URO")
	UTLE             = NewCode("UTLE")
	VAL              = NewCode("VAL")
	VPRC             = NewCode("VPRC")
	VAPOR            = NewCode("VAPOR")
	VCOIN            = NewCode("VCOIN")
	VEC              = NewCode("VEC")
	VEC2             = NewCode("VEC2")
	VLT              = NewCode("VLT")
	VENE             = NewCode("VENE")
	VNTX             = NewCode("VNTX")
	VTN              = NewCode("VTN")
	CRED             = NewCode("CRED")
	VERS             = NewCode("VERS")
	VTX              = NewCode("VTX")
	VTY              = NewCode("VTY")
	VIP              = NewCode("VIP")
	VISIO            = NewCode("VISIO")
	VK               = NewCode("VK")
	VOL              = NewCode("VOL")
	VOYA             = NewCode("VOYA")
	VPN              = NewCode("VPN")
	XVS              = NewCode("XVS")
	VTL              = NewCode("VTL")
	VULC             = NewCode("VULC")
	VVI              = NewCode("VVI")
	WGR              = NewCode("WGR")
	WAM              = NewCode("WAM")
	WARP             = NewCode("WARP")
	WASH             = NewCode("WASH")
	WGO              = NewCode("WGO")
	WAY              = NewCode("WAY")
	WCASH            = NewCode("WCASH")
	WEALTH           = NewCode("WEALTH")
	WEEK             = NewCode("WEEK")
	WHO              = NewCode("WHO")
	WIC              = NewCode("WIC")
	WBB              = NewCode("WBB")
	WINE             = NewCode("WINE")
	WINK             = NewCode("WINK")
	WISC             = NewCode("WISC")
	WITCH            = NewCode("WITCH")
	WMC              = NewCode("WMC")
	WOMEN            = NewCode("WOMEN")
	WOK              = NewCode("WOK")
	WRT              = NewCode("WRT")
	XCO              = NewCode("XCO")
	X2               = NewCode("X2")
	XNX              = NewCode("XNX")
	XAU              = NewCode("XAU")
	XAV              = NewCode("XAV")
	XDE2             = NewCode("XDE2")
	XDE              = NewCode("XDE")
	XIOS             = NewCode("XIOS")
	XOC              = NewCode("XOC")
	XSSX             = NewCode("XSSX")
	XBY              = NewCode("XBY")
	YAC              = NewCode("YAC")
	YMC              = NewCode("YMC")
	YAY              = NewCode("YAY")
	YBC              = NewCode("YBC")
	YES              = NewCode("YES")
	YOB2X            = NewCode("YOB2X")
	YOVI             = NewCode("YOVI")
	ZYD              = NewCode("ZYD")
	ZECD             = NewCode("ZECD")
	ZEIT             = NewCode("ZEIT")
	ZENI             = NewCode("ZENI")
	ZET2             = NewCode("ZET2")
	ZET              = NewCode("ZET")
	ZMC              = NewCode("ZMC")
	ZIRK             = NewCode("ZIRK")
	ZLQ              = NewCode("ZLQ")
	ZNE              = NewCode("ZNE")
	ZONTO            = NewCode("ZONTO")
	ZOOM             = NewCode("ZOOM")
	ZRC              = NewCode("ZRC")
	ZUR              = NewCode("ZUR")
	ZB               = NewCode("ZB")
	QC               = NewCode("QC")
	HLC              = NewCode("HLC")
	SAFE             = NewCode("SAFE")
	BTN              = NewCode("BTN")
	CDC              = NewCode("CDC")
	DDM              = NewCode("DDM")
	HOTC             = NewCode("HOTC")
	BDS              = NewCode("BDS")
	AAA              = NewCode("AAA")
	XWC              = NewCode("XWC")
	PDX              = NewCode("PDX")
	SLT              = NewCode("SLT")
	HPY              = NewCode("HPY")
	XXRP             = NewCode("XXRP") // XRP
	XXBT             = NewCode("XXBT") // BTC, but XXBT instead
	XXDG             = NewCode("XXDG") // DOGE
	XDG              = NewCode("XDG")  // DOGE
	HKD              = NewCode("HKD")  // Hong Kong Dollar
	AUD              = NewCode("AUD")  // Australian Dollar
	USD              = NewCode("USD")  // United States Dollar
	ZUSD             = NewCode("ZUSD") // United States Dollar, but with a Z in front of it
	EUR              = NewCode("EUR")  // Euro
	ZEUR             = NewCode("ZEUR") // Euro, but with a Z in front of it
	CAD              = NewCode("CAD")  // Canadaian Dollar
	ZCAD             = NewCode("ZCAD") // Canadaian Dollar, but with a Z in front of it
	SGD              = NewCode("SGD")  // Singapore Dollar
	RUB              = NewCode("RUB")  // RUssian ruBle
	RUR              = NewCode("RUR")  // RUssian Ruble
	PLN              = NewCode("PLN")  // Polish złoty
	TRY              = NewCode("TRY")  // Turkish lira
	UAH              = NewCode("UAH")  // Ukrainian hryvnia
	JPY              = NewCode("JPY")  // Japanese yen
	ZJPY             = NewCode("ZJPY") // Japanese yen, but with a Z in front of it
	LCH              = NewCode("LCH")
	MYR              = NewCode("MYR")
	AFN              = NewCode("AFN")
	ARS              = NewCode("ARS")
	AWG              = NewCode("AWG")
	AZN              = NewCode("AZN")
	BSD              = NewCode("BSD")
	BBD              = NewCode("BBD")
	BYN              = NewCode("BYN")
	BZD              = NewCode("BZD")
	BMD              = NewCode("BMD")
	BOB              = NewCode("BOB")
	BAM              = NewCode("BAM")
	BWP              = NewCode("BWP")
	BGN              = NewCode("BGN")
	BRL              = NewCode("BRL")
	BRWL             = NewCode("BRWL")
	BND              = NewCode("BND")
	KHR              = NewCode("KHR")
	KYD              = NewCode("KYD")
	CLP              = NewCode("CLP")
	CNY              = NewCode("CNY")
	COP              = NewCode("COP")
	HRK              = NewCode("HRK")
	CUP              = NewCode("CUP")
	CZK              = NewCode("CZK")
	DKK              = NewCode("DKK")
	DOP              = NewCode("DOP")
	XCD              = NewCode("XCD")
	EGP              = NewCode("EGP")
	SVC              = NewCode("SVC")
	FKP              = NewCode("FKP")
	FJD              = NewCode("FJD")
	GIP              = NewCode("GIP")
	GTQ              = NewCode("GTQ")
	GGP              = NewCode("GGP")
	GYD              = NewCode("GYD")
	HNL              = NewCode("HNL")
	HUF              = NewCode("HUF")
	ISK              = NewCode("ISK")
	INR              = NewCode("INR")
	IDR              = NewCode("IDR")
	IRR              = NewCode("IRR")
	IMP              = NewCode("IMP")
	ILS              = NewCode("ILS")
	JMD              = NewCode("JMD")
	JEP              = NewCode("JEP")
	KZT              = NewCode("KZT")
	KPW              = NewCode("KPW")
	KGS              = NewCode("KGS")
	LAK              = NewCode("LAK")
	LBP              = NewCode("LBP")
	LRD              = NewCode("LRD")
	MKD              = NewCode("MKD")
	MUR              = NewCode("MUR")
	MXN              = NewCode("MXN")
	MNT              = NewCode("MNT")
	MZN              = NewCode("MZN")
	NAD              = NewCode("NAD")
	NPR              = NewCode("NPR")
	ANG              = NewCode("ANG")
	NZD              = NewCode("NZD")
	NIO              = NewCode("NIO")
	NGN              = NewCode("NGN")
	NOK              = NewCode("NOK")
	OMR              = NewCode("OMR")
	PKR              = NewCode("PKR")
	PAB              = NewCode("PAB")
	PYG              = NewCode("PYG")
	PHP              = NewCode("PHP")
	QAR              = NewCode("QAR")
	RON              = NewCode("RON")
	SHP              = NewCode("SHP")
	SAR              = NewCode("SAR")
	RSD              = NewCode("RSD")
	SCR              = NewCode("SCR")
	SOS              = NewCode("SOS")
	ZAR              = NewCode("ZAR")
	LKR              = NewCode("LKR")
	SEK              = NewCode("SEK")
	CHF              = NewCode("CHF")
	SRD              = NewCode("SRD")
	SYP              = NewCode("SYP")
	TWD              = NewCode("TWD")
	THB              = NewCode("THB")
	TTD              = NewCode("TTD")
	TVD              = NewCode("TVD")
	GBP              = NewCode("GBP")
	UYU              = NewCode("UYU")
	UZS              = NewCode("UZS")
	VEF              = NewCode("VEF")
	VND              = NewCode("VND")
	YER              = NewCode("YER")
	ZWD              = NewCode("ZWD")
	XETH             = NewCode("XETH")
	FX_BTC           = NewCode("FX_BTC") //nolint // Cryptocurrency code
	AAVE             = NewCode("AAVE")
	YFI              = NewCode("YFI")
	BAL              = NewCode("BAL")
	UMA              = NewCode("UMA")
	SNX              = NewCode("SNX")
	CRV              = NewCode("CRV")
	OXT              = NewCode("OXT")
	BUSD             = NewCode("BUSD")
	SRM              = NewCode("SRM")
	FTT              = NewCode("FTT")
	UGX              = NewCode("UGX") // Uganda Shilling
	GLM              = NewCode("GLM") // Golem
	WAXP             = NewCode("WAXP")
	STRAX            = NewCode("STRAX") // Stratis
	TMTG             = NewCode("TMTG")  // The Midas Touch Gold
	HDAC             = NewCode("HDAC")
	AMO              = NewCode("AMO")
	BSV              = NewCode("BSV")
	ORBS             = NewCode("ORBS")
	TFUEL            = NewCode("TFUEL")
	VALOR            = NewCode("VALOR")
	ANKR             = NewCode("ANKR")
	MIX              = NewCode("MIX")
	CRO              = NewCode("CRO")
	CHR              = NewCode("CHR")
	MBL              = NewCode("MBL")
	MXC              = NewCode("MXC")
	TRV              = NewCode("TRV")
	DAD              = NewCode("DAD")
	WOM              = NewCode("WOM")
	EM               = NewCode("EM")
	BOA              = NewCode("BOA")
	FLETA            = NewCode("FLETA")
	SXP              = NewCode("SXP")
	COS              = NewCode("COS")
	APIX             = NewCode("APIX")
	EL               = NewCode("EL")
	BASIC            = NewCode("BASIC")
	HIV              = NewCode("HIV")
	XPR              = NewCode("XPR")
	VRA              = NewCode("VRA")
	BORA             = NewCode("BORA")
	APM              = NewCode("APM")
	CKB              = NewCode("CKB")
	AERGO            = NewCode("AERGO")
	ANW              = NewCode("ANW")
	CENNZ            = NewCode("CENNZ")
	EVZ              = NewCode("EVZ")
	CYCLUB           = NewCode("CYCLUB")
	QTCON            = NewCode("QTCON")
	RSR              = NewCode("RSR")
	UOS              = NewCode("UOS")
	SAND             = NewCode("SAND")
	STPT             = NewCode("STPT")
	GOM2             = NewCode("GOM2")
	RINGX            = NewCode("RINGX")
	BEL              = NewCode("BEL")
	OBSR             = NewCode("OBSR")
	ORC              = NewCode("ORC")
	POLA             = NewCode("POLA")
	AWO              = NewCode("AWO")
	ADP              = NewCode("ADP")
	DVI              = NewCode("DVI")
	IBP              = NewCode("IBP")
	MIR              = NewCode("MIR")
	GHX              = NewCode("GHX")
	BLY              = NewCode("BLY")
	WOZX             = NewCode("WOZX")
	ANV              = NewCode("ANV")
	GRT              = NewCode("GRT")
	BIOT             = NewCode("BIOT")
	XNO              = NewCode("XNO")
	COLA             = NewCode("COLA")
	NU               = NewCode("NU")
	LINA             = NewCode("LINA")
	ASTA             = NewCode("ASTA")
	MAP              = NewCode("MAP")
	AQT              = NewCode("AQT")
	WIKEN            = NewCode("WIKEN")
	CTSI             = NewCode("CTSI")
	LPT              = NewCode("LPT")
	SUSHI            = NewCode("SUSHI")
	ASM              = NewCode("ASM")
	CELR             = NewCode("CELR")
	PUNDIX           = NewCode("PUNDIX")
	LF               = NewCode("LF")
	ARW              = NewCode("ARW")
	MSB              = NewCode("MSB")
	RLY              = NewCode("RLY")
	BFC              = NewCode("BFC")
	ALICE            = NewCode("ALICE")
	CAKE             = NewCode("CAKE")
	CHZ              = NewCode("CHZ")
	AXS              = NewCode("AXS")
	MATIC            = NewCode("MATIC")
	BAKE             = NewCode("BAKE")
	VELO             = NewCode("VELO")
	GXC              = NewCode("GXC")
	BTT              = NewCode("BTT")
	VSYS             = NewCode("VSYS")
	IPX              = NewCode("IPX")
	WICC             = NewCode("WICC")
	META             = NewCode("META")
	KLAY             = NewCode("KLAY")
	ALGO             = NewCode("ALGO")
	JST              = NewCode("JST")
	MLK              = NewCode("MLK")
	WEMIX            = NewCode("WEMIX")
	DOT              = NewCode("DOT")
	SSX              = NewCode("SSX")
	TEMCO            = NewCode("TEMCO")
	HIBS             = NewCode("HIBS")
	BURGER           = NewCode("BURGER")
	KSM              = NewCode("KSM")
	XYM              = NewCode("XYM")
	SUN              = NewCode("SUN")
	XEC              = NewCode("XEC")
	PCI              = NewCode("PCI")
	SOL              = NewCode("SOL")
	LN               = NewCode("LN")
	GUSD             = NewCode("GUSD")
	AUDIO            = NewCode("AUDIO")
	EURT             = NewCode("EURT")
	ALPHA            = NewCode("ALPHA")
	MCAU             = NewCode("MCAU")
	AED              = NewCode("AED")
	BAND             = NewCode("BAND")
	BCB              = NewCode("BCB")
	BRZ              = NewCode("BRZ")
	BTSE             = NewCode("BTSE")
	FRM              = NewCode("FRM")
	HXRO             = NewCode("HXRO")
	LEO              = NewCode("LEO")
	MBM              = NewCode("MBM")
	PHNX             = NewCode("PHNX")
	SFI              = NewCode("SFI")
	SHIB             = NewCode("SHIB")
	STAKE            = NewCode("STAKE")
	SWRV             = NewCode("SWRV")
	TRYB             = NewCode("TRYB")
	USDP             = NewCode("USDP")
	WAUD             = NewCode("WAUD")
	WCAD             = NewCode("WCAD")
	WCHF             = NewCode("WCHF")
	WEUR             = NewCode("WEUR")
	WGBP             = NewCode("WGBP")
	WHKD             = NewCode("WHKD")
	WINR             = NewCode("WINR")
	WJPY             = NewCode("WJPY")
	WMYR             = NewCode("WMYR")
	WOO              = NewCode("WOO")
	WSGD             = NewCode("WSGD")
	WUSD             = NewCode("WUSD")
	WXMR             = NewCode("WXMR")
	XAUT             = NewCode("XAUT")
	XSGD             = NewCode("XSGD")
	EXM              = NewCode("EXM")
	BTCV             = NewCode("BTCV")
	CRON             = NewCode("CRON")
	GNY              = NewCode("GNY")
	HAI              = NewCode("HAI")
	HB               = NewCode("HB")
	HP               = NewCode("HP")
	IQN              = NewCode("IQN")
	MNC              = NewCode("MNC")
	ONE              = NewCode("ONE")
	USTC             = NewCode("USTC")
	PRQ              = NewCode("PRQ")
	ROOBEE           = NewCode("ROOBEE")
	TONCOIN          = NewCode("TONCOIN")
	VLX              = NewCode("VLX")
	WXT              = NewCode("WXT")
	UST              = NewCode("UST")
	USDG             = NewCode("USDG")
	NYZO             = NewCode("NYZO")
	ETH2             = NewCode("ETH2")
	KAVA             = NewCode("KAVA")
	RSV              = NewCode("RSV")
	MTRG             = NewCode("MTRG")
	COTI             = NewCode("COTI")
	DIGG             = NewCode("DIGG")
	YAMV1            = NewCode("YAMV1")
	BZRX             = NewCode("BZRX")
	YAMV2            = NewCode("YAMV2")
	BOX              = NewCode("BOX")
	ERG              = NewCode("ERG")
	KPHA             = NewCode("KPHA")
	KAR              = NewCode("KAR")
	RMRK             = NewCode("RMRK")
	CRING            = NewCode("CRING")
	PICA             = NewCode("PICA")
	XRT              = NewCode("XRT")
	TEER             = NewCode("TEER")
	SGB              = NewCode("SGB")
	KPN              = NewCode("KPN")
	CSM              = NewCode("CSM")
	KAZE             = NewCode("KAZE")
	SASHIMI          = NewCode("SASHIMI")
	AUCTION          = NewCode("AUCTION")
	OIN              = NewCode("OIN")
	ADEL             = NewCode("ADEL")
	KIMCHI           = NewCode("KIMCHI")
	CREAM            = NewCode("CREAM")
	DEGO             = NewCode("DEGO")
	SFG              = NewCode("SFG")
	CORE             = NewCode("CORE")
	ARNX             = NewCode("ARNX")
	ROSE             = NewCode("ROSE")
	COVER            = NewCode("COVER")
	BASE             = NewCode("BASE")
	HEGIC            = NewCode("HEGIC")
	DUSK             = NewCode("DUSK")
	UNFI             = NewCode("UNFI")
	GHST             = NewCode("GHST")
	ACH              = NewCode("ACH")
	FXS              = NewCode("FXS")
	BORING           = NewCode("BORING")
	LON              = NewCode("LON")
	POND             = NewCode("POND")
	DSD              = NewCode("DSD")
	SHARE            = NewCode("SHARE")
	ONC              = NewCode("ONC")
	ZKS              = NewCode("ZKS")
	RIF              = NewCode("RIF")
	PROPS            = NewCode("PROPS")
	LAYER            = NewCode("LAYER")
	QNT              = NewCode("QNT")
	YOP              = NewCode("YOP")
	BONDED           = NewCode("BONDED")
	ROOM             = NewCode("ROOM")
	UNISTAKE         = NewCode("UNISTAKE")
	FXF              = NewCode("FXF")
	TORN             = NewCode("TORN")
	UMB              = NewCode("UMB")
	JASMY            = NewCode("JASMY")
	BONDLY           = NewCode("BONDLY")
	BMI              = NewCode("BMI")
	RAY              = NewCode("RAY")
	POLIS            = NewCode("POLIS")
	WAG              = NewCode("WAG")
	CYS              = NewCode("CYS")
	SLRS             = NewCode("SLRS")
	LIKE             = NewCode("LIKE")
	PRT              = NewCode("PRT")
	SUNNY            = NewCode("SUNNY")
	MNGO             = NewCode("MNGO")
	STEP             = NewCode("STEP")
	FIDA             = NewCode("FIDA")
	PBR              = NewCode("PBR")
	HOPR             = NewCode("HOPR")
	PROM             = NewCode("PROM")
	TVK              = NewCode("TVK")
	A5T              = NewCode("A5T")
	CUDOS            = NewCode("CUDOS")
	COMBO            = NewCode("COMBO")
	DOWS             = NewCode("DOWS")
	KYL              = NewCode("KYL")
	EXRD             = NewCode("EXRD")
	ETHA             = NewCode("ETHA")
	ALN              = NewCode("ALN")
	HAPI             = NewCode("HAPI")
	BLANK            = NewCode("BLANK")
	ERN              = NewCode("ERN")
	KINE             = NewCode("KINE")
	FET              = NewCode("FET")
	ZEE              = NewCode("ZEE")
	POLC             = NewCode("POLC")
	XED              = NewCode("XED")
	ANC              = NewCode("ANC")
	DAFI             = NewCode("DAFI")
	TARA             = NewCode("TARA")
	PCNT             = NewCode("PCNT")
	DG               = NewCode("DG")
	SPI              = NewCode("SPI")
	BANK             = NewCode("BANK")
	UMX              = NewCode("UMX")
	TIDAL            = NewCode("TIDAL")
	LABS             = NewCode("LABS")
	OGN              = NewCode("OGN")
	BLES             = NewCode("BLES")
	OVR              = NewCode("OVR")
	HGET             = NewCode("HGET")
	NOIA             = NewCode("NOIA")
	COOK             = NewCode("COOK")
	FST              = NewCode("FST")
	AME              = NewCode("AME")
	STN              = NewCode("STN")
	SHOPX            = NewCode("SHOPX")
	SHFT             = NewCode("SHFT")
	RBC              = NewCode("RBC")
	VAI              = NewCode("VAI")
	FEI              = NewCode("FEI")
	XEND             = NewCode("XEND")
	SUKU             = NewCode("SUKU")
	LTO              = NewCode("LTO")
	TOTM             = NewCode("TOTM")
	RAZE             = NewCode("RAZE")
	DUCK2            = NewCode("DUCK2")
	CEL              = NewCode("CEL")
	DDIM             = NewCode("DDIM")
	TLM              = NewCode("TLM")
	DDOS             = NewCode("DDOS")
	GS               = NewCode("GS")
	RAGE             = NewCode("RAGE")
	AKITA            = NewCode("AKITA")
	FORTH            = NewCode("FORTH")
	CARDS            = NewCode("CARDS")
	HORD             = NewCode("HORD")
	WBTC             = NewCode("WBTC")
	ARES             = NewCode("ARES")
	SUSD             = NewCode("SUSD")
	TCP              = NewCode("TCP")
	BLACK            = NewCode("BLACK")
	EZ               = NewCode("EZ")
	VSO              = NewCode("VSO")
	XAVA             = NewCode("XAVA")
	PNG              = NewCode("PNG")
	LOCG             = NewCode("LOCG")
	WSIENNA          = NewCode("WSIENNA")
	STBU             = NewCode("STBU")
	DFND             = NewCode("DFND")
	GDT              = NewCode("GDT")
	PRARE            = NewCode("PRARE")
	GYEN             = NewCode("GYEN")
	METIS            = NewCode("METIS")
	BZZ              = NewCode("BZZ")
	TENSET           = NewCode("10SET")
	STRING           = NewCode("STRING")
	PDEX             = NewCode("PDEX")
	FEAR             = NewCode("FEAR")
	ELON             = NewCode("ELON")
	NOA              = NewCode("NOA")
	NAOS             = NewCode("NAOS")
	GITCOIN          = NewCode("GITCOIN")
	XCAD             = NewCode("XCAD")
	LSS              = NewCode("LSS")
	CVX              = NewCode("CVX")
	PHTR             = NewCode("PHTR")
	APN              = NewCode("APN")
	DFYN             = NewCode("DFYN")
	LIME             = NewCode("LIME")
	FORM             = NewCode("FORM")
	KEX              = NewCode("KEX")
	DLTA             = NewCode("DLTA")
	DPR              = NewCode("DPR")
	CQT              = NewCode("CQT")
	OLY              = NewCode("OLY")
	FUSE             = NewCode("FUSE")
	SRK              = NewCode("SRK")
	BURP             = NewCode("BURP")
	CART             = NewCode("CART")
	C98              = NewCode("C98")
	DNXC             = NewCode("DNXC")
	DERC             = NewCode("DERC")
	PLA              = NewCode("PLA")
	EFI              = NewCode("EFI")
	HMT              = NewCode("HMT")
	SKT              = NewCode("SKT")
	SPHRI            = NewCode("SPHRI")
	BIT              = NewCode("BIT")
	RARE             = NewCode("RARE")
	ZLW              = NewCode("ZLW")
	SKYRIM           = NewCode("SKYRIM")
	OCT              = NewCode("OCT")
	ATA              = NewCode("ATA")
	PUSH             = NewCode("PUSH")
	REVO             = NewCode("REVO")
	VENT             = NewCode("VENT")
	LDO              = NewCode("LDO")
	GEL              = NewCode("GEL")
	CTRC             = NewCode("CTRC")
	ITGR             = NewCode("ITGR")
	HOTCROSS         = NewCode("HOTCROSS")
	OPUL             = NewCode("OPUL")
	POLI             = NewCode("POLI")
	TAUR             = NewCode("TAUR")
	EQX              = NewCode("EQX")
	RBN              = NewCode("RBN")
	PHM              = NewCode("PHM")
	FLOKI            = NewCode("FLOKI")
	CIRUS            = NewCode("CIRUS")
	DYDX             = NewCode("DYDX")
	RGT              = NewCode("RGT")
	AGLD             = NewCode("AGLD")
	DOGNFT           = NewCode("DOGNFT")
	SOV              = NewCode("SOV")
	URUS             = NewCode("URUS")
	CFG              = NewCode("CFG")
	TBTC             = NewCode("TBTC")
	NFTX             = NewCode("NFTX")
	ORAI             = NewCode("ORAI")
	LIT              = NewCode("LIT")
	POOLZ            = NewCode("POOLZ")
	DODO             = NewCode("DODO")
	IPAD             = NewCode("IPAD")
	OPIUM            = NewCode("OPIUM")
	REEF             = NewCode("REEF")
	MAPS             = NewCode("MAPS")
	ZCN              = NewCode("ZCN")
	BAO              = NewCode("BAO")
	DIS              = NewCode("DIS")
	PBTC35A          = NewCode("PBTC35A")
	NORD             = NewCode("NORD")
	FLOW             = NewCode("FLOW")
	FIN              = NewCode("FIN")
	INJ              = NewCode("INJ")
	KP3R             = NewCode("KP3R")
	HYVE             = NewCode("HYVE")
	RAMP             = NewCode("RAMP")
	RARI             = NewCode("RARI")
	MPH              = NewCode("MPH")
	CVP              = NewCode("CVP")
	VALUE            = NewCode("VALUE")
	YFII             = NewCode("YFII")
	TROY             = NewCode("TROY")
	SPA              = NewCode("SPA")
	FOR              = NewCode("FOR")
	DIA              = NewCode("DIA")
	TRB              = NewCode("TRB")
	PEARL            = NewCode("PEARL")
	NFT              = NewCode("NFT")
	SLM              = NewCode("SLM")
	TAI              = NewCode("TAI")
	JFI              = NewCode("JFI")
	DKA              = NewCode("DKA")
	DOS              = NewCode("DOS")
	LBK              = NewCode("LBK")
	ASD              = NewCode("ASD")
	SWOP             = NewCode("SWOP")
	WEST             = NewCode("WEST")
	HYDRA            = NewCode("HYDRA")
	OLT              = NewCode("OLT")
	LAT              = NewCode("LAT")
	STC              = NewCode("STC")
	HNT              = NewCode("HNT")
	AKT              = NewCode("AKT")
	BTC3L            = NewCode("BTC3L")
	COTI3L           = NewCode("COTI3L")
	XCH3L            = NewCode("XCH3L")
	IOST3L           = NewCode("IOST3L")
	BZZ3L            = NewCode("BZZ3L")
	TRIBE3L          = NewCode("TRIBE3L")
	RAY3L            = NewCode("RAY3L")
	AR3L             = NewCode("AR3L")
	ONE3L            = NewCode("ONE3L")
	HBAR3L           = NewCode("HBAR3L")
	CSPR3L           = NewCode("CSPR3L")
	SXP3L            = NewCode("SXP3L")
	XEC3L            = NewCode("XEC3L")
	LIT3L            = NewCode("LIT3L")
	MINA3L           = NewCode("MINA3L")
	GALA3L           = NewCode("GALA3L")
	FTT3L            = NewCode("FTT3L")
	C983L            = NewCode("C983L")
	DYDX3L           = NewCode("DYDX3L")
	MTL3L            = NewCode("MTL3L")
	FTM3L            = NewCode("FTM3L")
	SAND3L           = NewCode("SAND3L")
	LUNA3L           = NewCode("LUNA3L")
	ALPHA3L          = NewCode("ALPHA3L")
	RUNE3L           = NewCode("RUNE3L")
	ICP3L            = NewCode("ICP3L")
	SHIB3L           = NewCode("SHIB3L")
	ACH3L            = NewCode("ACH3L")
	ALICE3L          = NewCode("ALICE3L")
	AXS3L            = NewCode("AXS3L")
	MATIC3L          = NewCode("MATIC3L")
	BTC5L            = NewCode("BTC5L")
	BCH5L            = NewCode("BCH5L")
	DOT5L            = NewCode("DOT5L")
	XRP5L            = NewCode("XRP5L")
	BSV5L            = NewCode("BSV5L")
	LTC5L            = NewCode("LTC5L")
	EOS5L            = NewCode("EOS5L")
	ETH5L            = NewCode("ETH5L")
	LINK3L           = NewCode("LINK3L")
	KAVA3L           = NewCode("KAVA3L")
	EGLD3L           = NewCode("EGLD3L")
	CHZ3L            = NewCode("CHZ3L")
	MKR3L            = NewCode("MKR3L")
	LRC3L            = NewCode("LRC3L")
	BAL3L            = NewCode("BAL3L")
	JST3L            = NewCode("JST3L")
	SERO3L           = NewCode("SERO3L")
	VET3L            = NewCode("VET3L")
	THETA3L          = NewCode("THETA3L")
	ZIL3L            = NewCode("ZIL3L")
	GRIN3L           = NewCode("GRIN3L")
	BEAM3L           = NewCode("BEAM3L")
	SOL3L            = NewCode("SOL3L")
	SKL3L            = NewCode("SKL3L")
	ONEINCH3L        = NewCode("1INCH3L")
	LON3L            = NewCode("LON3L")
	DOGE3L           = NewCode("DOGE3L")
	GRT3L            = NewCode("GRT3L")
	BNB3L            = NewCode("BNB3L")
	TRX3L            = NewCode("TRX3L")
	ATOM3L           = NewCode("ATOM3L")
	AVAX3L           = NewCode("AVAX3L")
	NEAR3L           = NewCode("NEAR3L")
	ROSE3L           = NewCode("ROSE3L")
	ZEN3L            = NewCode("ZEN3L")
	QTUM3L           = NewCode("QTUM3L")
	XLM3L            = NewCode("XLM3L")
	XRP3L            = NewCode("XRP3L")
	CFX3L            = NewCode("CFX3L")
	OMG3L            = NewCode("OMG3L")
	ALGO3L           = NewCode("ALGO3L")
	WAVES3L          = NewCode("WAVES3L")
	NEO3L            = NewCode("NEO3L")
	ONT3L            = NewCode("ONT3L")
	ETC3L            = NewCode("ETC3L")
	CVC3L            = NewCode("CVC3L")
	SNX3L            = NewCode("SNX3L")
	ADA3L            = NewCode("ADA3L")
	DASH3L           = NewCode("DASH3L")
	AAVE3L           = NewCode("AAVE3L")
	SRM3L            = NewCode("SRM3L")
	KSM3L            = NewCode("KSM3L")
	BTM3L            = NewCode("BTM3L")
	ZEC3L            = NewCode("ZEC3L")
	XMR3L            = NewCode("XMR3L")
	AMPL3L           = NewCode("AMPL3L")
	CRV3L            = NewCode("CRV3L")
	COMP3L           = NewCode("COMP3L")
	YFII3L           = NewCode("YFII3L")
	YFI3L            = NewCode("YFI3L")
	HT3L             = NewCode("HT3L")
	OKB3L            = NewCode("OKB3L")
	UNI3L            = NewCode("UNI3L")
	DOT3L            = NewCode("DOT3L")
	FIL3L            = NewCode("FIL3L")
	SUSHI3L          = NewCode("SUSHI3L")
	ETH3L            = NewCode("ETH3L")
	EOS3L            = NewCode("EOS3L")
	BSV3L            = NewCode("BSV3L")
	BCH3L            = NewCode("BCH3L")
	LTC3L            = NewCode("LTC3L")
	XTZ3L            = NewCode("XTZ3L")
	RVN              = NewCode("RVN")
	AR               = NewCode("AR")
	SNK              = NewCode("SNK")
	NSDX             = NewCode("NSDX")
	HIVE             = NewCode("HIVE")
	BCHA             = NewCode("BCHA")
	FLUX             = NewCode("FLUX")
	NAX              = NewCode("NAX")
	NBOT             = NewCode("NBOT")
	BEAM             = NewCode("BEAM")
	MINA             = NewCode("MINA")
	LUNC             = NewCode("LUNC")
	ABBC             = NewCode("ABBC")
	FIC              = NewCode("FIC")
	STOX             = NewCode("STOX")
	VIDYX            = NewCode("VIDYX")
	CNNS             = NewCode("CNNS")
	BTCBEAR          = NewCode("BTCBEAR")
	ETHBULL          = NewCode("ETHBULL")
	EOSBEAR          = NewCode("EOSBEAR")
	XRPBULL          = NewCode("XRPBULL")
	WGRT             = NewCode("WGRT")
	RUNE             = NewCode("RUNE")
	CBK              = NewCode("CBK")
	OPA              = NewCode("OPA")
	KABY             = NewCode("KABY")
	BP               = NewCode("BP")
	SFUND            = NewCode("SFUND")
	ASTRO            = NewCode("ASTRO")
	ARV              = NewCode("ARV")
	ROSN             = NewCode("ROSN")
	CPHR             = NewCode("CPHR")
	KWS              = NewCode("KWS")
	CTT              = NewCode("CTT")
	BEEFI            = NewCode("BEEFI")
	BLIN             = NewCode("BLIN")
	XPNET            = NewCode("XPNET")
	BABY             = NewCode("BABY")
	OPS              = NewCode("OPS")
	RACA             = NewCode("RACA")
	HOD              = NewCode("HOD")
	OLYMPUS          = NewCode("OLYMPUS")
	BMON             = NewCode("BMON")
	PVU              = NewCode("PVU")
	FAN              = NewCode("FAN")
	SKILL            = NewCode("SKILL")
	SPS              = NewCode("SPS")
	HERO             = NewCode("HERO")
	FEVR             = NewCode("FEVR")
	WEX              = NewCode("WEX")
	KALM             = NewCode("KALM")
	KPAD             = NewCode("KPAD")
	BABYDOGE         = NewCode("BABYDOGE")
	PIG              = NewCode("PIG")
	FINE             = NewCode("FINE")
	BSCS             = NewCode("BSCS")
	SAFEMARS         = NewCode("SAFEMARS")
	PSG              = NewCode("PSG")
	PET              = NewCode("PET")
	ALPACA           = NewCode("ALPACA")
	BRY              = NewCode("BRY")
	TOOLS            = NewCode("TOOLS")
	JULD             = NewCode("JULD")
	FRA              = NewCode("FRA")
	TWT              = NewCode("TWT")
	WIN              = NewCode("WIN")
	MTV              = NewCode("MTV")
	HPB              = NewCode("HPB")
	EGLD             = NewCode("EGLD")
	CSPR             = NewCode("CSPR")
	FIS              = NewCode("FIS")
	MDX              = NewCode("MDX")
	WAR              = NewCode("WAR")
	XNFT             = NewCode("XNFT")
	BXH              = NewCode("BXH")
	BAGS             = NewCode("BAGS")
	ALEPH            = NewCode("ALEPH")
	KEEP             = NewCode("KEEP")
	NXM              = NewCode("NXM")
	ONEINCH          = NewCode("ONEINCH")
	SKL              = NewCode("SKL")
	BOND             = NewCode("BOND")
	ALCX             = NewCode("ALCX")
	API3             = NewCode("API3")
	DDX              = NewCode("DDX")
	FTM              = NewCode("FTM")
	CTX              = NewCode("CTX")
	ILV              = NewCode("ILV")
	MC02             = NewCode("MC02")
	SLP              = NewCode("SLP")
	WTON             = NewCode("WTON")
	EFIL             = NewCode("EFIL")
	MTX              = NewCode("MTX")
	YGG              = NewCode("YGG")
	QCASH            = NewCode("QCASH")
	TV               = NewCode("TV")
	BCW              = NewCode("BCW")
	ENTC             = NewCode("ENTC")
	XWCC             = NewCode("XWCC")
	BRC              = NewCode("BRC")
	GRIN             = NewCode("GRIN")
	B91              = NewCode("B91")
	YTNB             = NewCode("YTNB")
	NWT              = NewCode("NWT")
	BAR              = NewCode("BAR")
	ACC              = NewCode("ACC")
	HX               = NewCode("HX")
	LVN              = NewCode("LVN")
	TSR              = NewCode("TSR")
	FN               = NewCode("FN")
	HNS              = NewCode("HNS")
	KPG              = NewCode("KPG")
	LTG              = NewCode("LTG")
	UFO              = NewCode("UFO")
	GUCS             = NewCode("GUCS")
	VBT              = NewCode("VBT")
	DSF              = NewCode("DSF")
	GST              = NewCode("GST")
	DAWN             = NewCode("DAWN")
	UFC              = NewCode("UFC")
	EP               = NewCode("EP")
	ULU              = NewCode("ULU")
	DMD              = NewCode("DMD")
	NBS              = NewCode("NBS")
	BGPT             = NewCode("BGPT")
	DIP              = NewCode("DIP")
	QFIL             = NewCode("QFIL")
	RTF              = NewCode("RTF")
	M                = NewCode("M")
	FOMP             = NewCode("FOMP")
	BDM              = NewCode("BDM")
	DORA             = NewCode("DORA")
	UZ               = NewCode("UZ")
	BKH              = NewCode("BKH")
	CRU              = NewCode("CRU")
	IDV              = NewCode("IDV")
	NEAR             = NewCode("NEAR")
	DFL              = NewCode("DFL")
	BED              = NewCode("BED")
	SDOG             = NewCode("SDOG")
	CFX              = NewCode("CFX")
	CATE             = NewCode("CATE")
	ONETHOUSANDHOKK  = NewCode("1000HOKK")
	ONETHOUSANDKISHU = NewCode("1000KISHU")
	XFLR             = NewCode("XFLR")
	ICP              = NewCode("ICP")
	BNA              = NewCode("BNA")
	DOM              = NewCode("DOM")
	POLS             = NewCode("POLS")
	O3               = NewCode("O3")
	CLV              = NewCode("CLV")
	FARM             = NewCode("FARM")
	ORN              = NewCode("ORN")
	QUICK            = NewCode("QUICK")
	TRU              = NewCode("TRU")
	SANA             = NewCode("SANA")
	TRIBE            = NewCode("TRIBE")
	CELO             = NewCode("CELO")
	SDN              = NewCode("SDN")
	WNCG             = NewCode("WNCG")
	AMC              = NewCode("AMC")
	OOE              = NewCode("OOE")
	XYO              = NewCode("XYO")
	GALA             = NewCode("GALA")
	ZKN              = NewCode("ZKN")
	XCH              = NewCode("XCH")
	AC               = NewCode("AC")
	ABTC             = NewCode("ABTC")
	AFC              = NewCode("AFC")
	AGE              = NewCode("AGE")
	AIN              = NewCode("AIN")
	ALI              = NewCode("ALI")
	ALIX             = NewCode("ALIX")
	ANJ              = NewCode("ANJ")
	ANRX             = NewCode("ANRX")
	ANY              = NewCode("ANY")
	AOS              = NewCode("AOS")
	AQUAGOAT         = NewCode("AQUAGOAT")
	ARTCN            = NewCode("ARTCN")
	ARTE             = NewCode("ARTE")
	AT               = NewCode("AT")
	ATC              = NewCode("ATC")
	ATLAS            = NewCode("ATLAS")
	ATP              = NewCode("ATP")
	ATPNAS           = NewCode("ATPNAS")
	AURY             = NewCode("AURY")
	AUSD             = NewCode("AUSD")
	AUTO             = NewCode("AUTO")
	AVAX             = NewCode("AVAX")
	AVF              = NewCode("AVF")
	AWR              = NewCode("AWR")
	B20              = NewCode("B20")
	BADGER           = NewCode("BADGER")
	BAFE             = NewCode("BAFE")
	BANANA           = NewCode("BANANA")
	BAS              = NewCode("BAS")
	BASEL            = NewCode("BASEL")
	BASID            = NewCode("BASID")
	BBC              = NewCode("BBC")
	BBCNP            = NewCode("BBCNP")
	BCK              = NewCode("BCK")
	BDP              = NewCode("BDP")
	BELT             = NewCode("BELT")
	SLIM             = NewCode("SLIM")
	SPN              = NewCode("SPN")
	VUSD             = NewCode("VUSD")
	POLYBUNNY        = NewCode("POLYBUNNY")
	STARL            = NewCode("STARL")
	KISC             = NewCode("KISC")
	MASS             = NewCode("MASS")
	MOYU             = NewCode("MOYU")
	PLUG             = NewCode("PLUG")
	SFC              = NewCode("SFC")
	TEP              = NewCode("TEP")
	GOFX             = NewCode("GOFX")
	KAINET           = NewCode("KAINET")
	BXA              = NewCode("BXA")
	SLOT             = NewCode("SLOT")
	EXVA             = NewCode("EXVA")
	MW               = NewCode("MW")
	BOO              = NewCode("BOO")
	BZKY             = NewCode("BZKY")
	NFTART           = NewCode("NFTART")
	QRDO             = NewCode("QRDO")
	SHILL            = NewCode("SHILL")
	SIT              = NewCode("SIT")
	USF              = NewCode("USF")
	EBSO             = NewCode("EBSO")
	GUSDT            = NewCode("GUSDT")
	BTRST            = NewCode("BTRST")
	DBX              = NewCode("DBX")
	MARSINU          = NewCode("MARSINU")
	GEMG             = NewCode("GEMG")
	HYPE             = NewCode("HYPE")
	ELCASH           = NewCode("ELCASH")
	FEG              = NewCode("FEG")
	MTC              = NewCode("MTC")
	NCT              = NewCode("NCT")
	PSYDUCK          = NewCode("PSYDUCK")
	SEAL             = NewCode("SEAL")
	DOGEKONGZILLA    = NewCode("DOGEKONGZILLA")
	DOUGH            = NewCode("DOUGH")
	SURFMOON         = NewCode("SURFMOON")
	BUIDL            = NewCode("BUIDL")
	DOGGY            = NewCode("DOGGY")
	VNX              = NewCode("VNX")
	BSB              = NewCode("BSB")
	GOF              = NewCode("GOF")
	GM               = NewCode("GM")
	TEN              = NewCode("TEN")
	CRT              = NewCode("CRT")
	FIL12            = NewCode("FIL12")
	WAXE             = NewCode("WAXE")
	VEGA             = NewCode("VEGA")
	LSP              = NewCode("LSP")
	TOWER            = NewCode("TOWER")
	GL               = NewCode("GL")
	IBNB             = NewCode("IBNB")
	WDS              = NewCode("WDS")
	YYE              = NewCode("YYE")
	GHC              = NewCode("GHC")
	LBKL             = NewCode("LBKL")
	NASADOGE         = NewCode("NASADOGE")
	TKX              = NewCode("TKX")
	XWC2             = NewCode("XWC2")
	CNEX             = NewCode("CNEX")
	DOKI             = NewCode("DOKI")
	MX               = NewCode("MX")
	UCA              = NewCode("UCA")
	NKGEN            = NewCode("NKGEN")
	STPL             = NewCode("STPL")
	CYE              = NewCode("CYE")
	KBC              = NewCode("KBC")
	X                = NewCode("X")
	GINU             = NewCode("GINU")
	MEDA             = NewCode("MEDA")
	TREES            = NewCode("TREES")
	UZUMAKI          = NewCode("UZUMAKI")
	CHLT             = NewCode("CHLT")
	DBZ              = NewCode("DBZ")
	IMX              = NewCode("IMX")
	LIEN             = NewCode("LIEN")
	ULTRA            = NewCode("ULTRA")
	BTSC             = NewCode("BTSC")
	EAI              = NewCode("EAI")
	CORGI            = NewCode("CORGI")
	MINISHIBA        = NewCode("MINISHIBA")
	BLOC             = NewCode("BLOC")
	PEPPA            = NewCode("PEPPA")
	FOUR             = NewCode("FOUR")
	PERP             = NewCode("PERP")
	THG              = NewCode("THG")
	COLLIE           = NewCode("COLLIE")
	FO               = NewCode("FO")
	HER              = NewCode("HER")
	DNS              = NewCode("DNS")
	ELS              = NewCode("ELS")
	MINISAITAMA      = NewCode("MINISAITAMA")
	PCH              = NewCode("PCH")
	SBREE            = NewCode("SBREE")
	BPRIVA           = NewCode("BPRIVA")
	DLX              = NewCode("DLX")
	NAFT             = NewCode("NAFT")
	SHIBLITE         = NewCode("SHIBLITE")
	BHD              = NewCode("BHD")
	THN              = NewCode("THN") //nolint:misspell // false positive
	DOGEDASH         = NewCode("DOGEDASH")
	FARA             = NewCode("FARA")
	FIL120           = NewCode("FIL120")
	RABBIT           = NewCode("RABBIT")
	ZOON             = NewCode("ZOON")
	BONFIRE          = NewCode("BONFIRE")
	CHAIN            = NewCode("CHAIN")
	GGC              = NewCode("GGC")
	IOG              = NewCode("IOG")
	MEME             = NewCode("MEME")
	PINU             = NewCode("PINU")
	CCASH            = NewCode("CCASH")
	GART             = NewCode("GART")
	VALK             = NewCode("VALK")
	LM               = NewCode("LM")
	MINIDOGE         = NewCode("MINIDOGE")
	RAZOR            = NewCode("RAZOR")
	KILL             = NewCode("KILL")
	MASK             = NewCode("MASK")
	BUMN             = NewCode("BUMN")
	KLAYG            = NewCode("KLAYG")
	MICROSHIB        = NewCode("MICROSHIB")
	IDHUB            = NewCode("IDHUB")
	JT               = NewCode("JT")
	NTX              = NewCode("NTX")
	SAMO             = NewCode("SAMO")
	SANSHU           = NewCode("SANSHU")
	TASTE            = NewCode("TASTE")
	CXC              = NewCode("CXC")
	FLDT             = NewCode("FLDT")
	SAITO            = NewCode("SAITO")
	UIP              = NewCode("UIP")
	HTDF             = NewCode("HTDF")
	MOONRISE         = NewCode("MOONRISE")
	HOKK             = NewCode("HOKK")
	LT               = NewCode("LT")
	MINI             = NewCode("MINI")
	MOK              = NewCode("MOK")
	BLUESPARROW      = NewCode("BLUESPARROW")
	FTS              = NewCode("FTS")
	PN               = NewCode("PN")
	KDC              = NewCode("KDC")
	SAFEMOON         = NewCode("SAFEMOON")
	SON              = NewCode("SON")
	ZINU             = NewCode("ZINU")
	FIL72            = NewCode("FIL72")
	PETS             = NewCode("PETS")
	POK              = NewCode("POK")
	RBASE            = NewCode("RBASE")
	TOKAU            = NewCode("TOKAU")
	UBEX             = NewCode("UBEX")
	VENA             = NewCode("VENA")
	FC               = NewCode("FC")
	OEX              = NewCode("OEX")
	DOGEBACK         = NewCode("DOGEBACK")
	IOEX             = NewCode("IOEX")
	MOVR             = NewCode("MOVR")
	PTT              = NewCode("PTT")
	ZOOT             = NewCode("ZOOT")
	CATGIRL          = NewCode("CATGIRL")
	CHOPPER          = NewCode("CHOPPER")
	EDEN             = NewCode("EDEN")
	GEP              = NewCode("GEP")
	LVI              = NewCode("LVI")
	PEG              = NewCode("PEG")
	SUTER            = NewCode("SUTER")
	CHECK            = NewCode("CHECK")
	DRO              = NewCode("DRO")
	FBC              = NewCode("FBC")
	KABOSU           = NewCode("KABOSU")
	CPX              = NewCode("CPX")
	ZAK              = NewCode("ZAK")
	ETERNAL          = NewCode("ETERNAL")
	MILKTEA          = NewCode("MILKTEA")
	KEANU            = NewCode("KEANU")
	NSFW             = NewCode("NSFW")
	XOM              = NewCode("XOM")
	EMPIRE           = NewCode("EMPIRE")
	FNK              = NewCode("FNK")
	SMRAT            = NewCode("SMRAT")
	TAPE             = NewCode("TAPE")
	IIC              = NewCode("IIC")
	IMI              = NewCode("IMI")
	KIWI             = NewCode("KIWI")
	POLO             = NewCode("POLO")
	BRIGHT           = NewCode("BRIGHT")
	HIKO             = NewCode("HIKO")
	HELIOS           = NewCode("HELIOS")
	KINGSHIB         = NewCode("KINGSHIB")
	DOGE2            = NewCode("DOGE2")
	EFK              = NewCode("EFK")
	LMCSWAP          = NewCode("LMCSWAP")
	PMON             = NewCode("PMON")
	POODL            = NewCode("POODL")
	SSN              = NewCode("SSN")
	BIN              = NewCode("BIN")
	LFIL             = NewCode("LFIL")
	BFDT             = NewCode("BFDT")
	USDN             = NewCode("USDN")
	GDOGE            = NewCode("GDOGE")
	HUSD             = NewCode("HUSD")
	FOIN             = NewCode("FOIN")
	LARIX            = NewCode("LARIX")
	MARSRISE         = NewCode("MARSRISE")
	PUT              = NewCode("PUT")
	ZIQ              = NewCode("ZIQ")
	CCAR             = NewCode("CCAR")
	CZ               = NewCode("CZ")
	PLUGCN           = NewCode("PLUGCN")
	X2P              = NewCode("X2P")
	MOONX            = NewCode("MOONX")
	TUDA             = NewCode("TUDA")
	ZOE              = NewCode("ZOE")
	FCF              = NewCode("FCF")
	GHD              = NewCode("GHD")
	KALA             = NewCode("KALA")
	ULTI             = NewCode("ULTI")
	GRAMS            = NewCode("GRAMS")
	ODA              = NewCode("ODA")
	PHV              = NewCode("PHV")
	SAL              = NewCode("SAL")
	TKY              = NewCode("TKY")
	XWG              = NewCode("XWG")
	CCTC             = NewCode("CCTC")
	MKCY             = NewCode("MKCY")
	LFIL36           = NewCode("LFIL36")
	PKMON            = NewCode("PKMON")
	RCKT             = NewCode("RCKT")
	VCC              = NewCode("VCC")
	CUMSTAR          = NewCode("CUMSTAR")
	JNTR             = NewCode("JNTR")
	JIND             = NewCode("JIND")
	SAITAMA          = NewCode("SAITAMA")
	ELT              = NewCode("ELT")
	FLOKIN           = NewCode("FLOKIN")
	NEX              = NewCode("NEX")
	TENA             = NewCode("TENA")
	CAP              = NewCode("CAP")
	LUFFY            = NewCode("LUFFY")
	ET               = NewCode("ET")
	DBNK             = NewCode("DBNK")
	SDT              = NewCode("SDT")
	NWC              = NewCode("NWC")
	PAMP             = NewCode("PAMP")
	XVIX             = NewCode("XVIX")
	BLADE            = NewCode("BLADE")
	GETH             = NewCode("GETH")
	HIGH             = NewCode("HIGH")
	PLF              = NewCode("PLF")
	DSG              = NewCode("DSG")
	GN               = NewCode("GN")
	TTT              = NewCode("TTT")
	HMR              = NewCode("HMR")
	SMD              = NewCode("SMD")
	WEYU             = NewCode("WEYU")
	BIKI             = NewCode("BIKI")
	VIKINGS          = NewCode("VIKINGS")
	BUGG             = NewCode("BUGG")
	LUNAPAD          = NewCode("LUNAPAD")
	EAURIC           = NewCode("EAURIC")
	HJW              = NewCode("HJW")
	LUC              = NewCode("LUC")
	BV               = NewCode("BV")
	COGE             = NewCode("COGE")
	DILI             = NewCode("DILI")
	XHDX             = NewCode("XHDX")
	XP               = NewCode("XP")
	XSTAR            = NewCode("XSTAR")
	FKX              = NewCode("FKX")
	RPL              = NewCode("RPL")
	JUS              = NewCode("JUS")
	KISHIMOTO        = NewCode("KISHIMOTO")
	NEST             = NewCode("NEST")
	SMBSWAP          = NewCode("SMBSWAP")
	WOLVERINU        = NewCode("WOLVERINU")
	GNBT             = NewCode("GNBT")
	HDS              = NewCode("HDS")
	QNUT             = NewCode("QNUT")
	ENS              = NewCode("ENS")
	FOG              = NewCode("FOG")
	NBTC             = NewCode("NBTC")
	CHS              = NewCode("CHS")
	GMT              = NewCode("GMT")
	ORCA             = NewCode("ORCA")
	SERO             = NewCode("SERO")
	BGLD             = NewCode("BGLD")
	CDB              = NewCode("CDB")
	SLA              = NewCode("SLA")
	UT               = NewCode("UT")
	POLYDOGE         = NewCode("POLYDOGE")
	SFP              = NewCode("SFP")
	HKUN             = NewCode("HKUN")
	WHALE            = NewCode("WHALE")
	CCXX             = NewCode("CCXX")
	DOR              = NewCode("DOR")
	OATH             = NewCode("OATH")
	GKI              = NewCode("GKI")
	PANDA            = NewCode("PANDA")
	OVO              = NewCode("OVO")
	CELT             = NewCode("CELT")
	OSST             = NewCode("OSST")
	OMNIS            = NewCode("OMNIS")
	TONE             = NewCode("TONE")
	MERI             = NewCode("MERI")
	MTA              = NewCode("MTA")
	MBF              = NewCode("MBF")
	Y1D1S            = NewCode("Y1D1S")
	GMCOIN           = NewCode("GMCOIN")
	KISHU            = NewCode("KISHU")
	OPX              = NewCode("OPX")
	PCE              = NewCode("PCE")
	SFIL             = NewCode("SFIL")
	BID              = NewCode("BID")
	BKS              = NewCode("BKS")
	PIZA             = NewCode("PIZA")
	POSI             = NewCode("POSI")
	WSG              = NewCode("WSG")
	K21              = NewCode("K21")
	PAI              = NewCode("PAI")
	HEX              = NewCode("HEX")
	YFFII            = NewCode("YFFII")
	IMC              = NewCode("IMC")
	ONES             = NewCode("ONES")
	CRB              = NewCode("CRB")
	DBA              = NewCode("DBA")
	SEAD             = NewCode("SEAD")
	SYN              = NewCode("SYN")
	TAC              = NewCode("TAC")
	DAX              = NewCode("DAX")
	LFIL12           = NewCode("LFIL12")
	LFW              = NewCode("LFW")
	TYB              = NewCode("TYB")
	FCL              = NewCode("FCL")
	GERA             = NewCode("GERA")
	LID              = NewCode("LID")
	TT               = NewCode("TT")
	WELL             = NewCode("WELL")
	GALT             = NewCode("GALT")
	GMC              = NewCode("GMC")
	BPX              = NewCode("BPX")
	DOE              = NewCode("DOE")
	REVV             = NewCode("REVV")
	VTT              = NewCode("VTT")
	MAI              = NewCode("MAI")
	PDF              = NewCode("PDF")
	SEER             = NewCode("SEER")
	GFI              = NewCode("GFI")
	GODS             = NewCode("GODS")
	FISH             = NewCode("FISH")
	MIST             = NewCode("MIST")
	SEOS             = NewCode("SEOS")
	AWF              = NewCode("AWF")
	DADDYDOGE        = NewCode("DADDYDOGE")
	MNSTRS           = NewCode("MNSTRS")
	TREE             = NewCode("TREE")
	BNX              = NewCode("BNX")
	DESIRE           = NewCode("DESIRE")
	FIC24            = NewCode("FIC24")
	RYOSHI           = NewCode("RYOSHI")
	TABOO            = NewCode("TABOO")
	CMCX             = NewCode("CMCX")
	CRE              = NewCode("CRE")
	FIL6             = NewCode("FIL6")
	HTMOON           = NewCode("HTMOON")
	PORNROCKET       = NewCode("PORNROCKET")
	QUID             = NewCode("QUID")
	SAIT             = NewCode("SAIT")
	TGC              = NewCode("TGC")
	CVA              = NewCode("CVA")
	EMAX             = NewCode("EMAX")
	XDOGE            = NewCode("XDOGE")
	TUBE2            = NewCode("TUBE2")
	TZKI             = NewCode("TZKI")
	YOOSHI           = NewCode("YOOSHI")
	GLEEC            = NewCode("GLEEC")
	PNT              = NewCode("PNT")
	UMI              = NewCode("UMI")
	DALI             = NewCode("DALI")
	DUKE             = NewCode("DUKE")
	MLTPX            = NewCode("MLTPX")
	CHE              = NewCode("CHE")
	KING             = NewCode("KING")
	MEWTWO           = NewCode("MEWTWO")
	SEED             = NewCode("SEED")
	DEKU             = NewCode("DEKU")
	FSHIB            = NewCode("FSHIB")
	MFLOKIADA        = NewCode("MFLOKIADA")
	MNI              = NewCode("MNI")
	NBL              = NewCode("NBL")
	POVE             = NewCode("POVE")
	SMTY             = NewCode("SMTY")
	CPH              = NewCode("CPH")
	FLM              = NewCode("FLM")
	GAT              = NewCode("GAT")
	MONONOKEINU      = NewCode("MONONOKEINU")
	SBR              = NewCode("SBR")
	BMARS            = NewCode("BMARS")
	GOMI             = NewCode("GOMI")
	ONOT             = NewCode("ONOT") //nolint:misspell // false positive
	GOKU             = NewCode("GOKU")
	MINTYS           = NewCode("MINTYS")
	PONYO            = NewCode("PONYO")
	WZC              = NewCode("WZC")
	ELAMA            = NewCode("ELAMA")
	NAMI             = NewCode("NAMI")
	SLINK            = NewCode("SLINK")
	SQUID            = NewCode("SQUID")
	DOGEZILLA        = NewCode("DOGEZILLA")
	INSUR            = NewCode("INSUR")
	IDA              = NewCode("IDA")
	MDX1             = NewCode("MDX1")
	TRR              = NewCode("TRR")
	DXN              = NewCode("DXN")
	FCH              = NewCode("FCH")
	KAWA             = NewCode("KAWA")
	MCB              = NewCode("MCB")
	NABOX            = NewCode("NABOX")
	WANA             = NewCode("WANA")
	DOGECOLA         = NewCode("DOGECOLA")
	ELONGATE         = NewCode("ELONGATE")
	TNS              = NewCode("TNS")
	LEAD             = NewCode("LEAD")
	SYBC             = NewCode("SYBC")
	WINRY            = NewCode("WINRY")
	DAWGS            = NewCode("DAWGS")
	SMOON            = NewCode("SMOON")
	FIL36            = NewCode("FIL36")
	KDS              = NewCode("KDS")
	SHR              = NewCode("SHR")
	BTY              = NewCode("BTY")
	FODL             = NewCode("FODL")
	XIASI            = NewCode("XIASI")
	RVST             = NewCode("RVST")
	VO               = NewCode("VO")
	GDR              = NewCode("GDR")
	RELCOIN          = NewCode("RELCOIN")
	CISLA            = NewCode("CISLA")
	ECOP             = NewCode("ECOP")
	AXSOLD           = NewCode("AXSOLD")
	BETA             = NewCode("BETA")
	BLINK            = NewCode("BLINK")
	PORTO            = NewCode("PORTO")
	SPARTAOLD        = NewCode("SPARTAOLD")
	WNXM             = NewCode("WNXM")
	ASR              = NewCode("ASR")
	COVEROLD         = NewCode("COVEROLD")
	VRAB             = NewCode("VRAB")
	NSBT             = NewCode("NSBT")
	AGIX             = NewCode("AGIX")
	BOLT             = NewCode("BOLT")
	BIDR             = NewCode("BIDR")
	VAB              = NewCode("VAB")
	EOSBULL          = NewCode("EOSBULL")
	FIO              = NewCode("FIO")
	IDEX             = NewCode("IDEX")
	PROS             = NewCode("PROS")
	VITE             = NewCode("VITE")
	WSOL             = NewCode("WSOL")
	FIRO             = NewCode("FIRO")
	MTLX             = NewCode("MTLX")
	SLPOLD           = NewCode("SLPOLD")
	WING             = NewCode("WING")
	SPARTA           = NewCode("SPARTA")
	USDS             = NewCode("USDS")
	BNC              = NewCode("BNC")
	BEAR             = NewCode("BEAR")
	OG               = NewCode("OG")
	TKO              = NewCode("TKO")
	UFT              = NewCode("UFT")
	SNMOLD           = NewCode("SNMOLD")
	WRX              = NewCode("WRX")
	BKRW             = NewCode("BKRW")
	BNBBULL          = NewCode("BNBBULL")
	PERLOLD          = NewCode("PERLOLD")
	BOBA             = NewCode("BOBA")
	COCOS            = NewCode("COCOS")
	NVT              = NewCode("NVT")
	TBCC             = NewCode("TBCC")
	BTCST            = NewCode("BTCST")
	DEXE             = NewCode("DEXE")
	HARD             = NewCode("HARD")
	DREPOLD          = NewCode("DREPOLD")
	UND              = NewCode("UND")
	XDATA            = NewCode("XDATA")
	KEYFI            = NewCode("KEYFI")
	MA               = NewCode("MA")
	QI               = NewCode("QI")
	ACA              = NewCode("ACA")
	DF               = NewCode("DF")
	KNCL             = NewCode("KNCL")
	BVND             = NewCode("BVND")
	PERL             = NewCode("PERL")
	WETH             = NewCode("WETH")
	BETH             = NewCode("BETH")
	OM               = NewCode("OM")
	OMOLD            = NewCode("OMOLD")
	PHB              = NewCode("PHB")
	ASTR             = NewCode("ASTR")
	HNST             = NewCode("HNST")
	JEX              = NewCode("JEX")
	ZCX              = NewCode("ZCX")
	DAR              = NewCode("DAR")
	MDXT             = NewCode("MDXT")
	RENBTC           = NewCode("RENBTC")
	SSV              = NewCode("SSV")
	XRPBEAR          = NewCode("XRPBEAR")
	AVA              = NewCode("AVA")
	SGT              = NewCode("SGT")
	VGX              = NewCode("VGX")
	EASY             = NewCode("EASY")
	IRIS             = NewCode("IRIS")
	VRT              = NewCode("VRT")
	WBNB             = NewCode("WBNB")
	DON              = NewCode("DON")
	JUV              = NewCode("JUV")
	PHA              = NewCode("PHA")
	SPELL            = NewCode("SPELL")
	QISWAP           = NewCode("QISWAP")
	SUNOLD           = NewCode("SUNOLD")
	ETHBEAR          = NewCode("ETHBEAR")
	FRONT            = NewCode("FRONT")
	LAZIO            = NewCode("LAZIO")
	BCHSV            = NewCode("BCHSV")
	EPS              = NewCode("EPS")
	ETHBNT           = NewCode("ETHBNT")
	HBAR             = NewCode("HBAR")
	ACM              = NewCode("ACM")
	CBM              = NewCode("CBM")
	DREP             = NewCode("DREP")
	ERD              = NewCode("ERD")
	STMX             = NewCode("STMX")
	ANTOLD           = NewCode("ANTOLD")
	BULL             = NewCode("BULL")
	BNBBEAR          = NewCode("BNBBEAR")
	CITY             = NewCode("CITY")
	AKRO             = NewCode("AKRO")
	ENTRP            = NewCode("ENTRP")
	REPV1            = NewCode("REPV1")
	VIDT             = NewCode("VIDT")
	BGBP             = NewCode("BGBP")
	LOOMOLD          = NewCode("LOOMOLD")
	MBOX             = NewCode("MBOX")
	ADXOLD           = NewCode("ADXOLD")
	IDRT             = NewCode("IDRT")
	PHBV1            = NewCode("PHBV1")
	FRAX             = NewCode("FRAX")
	LUSD             = NewCode("LUSD")
	OUSD             = NewCode("OUSD")
	USDX             = NewCode("USDX")
	EURS             = NewCode("EURS")
	CUSD             = NewCode("CUSD")
	MUSD             = NewCode("MUSD")
	USDK             = NewCode("USDK")
	EOSDT            = NewCode("EOSDT")
	DGX              = NewCode("DGX")
	XCHF             = NewCode("XCHF")
	XAUR             = NewCode("XAUR")
	USNBT            = NewCode("USNBT")
	ITL              = NewCode("ITL")
	MIM              = NewCode("MIM")
	ALUSD            = NewCode("ALUSD")
	BRCP             = NewCode("BRCP")
	USDs             = NewCode("USDs")
	MTR              = NewCode("MTR")
	CEUR             = NewCode("CEUR")
	ONEGOLD          = NewCode("1GOLD")
	COFFIN           = NewCode("COFFIN")
	MDO              = NewCode("MDO")
	DPT              = NewCode("DPT")
	XIDR             = NewCode("XIDR")
	PAR              = NewCode("PAR")
	XUSD             = NewCode("XUSD")
	USDB             = NewCode("USDB")
	USDQ             = NewCode("USDQ")
	BITUSD           = NewCode("BITUSD")
	BITGOLD          = NewCode("BITGOLD")
	BITEUR           = NewCode("BITEUR")
	HGT              = NewCode("HGT")
	CONST            = NewCode("CONST")
	XEUR             = NewCode("XEUR")
	EBASE            = NewCode("EBASE")
	USDL             = NewCode("USDL")
	UETH             = NewCode("UETH")
	USDEX            = NewCode("USDEX")
	USDFL            = NewCode("USDFL")
	FLUSD            = NewCode("FLUSD")
	DUSD             = NewCode("DUSD")
	USDD             = NewCode("USDD")
	KDA              = NewCode("KDA")
	XCN              = NewCode("XCN")
	TEL              = NewCode("TEL")
	XDC              = NewCode("XDC")
	MHC              = NewCode("MHC")
	OXEN             = NewCode("OXEN")
	STETH            = NewCode("STETH")
	SWAP             = NewCode("SWAP")
	PI               = NewCode("PI")
	FI               = NewCode("FI")
	USDM             = NewCode("USDM")
	USDTM            = NewCode("USDTM")
	LEVER            = NewCode("LEVER")
	NESS             = NewCode("NESS")
	KAS              = NewCode("KAS")
	NEXT             = NewCode("NEXT")
	VEXT             = NewCode("VEXT")
	PYUSD            = NewCode("PYUSD")
	SAIL             = NewCode("SAIL")
	VV               = NewCode("VV")
	ORDI             = NewCode("ORDI")
	CYBER            = NewCode("CYBER")
	SEILOR           = NewCode("SEILOR")
	TAVA             = NewCode("TAVA")
	DSRUN            = NewCode("DSRUN")
	CWAR             = NewCode("CWAR")
	GALFT            = NewCode("GALFT")
	LADYS10000       = NewCode("10000LADYS")
	NFT10000         = NewCode("10000NFT")
	BONK1000         = NewCode("1000BONK")
	BTT1000          = NewCode("1000BTT")
	FLOKI1000        = NewCode("1000FLOKI")
	LUNC1000         = NewCode("1000LUNC")
	PEPE1000         = NewCode("1000PEPE")
	XEC1000          = NewCode("1000XEC")
	ARKM             = NewCode("ARKM")
	BICO             = NewCode("BICO")
	BIGTIME          = NewCode("BIGTIME")
	BLUR             = NewCode("BLUR")
	CEEK             = NewCode("CEEK")
	ETHW             = NewCode("ETHW")
	FITFI            = NewCode("FITFI")
	GLMR             = NewCode("GLMR")
	HIFI             = NewCode("HIFI")
	HOOK             = NewCode("HOOK")
	LOOKS            = NewCode("LOOKS")
	LQTY             = NewCode("LQTY")
	LUNA2            = NewCode("LUNA2")
	MAGIC            = NewCode("MAGIC")
	PENDLE           = NewCode("PENDLE")
	PEOPLE           = NewCode("PEOPLE")
	RDNT             = NewCode("RDNT")
	RNDR             = NewCode("RNDR")
	RSS3             = NewCode("RSS3")
	SHIB1000         = NewCode("SHIB1000")
	SWEAT            = NewCode("SWEAT")
	TOMI             = NewCode("TOMI")
	BONK             = NewCode("BONK")
	WIF              = NewCode("WIF")
	AIDOGE           = NewCode("AIDOGE")
	PEPE             = NewCode("PEPE")
)

Const declarations for individual currencies/tokens/fiat An ever growing list. Cares not for equivalence, just is

View Source
var (
	// ErrAssetAlreadyEnabled defines an error for the pairs management system
	// that declares the asset is already enabled.
	ErrAssetAlreadyEnabled = errors.New("asset already enabled")
	// ErrPairAlreadyEnabled returns when enabling a pair that is already enabled
	ErrPairAlreadyEnabled = errors.New("pair already enabled")
	// ErrPairNotEnabled returns when looking for a pair that is not enabled
	ErrPairNotEnabled = errors.New("pair not enabled")
	// ErrPairNotFound is returned when a currency pair is not found
	ErrPairNotFound = errors.New("pair not found")
	// ErrAssetIsNil is an error when the asset has not been populated by the
	// configuration
	ErrAssetIsNil = errors.New("asset is nil")
	// ErrPairNotContainedInAvailablePairs defines an error when a pair is not
	// contained in the available pairs list and is not supported by the
	// exchange for that asset type.
	ErrPairNotContainedInAvailablePairs = errors.New("pair not contained in available pairs")
	// ErrPairManagerNotInitialised is returned when a pairs manager is requested, but has not been setup
	ErrPairManagerNotInitialised = errors.New("pair manager not initialised")
	// ErrAssetNotFound is returned when an asset does not exist in the pairstore
	ErrAssetNotFound = errors.New("asset type not found in pair store")
	// ErrSymbolStringEmpty is an error when a symbol string is empty
	ErrSymbolStringEmpty = errors.New("symbol string is empty")
)
View Source
var EMPTYFORMAT = PairFormat{}

EMPTYFORMAT defines an empty pair format

View Source
var ErrCurrencyNotAssociatedWithPair = errors.New("currency not associated with pair")

ErrCurrencyNotAssociatedWithPair defines an error where a currency is not associated with a pair.

View Source
var (
	// ErrFiatDisplayCurrencyIsNotFiat defines an error for when the fiat
	// display currency is not set as a fiat currency.
	ErrFiatDisplayCurrencyIsNotFiat = errors.New("fiat display currency is not a fiat currency")
)
View Source
var (

	// ErrPairDuplication defines an error when there is multiple of the same
	// currency pairs found.
	ErrPairDuplication = errors.New("currency pair duplication")
)

Functions

func ConvertFiat

func ConvertFiat(amount float64, from, to Code) (float64, error)

ConvertFiat converts a fiat amount from one currency to another

func ForexEnabled

func ForexEnabled() bool

ForexEnabled returns whether the currency system has any available forex providers enabled

func GetForeignExchangeRate

func GetForeignExchangeRate(quotation Pair) (float64, error)

GetForeignExchangeRate returns the foreign exchange rate for a fiat pair.

func GetSymbolByCurrencyName

func GetSymbolByCurrencyName(currency Code) (string, error)

GetSymbolByCurrencyName returns a currency symbol

func RunStorageUpdater

func RunStorageUpdater(o BotOverrides, m *Config, filepath string) error

RunStorageUpdater runs a new foreign exchange updater instance

func SeedForeignExchangeData

func SeedForeignExchangeData(c Currencies) error

SeedForeignExchangeData seeds FX data with the currencies supplied

func ShutdownStorageUpdater

func ShutdownStorageUpdater() error

ShutdownStorageUpdater cleanly shuts down and saves to currency.json

func UpdateBaseCurrency

func UpdateBaseCurrency(c Code) error

UpdateBaseCurrency updates storage base currency

func UpdateCurrencies

func UpdateCurrencies(c Currencies, isCryptocurrency bool)

UpdateCurrencies updates the local cryptocurrency or fiat currency store

Types

type AllFXSettings

type AllFXSettings []FXSettings

AllFXSettings defines all the foreign exchange settings

func (AllFXSettings) IsEnabled

func (settings AllFXSettings) IsEnabled(name string) bool

IsEnabled returns if the individual foreign exchange config setting is enabled

type BaseCodes

type BaseCodes struct {
	Items          map[string][]*Item
	LastMainUpdate time.Time
	// contains filtered or unexported fields
}

BaseCodes defines a basket of bare currency codes

func (*BaseCodes) GetCurrencies

func (b *BaseCodes) GetCurrencies() Currencies

GetCurrencies gets the full currency list from the base code type available from the currency system

func (*BaseCodes) GetFullCurrencyData

func (b *BaseCodes) GetFullCurrencyData() (File, error)

GetFullCurrencyData returns a type that is read to dump to file

func (*BaseCodes) HasData

func (b *BaseCodes) HasData() bool

HasData returns true if the type contains data

func (*BaseCodes) LoadItem

func (b *BaseCodes) LoadItem(item *Item) error

LoadItem sets item data

func (*BaseCodes) Register

func (b *BaseCodes) Register(c string, newRole Role) Code

Register registers a currency from a string and returns a currency code, this can optionally include a role when it is known.

func (*BaseCodes) UpdateCurrency

func (b *BaseCodes) UpdateCurrency(update *Item) error

UpdateCurrency updates or registers a currency/contract

type BotOverrides

type BotOverrides struct {
	Coinmarketcap     bool
	CurrencyConverter bool
	CurrencyLayer     bool
	ExchangeRates     bool
	Fixer             bool
	OpenExchangeRates bool
}

BotOverrides defines a bot overriding factor for quick running currency subsystems

type Code

type Code struct {
	Item *Item
	// TODO: Below will force the use of the Equal method for comparison. Big
	// job to update all maps and instances through the code base.
	// _         []struct{}
	UpperCase bool
}

Code defines an ISO 4217 fiat currency or unofficial cryptocurrency code string

func GetBaseCurrency

func GetBaseCurrency() Code

GetBaseCurrency returns the storage base currency

func GetDefaultBaseCurrency

func GetDefaultBaseCurrency() Code

GetDefaultBaseCurrency returns storage default base currency

func GetTotalMarketCryptocurrencies

func GetTotalMarketCryptocurrencies() ([]Code, error)

GetTotalMarketCryptocurrencies returns the full market cryptocurrencies

func GetTranslation

func GetTranslation(currency Code) Code

GetTranslation returns similar strings for a particular currency if not found returns the code back

func NewCode

func NewCode(c string) Code

NewCode returns a new currency registered code

func (Code) Equal

func (c Code) Equal(check Code) bool

Equal returns if the code supplied is the same as the corresponding code

func (Code) IsCryptocurrency

func (c Code) IsCryptocurrency() bool

IsCryptocurrency checks if the currency passed is an enabled CRYPTO currency. NOTE: All unset currencies will default to cryptocurrencies and stable coins are cryptocurrencies as well.

func (Code) IsEmpty

func (c Code) IsEmpty() bool

IsEmpty returns true if the code is empty

func (Code) IsFiatCurrency

func (c Code) IsFiatCurrency() bool

IsFiatCurrency checks if the currency passed is an enabled fiat currency

func (Code) IsStableCurrency

func (c Code) IsStableCurrency() bool

IsStableCurrency checks if the currency is a stable currency.

func (Code) Lower

func (c Code) Lower() Code

Lower converts the code to lowercase formatting

func (Code) MarshalJSON

func (c Code) MarshalJSON() ([]byte, error)

MarshalJSON conforms type to the marshaler interface

func (Code) String

func (c Code) String() string

String converts the code to string

func (*Code) UnmarshalJSON

func (c *Code) UnmarshalJSON(d []byte) error

UnmarshalJSON comforms type to the umarshaler interface

func (Code) Upper

func (c Code) Upper() Code

Upper converts the code to uppercase formatting

type CoinmarketcapSettings

type CoinmarketcapSettings coinmarketcap.Settings

CoinmarketcapSettings refers to settings

type Config

type Config struct {
	ForexProviders                AllFXSettings `json:"forexProviders"`
	CryptocurrencyProvider        Provider      `json:"cryptocurrencyProvider"`
	CurrencyPairFormat            *PairFormat   `json:"currencyPairFormat"`
	FiatDisplayCurrency           Code          `json:"fiatDisplayCurrency"`
	CurrencyFileUpdateDuration    time.Duration `json:"currencyFileUpdateDuration"`
	ForeignExchangeUpdateDuration time.Duration `json:"foreignExchangeUpdateDuration"`
}

Config holds all the information needed for currency related manipulation

type Conversion

type Conversion struct {
	From Code
	To   Code
	// contains filtered or unexported fields
}

Conversion defines a specific currency conversion for a rate

func NewConversion

func NewConversion(from, to Code) (Conversion, error)

NewConversion returns a conversion rate object that allows for obtaining efficient rate values when needed

func NewConversionFromString

func NewConversionFromString(p string) (Conversion, error)

NewConversionFromString splits a string from a foreign exchange provider

func NewConversionFromStrings

func NewConversionFromStrings(from, to string) (Conversion, error)

NewConversionFromStrings assigns or finds a new conversion unit

func (Conversion) Convert

func (c Conversion) Convert(fromAmount float64) (float64, error)

Convert for example converts $1 USD to the equivalent Japanese Yen or vice versa.

func (Conversion) ConvertInverse

func (c Conversion) ConvertInverse(fromAmount float64) (float64, error)

ConvertInverse converts backwards if needed

func (Conversion) GetInversionRate

func (c Conversion) GetInversionRate() (float64, error)

GetInversionRate returns the rate of the inversion of the conversion pair

func (Conversion) GetRate

func (c Conversion) GetRate() (float64, error)

GetRate returns system rate if available

func (Conversion) IsFiat

func (c Conversion) IsFiat() bool

IsFiat checks to see if the from and to currency is a fiat e.g. EURUSD

func (Conversion) IsInvalid

func (c Conversion) IsInvalid() bool

IsInvalid returns true if both from and to currencies are the same

func (Conversion) String

func (c Conversion) String() string

String returns the stringed fields

type ConversionRates

type ConversionRates struct {
	// contains filtered or unexported fields
}

ConversionRates defines protected conversion rate map for concurrent updating and retrieval of foreign exchange rates for mainly fiat currencies

func (*ConversionRates) GetFullRates

func (c *ConversionRates) GetFullRates() Conversions

GetFullRates returns the full conversion list

func (*ConversionRates) GetRate

func (c *ConversionRates) GetRate(from, to Code) (float64, error)

GetRate returns a rate from the conversion rate list

func (*ConversionRates) HasData

func (c *ConversionRates) HasData() bool

HasData returns if conversion rates are present

func (*ConversionRates) Register

func (c *ConversionRates) Register(from, to Code) (Conversion, error)

Register registers a new conversion rate if not found adds it and allows for quick updates

func (*ConversionRates) Update

func (c *ConversionRates) Update(m map[string]float64) error

Update updates the full conversion rate values including inversion and cross rates

type Conversions

type Conversions []Conversion

Conversions define a list of conversion data

func GetDefaultExchangeRates

func GetDefaultExchangeRates() (Conversions, error)

GetDefaultExchangeRates returns the currency exchange rates based off the default fiat values

func GetExchangeRates

func GetExchangeRates() (Conversions, error)

GetExchangeRates returns the full fiat currency exchange rates base off configuration parameters supplied to the currency storage

type Currencies

type Currencies []Code

Currencies define a range of supported currency codes

func GetCryptocurrencies

func GetCryptocurrencies() Currencies

GetCryptocurrencies returns the storage enabled cryptocurrencies

func GetDefaultCryptocurrencies

func GetDefaultCryptocurrencies() Currencies

GetDefaultCryptocurrencies returns a list of default cryptocurrencies

func GetDefaultFiatCurrencies

func GetDefaultFiatCurrencies() Currencies

GetDefaultFiatCurrencies returns a list of default fiat currencies

func GetFiatCurrencies

func GetFiatCurrencies() Currencies

GetFiatCurrencies returns the storage enabled fiat currencies

func NewCurrenciesFromStringArray

func NewCurrenciesFromStringArray(currencies []string) Currencies

NewCurrenciesFromStringArray returns a Currencies object from strings

func (Currencies) Add

func (c Currencies) Add(a Code) Currencies

Add adds a currency to the list if it doesn't exist

func (Currencies) Contains

func (c Currencies) Contains(check Code) bool

Contains checks to see if a currency code is contained in the currency list

func (Currencies) HasData

func (c Currencies) HasData() bool

HasData checks to see if Currencies type has actual currencies

func (Currencies) Join

func (c Currencies) Join() string

Join returns a comma serparated string

func (Currencies) MarshalJSON

func (c Currencies) MarshalJSON() ([]byte, error)

MarshalJSON conforms type to the marshaler interface

func (Currencies) Match

func (c Currencies) Match(other Currencies) bool

Match returns if the full list equals the supplied list

func (Currencies) Strings

func (c Currencies) Strings() []string

Strings returns an array of currency strings

func (*Currencies) UnmarshalJSON

func (c *Currencies) UnmarshalJSON(d []byte) error

UnmarshalJSON comforms type to the umarshaler interface

type FXSettings

type FXSettings struct {
	Name            string `json:"name"`
	Enabled         bool   `json:"enabled"`
	Verbose         bool   `json:"verbose"`
	APIKey          string `json:"apiKey"`
	APIKeyLvl       int    `json:"apiKeyLvl"`
	PrimaryProvider bool   `json:"primaryProvider"`
}

FXSettings defines foreign exchange requester settings

type File

type File struct {
	LastMainUpdate interface{} `json:"lastMainUpdate"`
	Cryptocurrency []*Item     `json:"cryptocurrencies"`
	FiatCurrency   []*Item     `json:"fiatCurrencies"`
	UnsetCurrency  []*Item     `json:"unsetCurrencies"`
	Contracts      []*Item     `json:"contracts"`
	Token          []*Item     `json:"tokens"`
	Stable         []*Item     `json:"stableCurrencies"`
}

File defines a full currency file generated by the currency storage analysis system

type FullStore

type FullStore map[asset.Item]*PairStore

FullStore holds all supported asset types with the enabled and available pairs for an exchange.

func (FullStore) MarshalJSON

func (fs FullStore) MarshalJSON() ([]byte, error)

MarshalJSON implements the marshal json interface so that the key can be correctly marshalled from a uint.

func (*FullStore) UnmarshalJSON

func (fs *FullStore) UnmarshalJSON(d []byte) error

UnmarshalJSON implements the unmarshal json interface so that the key can be correctly unmarshalled from a string into a uint.

type Item

type Item struct {
	ID       int    `json:"id,omitempty"`
	FullName string `json:"fullName,omitempty"`
	Symbol   string `json:"symbol"`
	// Lower is the lower case symbol for optimization purposes so no need to
	// rely on the strings package to upper and lower strings when it is not
	// needed
	Lower      string `json:"-"`
	Role       Role   `json:"role"`
	AssocChain string `json:"associatedBlockchain,omitempty"`
}

Item defines a sub type containing the main attributes of a designated currency code pointer

func (*Item) Currency

func (i *Item) Currency() Code

Currency allows an item to revert to a code

func (*Item) Lock

func (*Item) Lock()

Lock implements the sync.Locker interface and forces a govet check nocopy

func (*Item) LowerCurrency

func (i *Item) LowerCurrency() Code

LowerCurrency allows an item to revert to a code returning in lower format

func (*Item) String

func (i *Item) String() string

String conforms to the stringer interface

func (*Item) Unlock

func (*Item) Unlock()

Unlock implements the sync.Locker interface and forces a govet check nocopy

func (*Item) UpperCurrency

func (i *Item) UpperCurrency() Code

UpperCurrency allows an item to revert to a code taking an upper

type OrderParameters

type OrderParameters struct {
	// SellingCurrency is the currency that will be sold first
	SellingCurrency Code
	// Purchasing is the currency that will be purchased last
	PurchasingCurrency Code
	// IsBuySide is the side of the order that will be placed true for buy/long,
	// false for sell/short.
	IsBuySide bool
	// IsAskLiquidity is the side of the orderbook that will be used, false for
	// bid liquidity.
	IsAskLiquidity bool
	// Pair is the currency pair that the order parameters are derived from.
	Pair Pair
}

OrderParameters is used to determine the order side, liquidity side and the selling & purchasing currency derived from the currency pair.

type Pair

type Pair struct {
	Delimiter string `json:"delimiter,omitempty"`
	Base      Code   `json:"base,omitempty"`
	Quote     Code   `json:"quote,omitempty"`
}

Pair holds currency pair information NOTE: UnmarshalJSON allows string conversion to Pair type but only if there is a delimiter present in the string, otherwise it will return an error.

func CopyPairFormat

func CopyPairFormat(p Pair, pairs []Pair, exact bool) Pair

CopyPairFormat copies the pair format from a list of pairs once matched

func MatchPairsWithNoDelimiter

func MatchPairsWithNoDelimiter(currencyPair string, pairs Pairs, pairFmt PairFormat) (Pair, error)

MatchPairsWithNoDelimiter will move along a predictable index on the provided currencyPair it will then split on that index and verify whether that currencypair exists in the supplied pairs this allows for us to match strange currencies with no delimiter where it is difficult to infer where the delimiter is located eg BETHERETH is BETHER ETH

func NewBTCUSD

func NewBTCUSD() Pair

NewBTCUSD is a shortcut for NewPair(BTC, USD)

func NewBTCUSDT

func NewBTCUSDT() Pair

NewBTCUSDT is a shortcut for NewPair(BTC, USDT)

func NewPair

func NewPair(baseCurrency, quoteCurrency Code) Pair

NewPair returns a currency pair from currency codes

func NewPairDelimiter

func NewPairDelimiter(currencyPair, delimiter string) (Pair, error)

NewPairDelimiter splits the desired currency string at delimiter, the returns a Pair struct

func NewPairFromFormattedPairs

func NewPairFromFormattedPairs(currencyPair string, pairs Pairs, pairFmt PairFormat) (Pair, error)

NewPairFromFormattedPairs matches a supplied currency pair to a list of pairs with a specific format. This is helpful for exchanges which provide currency pairs with no delimiter so we can match it with a list and apply the same format

func NewPairFromString

func NewPairFromString(currencyPair string) (Pair, error)

NewPairFromString converts currency string into a new CurrencyPair with or without delimiter

func NewPairFromStrings

func NewPairFromStrings(base, quote string) (Pair, error)

NewPairFromStrings returns a CurrencyPair without a delimiter

func NewPairWithDelimiter

func NewPairWithDelimiter(base, quote, delimiter string) Pair

NewPairWithDelimiter returns a CurrencyPair with a delimiter

func (Pair) Contains

func (p Pair) Contains(c Code) bool

Contains checks to see if a pair contains a specific currency

func (Pair) Equal

func (p Pair) Equal(cPair Pair) bool

Equal compares two currency pairs and returns whether or not they are equal

func (Pair) EqualIncludeReciprocal

func (p Pair) EqualIncludeReciprocal(cPair Pair) bool

EqualIncludeReciprocal compares two currency pairs and returns whether or not they are the same including reciprocal currencies.

func (Pair) Format

func (p Pair) Format(pf PairFormat) Pair

Format changes the currency based on user preferences overriding the default String() display

func (Pair) GetFormatting

func (p Pair) GetFormatting() (PairFormat, error)

GetFormatting returns the formatting style of a pair

func (Pair) IsAssociated

func (p Pair) IsAssociated(a Pair) bool

IsAssociated checks to see if the pair is associated with another pair

func (Pair) IsCryptoFiatPair

func (p Pair) IsCryptoFiatPair() bool

IsCryptoFiatPair checks to see if the pair is a crypto fiat pair e.g. BTCUSD

func (Pair) IsCryptoPair

func (p Pair) IsCryptoPair() bool

IsCryptoPair checks to see if the pair is a crypto pair e.g. BTCLTC

func (Pair) IsCryptoStablePair

func (p Pair) IsCryptoStablePair() bool

IsCryptoStablePair checks to see if the pair is a crypto stable pair e.g. LTC-USDT

func (Pair) IsEmpty

func (p Pair) IsEmpty() bool

IsEmpty returns whether or not the pair is empty or is missing a currency code

func (Pair) IsFiatPair

func (p Pair) IsFiatPair() bool

IsFiatPair checks to see if the pair is a fiat pair e.g. EURUSD

func (Pair) IsInvalid

func (p Pair) IsInvalid() bool

IsInvalid checks invalid pair if base and quote are the same

func (Pair) IsPopulated

func (p Pair) IsPopulated() bool

IsPopulated returns true if the currency pair have both non-empty values for base and quote.

func (Pair) IsStablePair

func (p Pair) IsStablePair() bool

IsStablePair checks to see if the pair is a stable pair e.g. USDT-DAI

func (Pair) Len

func (p Pair) Len() int

Len derives full length for match exclusion.

func (Pair) LimitBuyOrderParameters

func (p Pair) LimitBuyOrderParameters(wantingToBuy Code) (*OrderParameters, error)

LimitBuyOrderParameters returns order parameters for when you want to sell a currency which purchases another currency. This specifically returns what liquidity side you will be affecting, what order side you will be placing and what currency you will be purchasing.

func (Pair) LimitSellOrderParameters

func (p Pair) LimitSellOrderParameters(wantingToSell Code) (*OrderParameters, error)

LimitSellOrderParameters returns order parameters for when you want to sell a currency which purchases another currency. This specifically returns what liquidity side you will be affecting, what order side you will be placing and what currency you will be purchasing.

func (Pair) Lower

func (p Pair) Lower() Pair

Lower converts the pair object to lowercase

func (Pair) MarketBuyOrderParameters

func (p Pair) MarketBuyOrderParameters(wantingToBuy Code) (*OrderParameters, error)

MarketBuyOrderParameters returns order parameters for when you want to sell a currency which purchases another currency. This specifically returns what liquidity side you will be affecting, what order side you will be placing and what currency you will be purchasing.

func (Pair) MarketSellOrderParameters

func (p Pair) MarketSellOrderParameters(wantingToSell Code) (*OrderParameters, error)

MarketSellOrderParameters returns order parameters for when you want to sell a currency which purchases another currency. This specifically returns what liquidity side you will be affecting, what order side you will be placing and what currency you will be purchasing.

func (Pair) MarshalJSON

func (p Pair) MarshalJSON() ([]byte, error)

MarshalJSON conforms type to the marshaler interface

func (Pair) Other

func (p Pair) Other(c Code) (Code, error)

Other returns the other currency from pair, if not matched returns empty code.

func (Pair) String

func (p Pair) String() string

String returns a currency pair string

func (Pair) Swap

func (p Pair) Swap() Pair

Swap turns the currency pair into its reciprocal

func (*Pair) UnmarshalJSON

func (p *Pair) UnmarshalJSON(d []byte) error

UnmarshalJSON implements json.Unmarshaler

func (Pair) Upper

func (p Pair) Upper() Pair

Upper converts the pair object to uppercase

type PairDifference

type PairDifference struct {
	New              Pairs
	Remove           Pairs
	FormatDifference bool
}

PairDifference defines the difference between a set of pairs including a change in format.

type PairFormat

type PairFormat struct {
	Uppercase bool   `json:"uppercase"`
	Delimiter string `json:"delimiter,omitempty"`
	Separator string `json:"separator,omitempty"`
}

PairFormat returns the pair format

func (PairFormat) Format

func (f PairFormat) Format(pair Pair) string

Format formats the given pair as a string

type PairStore

type PairStore struct {
	AssetEnabled  *bool       `json:"assetEnabled"`
	Enabled       Pairs       `json:"enabled"`
	Available     Pairs       `json:"available"`
	RequestFormat *PairFormat `json:"requestFormat,omitempty"`
	ConfigFormat  *PairFormat `json:"configFormat,omitempty"`
}

PairStore stores a currency pair store

type Pairs

type Pairs []Pair

Pairs defines a list of pairs

func FormatPairs

func FormatPairs(pairs []string, delimiter string) (Pairs, error)

FormatPairs formats a string array to a list of currency pairs with the supplied currency pair format

func NewPairsFromString

func NewPairsFromString(pairs, delimiter string) (Pairs, error)

NewPairsFromString takes in a delimiter string and returns a Pairs type

func NewPairsFromStrings

func NewPairsFromStrings(pairs []string) (Pairs, error)

NewPairsFromStrings takes in currency pair strings and returns a currency pair list

func (Pairs) Add

func (p Pairs) Add(pair Pair) Pairs

Add adds a specified pair to the list of pairs if it doesn't exist

func (Pairs) Contains

func (p Pairs) Contains(check Pair, exact bool) bool

Contains checks to see if a specified pair exists inside a currency pair array

func (Pairs) ContainsAll

func (p Pairs) ContainsAll(check Pairs, exact bool) error

ContainsAll checks to see if all pairs supplied are contained within the original pairs list.

func (Pairs) ContainsCurrency

func (p Pairs) ContainsCurrency(check Code) bool

ContainsCurrency checks to see if a specified currency code exists inside a currency pair array

func (Pairs) DeriveFrom

func (p Pairs) DeriveFrom(symbol string) (Pair, error)

DeriveFrom matches symbol string to the available pairs list when no delimiter is supplied. WARNING: This is not optimised and should only be used for one off processes.

func (Pairs) FindDifferences

func (p Pairs) FindDifferences(incoming Pairs, pairFmt PairFormat) (PairDifference, error)

FindDifferences returns pairs which are new or have been removed

func (Pairs) Format

func (p Pairs) Format(pairFmt PairFormat) Pairs

Format formats the pair list to the exchange format configuration

func (Pairs) GetCrypto

func (p Pairs) GetCrypto() Currencies

GetCrypto returns all the cryptos contained in the list.

func (Pairs) GetCurrencies

func (p Pairs) GetCurrencies() Currencies

GetCurrencies returns the full currency code list contained derived from the pairs list.

func (Pairs) GetFiat

func (p Pairs) GetFiat() Currencies

GetFiat returns all the cryptos contained in the list.

func (Pairs) GetFormatting

func (p Pairs) GetFormatting() (PairFormat, error)

GetFormatting returns the formatting of a set of pairs

func (Pairs) GetMatch

func (p Pairs) GetMatch(pair Pair) (Pair, error)

GetMatch returns either the pair that is equal including the reciprocal for when currencies are constructed from different exchange pairs e.g. Exchange one USDT-DAI to exchange two DAI-USDT enabled/available pairs.

func (Pairs) GetPairsByBase

func (p Pairs) GetPairsByBase(baseTerm Code) (Pairs, error)

GetPairsByBase returns all pairs that have a matching base currency

func (Pairs) GetPairsByCurrencies

func (p Pairs) GetPairsByCurrencies(currencies Currencies) Pairs

GetPairsByCurrencies returns all pairs that have both matches to the currencies passed in. This allows for the construction of pairs by required currency codes.

func (Pairs) GetPairsByFilter

func (p Pairs) GetPairsByFilter(filter Code) Pairs

GetPairsByFilter returns all pairs that have at least one match base or quote to the filter code.

func (Pairs) GetPairsByQuote

func (p Pairs) GetPairsByQuote(quoteTerm Code) (Pairs, error)

GetPairsByQuote returns all pairs that have a matching quote currency

func (Pairs) GetRandomPair

func (p Pairs) GetRandomPair() (Pair, error)

GetRandomPair returns a random pair from a list of pairs

func (Pairs) GetStables

func (p Pairs) GetStables() Currencies

GetStables returns the stable currency code list derived from the pairs list.

func (Pairs) GetStablesMatch

func (p Pairs) GetStablesMatch(code Code) Pairs

GetStablesMatch returns all stable pairs matched with code

func (Pairs) HasFormatDifference

func (p Pairs) HasFormatDifference(pairFmt PairFormat) bool

HasFormatDifference checks and validates full formatting across a pairs list

func (Pairs) Join

func (p Pairs) Join() string

Join returns a comma separated list of currency pairs

func (Pairs) Lower

func (p Pairs) Lower() Pairs

Lower updates and returns the entire slice of pairs to upper casing NOTE: Do not duplicate slice reference as this can cause race issues.

func (Pairs) MarshalJSON

func (p Pairs) MarshalJSON() ([]byte, error)

MarshalJSON conforms type to the marshaler interface

func (Pairs) Remove

func (p Pairs) Remove(pair Pair) (Pairs, error)

Remove removes the specified pair from the list of pairs if it exists

func (Pairs) RemovePairsByFilter

func (p Pairs) RemovePairsByFilter(filter Code) Pairs

RemovePairsByFilter checks to see if a pair contains a specific currency and removes it from the list of pairs

func (Pairs) Strings

func (p Pairs) Strings() []string

Strings returns a slice of strings referring to each currency pair

func (*Pairs) UnmarshalJSON

func (p *Pairs) UnmarshalJSON(d []byte) error

UnmarshalJSON comforms type to the umarshaler interface

func (Pairs) Upper

func (p Pairs) Upper() Pairs

Upper updates and returns the entire slice of pairs to upper casing NOTE: Do not duplicate slice reference as this can cause race issues.

func (Pairs) ValidateAndConform

func (p Pairs) ValidateAndConform(pFmt PairFormat, bypassFormatting bool) (Pairs, error)

ValidateAndConform checks for duplications and empty pairs then conforms the entire pairs list to the supplied formatting (unless bypassed). Map[string]bool type is used to make sure delimiters are not included so different formatting entry duplications can be found e.g. `LINKUSDTM21`, `LIN-KUSDTM21` or `LINK-USDTM21 are all the same instances but with different unintentional processes for formatting.

type PairsManager

type PairsManager struct {
	BypassConfigFormatUpgrades bool        `json:"bypassConfigFormatUpgrades"`
	RequestFormat              *PairFormat `json:"requestFormat,omitempty"`
	ConfigFormat               *PairFormat `json:"configFormat,omitempty"`
	UseGlobalFormat            bool        `json:"useGlobalFormat,omitempty"`
	LastUpdated                int64       `json:"lastUpdated,omitempty"`
	Pairs                      FullStore   `json:"pairs"`
	// contains filtered or unexported fields
}

PairsManager manages asset pairs

func (*PairsManager) Delete

func (p *PairsManager) Delete(a asset.Item)

Delete deletes a map entry based on the supplied asset type

func (*PairsManager) DisablePair

func (p *PairsManager) DisablePair(a asset.Item, pair Pair) error

DisablePair removes the pair from the enabled pairs list if found

func (*PairsManager) EnablePair

func (p *PairsManager) EnablePair(a asset.Item, pair Pair) error

EnablePair adds a pair to the list of enabled pairs if it exists in the list of available pairs and isn't already added

func (*PairsManager) EnsureOnePairEnabled

func (p *PairsManager) EnsureOnePairEnabled() (Pair, asset.Item, error)

EnsureOnePairEnabled not all assets have pairs, eg options search for an asset that does and enable one if none are enabled error if no currency pairs found for an entire exchange returns the asset and pair of a pair if it has been enabled

func (*PairsManager) Get

func (p *PairsManager) Get(a asset.Item) (*PairStore, error)

Get gets the currency pair config based on the asset type

func (*PairsManager) GetAssetTypes

func (p *PairsManager) GetAssetTypes(enabled bool) asset.Items

GetAssetTypes returns a list of stored asset types

func (*PairsManager) GetPairs

func (p *PairsManager) GetPairs(a asset.Item, enabled bool) (Pairs, error)

GetPairs gets a list of stored pairs based on the asset type and whether they're enabled or not

func (*PairsManager) IsAssetEnabled

func (p *PairsManager) IsAssetEnabled(a asset.Item) error

IsAssetEnabled checks to see if an asset is enabled

func (*PairsManager) IsPairAvailable

func (p *PairsManager) IsPairAvailable(pair Pair, a asset.Item) (bool, error)

IsPairAvailable checks if a pair is available for a given asset type

func (*PairsManager) IsPairEnabled

func (p *PairsManager) IsPairEnabled(pair Pair, a asset.Item) (bool, error)

IsPairEnabled checks if a pair is enabled for an enabled asset type

func (*PairsManager) Load

func (p *PairsManager) Load(seed *PairsManager) error

Load sets the pair manager from a seed without copying mutexes

func (*PairsManager) Match

func (p *PairsManager) Match(symbol string, a asset.Item) (Pair, error)

Match returns a currency pair based on the supplied symbol and asset type

func (*PairsManager) SetAssetEnabled

func (p *PairsManager) SetAssetEnabled(a asset.Item, enabled bool) error

SetAssetEnabled sets if an asset is enabled or disabled for first run

func (*PairsManager) SetDelimitersFromConfig

func (p *PairsManager) SetDelimitersFromConfig() error

SetDelimitersFromConfig ensures that the pairs adhere to the configured delimiters Pairs.Unmarshal doesn't know what the delimiter is, so uses the first punctuation rune

func (*PairsManager) Store

func (p *PairsManager) Store(a asset.Item, ps *PairStore) error

Store stores a new currency pair config based on its asset type

func (*PairsManager) StoreFormat

func (p *PairsManager) StoreFormat(a asset.Item, pFmt *PairFormat, config bool) error

StoreFormat stores a new format for request or config format.

func (*PairsManager) StorePairs

func (p *PairsManager) StorePairs(a asset.Item, pairs Pairs, enabled bool) error

StorePairs stores a list of pairs based on the asset type and whether they're enabled or not

type Provider

type Provider struct {
	Name        string `json:"name"`
	Enabled     bool   `json:"enabled"`
	Verbose     bool   `json:"verbose"`
	APIKey      string `json:"apiKey"`
	AccountPlan string `json:"accountPlan"`
}

Provider defines coinmarketcap tools

type Role

type Role uint8

Role defines a bitmask for the full currency roles either; fiat, cryptocurrency, token, or contract

func (Role) MarshalJSON

func (r Role) MarshalJSON() ([]byte, error)

MarshalJSON conforms Role to the marshaller interface

func (Role) String

func (r Role) String() string

String implements the stringer interface and returns a string representation of the underlying role.

func (*Role) UnmarshalJSON

func (r *Role) UnmarshalJSON(d []byte) error

UnmarshalJSON conforms Role to the unmarshaller interface

type Storage

type Storage struct {
	Verbose bool
	// contains filtered or unexported fields
}

Storage contains the loaded storage currencies supported on available crypto or fiat marketplaces NOTE: All internal currencies are upper case

func (*Storage) ConvertCurrency

func (s *Storage) ConvertCurrency(amount float64, from, to Code) (float64, error)

ConvertCurrency for example converts $1 USD to the equivalent Japanese Yen or vice versa.

func (*Storage) FetchCurrencyAnalysisData

func (s *Storage) FetchCurrencyAnalysisData() error

FetchCurrencyAnalysisData fetches a new fresh batch of currency data and loads it into memory

func (*Storage) ForeignExchangeUpdater

func (s *Storage) ForeignExchangeUpdater()

ForeignExchangeUpdater is a routine that seeds foreign exchange rate and keeps updated as fast as possible

func (*Storage) GetBaseCurrency

func (s *Storage) GetBaseCurrency() Code

GetBaseCurrency returns the current storage base currency

func (*Storage) GetCryptocurrencies

func (s *Storage) GetCryptocurrencies() Currencies

GetCryptocurrencies returns the cryptocurrency list

func (*Storage) GetDefaultBaseCurrency

func (s *Storage) GetDefaultBaseCurrency() Code

GetDefaultBaseCurrency returns the default base currency

func (*Storage) GetDefaultCryptocurrencies

func (s *Storage) GetDefaultCryptocurrencies() Currencies

GetDefaultCryptocurrencies returns a list of default cryptocurrencies

func (*Storage) GetDefaultFiatCurrencies

func (s *Storage) GetDefaultFiatCurrencies() Currencies

GetDefaultFiatCurrencies returns the default fiat currencies list

func (*Storage) GetDefaultForeignExchangeRates

func (s *Storage) GetDefaultForeignExchangeRates() (Conversions, error)

GetDefaultForeignExchangeRates returns foreign exchange rates based off default fiat currencies.

func (*Storage) GetExchangeRates

func (s *Storage) GetExchangeRates() (Conversions, error)

GetExchangeRates returns storage seeded exchange rates

func (*Storage) GetFiatCurrencies

func (s *Storage) GetFiatCurrencies() Currencies

GetFiatCurrencies returns the fiat currencies list

func (*Storage) GetStorageRate

func (s *Storage) GetStorageRate(from, to Code) (float64, error)

GetStorageRate returns the rate of the conversion value

func (*Storage) GetTotalMarketCryptocurrencies

func (s *Storage) GetTotalMarketCryptocurrencies() (Currencies, error)

GetTotalMarketCryptocurrencies returns the total seeded market cryptocurrencies

func (*Storage) IsDefaultCryptocurrency

func (s *Storage) IsDefaultCryptocurrency(c Code) bool

IsDefaultCryptocurrency returns if a cryptocurrency is a default cryptocurrency

func (*Storage) IsDefaultCurrency

func (s *Storage) IsDefaultCurrency(c Code) bool

IsDefaultCurrency returns if a currency is a default currency

func (*Storage) IsVerbose

func (s *Storage) IsVerbose() bool

IsVerbose returns if the storage is in verbose mode

func (*Storage) LoadFileCurrencyData

func (s *Storage) LoadFileCurrencyData(f *File) error

LoadFileCurrencyData loads currencies into the currency codes

func (*Storage) NewConversion

func (s *Storage) NewConversion(from, to Code) (Conversion, error)

NewConversion returns a new conversion object that has a pointer to a related rate with its inversion.

func (*Storage) RunUpdater

func (s *Storage) RunUpdater(overrides BotOverrides, settings *Config, filePath string) error

RunUpdater runs the foreign exchange updater service. This will set up a JSON dump file and keep foreign exchange rates updated as fast as possible without triggering rate limiters, it will also run a full cryptocurrency check through coin market cap and expose analytics for exchange services

func (*Storage) SeedCurrencyAnalysisData

func (s *Storage) SeedCurrencyAnalysisData() error

SeedCurrencyAnalysisData sets a new instance of a coinmarketcap data.

func (*Storage) SeedDefaultForeignExchangeRates

func (s *Storage) SeedDefaultForeignExchangeRates() error

SeedDefaultForeignExchangeRates seeds the default foreign exchange rates

func (*Storage) SeedForeignExchangeRate

func (s *Storage) SeedForeignExchangeRate(from, to Code) (map[string]float64, error)

SeedForeignExchangeRate returns a singular exchange rate

func (*Storage) SeedForeignExchangeRates

func (s *Storage) SeedForeignExchangeRates() error

SeedForeignExchangeRates seeds the foreign exchange rates from storage config currencies

func (*Storage) SeedForeignExchangeRatesByCurrencies

func (s *Storage) SeedForeignExchangeRatesByCurrencies(c Currencies) error

SeedForeignExchangeRatesByCurrencies seeds the foreign exchange rates by currencies supplied

func (*Storage) SetDefaultCryptocurrencies

func (s *Storage) SetDefaultCryptocurrencies(c Currencies) error

SetDefaultCryptocurrencies assigns the default cryptocurrency list and adds it to the running list

func (*Storage) SetDefaultFiatCurrencies

func (s *Storage) SetDefaultFiatCurrencies(c Currencies) error

SetDefaultFiatCurrencies assigns the default fiat currency list and adds it to the running list

func (*Storage) SetDefaults

func (s *Storage) SetDefaults()

SetDefaults sets storage defaults for basic package functionality

func (*Storage) SetStableCoins

func (s *Storage) SetStableCoins(c Currencies) error

SetStableCoins assigns the stable currency list and adds it to the running list

func (*Storage) SetupConversionRates

func (s *Storage) SetupConversionRates()

SetupConversionRates sets default conversion rate values

func (*Storage) SetupForexProviders

func (s *Storage) SetupForexProviders(setting ...base.Settings) error

SetupForexProviders sets up a new instance of the forex providers

func (*Storage) Shutdown

func (s *Storage) Shutdown() error

Shutdown shuts down the currency storage system and saves to currency.json

func (*Storage) UpdateBaseCurrency

func (s *Storage) UpdateBaseCurrency(c Code) error

UpdateBaseCurrency changes base currency

func (*Storage) UpdateCurrencies

func (s *Storage) UpdateCurrencies() error

UpdateCurrencies updates currency role and information using coin market cap

func (*Storage) UpdateEnabledCryptoCurrencies

func (s *Storage) UpdateEnabledCryptoCurrencies(c Currencies)

UpdateEnabledCryptoCurrencies appends new cryptocurrencies to the enabled currency list

func (*Storage) UpdateEnabledFiatCurrencies

func (s *Storage) UpdateEnabledFiatCurrencies(c Currencies)

UpdateEnabledFiatCurrencies appends new fiat currencies to the enabled currency list

func (*Storage) ValidateCode

func (s *Storage) ValidateCode(newCode string) Code

ValidateCode validates string against currency list and returns a currency code

func (*Storage) ValidateFiatCode

func (s *Storage) ValidateFiatCode(newCode string) Code

ValidateFiatCode validates a fiat currency string and returns a currency code

func (*Storage) WriteCurrencyDataToFile

func (s *Storage) WriteCurrencyDataToFile(path string, mainUpdate bool) error

WriteCurrencyDataToFile writes the full currency data to a designated file

type SystemsSettings

type SystemsSettings struct {
	Coinmarketcap     coinmarketcap.Settings
	Currencyconverter FXSettings
	Currencylayer     FXSettings
	Fixer             FXSettings
	Openexchangerates FXSettings
}

SystemsSettings defines incoming system settings

Directories

Path Synopsis
Package coinmarketcap connects to a suite of high-performance RESTful JSON endpoints that are specifically designed to meet the mission-critical demands of application developers, data scientists, and enterprise business platforms.
Package coinmarketcap connects to a suite of high-performance RESTful JSON endpoints that are specifically designed to meet the mission-critical demands of application developers, data scientists, and enterprise business platforms.
Package forexprovider utilises foreign exchange API services to manage relational FIAT currencies
Package forexprovider utilises foreign exchange API services to manage relational FIAT currencies
currencyconverterapi
Package currencyconverter package https://free.currencyconverterapi.com/
Package currencyconverter package https://free.currencyconverterapi.com/
currencylayer
Package currencylayer provides a simple REST API with real-time and historical exchange rates for 168 world currencies, delivering currency pairs in universally usable JSON format - compatible with any of your applications.
Package currencylayer provides a simple REST API with real-time and historical exchange rates for 168 world currencies, delivering currency pairs in universally usable JSON format - compatible with any of your applications.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL