Skip to content

Commit 5805cb1

Browse files
authored
Merge pull request QuickSwap#1748 from 0xoscario/feat/somnia-chain
2 parents 01353f1 + 43718f3 commit 5805cb1

File tree

14 files changed

+182
-6
lines changed

14 files changed

+182
-6
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"@typescript-eslint/eslint-plugin": "^5.3.1",
1919
"@typescript-eslint/parser": "^5.3.1",
2020
"@uniswap/liquidity-staker": "^1.0.2",
21-
"@uniswap/sdk": "npm:quickswap-sdk@3.0.35",
21+
"@uniswap/sdk": "npm:quickswap-sdk@3.0.37",
2222
"@uniswap/sdk-core": "^3.2.2",
2323
"@uniswap/token-lists": "npm:quickswap-token-lists@^1.0.2",
2424
"@uniswap/v2-core": "1.0.0",

public/STT.png

922 Bytes
Loading

public/somnia.png

922 Bytes
Loading

src/config/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import astarZkevm from './astarzkevm.json';
1313
import layerX from './layerx.json';
1414
import minato from './minato.json';
1515
import soneium from './soneium.json';
16+
import somnia from './somnia.json';
1617
import orderlyFeeTiers from './orderlyFeeTiers.json';
1718
import { ChainId } from '@uniswap/sdk';
1819

@@ -31,6 +32,7 @@ const configs: any = {
3132
[ChainId.LAYERX]: layerX,
3233
[ChainId.MINATO]: minato,
3334
[ChainId.SONEIUM]: soneium,
35+
[ChainId.SOMNIA]: somnia,
3436
};
3537

3638
export const getConfig = (network: ChainId | undefined) => {

src/config/somnia.json

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
{
2+
"v4": true,
3+
"v3": false,
4+
"v2": false,
5+
"rpc": "https://dream-rpc.somnia.network/",
6+
"blockExplorer": "https://somnia-testnet.socialscan.io/",
7+
"chainId": 50312,
8+
"isMainnet": false,
9+
"visible": true,
10+
"networkName": "Somnia Testnet",
11+
"nativeCurrencyImage": "/somnia.png",
12+
"nativeCurrency": {
13+
"name": "Somnia Token",
14+
"symbol": "STT",
15+
"decimals": 18
16+
},
17+
"bridge": {
18+
"available": true
19+
},
20+
"swap": {
21+
"available": true,
22+
"bestTrade": false,
23+
"proMode": false,
24+
"limitOrder": false,
25+
"liquidityHub": false,
26+
"twapOrder": false,
27+
"crossChain": false
28+
},
29+
"pools": {
30+
"available": true
31+
},
32+
"farm": {
33+
"quickswap": false,
34+
"merkl": false,
35+
"available": false
36+
},
37+
"lair": {
38+
"available": false,
39+
"oldLair": false,
40+
"newLair": false,
41+
"syrup": false
42+
},
43+
"convert": {
44+
"available": false
45+
},
46+
"predictions": {
47+
"available": false
48+
},
49+
"analytics": {
50+
"liquidityHub": false,
51+
"available": true
52+
},
53+
"lending": {
54+
"available": false
55+
},
56+
"migrate": {
57+
"available": false
58+
},
59+
"gamingHub": {
60+
"available": false
61+
},
62+
"leaderboard": {
63+
"available": false
64+
},
65+
"safe": {
66+
"available": false
67+
},
68+
"perps": {
69+
"available": false
70+
},
71+
"hydra": {
72+
"available": false
73+
},
74+
"perpsV2": {
75+
"available": false
76+
},
77+
"bos": {
78+
"available": false
79+
},
80+
"gamma": {
81+
"available": false
82+
},
83+
"unipilot": {
84+
"available": false
85+
},
86+
"defiedge": {
87+
"available": false
88+
},
89+
"bonds": {
90+
"available": false
91+
},
92+
"steer": {
93+
"available": false
94+
},
95+
"dappos": {
96+
"available": false
97+
},
98+
"ichi": {
99+
"available": false
100+
},
101+
"lpLock": {
102+
"available": false
103+
},
104+
"poolInitCodeHash": "0xb3fc09be5eb433d99b1ec89fd8435aaf5ffea75c1879e19028aa2414a14b3c85",
105+
"maxHops": 3,
106+
"maxChunks": 400,
107+
"blocksPerFetch": 30
108+
}

src/constants/index.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ export const CHAIN_IDS_TO_NAMES = {
122122
[ChainId.ETHEREUM]: 'ethereum',
123123
[ChainId.MINATO]: 'minato',
124124
[ChainId.SONEIUM]: 'soneium',
125+
[ChainId.SOMNIA]: 'somnia_testnet',
125126
};
126127

127128
export enum ZapType {
@@ -222,6 +223,7 @@ export const MIN_NATIVE_CURRENCY_FOR_GAS: {
222223
[ChainId.LAYERX]: JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(15)),
223224
[ChainId.MINATO]: JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(14)),
224225
[ChainId.SONEIUM]: JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(14)),
226+
[ChainId.SOMNIA]: JSBI.exponentiate(JSBI.BigInt(10), JSBI.BigInt(14)),
225227
};
226228

227229
export const GlobalConst = {
@@ -388,6 +390,7 @@ export const SUPPORTED_CHAINIDS = [
388390
ChainId.DOEGCHAIN_TESTNET,
389391
ChainId.MINATO,
390392
ChainId.SONEIUM,
393+
ChainId.SOMNIA,
391394
];
392395

393396
export interface GammaPair {
@@ -2632,6 +2635,7 @@ export const GlobalValue = {
26322635
[ChainId.ETHEREUM]: [],
26332636
[ChainId.MINATO]: [],
26342637
[ChainId.SONEIUM]: [],
2638+
[ChainId.SOMNIA]: [],
26352639
},
26362640
},
26372641
marketSDK: {
@@ -2727,6 +2731,7 @@ export const GlobalData = {
27272731
[ChainId.ETHEREUM]: [],
27282732
[ChainId.MINATO]: [USDC[ChainId.SONEIUM]],
27292733
[ChainId.SONEIUM]: [USDC[ChainId.SONEIUM], USDT[ChainId.SONEIUM]],
2734+
[ChainId.SOMNIA]: [USDC[ChainId.SOMNIA], USDT[ChainId.SOMNIA]],
27302735
},
27312736
blueChips: {
27322737
[ChainId.MATIC]: [
@@ -2805,6 +2810,11 @@ export const GlobalData = {
28052810
USDC[ChainId.SONEIUM],
28062811
USDT[ChainId.SONEIUM],
28072812
],
2813+
[ChainId.SOMNIA]: [
2814+
WETH[ChainId.SOMNIA],
2815+
USDC[ChainId.SOMNIA],
2816+
USDT[ChainId.SOMNIA],
2817+
],
28082818
},
28092819
stablePairs: {
28102820
[ChainId.MATIC]: [
@@ -2843,6 +2853,7 @@ export const GlobalData = {
28432853
[ChainId.ETHEREUM]: [],
28442854
[ChainId.MINATO]: [],
28452855
[ChainId.SONEIUM]: [],
2856+
[ChainId.SOMNIA]: [],
28462857
},
28472858
quickBurns: {
28482859
CHART_DURATIONS: [

src/constants/providers.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const rpcMap = {
2424
[ChainId.ETHEREUM]: 'https://eth.llamarpc.com',
2525
[ChainId.MINATO]: 'https://rpc.minato.soneium.org',
2626
[ChainId.SONEIUM]: 'https://rpc.soneium.org/',
27+
[ChainId.SOMNIA]: 'https://dream-rpc.somnia.network/',
2728
};
2829

2930
class AppJsonRpcProvider extends StaticJsonRpcProvider {
@@ -94,4 +95,5 @@ export const RPC_PROVIDERS: {
9495
[ChainId.LAYERX]: new AppJsonRpcProvider(ChainId.LAYERX),
9596
[ChainId.MINATO]: new AppJsonRpcProvider(ChainId.MINATO),
9697
[ChainId.SONEIUM]: new AppJsonRpcProvider(ChainId.SONEIUM),
98+
[ChainId.SOMNIA]: new AppJsonRpcProvider(ChainId.SOMNIA),
9799
};

src/constants/v3/addresses.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const WETH_ONLY: ChainTokenList = {
3737
[ChainId.LAYERX]: [WETH[ChainId.LAYERX]],
3838
[ChainId.MINATO]: [WETH[ChainId.MINATO]],
3939
[ChainId.SONEIUM]: [WETH[ChainId.SONEIUM]],
40+
[ChainId.SOMNIA]: [WETH[ChainId.SOMNIA]],
4041
};
4142

4243
export const toV2Token = (t: {
@@ -96,6 +97,7 @@ export const MULTICALL_NETWORKS: { [chainId in ChainId]?: string } = {
9697
[ChainId.ETHEREUM]: '0xcA11bde05977b3631167028862bE2a173976CA11',
9798
[ChainId.MINATO]: '0x55BeE1bD3Eb9986f6d2d963278de09eE92a3eF1D',
9899
[ChainId.SONEIUM]: '0x69465675e2125414f26ED3139218abBDDe3C4daa',
100+
[ChainId.SOMNIA]: '0x676A5ad5960d08bCD3ec83f8C086b76f33Aa921b',
99101
};
100102

101103
export const defaultBondDexFactories: {
@@ -157,6 +159,7 @@ export const POOL_DEPLOYER_ADDRESS: AddressMap = {
157159
export const POOL_V4_DEPLOYER_ADDRESS: AddressMap = {
158160
[ChainId.LAYERX]: '0x9815e9311a13E5b0DC93E6255b8B45Cd8b6c9773',
159161
[ChainId.SONEIUM]: '0x7B446Bfb3763Ed0892f08893Eb06Dda79aB28CB9',
162+
[ChainId.SOMNIA]: '0x15fCbF9bC0797567053A8265b7E6f4eC43EA7327',
160163
};
161164

162165
export const QUOTER_ADDRESSES: AddressMap = {
@@ -171,6 +174,7 @@ export const QUOTER_ADDRESSES: AddressMap = {
171174
export const QUOTER_V4_ADDRESSES: AddressMap = {
172175
[ChainId.LAYERX]: '0x7a40CBb30B0aDe60e95634D8A62464a073f6Bcec',
173176
[ChainId.SONEIUM]: '0x4c5663252bBAB0a3B303a711823aD70a0ec9aE31',
177+
[ChainId.SOMNIA]: '0x34D6F4f7D27B94C157aE3DB2D17C1beCB1bBF89C',
174178
};
175179

176180
export const UNIV3_QUOTER_ADDRESSES: AddressMap = {
@@ -196,6 +200,7 @@ export const SWAP_ROUTER_ADDRESSES: AddressMap = {
196200
export const SWAP_ROUTER_V4_ADDRESSES: AddressMap = {
197201
[ChainId.LAYERX]: '0x8e3CF621BDbfB1c0A5EC425dcCddA86E07F557C4',
198202
[ChainId.SONEIUM]: '0xeba58c20629ddab41e21a3E4E2422E583ebD9719',
203+
[ChainId.SOMNIA]: '0xE94de02e52Eaf9F0f6Bf7f16E4927FcBc2c09bC7',
199204
};
200205

201206
export const SWAP_ROUTER_ADDRESS: AddressMap = {
@@ -214,6 +219,7 @@ export const NONFUNGIBLE_POSITION_MANAGER_ADDRESSES: AddressMap = {
214219
export const NONFUNGIBLE_POSITION_V4_MANAGER_ADDRESSES: AddressMap = {
215220
[ChainId.LAYERX]: '0x60cdF877e536F6384D8D5aA20c266A8Ad5AE0a4c',
216221
[ChainId.SONEIUM]: '0x0629B3c6E1cCfF2e31e3A9Bd67ec96b23BE6f1e9',
222+
[ChainId.SOMNIA]: '0x37A4950b4ea0C46596404895c5027B088B0e70e7',
217223
};
218224

219225
export const UNI_V3_FACTORY_ADDRESS: AddressMap = {
@@ -278,6 +284,7 @@ export const MULTICALL_ADDRESS: AddressMap = {
278284
[ChainId.LAYERX]: '0xc7efb32470dEE601959B15f1f923e017C6A918cA',
279285
[ChainId.MINATO]: '0xc7efb32470dEE601959B15f1f923e017C6A918cA',
280286
[ChainId.SONEIUM]: '0x2E4C17aEE528084e6dB16882d24fc1Dd0Ef20D97',
287+
[ChainId.SOMNIA]: '0x1B3B62B519a60E8927d4FfbB54681871e1Bb6F11',
281288
};
282289

283290
export const V3_MIGRATOR_ADDRESSES: AddressMap = {
@@ -501,6 +508,7 @@ export const WMATIC_EXTENDED: { [chainId: number]: TokenV3 } = {
501508
[ChainId.LAYERX]: toV3Token(WETH[ChainId.LAYERX]),
502509
[ChainId.MINATO]: toV3Token(WETH[ChainId.MINATO]),
503510
[ChainId.SONEIUM]: toV3Token(WETH[ChainId.SONEIUM]),
511+
[ChainId.SOMNIA]: toV3Token(WETH[ChainId.SOMNIA]),
504512
};
505513

506514
export const USDC: { [chainId: number]: Token } = {
@@ -602,6 +610,13 @@ export const USDC: { [chainId: number]: Token } = {
602610
'USDC.e',
603611
'USDC.e',
604612
),
613+
[ChainId.SOMNIA]: new Token(
614+
ChainId.SOMNIA,
615+
'0xe21f846620a79422bfdb12f98d895ddae3420d1e',
616+
18,
617+
'USDC',
618+
'USDC',
619+
),
605620
};
606621

607622
export const USDCE: { [chainId: number]: Token } = {
@@ -709,6 +724,13 @@ export const USDT: { [chainId: number]: Token } = {
709724
'USDT',
710725
'Tether USD',
711726
),
727+
[ChainId.SOMNIA]: new Token(
728+
ChainId.SOMNIA,
729+
'0x3A4ab5D5Eec8041D173c899a4169b6a895C5CF75',
730+
18,
731+
'USDT',
732+
'USDT',
733+
),
712734
};
713735

714736
export const OLD_QUICK: { [chainId: number]: Token } = {
@@ -1632,6 +1654,11 @@ export const V3_BASES_TO_CHECK_TRADES_AGAINST: {
16321654
toV3Token(USDT[ChainId.SONEIUM]),
16331655
toV3Token(ASTR[ChainId.SONEIUM]),
16341656
],
1657+
[ChainId.SOMNIA]: [
1658+
WMATIC_EXTENDED[ChainId.SOMNIA],
1659+
toV3Token(USDC[ChainId.SOMNIA]),
1660+
toV3Token(USDT[ChainId.SOMNIA]),
1661+
],
16351662
};
16361663

16371664
export const SUGGESTED_BASES: {
@@ -1708,6 +1735,12 @@ export const SUGGESTED_BASES: {
17081735
USDC[ChainId.SONEIUM],
17091736
USDT[ChainId.SONEIUM],
17101737
ASTR[ChainId.SONEIUM],
1738+
WBTC[ChainId.SONEIUM],
1739+
],
1740+
[ChainId.SOMNIA]: [
1741+
WETH[ChainId.SOMNIA],
1742+
USDC[ChainId.SOMNIA],
1743+
USDT[ChainId.SOMNIA],
17111744
],
17121745
};
17131746

@@ -1815,6 +1848,11 @@ export const V3_BASES_TO_TRACK_LIQUIDITY_FOR: {
18151848
toV3Token(USDT[ChainId.SONEIUM]),
18161849
toV3Token(ASTR[ChainId.SONEIUM]),
18171850
],
1851+
[ChainId.SOMNIA]: [
1852+
WMATIC_EXTENDED[ChainId.SOMNIA],
1853+
toV3Token(USDC[ChainId.SOMNIA]),
1854+
toV3Token(USDT[ChainId.SOMNIA]),
1855+
],
18181856
};
18191857

18201858
export const V2_PINNED_PAIRS: {
@@ -1902,6 +1940,7 @@ export const wrappedTokenAddresses: {
19021940
[ChainId.DOEGCHAIN_TESTNET]: WETH[ChainId.DOEGCHAIN_TESTNET].address,
19031941
[ChainId.MINATO]: WETH[ChainId.MINATO].address,
19041942
[ChainId.SONEIUM]: WETH[ChainId.SONEIUM].address,
1943+
[ChainId.SOMNIA]: WETH[ChainId.SOMNIA].address,
19051944
};
19061945

19071946
export const nativeTokenSymbols: {
@@ -1925,4 +1964,5 @@ export const nativeTokenSymbols: {
19251964
[ChainId.DOEGCHAIN_TESTNET]: 'DOGE',
19261965
[ChainId.MINATO]: 'ETH',
19271966
[ChainId.SONEIUM]: 'ETH',
1967+
[ChainId.SOMNIA]: 'STT',
19281968
};

src/constants/v3/chains.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,13 @@ export const CHAIN_INFO: ChainInfo = {
155155
nativeCurrencyName: 'Ether',
156156
nativeCurrencyDecimals: 18,
157157
},
158+
[ChainId.SOMNIA]: {
159+
docs: 'https://algebra.finance/',
160+
explorer: 'https://somnia-testnet.socialscan.io',
161+
infoLink: 'https://algebra.finance',
162+
label: 'somnia',
163+
nativeCurrencySymbol: 'STT',
164+
nativeCurrencyName: 'Somnia Token',
165+
nativeCurrencyDecimals: 18,
166+
},
158167
};

0 commit comments

Comments
 (0)