-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathindex.ts
120 lines (111 loc) · 2.79 KB
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// import { Bitcoin } from './BTC';
import { assets, getAllJettons } from '@fireblocks/asset-config';
import { ERC20, ETC } from '@fireblocks/wallet-derivation';
import { Ripple } from './XRP';
import { Cosmos } from './ATOM';
import { EOS } from './EOS';
import { BitcoinCash } from './BCH';
import { EVM } from './EVM';
import { Solana } from './SOL';
import { Tron } from './TRON';
import { Luna } from './LUNA';
import { Cardano } from './ADA';
import { Stellar } from './XLM';
import { Near } from './NEAR';
import { Tezos } from './XTZ';
import { Polkadot } from './DOT';
import { Kusama } from './KSM';
import { NEM } from './NEM';
import { Hedera } from './HBAR';
import { Algorand } from './ALGO';
import { Bitcoin, BitcoinSV, LiteCoin, Dash, ZCash, Doge } from './BTC';
import { Celestia } from './CELESTIA';
import { Ton } from './TON';
import { Jetton } from './Jetton';
const fillEVMs = () => {
const evms = Object.keys(assets).reduce(
(o, assetId) => ({
...o,
[assets[assetId].id]:
assets[assetId].protocol === 'ETH' && assets[assetId].address
? ERC20
: assets[assetId].protocol === 'ETH' && !assets[assetId].address
? EVM
: undefined,
}),
{},
) as any;
Object.keys(evms).forEach((key) => (evms[key] === undefined ? delete evms[key] : {}));
return evms;
};
const fillJettons = () => {
const jettonsList = getAllJettons();
const jettons: { [key: string]: any } = {};
for (const jetton of jettonsList) {
jettons[jetton] = Jetton;
}
return jettons;
};
export { SigningWallet as BaseWallet } from './SigningWallet';
export const WalletClasses = {
// ECDSA
ALGO: Algorand,
ALGO_TEST: Algorand,
ADA: Cardano,
ADA_TEST: Cardano,
BTC: Bitcoin,
BTC_TEST: Bitcoin,
BCH: BitcoinCash,
BCH_TEST: BitcoinCash,
BSV: BitcoinSV,
BSV_TEST: BitcoinSV,
DASH: Dash,
DASH_TEST: Dash,
DOGE: Doge,
DOGE_TEST: Doge,
LTC: LiteCoin,
LTC_TEST: LiteCoin,
ZEC: ZCash,
ZEC_TEST: ZCash,
ETC,
ETC_TEST: ETC,
ETH: EVM,
ETH_TEST3: EVM,
ETH_TEST5: EVM,
ETH_TEST6: EVM,
EOS,
EOS_TEST: EOS,
ATOM_COS: Cosmos,
ATOM_COS_TEST: Cosmos,
TRX: Tron,
TRX_TEST: Tron,
XRP: Ripple,
XRP_TEST: Ripple,
LUNA2: Luna,
LUNA2_TEST: Luna,
CELESTIA: Celestia,
CELESTIA_TEST: Celestia,
// EDDSA
SOL: Solana,
SOL_TEST: Solana,
XLM: Stellar,
XLM_TEST: Stellar,
NEAR: Near,
NEAR_TEST: Near,
XTZ: Tezos,
XTZ_TEST: Tezos,
DOT: Polkadot,
WND: Polkadot,
KSM: Kusama,
XEM: NEM,
XEM_TEST: NEM,
HBAR: Hedera,
HBAR_TEST: Hedera,
TON: Ton,
TON_TEST: Ton,
...fillJettons(),
...fillEVMs(),
} as const;
type WalletClass = (typeof WalletClasses)[keyof typeof WalletClasses];
export type Derivation = InstanceType<WalletClass>;
export type { UTXO, AccountData, TxPayload, RawSignature } from './types';