@bitgo-beta/bitgo
Version:
BitGo JavaScript SDK
219 lines (203 loc) • 7.39 kB
text/typescript
/**
* @prettier
*/
import { CoinFactory } from '@bitgo-beta/sdk-core';
import { AlgoToken } from '@bitgo-beta/sdk-coin-algo';
import { Bcha, Tbcha } from '@bitgo-beta/sdk-coin-bcha';
import {
Ada,
Algo,
AvaxC,
AvaxCToken,
AvaxP,
Bch,
Bsc,
BscToken,
Bsv,
Btc,
Btg,
Celo,
CeloToken,
Cspr,
Dash,
Doge,
Dot,
Eos,
EosToken,
Erc20Token,
Etc,
Eth,
Eth2,
Ethw,
FiatEur,
FiatGBP,
FiatUsd,
Gteth,
Hbar,
Ltc,
Ofc,
OfcToken,
Polygon,
PolygonToken,
Rbtc,
Sol,
StellarToken,
Stx,
Sui,
Susd,
Talgo,
TavaxC,
Tada,
TavaxP,
Tbch,
Tbsc,
Tbsv,
Tbtc,
Tcelo,
Tcspr,
Tdash,
Tdoge,
Tdot,
Teos,
Tetc,
Teth,
Teth2,
TfiatEur,
TfiatGBP,
TfiatUsd,
Thbar,
Tltc,
Tpolygon,
Trbtc,
Trx,
Tsol,
Tstx,
Tsui,
Tsusd,
Ttrx,
Txlm,
Txrp,
Txtz,
Tzec,
Xlm,
Xrp,
Xtz,
Zec,
} from './coins';
import { Near, TNear } from '@bitgo-beta/sdk-coin-near';
import { tokens } from '../config';
import { SolToken } from '@bitgo-beta/sdk-coin-sol';
import { HbarToken } from '@bitgo-beta/sdk-coin-hbar';
function registerCoinConstructors(globalCoinFactory: CoinFactory): void {
globalCoinFactory.register('ada', Ada.createInstance);
globalCoinFactory.register('algo', Algo.createInstance);
globalCoinFactory.register('avaxc', AvaxC.createInstance);
globalCoinFactory.register('avaxp', AvaxP.createInstance);
globalCoinFactory.register('bch', Bch.createInstance);
globalCoinFactory.register('bcha', Bcha.createInstance);
globalCoinFactory.register('bsc', Bsc.createInstance);
globalCoinFactory.register('bsv', Bsv.createInstance);
globalCoinFactory.register('btc', Btc.createInstance);
globalCoinFactory.register('btg', Btg.createInstance);
globalCoinFactory.register('celo', Celo.createInstance);
globalCoinFactory.register('cspr', Cspr.createInstance);
globalCoinFactory.register('dash', Dash.createInstance);
globalCoinFactory.register('doge', Doge.createInstance);
globalCoinFactory.register('dot', Dot.createInstance);
globalCoinFactory.register('eos', Eos.createInstance);
globalCoinFactory.register('etc', Etc.createInstance);
globalCoinFactory.register('eth', Eth.createInstance);
globalCoinFactory.register('eth2', Eth2.createInstance);
globalCoinFactory.register('ethw', Ethw.createInstance);
globalCoinFactory.register('fiateur', FiatEur.createInstance);
globalCoinFactory.register('fiatgbp', FiatGBP.createInstance);
globalCoinFactory.register('fiatusd', FiatUsd.createInstance);
globalCoinFactory.register('gteth', Gteth.createInstance);
globalCoinFactory.register('hbar', Hbar.createInstance);
globalCoinFactory.register('ltc', Ltc.createInstance);
globalCoinFactory.register('near', Near.createInstance);
globalCoinFactory.register('ofc', Ofc.createInstance);
globalCoinFactory.register('polygon', Polygon.createInstance);
globalCoinFactory.register('rbtc', Rbtc.createInstance);
globalCoinFactory.register('sol', Sol.createInstance);
globalCoinFactory.register('stx', Stx.createInstance);
globalCoinFactory.register('sui', Sui.createInstance);
globalCoinFactory.register('susd', Susd.createInstance);
globalCoinFactory.register('talgo', Talgo.createInstance);
globalCoinFactory.register('tada', Tada.createInstance);
globalCoinFactory.register('tavaxc', TavaxC.createInstance);
globalCoinFactory.register('tavaxp', TavaxP.createInstance);
globalCoinFactory.register('tbch', Tbch.createInstance);
globalCoinFactory.register('tbcha', Tbcha.createInstance);
globalCoinFactory.register('tbsc', Tbsc.createInstance);
globalCoinFactory.register('tbsv', Tbsv.createInstance);
globalCoinFactory.register('tbtc', Tbtc.createInstance);
globalCoinFactory.register('tcelo', Tcelo.createInstance);
globalCoinFactory.register('tcspr', Tcspr.createInstance);
globalCoinFactory.register('tdash', Tdash.createInstance);
globalCoinFactory.register('tdoge', Tdoge.createInstance);
globalCoinFactory.register('tdot', Tdot.createInstance);
globalCoinFactory.register('teos', Teos.createInstance);
globalCoinFactory.register('tetc', Tetc.createInstance);
globalCoinFactory.register('teth', Teth.createInstance);
globalCoinFactory.register('teth2', Teth2.createInstance);
globalCoinFactory.register('tfiateur', TfiatEur.createInstance);
globalCoinFactory.register('tfiatgbp', TfiatGBP.createInstance);
globalCoinFactory.register('tfiatusd', TfiatUsd.createInstance);
globalCoinFactory.register('thbar', Thbar.createInstance);
globalCoinFactory.register('tltc', Tltc.createInstance);
globalCoinFactory.register('tnear', TNear.createInstance);
globalCoinFactory.register('tpolygon', Tpolygon.createInstance);
globalCoinFactory.register('trbtc', Trbtc.createInstance);
globalCoinFactory.register('trx', Trx.createInstance);
globalCoinFactory.register('tsol', Tsol.createInstance);
globalCoinFactory.register('tstx', Tstx.createInstance);
globalCoinFactory.register('tsui', Tsui.createInstance);
globalCoinFactory.register('tsusd', Tsusd.createInstance);
globalCoinFactory.register('ttrx', Ttrx.createInstance);
globalCoinFactory.register('txlm', Txlm.createInstance);
globalCoinFactory.register('txrp', Txrp.createInstance);
globalCoinFactory.register('txtz', Txtz.createInstance);
globalCoinFactory.register('tzec', Tzec.createInstance);
globalCoinFactory.register('xlm', Xlm.createInstance);
globalCoinFactory.register('xrp', Xrp.createInstance);
globalCoinFactory.register('xtz', Xtz.createInstance);
globalCoinFactory.register('zec', Zec.createInstance);
Erc20Token.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
StellarToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
for (const ofcToken of [...tokens.bitcoin.ofc.tokens, ...tokens.testnet.ofc.tokens]) {
const tokenConstructor = OfcToken.createTokenConstructor(ofcToken);
globalCoinFactory.register(ofcToken.type, tokenConstructor);
}
CeloToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
BscToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
EosToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
AlgoToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
AvaxCToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
PolygonToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
SolToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
HbarToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
globalCoinFactory.register(name, coinConstructor);
});
}
const GlobalCoinFactory: CoinFactory = new CoinFactory();
registerCoinConstructors(GlobalCoinFactory);
export default GlobalCoinFactory;