@silentswap/react 0.0.92 → 0.0.94
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.
|
@@ -7,6 +7,113 @@ const AssetsContext = createContext(undefined);
|
|
|
7
7
|
let assetsStore = {};
|
|
8
8
|
let chainsStore = {};
|
|
9
9
|
let assetsLoaded = false;
|
|
10
|
+
// Match Svelte `A_CAIP2_WHITELIST_GLOBAL` ordering/filtering from `silentswap-v2-ui/src/data.ts`.
|
|
11
|
+
const CHAIN_WHITELIST_GLOBAL = new Set([
|
|
12
|
+
'eip155:1',
|
|
13
|
+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
|
|
14
|
+
'eip155:56',
|
|
15
|
+
'eip155:8453',
|
|
16
|
+
'eip155:42161',
|
|
17
|
+
'eip155:9745',
|
|
18
|
+
'eip155:999',
|
|
19
|
+
'eip155:43114',
|
|
20
|
+
'eip155:137',
|
|
21
|
+
'eip155:747474',
|
|
22
|
+
'eip155:25',
|
|
23
|
+
'eip155:59144',
|
|
24
|
+
'eip155:5000',
|
|
25
|
+
'eip155:57073',
|
|
26
|
+
'eip155:10',
|
|
27
|
+
'eip155:80094',
|
|
28
|
+
'eip155:1329',
|
|
29
|
+
'eip155:3073',
|
|
30
|
+
'eip155:14',
|
|
31
|
+
'eip155:534352',
|
|
32
|
+
'eip155:369',
|
|
33
|
+
'eip155:30',
|
|
34
|
+
'eip155:98866',
|
|
35
|
+
'eip155:222222',
|
|
36
|
+
'eip155:397',
|
|
37
|
+
'eip155:100',
|
|
38
|
+
'eip155:143',
|
|
39
|
+
'eip155:130',
|
|
40
|
+
'eip155:747',
|
|
41
|
+
'eip155:146',
|
|
42
|
+
'eip155:73927',
|
|
43
|
+
'eip155:60808',
|
|
44
|
+
'eip155:295',
|
|
45
|
+
'eip155:1440000',
|
|
46
|
+
'eip155:42793',
|
|
47
|
+
'eip155:2222',
|
|
48
|
+
'eip155:43111',
|
|
49
|
+
'eip155:252',
|
|
50
|
+
'eip155:81457',
|
|
51
|
+
'eip155:1868',
|
|
52
|
+
'eip155:1116',
|
|
53
|
+
'eip155:42220',
|
|
54
|
+
'eip155:4200',
|
|
55
|
+
'eip155:480',
|
|
56
|
+
'eip155:324',
|
|
57
|
+
'eip155:2345',
|
|
58
|
+
'eip155:2741',
|
|
59
|
+
'eip155:1729',
|
|
60
|
+
'eip155:173',
|
|
61
|
+
'eip155:2525',
|
|
62
|
+
'eip155:314',
|
|
63
|
+
'eip155:13371',
|
|
64
|
+
'eip155:167000',
|
|
65
|
+
]);
|
|
66
|
+
// Match Svelte `AS_CAIP2_BLACKLIST_INGRESS`.
|
|
67
|
+
const CHAIN_BLACKLIST_INGRESS = new Set([]);
|
|
68
|
+
// Match Svelte `H_EXCLUSIVE_TOKENS`.
|
|
69
|
+
const EXCLUSIVE_TOKENS_BY_CHAIN = {
|
|
70
|
+
'eip155:9745': new Set([
|
|
71
|
+
'eip155:9745/erc20:0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb',
|
|
72
|
+
]),
|
|
73
|
+
'eip155:747474': new Set([
|
|
74
|
+
'eip155:747474/slip44:60',
|
|
75
|
+
]),
|
|
76
|
+
'eip155:25': new Set([
|
|
77
|
+
'eip155:25/slip44:394',
|
|
78
|
+
]),
|
|
79
|
+
};
|
|
80
|
+
function getCaip2FromCaip19(caip19) {
|
|
81
|
+
const slashIndex = caip19.indexOf('/');
|
|
82
|
+
return slashIndex >= 0 ? caip19.slice(0, slashIndex) : '';
|
|
83
|
+
}
|
|
84
|
+
function applySvelteAssetFilters(allAssets, ingress = false) {
|
|
85
|
+
let filteredAssets = allAssets.filter((asset) => {
|
|
86
|
+
const caip2 = getCaip2FromCaip19(asset.caip19);
|
|
87
|
+
return CHAIN_WHITELIST_GLOBAL.size === 0 || CHAIN_WHITELIST_GLOBAL.has(caip2);
|
|
88
|
+
});
|
|
89
|
+
if (ingress) {
|
|
90
|
+
filteredAssets = filteredAssets.filter((asset) => {
|
|
91
|
+
const caip2 = getCaip2FromCaip19(asset.caip19);
|
|
92
|
+
return !CHAIN_BLACKLIST_INGRESS.has(caip2);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
for (const [chainCaip2, exclusiveAssets] of Object.entries(EXCLUSIVE_TOKENS_BY_CHAIN)) {
|
|
96
|
+
if (!exclusiveAssets.size)
|
|
97
|
+
continue;
|
|
98
|
+
filteredAssets = filteredAssets.filter((asset) => {
|
|
99
|
+
const caip2 = getCaip2FromCaip19(asset.caip19);
|
|
100
|
+
return caip2 !== chainCaip2 || exclusiveAssets.has(asset.caip19);
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return filteredAssets;
|
|
104
|
+
}
|
|
105
|
+
function applySvelteChainFilters(allChains) {
|
|
106
|
+
if (CHAIN_WHITELIST_GLOBAL.size === 0) {
|
|
107
|
+
return allChains;
|
|
108
|
+
}
|
|
109
|
+
const filteredChains = {};
|
|
110
|
+
for (const [caip2, chain] of Object.entries(allChains)) {
|
|
111
|
+
if (CHAIN_WHITELIST_GLOBAL.has(caip2)) {
|
|
112
|
+
filteredChains[caip2] = chain;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return filteredChains;
|
|
116
|
+
}
|
|
10
117
|
/**
|
|
11
118
|
* Provider for asset and chain metadata from the SDK
|
|
12
119
|
*/
|
|
@@ -26,21 +133,22 @@ export const AssetsProvider = ({ children }) => {
|
|
|
26
133
|
// Use SDK methods to get assets and chains
|
|
27
134
|
const allAssets = getAllAssetsArray();
|
|
28
135
|
const allChains = getAllChains();
|
|
29
|
-
// Convert to our format
|
|
30
|
-
const assetsMap = {};
|
|
31
|
-
allAssets.forEach((asset) => {
|
|
32
|
-
assetsMap[asset.caip19] = asset;
|
|
33
|
-
});
|
|
34
136
|
const chainsMap = {};
|
|
35
137
|
Object.entries(allChains).forEach(([caip2, chain]) => {
|
|
36
138
|
chainsMap[caip2] = chain;
|
|
37
139
|
});
|
|
140
|
+
const filteredChainsMap = applySvelteChainFilters(chainsMap);
|
|
141
|
+
const filteredAssets = applySvelteAssetFilters(allAssets, false);
|
|
142
|
+
const filteredAssetsMap = {};
|
|
143
|
+
filteredAssets.forEach((asset) => {
|
|
144
|
+
filteredAssetsMap[asset.caip19] = asset;
|
|
145
|
+
});
|
|
38
146
|
// Store globally
|
|
39
|
-
assetsStore =
|
|
40
|
-
chainsStore =
|
|
147
|
+
assetsStore = filteredAssetsMap;
|
|
148
|
+
chainsStore = filteredChainsMap;
|
|
41
149
|
assetsLoaded = true;
|
|
42
|
-
setAssets(
|
|
43
|
-
setChains(
|
|
150
|
+
setAssets(filteredAssetsMap);
|
|
151
|
+
setChains(filteredChainsMap);
|
|
44
152
|
setLoading(false);
|
|
45
153
|
}
|
|
46
154
|
catch (error) {
|
|
@@ -54,13 +162,7 @@ export const AssetsProvider = ({ children }) => {
|
|
|
54
162
|
return assets[caip19];
|
|
55
163
|
}, [assets]);
|
|
56
164
|
const getFilteredAssets = useCallback((filter) => {
|
|
57
|
-
|
|
58
|
-
// Apply ingress filter (exclude blacklisted chains)
|
|
59
|
-
if (filter?.ingress) {
|
|
60
|
-
// For now, just return all - implement blacklist logic if needed
|
|
61
|
-
filteredAssets = filteredAssets;
|
|
62
|
-
}
|
|
63
|
-
return filteredAssets;
|
|
165
|
+
return applySvelteAssetFilters(Object.values(assets), Boolean(filter?.ingress));
|
|
64
166
|
}, [assets]);
|
|
65
167
|
const value = useMemo(() => ({
|
|
66
168
|
assets,
|
|
@@ -3,7 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
3
3
|
import React, { createContext, useContext, useEffect, useMemo, useCallback } from 'react';
|
|
4
4
|
import { useSilentSwap } from '../contexts/SilentSwapContext.js';
|
|
5
5
|
import { BigNumber } from 'bignumber.js';
|
|
6
|
-
const MAX_DEPOSIT_USD =
|
|
6
|
+
const MAX_DEPOSIT_USD = 30000;
|
|
7
7
|
const PlatformHealthContext = createContext(undefined);
|
|
8
8
|
/**
|
|
9
9
|
* Provider that monitors platform health from SilentSwapContext (which calls useStatus
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silentswap/react",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.94",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@bigmi/core": "^0.6.5",
|
|
26
26
|
"@ensdomains/ensjs": "^4.2.0",
|
|
27
|
-
"@silentswap/sdk": "0.0.
|
|
28
|
-
"@silentswap/ui-kit": "0.0.
|
|
27
|
+
"@silentswap/sdk": "0.0.94",
|
|
28
|
+
"@silentswap/ui-kit": "0.0.94",
|
|
29
29
|
"@solana/codecs-strings": "^5.1.0",
|
|
30
30
|
"@solana/kit": "^5.1.0",
|
|
31
31
|
"@solana/rpc": "^5.1.0",
|