|
1 | 1 | import { AbstractEthLikeNewCoins } from '@bitgo/abstract-eth'; |
| 2 | +import { CoinFamily } from '@bitgo/statics'; |
2 | 3 | import { BaseCoin } from 'bitgo'; |
3 | 4 | import { AbstractUtxoCoin, Eos, Stx, Xtz } from 'bitgo/dist/types/src/v2/coins'; |
4 | 5 |
|
5 | | -export function isEthCoin(coin: BaseCoin): coin is AbstractEthLikeNewCoins { |
6 | | - const isEthPure = |
7 | | - isFamily(coin, 'eth', 'gteth') || |
8 | | - isFamily(coin, 'eth', 'hteth') || |
9 | | - isFamily(coin, 'ethw', 'tethw'); |
| 6 | +export function isEthLikeCoin(coin: BaseCoin): coin is AbstractEthLikeNewCoins { |
| 7 | + const isEthPure = isFamily(coin, CoinFamily.ETH); |
10 | 8 |
|
11 | 9 | const isEthLike = |
12 | | - isFamily(coin, 'rbtc', 'trbtc') || |
13 | | - isFamily(coin, 'etc', 'tetc') || |
14 | | - isFamily(coin, 'avaxc', 'tavaxc') || |
15 | | - isFamily(coin, 'polygon', 'tpolygon') || |
16 | | - isFamily(coin, 'arbeth', 'tarbeth') || |
17 | | - isFamily(coin, 'opeth', 'topeth') || |
18 | | - isFamily(coin, 'bsc', 'tbsc') || |
19 | | - isFamily(coin, 'baseeth', 'tbaseeth') || |
20 | | - isFamily(coin, 'coredao', 'tcoredao') || |
21 | | - isFamily(coin, 'oas', 'toas') || |
22 | | - isFamily(coin, 'flr', 'tflr') || |
23 | | - isFamily(coin, 'sgb', 'tsgb') || |
24 | | - isFamily(coin, 'wemix', 'twemix') || |
25 | | - isFamily(coin, 'xdc', 'txdc'); |
| 10 | + isFamily(coin, CoinFamily.ETHW) || // ethw has its own family. as the others |
| 11 | + isFamily(coin, CoinFamily.RBTC) || |
| 12 | + isFamily(coin, CoinFamily.ETC) || |
| 13 | + isFamily(coin, CoinFamily.AVAXC) || |
| 14 | + isFamily(coin, CoinFamily.POLYGON) || |
| 15 | + isFamily(coin, CoinFamily.ARBETH) || |
| 16 | + isFamily(coin, CoinFamily.OPETH) || |
| 17 | + isFamily(coin, CoinFamily.BSC) || |
| 18 | + isFamily(coin, CoinFamily.BASEETH) || |
| 19 | + isFamily(coin, CoinFamily.COREDAO) || |
| 20 | + isFamily(coin, CoinFamily.OAS) || |
| 21 | + isFamily(coin, CoinFamily.FLR) || |
| 22 | + isFamily(coin, CoinFamily.SGB) || |
| 23 | + isFamily(coin, CoinFamily.WEMIX) || |
| 24 | + isFamily(coin, CoinFamily.XDC); |
26 | 25 |
|
27 | 26 | return isEthPure || isEthLike; |
28 | 27 | } |
29 | 28 |
|
30 | 29 | export function isUtxoCoin(coin: BaseCoin): coin is AbstractUtxoCoin { |
31 | | - // how to check if coin is UTXO? so many families |
32 | | - const isBtc = isFamily(coin, 'btc', 'tbtc'); |
| 30 | + const isBtc = isFamily(coin, CoinFamily.BTC); |
33 | 31 |
|
34 | 32 | const isBtcLike = |
35 | | - isFamily(coin, 'ltc', 'tltc') || |
36 | | - isFamily(coin, 'bch', 'tbch') || |
37 | | - isFamily(coin, 'zec', 'tzec') || |
38 | | - isFamily(coin, 'dash', 'tdash') || |
39 | | - isFamily(coin, 'doge', 'tdoge') || |
40 | | - isFamily(coin, 'btg', 'tbtg'); |
| 33 | + isFamily(coin, CoinFamily.LTC) || |
| 34 | + isFamily(coin, CoinFamily.BCH) || |
| 35 | + isFamily(coin, CoinFamily.ZEC) || |
| 36 | + isFamily(coin, CoinFamily.DASH) || |
| 37 | + isFamily(coin, CoinFamily.DASH) || |
| 38 | + isFamily(coin, CoinFamily.BTG); |
41 | 39 |
|
42 | 40 | return isBtc || isBtcLike; |
43 | 41 | } |
44 | 42 |
|
45 | | -//look for those on OVC repo |
46 | | -//https://github.com/BitGo/offline-vault-console/blob/7f850cdd10c89ceb850c69759349b9e0bbfb56db/frontend/src/pkg/bitgo/transaction-utils.ts#L595 |
47 | 43 | export function isEosCoin(coin: BaseCoin): coin is Eos { |
48 | | - return isFamily(coin, 'eos', 'teos'); |
| 44 | + return isFamily(coin, CoinFamily.EOS); |
49 | 45 | } |
50 | 46 |
|
51 | 47 | export function isStxCoin(coin: BaseCoin): coin is Stx { |
52 | | - return isFamily(coin, 'stx', 'tstx'); |
| 48 | + return isFamily(coin, CoinFamily.STX); |
53 | 49 | } |
54 | 50 |
|
55 | 51 | export function isXtzCoin(coin: BaseCoin): coin is Xtz { |
56 | | - // Tezos faucet: https://faucet.ghostnet.teztnets.com/ |
57 | | - return isFamily(coin, 'xtz', 'txtz'); |
| 52 | + return isFamily(coin, CoinFamily.XTZ); |
58 | 53 | } |
59 | 54 |
|
60 | | -function isFamily(coin: BaseCoin, coinFamily: string, testFamily: string) { |
61 | | - if (!coin) { |
62 | | - return false; |
63 | | - } |
64 | | - const family = coin.getFamily(); |
65 | | - return family === coinFamily || family === testFamily; |
| 55 | +function isFamily(coin: BaseCoin, family: CoinFamily) { |
| 56 | + return Boolean(coin && coin.getFamily() === family); |
66 | 57 | } |
0 commit comments