Skip to content

Commit b07ff8c

Browse files
gsteenkamp89bmzig
andauthored
feat: tatara integration (#1516)
* bump constants Signed-off-by: Gerhard Steenkamp <[email protected]> * add configs Signed-off-by: Gerhard Steenkamp <[email protected]> * update deps Signed-off-by: Gerhard Steenkamp <[email protected]> * use WETH, generate routes Signed-off-by: Gerhard Steenkamp <[email protected]> * add ui assets Signed-off-by: Gerhard Steenkamp <[email protected]> * add token icons Signed-off-by: Gerhard Steenkamp <[email protected]> * update packages and rename chain Signed-off-by: bennett <[email protected]> * update tatara api key Signed-off-by: Gerhard Steenkamp <[email protected]> * define token equivalence Signed-off-by: Gerhard Steenkamp <[email protected]> * bump constants Signed-off-by: Gerhard Steenkamp <[email protected]> * update routes Signed-off-by: bennett <[email protected]> * bump sdk Signed-off-by: Gerhard Steenkamp <[email protected]> * bump packages Signed-off-by: Gerhard Steenkamp <[email protected]> * regenerate routes Signed-off-by: Gerhard Steenkamp <[email protected]> --------- Signed-off-by: Gerhard Steenkamp <[email protected]> Signed-off-by: bennett <[email protected]> Co-authored-by: bennett <[email protected]>
1 parent a27b237 commit b07ff8c

18 files changed

+1282
-374
lines changed

api/_constants.ts

+13
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,18 @@ defaultRelayerFeeCapitalCostConfig["USDzC"] = {
124124
defaultRelayerFeeCapitalCostConfig["USDB"] = {
125125
...defaultRelayerFeeCapitalCostConfig["DAI"],
126126
};
127+
defaultRelayerFeeCapitalCostConfig["TATARA-USDC"] = {
128+
...defaultRelayerFeeCapitalCostConfig["USDC"],
129+
};
130+
defaultRelayerFeeCapitalCostConfig["TATARA-USDT"] = {
131+
...defaultRelayerFeeCapitalCostConfig["USDC"],
132+
};
133+
defaultRelayerFeeCapitalCostConfig["TATARA-USDS"] = {
134+
...defaultRelayerFeeCapitalCostConfig["USDC"],
135+
};
136+
defaultRelayerFeeCapitalCostConfig["TATARA-WBTC"] = {
137+
...defaultRelayerFeeCapitalCostConfig["WBTC"],
138+
};
127139

128140
export const coinGeckoAssetPlatformLookup: Record<string, number> = {
129141
"0x4200000000000000000000000000000000000042": CHAIN_IDs.OPTIMISM,
@@ -167,6 +179,7 @@ export const SUPPORTED_CG_BASE_CURRENCIES = new Set(["eth", "usd"]);
167179
export const SUPPORTED_CG_DERIVED_CURRENCIES = new Set(["azero", "matic"]);
168180
export const CG_CONTRACTS_DEFERRED_TO_ID = new Set([
169181
TOKEN_SYMBOLS_MAP.AZERO.addresses[CHAIN_IDs.MAINNET],
182+
...Object.values(TOKEN_SYMBOLS_MAP["TATARA-USDC"].addresses),
170183
]);
171184

172185
// 1:1 because we don't need to handle underlying tokens on FE

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
"private": true,
55
"license": "AGPL-3.0-only",
66
"dependencies": {
7-
"@across-protocol/constants": "^3.1.42",
8-
"@across-protocol/contracts": "^4.0.2",
7+
"@across-protocol/constants": "^3.1.51",
8+
"@across-protocol/contracts": "^4.0.5",
99
"@across-protocol/contracts-v3.0.6": "npm:@across-protocol/[email protected]",
10-
"@across-protocol/sdk": "^4.1.19",
10+
"@across-protocol/sdk": "^4.1.42",
1111
"@amplitude/analytics-browser": "^2.3.5",
1212
"@balancer-labs/sdk": "1.1.6-beta.16",
1313
"@emotion/react": "^11.13.0",

scripts/chain-configs/base-sepolia/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default {
1717
},
1818
chainId,
1919
publicRpcUrl: "https://sepolia.base.org",
20-
tokens: ["WETH", "ETH", "USDC", "XYZ"],
20+
tokens: ["WETH", "ETH", "USDC", "XYZ", "TATARA-USDC"],
2121
enableCCTP: true,
2222
swapTokens: [
2323
{

scripts/chain-configs/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export { default as REDSTONE } from "./redstone";
2121
export { default as SCROLL } from "./scroll";
2222
export { default as SEPOLIA } from "./sepolia";
2323
export { default as SONEIUM } from "./soneium";
24+
export { default as TATARA } from "./tatara";
2425
export { default as UNICHAIN } from "./unichain";
2526
export { default as UNICHAIN_SEPOLIA } from "./unichain-sepolia";
2627
export { default as WORLD_CHAIN } from "./world-chain";

scripts/chain-configs/polygon-amoy/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default {
1818
},
1919
chainId,
2020
publicRpcUrl: "https://rpc-amoy.polygon.technology",
21-
tokens: ["WETH"],
21+
tokens: ["WETH", "TATARA-USDC"],
2222
enableCCTP: false,
2323
swapTokens: [],
2424
} as ChainConfig;

scripts/chain-configs/sepolia/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export default {
1717
},
1818
chainId,
1919
publicRpcUrl: "https://gateway.tenderly.co/public/sepolia",
20-
tokens: ["WETH", "ETH", "USDC", "GRASS", "XYZ"],
20+
tokens: ["WETH", "ETH", "USDC", "GRASS", "XYZ", "TATARA-USDC"],
2121
enableCCTP: false,
2222
swapTokens: [],
2323
} as ChainConfig;
Loading
Loading

scripts/chain-configs/tatara/index.ts

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { CHAIN_IDs, PUBLIC_NETWORKS } from "@across-protocol/constants";
2+
import { utils as sdkUtils } from "@across-protocol/sdk";
3+
import { ChainConfig } from "../types";
4+
5+
const { getDeployedAddress, getDeployedBlockNumber } = sdkUtils;
6+
7+
const chainId = CHAIN_IDs.TATARA;
8+
const chainInfoBase = PUBLIC_NETWORKS[chainId];
9+
10+
export default {
11+
...chainInfoBase,
12+
logoPath: "./assets/logo.svg",
13+
grayscaleLogoPath: "./assets/grayscale-logo.svg",
14+
spokePool: {
15+
address: getDeployedAddress("SpokePool", chainId),
16+
blockNumber: getDeployedBlockNumber("SpokePool", chainId),
17+
},
18+
chainId,
19+
publicRpcUrl:
20+
"https://rpc.tatara.katanarpc.com/DYsaaqa6zme7taA8LskCQnkAZghSPtPQk",
21+
blockTimeSeconds: 1,
22+
tokens: ["TATARA-USDC", "WETH"],
23+
enableCCTP: false,
24+
} as ChainConfig;

scripts/generate-routes.ts

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ const enabledSepoliaChainConfigs = [
6565
chainConfigs.LISK_SEPOLIA,
6666
chainConfigs.LENS_SEPOLIA,
6767
chainConfigs.UNICHAIN_SEPOLIA,
68+
chainConfigs.TATARA,
6869
];
6970

7071
const enabledRoutes = {
Loading

src/assets/chain-logos/tatara.svg

+7
Loading

src/constants/chains/configs.ts

+48
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,11 @@ import soneiumGrayscaleLogo from "assets/chain-logos/soneium-grayscale.svg";
116116
import { ReactComponent as soneiumLogoSvg } from "assets/chain-logos/soneium.svg";
117117
import { ReactComponent as soneiumGrayscaleLogoSvg } from "assets/chain-logos/soneium-grayscale.svg";
118118

119+
import katanaTataraLogo from "assets/chain-logos/tatara.svg";
120+
import katanaTataraGrayscaleLogo from "assets/chain-logos/tatara-grayscale.svg";
121+
import { ReactComponent as katanaTataraLogoSvg } from "assets/chain-logos/tatara.svg";
122+
import { ReactComponent as katanaTataraGrayscaleLogoSvg } from "assets/chain-logos/tatara-grayscale.svg";
123+
119124
import unichainLogo from "assets/chain-logos/unichain.svg";
120125
import unichainGrayscaleLogo from "assets/chain-logos/unichain-grayscale.svg";
121126
import { ReactComponent as unichainLogoSvg } from "assets/chain-logos/unichain.svg";
@@ -1067,6 +1072,47 @@ export const soneium_viem = defineChain({
10671072
},
10681073
});
10691074

1075+
export const katanaTatara = {
1076+
name: "Tatara",
1077+
fullName: "Tatara",
1078+
chainId: 129399,
1079+
logoURI: katanaTataraLogo,
1080+
grayscaleLogoURI: katanaTataraGrayscaleLogo,
1081+
logoSvg: katanaTataraLogoSvg,
1082+
grayscaleLogoSvg: katanaTataraGrayscaleLogoSvg,
1083+
rpcUrl: "https://rpc.tatara.katanarpc.com/DYsaaqa6zme7taA8LskCQnkAZghSPtPQk",
1084+
explorerUrl: "https://explorer.tatara.katana.network",
1085+
constructExplorerLink: (txHash: string) =>
1086+
`${katanaTatara.explorerUrl}/tx/${txHash}`,
1087+
nativeCurrencySymbol: "ETH",
1088+
customRpcUrl: process.env.REACT_APP_CHAIN_129399_CUSTOM_RPC_URL,
1089+
pollingInterval: 1000,
1090+
};
1091+
1092+
export const katanaTatara_viem = defineChain({
1093+
id: katanaTatara.chainId,
1094+
name: katanaTatara.name,
1095+
nativeCurrency: {
1096+
name: katanaTatara.nativeCurrencySymbol,
1097+
symbol: katanaTatara.nativeCurrencySymbol,
1098+
decimals: 18,
1099+
},
1100+
rpcUrls: {
1101+
default: {
1102+
http: [
1103+
katanaTatara.rpcUrl,
1104+
katanaTatara.customRpcUrl ? katanaTatara.customRpcUrl : [],
1105+
].flat(),
1106+
},
1107+
},
1108+
blockExplorers: {
1109+
default: {
1110+
name: katanaTatara.name + " Explorer",
1111+
url: katanaTatara.explorerUrl,
1112+
},
1113+
},
1114+
});
1115+
10701116
export const unichain = {
10711117
name: "Unichain",
10721118
fullName: "Unichain",
@@ -1305,6 +1351,7 @@ export const chainConfigs = [
13051351
scroll,
13061352
sepolia,
13071353
soneium,
1354+
katanaTatara,
13081355
unichain,
13091356
unichainSepolia,
13101357
worldChain,
@@ -1342,6 +1389,7 @@ export const chains_viem = [
13421389
scroll_viem,
13431390
sepolia_viem,
13441391
soneium_viem,
1392+
katanaTatara_viem,
13451393
unichain_viem,
13461394
unichainSepolia_viem,
13471395
worldChain_viem,

src/constants/chains/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ const orderedEnabledChainIds = [
3939
CHAIN_IDs.LISK_SEPOLIA,
4040
CHAIN_IDs.LENS_SEPOLIA,
4141
CHAIN_IDs.UNICHAIN_SEPOLIA,
42+
CHAIN_IDs.TATARA,
4243
];
4344

4445
export const chainInfoList: ChainInfoList = orderedEnabledChainIds.map(

src/constants/tokens.ts

+4
Original file line numberDiff line numberDiff line change
@@ -88,4 +88,8 @@ export const orderedTokenLogos = {
8888
GRASS: unknownLogo,
8989
WGRASS: unknownLogo,
9090
XYZ: unknownLogo,
91+
"TATARA-USDC": usdcLogo,
92+
"TATARA-USDS": unknownLogo,
93+
"TATARA-USDT": usdtLogo,
94+
"TATARA-WBTC": wbtcLogo,
9195
};

src/data/chains_11155111.json

+90
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@
3636
"decimals": 18,
3737
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/xyz.svg"
3838
},
39+
{
40+
"address": "0x2b9Ca0A8C773bb1B92A3dDAE9F882Fd14457DACc",
41+
"symbol": "TATARA-USDC",
42+
"name": "Tatara USDC",
43+
"decimals": 6,
44+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
45+
},
3946
{
4047
"address": "0x2Be68B15c693D3b5747F9F0D49D30A2E81BAA2Df",
4148
"symbol": "GRASS",
@@ -73,6 +80,13 @@
7380
"decimals": 18,
7481
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/xyz.svg"
7582
},
83+
{
84+
"address": "0x2b9Ca0A8C773bb1B92A3dDAE9F882Fd14457DACc",
85+
"symbol": "TATARA-USDC",
86+
"name": "Tatara USDC",
87+
"decimals": 6,
88+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
89+
},
7690
{
7791
"address": "0x2Be68B15c693D3b5747F9F0D49D30A2E81BAA2Df",
7892
"symbol": "GRASS",
@@ -118,6 +132,13 @@
118132
"name": "XYZ Token",
119133
"decimals": 18,
120134
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/xyz.svg"
135+
},
136+
{
137+
"address": "0x3c95BB5f49F3643558aa8F699403564A652FBeB0",
138+
"symbol": "TATARA-USDC",
139+
"name": "Tatara USDC",
140+
"decimals": 6,
141+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
121142
}
122143
],
123144
"outputTokens": [
@@ -155,6 +176,13 @@
155176
"name": "XYZ Token",
156177
"decimals": 18,
157178
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/xyz.svg"
179+
},
180+
{
181+
"address": "0x3c95BB5f49F3643558aa8F699403564A652FBeB0",
182+
"symbol": "TATARA-USDC",
183+
"name": "Tatara USDC",
184+
"decimals": 6,
185+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
158186
}
159187
]
160188
},
@@ -338,6 +366,13 @@
338366
"name": "Wrapped Ether",
339367
"decimals": 18,
340368
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/weth.svg"
369+
},
370+
{
371+
"address": "0x8B0180f2101c8260d49339abfEe87927412494B4",
372+
"symbol": "TATARA-USDC",
373+
"name": "Tatara USDC",
374+
"decimals": 6,
375+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
341376
}
342377
],
343378
"outputTokens": [
@@ -354,6 +389,13 @@
354389
"name": "Ether",
355390
"decimals": 18,
356391
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/eth.svg"
392+
},
393+
{
394+
"address": "0x8B0180f2101c8260d49339abfEe87927412494B4",
395+
"symbol": "TATARA-USDC",
396+
"name": "Tatara USDC",
397+
"decimals": 6,
398+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
357399
}
358400
]
359401
},
@@ -548,5 +590,53 @@
548590
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/usdc.svg"
549591
}
550592
]
593+
},
594+
{
595+
"chainId": 129399,
596+
"name": "Tatara",
597+
"publicRpcUrl": "https://rpc.tatara.katanarpc.com/DYsaaqa6zme7taA8LskCQnkAZghSPtPQk",
598+
"explorerUrl": "https://explorer.tatara.katana.network",
599+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/scripts/chain-configs/tatara/assets/logo.svg",
600+
"spokePool": "0x09aea4b2242abC8bb4BB78D537A67a245A7bEC64",
601+
"spokePoolBlock": 2929205,
602+
"inputTokens": [
603+
{
604+
"address": "0x102E14ffF48170F2e5b6d0e30259fCD4eE5E28aE",
605+
"symbol": "TATARA-USDC",
606+
"name": "Tatara USDC",
607+
"decimals": 6,
608+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
609+
},
610+
{
611+
"address": "0x17B8Ee96E3bcB3b04b3e8334de4524520C51caB4",
612+
"symbol": "WETH",
613+
"name": "Wrapped Ether",
614+
"decimals": 18,
615+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/weth.svg"
616+
}
617+
],
618+
"outputTokens": [
619+
{
620+
"address": "0x17B8Ee96E3bcB3b04b3e8334de4524520C51caB4",
621+
"symbol": "WETH",
622+
"name": "Wrapped Ether",
623+
"decimals": 18,
624+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/weth.svg"
625+
},
626+
{
627+
"address": "0x17B8Ee96E3bcB3b04b3e8334de4524520C51caB4",
628+
"symbol": "ETH",
629+
"name": "Ether",
630+
"decimals": 18,
631+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/eth.svg"
632+
},
633+
{
634+
"address": "0x102E14ffF48170F2e5b6d0e30259fCD4eE5E28aE",
635+
"symbol": "TATARA-USDC",
636+
"name": "Tatara USDC",
637+
"decimals": 6,
638+
"logoUrl": "https://raw.githubusercontent.com/across-protocol/frontend/master/src/assets/token-logos/tatara-usdc.svg"
639+
}
640+
]
551641
}
552642
]

0 commit comments

Comments
 (0)