@hot-labs/kit 1.0.40 → 1.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/README.md +23 -10
  2. package/build/HotConnector.d.ts +42 -30
  3. package/build/HotConnector.js +50 -36
  4. package/build/HotConnector.js.map +1 -1
  5. package/build/OmniConnector.d.ts +3 -13
  6. package/build/OmniConnector.js +5 -7
  7. package/build/OmniConnector.js.map +1 -1
  8. package/build/OmniWallet.d.ts +4 -4
  9. package/build/OmniWallet.js +1 -1
  10. package/build/{omni → core}/Intents.d.ts +3 -1
  11. package/build/{omni → core}/Intents.js +4 -1
  12. package/build/core/Intents.js.map +1 -0
  13. package/build/core/bridge.d.ts +3 -0
  14. package/build/core/bridge.js +36 -0
  15. package/build/core/bridge.js.map +1 -0
  16. package/build/{omni/config.d.ts → core/chains.d.ts} +21 -5
  17. package/build/core/chains.js +372 -0
  18. package/build/core/chains.js.map +1 -0
  19. package/build/{omni → core}/defaultTokens.js.map +1 -1
  20. package/build/core/events.js.map +1 -0
  21. package/build/core/index.d.ts +10 -0
  22. package/build/core/index.js +11 -0
  23. package/build/core/index.js.map +1 -0
  24. package/build/{omni → core}/nearRpc.js.map +1 -1
  25. package/build/{omni → core}/recipient.d.ts +1 -1
  26. package/build/{omni → core}/recipient.js +1 -1
  27. package/build/{omni → core}/recipient.js.map +1 -1
  28. package/build/{omni → core}/token.d.ts +1 -1
  29. package/build/{omni → core}/token.js +7 -45
  30. package/build/core/token.js.map +1 -0
  31. package/build/{omni → core}/tokens.d.ts +1 -1
  32. package/build/{omni → core}/tokens.js +1 -1
  33. package/build/{omni → core}/tokens.js.map +1 -1
  34. package/build/{omni → core}/types.d.ts +1 -0
  35. package/build/{omni → core}/types.js.map +1 -1
  36. package/build/{omni → core}/utils.js.map +1 -1
  37. package/build/cosmos/connector.d.ts +5 -24
  38. package/build/cosmos/connector.js +35 -25
  39. package/build/cosmos/connector.js.map +1 -1
  40. package/build/cosmos/index.d.ts +6 -0
  41. package/build/cosmos/index.js +5 -0
  42. package/build/cosmos/index.js.map +1 -0
  43. package/build/cosmos/wallet.d.ts +2 -2
  44. package/build/cosmos/wallet.js +2 -2
  45. package/build/cosmos/wallet.js.map +1 -1
  46. package/build/defaults.d.ts +1 -0
  47. package/build/defaults.js +7 -0
  48. package/build/defaults.js.map +1 -0
  49. package/build/evm/connector.d.ts +3 -8
  50. package/build/evm/connector.js +13 -15
  51. package/build/evm/connector.js.map +1 -1
  52. package/build/evm/index.d.ts +6 -0
  53. package/build/evm/index.js +5 -0
  54. package/build/evm/index.js.map +1 -0
  55. package/build/{hot-wallet/evm.js → evm/injected.js} +2 -2
  56. package/build/evm/injected.js.map +1 -0
  57. package/build/evm/wallet.d.ts +3 -3
  58. package/build/evm/wallet.js +8 -4
  59. package/build/evm/wallet.js.map +1 -1
  60. package/build/exchange.d.ts +3 -3
  61. package/build/exchange.js +18 -21
  62. package/build/exchange.js.map +1 -1
  63. package/build/hot-wallet/google.d.ts +25 -0
  64. package/build/{GoogleConnector.js → hot-wallet/google.js} +51 -15
  65. package/build/hot-wallet/google.js.map +1 -0
  66. package/build/hot-wallet/{hot.js → iframe.js} +2 -9
  67. package/build/hot-wallet/{hot.js.map → iframe.js.map} +1 -1
  68. package/build/hot-wallet/index.d.ts +5 -4
  69. package/build/hot-wallet/index.js +3 -4
  70. package/build/hot-wallet/index.js.map +1 -1
  71. package/build/index.d.ts +1 -20
  72. package/build/index.js +1 -20
  73. package/build/index.js.map +1 -1
  74. package/build/near/connector.d.ts +2 -12
  75. package/build/near/connector.js +4 -4
  76. package/build/near/connector.js.map +1 -1
  77. package/build/near/index.d.ts +7 -0
  78. package/build/near/index.js +5 -0
  79. package/build/near/index.js.map +1 -0
  80. package/build/near/wallet.d.ts +3 -3
  81. package/build/near/wallet.js +3 -3
  82. package/build/solana/connector.d.ts +3 -4
  83. package/build/solana/connector.js +8 -8
  84. package/build/solana/connector.js.map +1 -1
  85. package/build/solana/index.d.ts +6 -0
  86. package/build/solana/index.js +5 -0
  87. package/build/solana/index.js.map +1 -0
  88. package/build/solana/injected/account.js.map +1 -0
  89. package/build/{hot-wallet/solana → solana/injected}/index.js +1 -1
  90. package/build/{hot-wallet/solana → solana/injected}/index.js.map +1 -1
  91. package/build/solana/injected/register.js.map +1 -0
  92. package/build/solana/injected/solana-wallet.js.map +1 -0
  93. package/build/solana/injected/utils.js.map +1 -0
  94. package/build/solana/wallet.d.ts +3 -3
  95. package/build/solana/wallet.js +3 -3
  96. package/build/stellar/connector.d.ts +1 -1
  97. package/build/stellar/connector.js +2 -2
  98. package/build/stellar/connector.js.map +1 -1
  99. package/build/stellar/index.d.ts +6 -0
  100. package/build/stellar/index.js +5 -0
  101. package/build/stellar/index.js.map +1 -0
  102. package/build/{hot-wallet/stellar.js → stellar/injected.js} +2 -2
  103. package/build/stellar/injected.js.map +1 -0
  104. package/build/stellar/wallet.d.ts +5 -4
  105. package/build/stellar/wallet.js +17 -14
  106. package/build/stellar/wallet.js.map +1 -1
  107. package/build/ton/connector.d.ts +1 -1
  108. package/build/ton/connector.js +2 -2
  109. package/build/ton/connector.js.map +1 -1
  110. package/build/ton/index.d.ts +7 -0
  111. package/build/ton/index.js +5 -0
  112. package/build/ton/index.js.map +1 -0
  113. package/build/{hot-wallet/ton.js → ton/injected.js} +2 -2
  114. package/build/ton/injected.js.map +1 -0
  115. package/build/ton/utils.js +1 -2
  116. package/build/ton/utils.js.map +1 -1
  117. package/build/ton/wallet.d.ts +3 -3
  118. package/build/ton/wallet.js +2 -2
  119. package/build/ui/connect/ConnectWallet.js +1 -1
  120. package/build/ui/payment/Bridge.d.ts +2 -2
  121. package/build/ui/payment/Bridge.js +5 -5
  122. package/build/ui/payment/Payment.d.ts +2 -2
  123. package/build/ui/payment/Payment.js +2 -2
  124. package/build/ui/payment/Profile.js +2 -2
  125. package/build/ui/payment/SelectRecipient.d.ts +2 -2
  126. package/build/ui/payment/SelectRecipient.js +3 -3
  127. package/build/ui/payment/SelectSender.d.ts +1 -1
  128. package/build/ui/payment/SelectSender.js +2 -2
  129. package/build/ui/payment/SelectToken.d.ts +1 -1
  130. package/build/ui/payment/SelectToken.js +3 -3
  131. package/build/ui/payment/TokenCard.d.ts +1 -1
  132. package/build/ui/payment/TokenCard.js +3 -3
  133. package/build/ui/payment/TokenCard.js.map +1 -1
  134. package/build/ui/router.d.ts +3 -3
  135. package/build/ui/styles.js +4 -0
  136. package/build/ui/styles.js.map +1 -1
  137. package/package.json +10 -2
  138. package/skill.md +174 -72
  139. package/src/HotConnector.ts +91 -56
  140. package/src/OmniConnector.ts +6 -11
  141. package/src/OmniWallet.ts +4 -4
  142. package/src/{omni → core}/Intents.ts +6 -3
  143. package/src/core/bridge.ts +39 -0
  144. package/src/core/chains.ts +391 -0
  145. package/src/core/index.ts +10 -0
  146. package/src/{omni → core}/recipient.ts +1 -1
  147. package/src/{omni → core}/token.ts +7 -26
  148. package/src/{omni → core}/tokens.ts +2 -2
  149. package/src/{omni → core}/types.ts +1 -0
  150. package/src/cosmos/connector.ts +46 -41
  151. package/src/cosmos/index.ts +8 -0
  152. package/src/cosmos/wallet.ts +3 -3
  153. package/src/defaults.ts +7 -0
  154. package/src/evm/connector.ts +18 -23
  155. package/src/evm/index.ts +7 -0
  156. package/src/{hot-wallet/evm.ts → evm/injected.ts} +1 -1
  157. package/src/evm/wallet.ts +10 -5
  158. package/src/exchange.ts +22 -25
  159. package/src/{GoogleConnector.ts → hot-wallet/google.ts} +60 -17
  160. package/src/hot-wallet/{hot.ts → iframe.ts} +1 -8
  161. package/src/hot-wallet/index.ts +6 -4
  162. package/src/index.ts +2 -25
  163. package/src/near/connector.ts +4 -15
  164. package/src/near/index.ts +9 -0
  165. package/src/near/wallet.ts +4 -4
  166. package/src/solana/connector.ts +13 -11
  167. package/src/solana/index.ts +7 -0
  168. package/src/{hot-wallet/solana → solana/injected}/index.ts +1 -1
  169. package/src/solana/wallet.ts +4 -4
  170. package/src/stellar/connector.ts +2 -2
  171. package/src/stellar/index.ts +7 -0
  172. package/src/{hot-wallet/stellar.ts → stellar/injected.ts} +1 -1
  173. package/src/stellar/wallet.ts +19 -15
  174. package/src/ton/connector.ts +2 -2
  175. package/src/ton/index.ts +9 -0
  176. package/src/{hot-wallet/ton.ts → ton/injected.ts} +1 -1
  177. package/src/ton/utils.ts +1 -3
  178. package/src/ton/wallet.ts +3 -3
  179. package/src/ui/connect/ConnectWallet.tsx +1 -1
  180. package/src/ui/payment/Bridge.tsx +6 -6
  181. package/src/ui/payment/Payment.tsx +3 -3
  182. package/src/ui/payment/Profile.tsx +3 -3
  183. package/src/ui/payment/SelectRecipient.tsx +3 -3
  184. package/src/ui/payment/SelectSender.tsx +2 -2
  185. package/src/ui/payment/SelectToken.tsx +4 -4
  186. package/src/ui/payment/TokenCard.tsx +5 -4
  187. package/src/ui/router.tsx +3 -3
  188. package/src/ui/styles.ts +4 -0
  189. package/build/GoogleConnector.d.ts +0 -20
  190. package/build/GoogleConnector.js.map +0 -1
  191. package/build/events.js.map +0 -1
  192. package/build/hot-wallet/evm.js.map +0 -1
  193. package/build/hot-wallet/solana/account.js.map +0 -1
  194. package/build/hot-wallet/solana/register.js.map +0 -1
  195. package/build/hot-wallet/solana/solana-wallet.js.map +0 -1
  196. package/build/hot-wallet/solana/utils.js.map +0 -1
  197. package/build/hot-wallet/stellar.js.map +0 -1
  198. package/build/hot-wallet/ton.js.map +0 -1
  199. package/build/hot-wallet/wallet.d.ts +0 -1
  200. package/build/hot-wallet/wallet.js +0 -40
  201. package/build/hot-wallet/wallet.js.map +0 -1
  202. package/build/omni/Intents.js.map +0 -1
  203. package/build/omni/bridge.d.ts +0 -3
  204. package/build/omni/bridge.js +0 -34
  205. package/build/omni/bridge.js.map +0 -1
  206. package/build/omni/config.js +0 -126
  207. package/build/omni/config.js.map +0 -1
  208. package/build/omni/index.d.ts +0 -8
  209. package/build/omni/index.js +0 -9
  210. package/build/omni/index.js.map +0 -1
  211. package/build/omni/token.js.map +0 -1
  212. package/build/settings.d.ts +0 -5
  213. package/build/settings.js +0 -6
  214. package/build/settings.js.map +0 -1
  215. package/src/hot-wallet/wallet.ts +0 -44
  216. package/src/omni/bridge.ts +0 -38
  217. package/src/omni/config.ts +0 -130
  218. package/src/omni/index.ts +0 -8
  219. package/src/settings.ts +0 -5
  220. /package/build/{omni → core}/defaultTokens.d.ts +0 -0
  221. /package/build/{omni → core}/defaultTokens.js +0 -0
  222. /package/build/{events.d.ts → core/events.d.ts} +0 -0
  223. /package/build/{events.js → core/events.js} +0 -0
  224. /package/build/{omni → core}/nearRpc.d.ts +0 -0
  225. /package/build/{omni → core}/nearRpc.js +0 -0
  226. /package/build/{omni → core}/types.js +0 -0
  227. /package/build/{omni → core}/utils.d.ts +0 -0
  228. /package/build/{omni → core}/utils.js +0 -0
  229. /package/build/{hot-wallet/evm.d.ts → evm/injected.d.ts} +0 -0
  230. /package/build/hot-wallet/{hot.d.ts → iframe.d.ts} +0 -0
  231. /package/build/{hot-wallet/solana → solana/injected}/account.d.ts +0 -0
  232. /package/build/{hot-wallet/solana → solana/injected}/account.js +0 -0
  233. /package/build/{hot-wallet/solana → solana/injected}/index.d.ts +0 -0
  234. /package/build/{hot-wallet/solana → solana/injected}/register.d.ts +0 -0
  235. /package/build/{hot-wallet/solana → solana/injected}/register.js +0 -0
  236. /package/build/{hot-wallet/solana → solana/injected}/solana-wallet.d.ts +0 -0
  237. /package/build/{hot-wallet/solana → solana/injected}/solana-wallet.js +0 -0
  238. /package/build/{hot-wallet/solana → solana/injected}/utils.d.ts +0 -0
  239. /package/build/{hot-wallet/solana → solana/injected}/utils.js +0 -0
  240. /package/build/{hot-wallet/stellar.d.ts → stellar/injected.d.ts} +0 -0
  241. /package/build/{hot-wallet/ton.d.ts → ton/injected.d.ts} +0 -0
  242. /package/src/{omni → core}/defaultTokens.ts +0 -0
  243. /package/src/{events.ts → core/events.ts} +0 -0
  244. /package/src/{omni → core}/nearRpc.ts +0 -0
  245. /package/src/{omni → core}/utils.ts +0 -0
  246. /package/src/{hot-wallet/solana → solana/injected}/account.ts +0 -0
  247. /package/src/{hot-wallet/solana → solana/injected}/register.ts +0 -0
  248. /package/src/{hot-wallet/solana → solana/injected}/solana-wallet.ts +0 -0
  249. /package/src/{hot-wallet/solana → solana/injected}/utils.ts +0 -0
@@ -0,0 +1,39 @@
1
+ import { CosmosConfig, HotBridge, ReviewFee } from "@hot-labs/omni-sdk";
2
+ import { chains, Network, WalletType } from "./chains";
3
+ import { Intents } from "./Intents";
4
+
5
+ export { ReviewFee, HotBridge };
6
+
7
+ export const createHotBridge = () => {
8
+ return new HotBridge({
9
+ publishIntents: async (signed: Record<string, any>[], hashes: string[] = []) => {
10
+ const hash = await Intents.publishSignedIntents(signed, hashes);
11
+ return { sender: "intents.near", hash };
12
+ },
13
+
14
+ solanaRpc: [chains.get(Network.Solana).rpc],
15
+ evmRpc: Object.values(chains.repository)
16
+ .filter((chain) => chain.type === WalletType.EVM)
17
+ .reduce((acc, chain) => {
18
+ acc[chain.id] = [chain.rpc];
19
+ return acc;
20
+ }, {} as Record<string, string[]>),
21
+
22
+ logger: console,
23
+ cosmos: {
24
+ ...chains.repository
25
+ .filter((chain) => chain.type === WalletType.COSMOS)
26
+ .reduce((acc, chain) => {
27
+ acc[chain.id] = {
28
+ rpc: chain.rpc,
29
+ contract: chain.bridgeContract || "",
30
+ gasLimit: chain.gasLimit || 200000n,
31
+ nativeToken: chain.currency.id,
32
+ prefix: chain.prefix || "",
33
+ chainId: chain.key,
34
+ };
35
+ return acc;
36
+ }, {} as Record<number, CosmosConfig>),
37
+ },
38
+ });
39
+ };
@@ -0,0 +1,391 @@
1
+ export enum OmniToken {
2
+ USDT = "nep141:usdt.tether-token.near",
3
+ USDC = "nep141:17208628f84f5d6ad33f0da3bbbeb27ffcb398eac501a31bd6ad2011e36133a1",
4
+ GONKA = "nep245:v2_1.omni.hot.tg:4444119_wyixUKCL",
5
+ NEAR = "nep141:wrap.near",
6
+ ETH = "nep141:eth.bridge.near",
7
+ AURORA = "nep141:aaaaaa20d9e0e2461697782ef11675f668207961.factory.bridge.near",
8
+ SOL = "nep141:sol.omft.near",
9
+ BNB = "nep245:v2_1.omni.hot.tg:56_11111111111111111111",
10
+ ADI = "nep245:v2_1.omni.hot.tg:36900_11111111111111111111",
11
+ }
12
+
13
+ export enum WalletType {
14
+ NEAR = 1010,
15
+ EVM = 1,
16
+ OMNI = -4,
17
+ SOLANA = 1001,
18
+ STELLAR = 1100,
19
+ TON = 1111,
20
+ COSMOS = 4444118,
21
+ Tron = 333,
22
+
23
+ Zcash = -5,
24
+ Btc = -6,
25
+ Xrp = -7,
26
+ Doge = -8,
27
+ Ada = -9,
28
+ Aptos = -10,
29
+ Sui = -11,
30
+ Cardano = -12,
31
+ Litecoin = -14,
32
+ unknown = -1000000,
33
+ }
34
+
35
+ export enum Network {
36
+ Omni_v1 = 0,
37
+ Hot = -4,
38
+
39
+ Zcash = -5,
40
+ Btc = -6,
41
+ Xrp = -7,
42
+ Doge = -8,
43
+ Ada = -9,
44
+ Aptos = -10,
45
+ Sui = -11,
46
+ Cardano = -12,
47
+ Litecoin = -14,
48
+
49
+ Juno = 4444118,
50
+ Gonka = 4444119,
51
+ OmniTon = 1117,
52
+ ADI = 36900,
53
+
54
+ Eth = 1,
55
+ Tron = 333,
56
+ Solana = 1001,
57
+ Stellar = 1100,
58
+ Near = 1010,
59
+ Polygon = 137,
60
+ Arbitrum = 42_161,
61
+ Aurora = 1_313_161_554,
62
+ Avalanche = 43_114,
63
+ Linea = 59_144,
64
+ Xlayer = 196,
65
+ Base = 8453,
66
+ Ton = 1111,
67
+ Bnb = 56,
68
+ OpBnb = 204,
69
+ BnbTestnet = 97,
70
+ Optimism = 10,
71
+ Scroll = 534_352,
72
+ EbiChain = 98_881,
73
+ Sei = 1329,
74
+ Blast = 81_457,
75
+ Taiko = 167_000,
76
+ Mantle = 5000,
77
+ Manta = 169,
78
+ Kava = 2222,
79
+ ZkSync = 324,
80
+ Monad = 10_143,
81
+ Metis = 1088,
82
+ Gnosis = 100,
83
+ Fantom = 250,
84
+ Cronos = 25,
85
+ Chiliz = 88_888,
86
+ Moonbeam = 1284,
87
+ Ronin = 2020,
88
+ Lisk = 1135,
89
+ Sonic = 146,
90
+ Zora = 7_777_777,
91
+ Mode = 34_443,
92
+ Berachain = 80_094,
93
+ Unichain = 130,
94
+ Soneium = 1868,
95
+ Ink = 57_073,
96
+ Apechain = 2741,
97
+ }
98
+
99
+ export interface ChainConfig {
100
+ id: number;
101
+ key: string;
102
+ name: string;
103
+ currency: { id: string; symbol: string; decimals: number; logo: string };
104
+ bridgeContract?: string;
105
+ gasLimit?: bigint;
106
+ logo?: string;
107
+ prefix?: string;
108
+ rpc: string;
109
+ type: WalletType;
110
+ }
111
+
112
+ const rpc = (chain: number) => `https://api0.herewallet.app/api/v1/evm/rpc/${chain}`;
113
+ const logo = (chain: number) => `https://storage.herewallet.app/ft/${chain}:native.png`;
114
+
115
+ const chainsRepository: Record<number, ChainConfig> = {
116
+ [Network.Juno]: {
117
+ id: Network.Juno,
118
+ key: "juno-1",
119
+ name: "Juno",
120
+ bridgeContract: "juno1va9q7gma6l62aqq988gghv4r7u4hnlgm85ssmsdf9ypw77qfwa0qaz7ea4",
121
+ logo: "https://storage.herewallet.app/ft/4444118:ujuno.png",
122
+ currency: { id: "ujuno", symbol: "JUNO", decimals: 6, logo: logo(Network.Juno) },
123
+ rpc: rpc(Network.Juno),
124
+ prefix: "juno",
125
+ type: WalletType.COSMOS,
126
+ gasLimit: 200000n,
127
+ },
128
+ [Network.Gonka]: {
129
+ id: Network.Gonka,
130
+ key: "gonka-mainnet",
131
+ name: "Gonka",
132
+ bridgeContract: "gonka15wng2302rhq5w8ddy3l3jslrhfcpufzfs6wc3zc6cxt8cpwrfp4qqgenkc",
133
+ logo: "https://storage.herewallet.app/ft/4444119:ngonka.png",
134
+ currency: { id: "ngonka", symbol: "GNK", decimals: 6, logo: logo(Network.Gonka) },
135
+ rpc: rpc(Network.Gonka),
136
+ prefix: "gonka",
137
+ type: WalletType.COSMOS,
138
+ gasLimit: 200000n,
139
+ },
140
+ [Network.Monad]: {
141
+ id: Network.Monad,
142
+ key: "monad",
143
+ name: "Monad",
144
+ logo: "https://storage.herewallet.app/upload/8f6bdf0d04494dc7157704cf3a7e623aeba7188120d93535d3b9330fa82fc200.JPG",
145
+ currency: { id: "native", symbol: "MONAD", decimals: 6, logo: logo(Network.Monad) },
146
+ rpc: rpc(Network.Monad),
147
+ type: WalletType.EVM,
148
+ },
149
+ [Network.Near]: {
150
+ id: Network.Near,
151
+ key: "near",
152
+ name: "NEAR",
153
+ logo: "https://storage.herewallet.app/ft/1010:native.png",
154
+ currency: { id: "native", symbol: "NEAR", decimals: 6, logo: logo(Network.Near) },
155
+ rpc: rpc(Network.Near),
156
+ type: WalletType.NEAR,
157
+ },
158
+ [Network.Eth]: {
159
+ id: Network.Eth,
160
+ key: "eth",
161
+ name: "Ethereum",
162
+ logo: "https://storage.herewallet.app/upload/80978f3676fc2dfbd3d874a9421004fb7dea7616481bda53bf68f44e21c3ce0c.png",
163
+ currency: { id: "native", symbol: "ETH", decimals: 18, logo: logo(Network.Eth) },
164
+ rpc: rpc(Network.Eth),
165
+ type: WalletType.EVM,
166
+ },
167
+ [Network.Solana]: {
168
+ id: Network.Solana,
169
+ key: "sol",
170
+ name: "Solana",
171
+ logo: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/solana/info/logo.png",
172
+ currency: { id: "native", symbol: "SOL", decimals: 9, logo: logo(Network.Solana) },
173
+ rpc: rpc(Network.Solana),
174
+ type: WalletType.SOLANA,
175
+ },
176
+ [Network.Arbitrum]: {
177
+ id: Network.Arbitrum,
178
+ key: "arb",
179
+ name: "Arbitrum",
180
+ logo: "https://storage.herewallet.app/upload/1606b00068f729f48de00d2575940484f6a0dc83351702a9fb8b0139e41dc00b.jpeg",
181
+ currency: { id: "native", symbol: "ARB", decimals: 18, logo: logo(Network.Arbitrum) },
182
+ rpc: rpc(Network.Arbitrum),
183
+ type: WalletType.EVM,
184
+ },
185
+ [Network.Base]: {
186
+ id: Network.Base,
187
+ key: "base",
188
+ name: "Base",
189
+ logo: "https://storage.herewallet.app/upload/c6cf6513fba97c22192d0b96ffd2be74608559017a4c41ebf4457b65224a7070.jpg",
190
+ currency: { id: "native", symbol: "BASE", decimals: 18, logo: logo(Network.Base) },
191
+ rpc: rpc(Network.Base),
192
+ type: WalletType.EVM,
193
+ },
194
+ [Network.Bnb]: {
195
+ id: Network.Bnb,
196
+ key: "bsc",
197
+ name: "BNB Chain",
198
+ logo: "https://storage.herewallet.app/upload/b82ec85a318b8d8f1f12b25a0e21cd475208014f15952daf317b876812562530.png",
199
+ currency: { id: "native", symbol: "BNB", decimals: 18, logo: logo(Network.Bnb) },
200
+ rpc: rpc(Network.Bnb),
201
+ type: WalletType.EVM,
202
+ },
203
+ [Network.Polygon]: {
204
+ id: Network.Polygon,
205
+ key: "pol",
206
+ name: "Polygon",
207
+ logo: "https://storage.herewallet.app/upload/e51b9ec8d0ed17792cca05be487f5dbc1d0a1b9113cf7e3465310de48c0acc2f.jpg",
208
+ currency: { id: "native", symbol: "POL", decimals: 18, logo: logo(Network.Polygon) },
209
+ rpc: rpc(Network.Polygon),
210
+ type: WalletType.EVM,
211
+ },
212
+ [Network.Avalanche]: {
213
+ id: Network.Avalanche,
214
+ key: "avax",
215
+ name: "Avalanche",
216
+ logo: "https://storage.herewallet.app/upload/fa027e81ebb6957ebd8feada21b5374b15aa090e1747fae131a1e061d3d7e6da.jpg",
217
+ currency: { id: "native", symbol: "AVAX", decimals: 18, logo: logo(Network.Avalanche) },
218
+ rpc: rpc(Network.Avalanche),
219
+ type: WalletType.EVM,
220
+ },
221
+ [Network.Optimism]: {
222
+ id: Network.Optimism,
223
+ key: "op",
224
+ name: "Optimism",
225
+ logo: "https://storage.herewallet.app/upload/d183a3c76b584552888cb8b5a4dfb849572592d7c7f473fe43bcc5c2adae9a50.jpg",
226
+ currency: { id: "native", symbol: "OP", decimals: 18, logo: logo(Network.Optimism) },
227
+ rpc: rpc(Network.Optimism),
228
+ type: WalletType.EVM,
229
+ },
230
+ [Network.Gnosis]: {
231
+ id: Network.Gnosis,
232
+ key: "gnosis",
233
+ name: "Gnosis",
234
+ logo: "https://storage.herewallet.app/upload/fc4945be03eec20c68ae19920f012afef7204b2c04d39b5cff6ab3a6d99b5981.jpg",
235
+ currency: { id: "native", symbol: "GNO", decimals: 18, logo: logo(Network.Gnosis) },
236
+ rpc: rpc(Network.Gnosis),
237
+ type: WalletType.EVM,
238
+ },
239
+ [Network.Ton]: {
240
+ id: Network.Ton,
241
+ key: "ton",
242
+ name: "TON",
243
+ logo: "https://tgapp.herewallet.app/images/chains/ton.svg",
244
+ currency: { id: "native", symbol: "TON", decimals: 9, logo: logo(Network.Ton) },
245
+ rpc: rpc(Network.Ton),
246
+ type: WalletType.TON,
247
+ },
248
+ [Network.Stellar]: {
249
+ id: Network.Stellar,
250
+ key: "stellar",
251
+ name: "Stellar",
252
+ logo: "https://tgapp.herewallet.app/images/chains/xlm.svg",
253
+ currency: { id: "native", symbol: "XLM", decimals: 6, logo: logo(Network.Stellar) },
254
+ rpc: rpc(Network.Stellar),
255
+ type: WalletType.STELLAR,
256
+ },
257
+ [Network.Btc]: {
258
+ id: Network.Btc,
259
+ key: "btc",
260
+ name: "Bitcoin",
261
+ logo: "https://storage.herewallet.app/ft/-6:native.png",
262
+ currency: { id: "native", symbol: "BTC", decimals: 8, logo: logo(Network.Btc) },
263
+ rpc: rpc(Network.Btc),
264
+ type: WalletType.Btc,
265
+ },
266
+ [Network.Berachain]: {
267
+ id: Network.Berachain,
268
+ key: "bera",
269
+ name: "Berachain",
270
+ logo: "https://storage.herewallet.app/upload/f5c15875b85ca57447ec031930dbdac1f85799a4ca83ae8ecc204142ff433d60.png",
271
+ currency: { id: "native", symbol: "BERA", decimals: 6, logo: logo(Network.Berachain) },
272
+ rpc: rpc(Network.Berachain),
273
+ type: WalletType.EVM,
274
+ },
275
+ [Network.Tron]: {
276
+ id: Network.Tron,
277
+ key: "tron",
278
+ name: "TRON",
279
+ logo: "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/tron/info/logo.png",
280
+ currency: { id: "native", symbol: "TRX", decimals: 6, logo: logo(Network.Tron) },
281
+ rpc: rpc(Network.Tron),
282
+ type: WalletType.Tron,
283
+ },
284
+ [Network.Zcash]: {
285
+ id: Network.Zcash,
286
+ key: "zec",
287
+ name: "Zcash",
288
+ logo: "https://storage.herewallet.app/ft/-5:native.png",
289
+ currency: { id: "native", symbol: "ZEC", decimals: 8, logo: logo(Network.Zcash) },
290
+ rpc: rpc(Network.Zcash),
291
+ type: WalletType.Zcash,
292
+ },
293
+ [Network.Xrp]: {
294
+ id: Network.Xrp,
295
+ key: "xrp",
296
+ name: "XRP",
297
+ logo: "https://cryptologos.cc/logos/xrp-xrp-logo.svg?v=040",
298
+ currency: { id: "native", symbol: "XRP", decimals: 6, logo: logo(Network.Xrp) },
299
+ rpc: rpc(Network.Xrp),
300
+ type: WalletType.Xrp,
301
+ },
302
+ [Network.Doge]: {
303
+ id: Network.Doge,
304
+ key: "doge",
305
+ name: "Doge",
306
+ logo: "https://cryptologos.cc/logos/dogecoin-doge-logo.svg?v=040",
307
+ currency: { id: "native", symbol: "DOGE", decimals: 6, logo: logo(Network.Doge) },
308
+ rpc: rpc(Network.Doge),
309
+ type: WalletType.Doge,
310
+ },
311
+ [Network.Ada]: {
312
+ id: Network.Ada,
313
+ key: "ada",
314
+ name: "ADA",
315
+ logo: "https://cryptologos.cc/logos/cardano-ada-logo.svg?v=040",
316
+ currency: { id: "native", symbol: "ADA", decimals: 6, logo: logo(Network.Ada) },
317
+ rpc: rpc(Network.Ada),
318
+ type: WalletType.Ada,
319
+ },
320
+ [Network.Aptos]: {
321
+ id: Network.Aptos,
322
+ key: "aptos",
323
+ name: "Aptos",
324
+ logo: "https://cryptologos.cc/logos/aptos-apt-logo.svg?v=040",
325
+ currency: { id: "native", symbol: "APT", decimals: 6, logo: logo(Network.Aptos) },
326
+ rpc: rpc(Network.Aptos),
327
+ type: WalletType.Aptos,
328
+ },
329
+ [Network.Sui]: {
330
+ id: Network.Sui,
331
+ key: "sui",
332
+ name: "SUI",
333
+ logo: "https://cryptologos.cc/logos/sui-sui-logo.svg?v=040",
334
+ currency: { id: "native", symbol: "SUI", decimals: 6, logo: logo(Network.Sui) },
335
+ rpc: rpc(Network.Sui),
336
+ type: WalletType.Sui,
337
+ },
338
+ [Network.Hot]: {
339
+ id: Network.Hot,
340
+ key: "hot",
341
+ name: "Omni",
342
+ logo: "https://tgapp.herewallet.app/images/hot/hot-icon.png",
343
+ currency: { id: "native", symbol: "OMNI", decimals: 6, logo: logo(Network.Hot) },
344
+ rpc: rpc(Network.Hot),
345
+ type: WalletType.OMNI,
346
+ },
347
+ [Network.Cardano]: {
348
+ id: Network.Cardano,
349
+ key: "cardano",
350
+ name: "Cardano",
351
+ logo: "https://cryptologos.cc/logos/cardano-ada-logo.svg?v=040",
352
+ currency: { id: "native", symbol: "ADA", decimals: 6, logo: logo(Network.Cardano) },
353
+ rpc: rpc(Network.Cardano),
354
+ type: WalletType.Cardano,
355
+ },
356
+ [Network.Litecoin]: {
357
+ id: Network.Litecoin,
358
+ key: "ltc",
359
+ name: "Litecoin",
360
+ logo: "https://cryptologos.cc/logos/litecoin-ltc-logo.svg?v=040",
361
+ currency: { id: "native", symbol: "LTC", decimals: 8, logo: logo(Network.Litecoin) },
362
+ rpc: rpc(Network.Litecoin),
363
+ type: WalletType.Litecoin,
364
+ },
365
+ [Network.ADI]: {
366
+ id: Network.ADI,
367
+ key: "adi",
368
+ name: "ADI",
369
+ currency: { id: "native", symbol: "ADI", decimals: 6, logo: logo(Network.ADI) },
370
+ rpc: rpc(Network.ADI),
371
+ type: WalletType.EVM,
372
+ },
373
+ };
374
+
375
+ export const chains = {
376
+ get repository() {
377
+ return Object.values(chainsRepository);
378
+ },
379
+
380
+ getByType: (type: WalletType) => Object.values(chainsRepository).filter((chain) => chain.type === type),
381
+ getByKey: (key: string) => {
382
+ const chain = Object.values(chainsRepository).find((chain) => chain.key === key);
383
+ if (!chain) throw new Error(`Chain ${key} not found`);
384
+ return chain;
385
+ },
386
+
387
+ get: (id: number) => chainsRepository[id],
388
+ register: (config: ChainConfig) => {
389
+ chainsRepository[config.id] = config;
390
+ },
391
+ };
@@ -0,0 +1,10 @@
1
+ export { OmniToken, WalletType, Network, chains } from "./chains";
2
+ export { createHotBridge, HotBridge, ReviewFee } from "./bridge";
3
+ export { rpc as nearRpc, TGAS } from "./nearRpc";
4
+ export { EventEmitter } from "./events";
5
+ export { Recipient } from "./recipient";
6
+ export { formatter } from "./utils";
7
+ export { Intents } from "./Intents";
8
+ export { tokens } from "./tokens";
9
+ export { Token } from "./token";
10
+ export * from "./types";
@@ -3,7 +3,7 @@ import { hex, base32, base58 } from "@scure/base";
3
3
 
4
4
  import { type OmniWallet } from "../OmniWallet";
5
5
  import { tonApi } from "../ton/utils";
6
- import { WalletType } from "./config";
6
+ import { WalletType } from "./chains";
7
7
 
8
8
  export class Recipient {
9
9
  constructor(readonly type: WalletType, readonly address: string, readonly omniAddress: string) {}
@@ -1,7 +1,7 @@
1
1
  import { TokenResponse } from "@defuse-protocol/one-click-sdk-typescript";
2
2
  import { Asset, Networks } from "@stellar/stellar-base";
3
3
 
4
- import { Network, OmniToken, WalletType, chainsMap, reverseChainsMap } from "./config";
4
+ import { Network, OmniToken, WalletType, chains } from "./chains";
5
5
  import { formatter } from "./utils";
6
6
 
7
7
  export interface IToken {
@@ -24,8 +24,8 @@ export class Token {
24
24
 
25
25
  constructor(readonly info: TokenResponse & { omni?: true }) {
26
26
  this.originalChainSymbol = info.blockchain;
27
- this.originalChain = reverseChainsMap[info.blockchain];
28
- this.chain = info.omni ? -4 : reverseChainsMap[info.blockchain];
27
+ this.originalChain = chains.getByKey(info.blockchain).id || 0;
28
+ this.chain = info.omni ? -4 : chains.getByKey(info.blockchain).id || 0;
29
29
 
30
30
  if (this.chain === Network.Near) {
31
31
  this.address = info.contractAddress === "wrap.near" ? "native" : info.contractAddress || "native";
@@ -40,12 +40,12 @@ export class Token {
40
40
 
41
41
  this.decimals = info.decimals;
42
42
  this.symbol = info.symbol === "wNEAR" ? "NEAR" : info.symbol;
43
- this.usd = info.price;
43
+ this.usd = info.price || 0;
44
44
  this.omniAddress = info.assetId;
45
45
  }
46
46
 
47
47
  get chainIcon() {
48
- return chainsMap[this.chain]?.logo || `https://storage.herewallet.app/ft/${this.chain}:native.png`;
48
+ return chains.get(this.chain)?.logo || `https://storage.herewallet.app/ft/${this.chain}:native.png`;
49
49
  }
50
50
 
51
51
  get originalChainIcon() {
@@ -54,7 +54,7 @@ export class Token {
54
54
  }
55
55
 
56
56
  get chainName() {
57
- return chainsMap[this.chain]?.name || this.originalChainSymbol;
57
+ return chains.get(this.chain)?.name || this.originalChainSymbol;
58
58
  }
59
59
 
60
60
  get id() {
@@ -67,26 +67,7 @@ export class Token {
67
67
  }
68
68
 
69
69
  get type() {
70
- if (this.chain === Network.Hot) return WalletType.OMNI;
71
- if (this.chain === Network.Near) return WalletType.NEAR;
72
- if (this.chain === Network.Solana) return WalletType.SOLANA;
73
- if (this.chain === Network.OmniTon) return WalletType.TON;
74
- if (this.chain === Network.Ton) return WalletType.TON;
75
- if (this.chain === Network.Stellar) return WalletType.STELLAR;
76
- if (this.chain === Network.Juno) return WalletType.COSMOS;
77
- if (this.chain === Network.Gonka) return WalletType.COSMOS;
78
- if (this.chain === Network.Btc) return WalletType.Btc;
79
- if (this.chain === Network.Tron) return WalletType.Tron;
80
- if (this.chain === Network.Zcash) return WalletType.Zcash;
81
- if (this.chain === Network.Xrp) return WalletType.Xrp;
82
- if (this.chain === Network.Doge) return WalletType.Doge;
83
- if (this.chain === Network.Ada) return WalletType.Ada;
84
- if (this.chain === Network.Aptos) return WalletType.Aptos;
85
- if (this.chain === Network.Sui) return WalletType.Sui;
86
- if (this.chain === Network.Litecoin) return WalletType.Litecoin;
87
- if (this.chain === Network.Cardano) return WalletType.Cardano;
88
- if (this.chain > 0) return WalletType.EVM;
89
- return WalletType.unknown;
70
+ return chains.get(this.chain)?.type || WalletType.unknown;
90
71
  }
91
72
 
92
73
  get reserve() {
@@ -1,8 +1,8 @@
1
1
  import { makeObservable, observable, runInAction } from "mobx";
2
-
3
2
  import { OneClickService } from "@defuse-protocol/one-click-sdk-typescript";
3
+
4
4
  import { defaultTokens } from "./defaultTokens";
5
- import { Network, OmniToken } from "./config";
5
+ import { Network, OmniToken } from "./chains";
6
6
  import { Token } from "./token";
7
7
 
8
8
  class TokensStorage {
@@ -2,6 +2,7 @@ export interface TransferIntent {
2
2
  intent: "transfer";
3
3
  tokens: Record<string, string>;
4
4
  receiver_id: string;
5
+ memo?: string;
5
6
  msg?: string;
6
7
  min_gas?: string;
7
8
  }