Skip to content

Commit b3b4e26

Browse files
authored
Unichain CCTP support (#794)
* Unichain CCTP support * Added Unichain blockTimeMilliseconds entry * Added Unichain mainnet rpc entry * tweak finality for unichain
1 parent ab661a7 commit b3b4e26

File tree

4 files changed

+22
-4
lines changed

4 files changed

+22
-4
lines changed

core/base/src/constants/circle.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ const usdcContracts = [[
2020
["Base", "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"],
2121
["Polygon", "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359"],
2222
["Sui", "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC"],
23-
["Aptos", "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b"]
23+
["Aptos", "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b"],
24+
["Unichain", "0x078D782b760474a361dDA0AF3839290b0EF57AD6"]
2425
]], [
2526
"Testnet", [
2627
["Sepolia", "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238"],
@@ -31,13 +32,14 @@ const usdcContracts = [[
3132
["BaseSepolia", "0x036CbD53842c5426634e7929541eC2318f3dCF7e"],
3233
["Polygon", "0x9999f7Fea5938fD3b1E26A12c3f2fb024e194f97"],
3334
["Sui", "0xa1ec7fc00a6f40db9693ad1415d0c193ad3906494428cf252621037bd7117e29::usdc::USDC"],
34-
["Aptos", "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832"]
35+
["Aptos", "0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832"],
36+
["Unichain", "0x31d0220469e10c4E71834a79b1f276d740d3768F"]
3537
]],
3638
] as const satisfies MapLevel<Network, MapLevel<Chain, string>>;
3739
export const usdcContract = constMap(usdcContracts);
3840

3941
// prettier-ignore
40-
// https://developers.circle.com/stablecoin/docs/cctp-technical-reference#domain-list
42+
// https://developers.circle.com/stablecoins/supported-domains
4143
const circleDomains = [[
4244
"Mainnet", [
4345
["Ethereum", 0],
@@ -49,6 +51,7 @@ const circleDomains = [[
4951
["Polygon", 7],
5052
["Sui", 8],
5153
["Aptos", 9],
54+
["Unichain", 10],
5255
]], [
5356
"Testnet", [
5457
["Sepolia", 0],
@@ -60,6 +63,7 @@ const circleDomains = [[
6063
["Polygon", 7],
6164
["Sui", 8],
6265
["Aptos", 9],
66+
["Unichain", 10],
6367
]],
6468
] as const satisfies MapLevel<Network, MapLevel<Chain, number>>;
6569

core/base/src/constants/contracts/circle.ts

+12
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,12 @@ export const circleContracts = [[
6565
messageTransmitter: "0x177e17751820e4b4371873ca8c30279be63bdea63b88ed0f2239c2eea10f1772",
6666
wormholeRelayer: "",
6767
wormhole: "",
68+
}], [
69+
"Unichain", {
70+
tokenMessenger: "0x4e744b28E787c3aD0e810eD65A24461D4ac5a762",
71+
messageTransmitter: "0x353bE9E2E38AB1D19104534e4edC21c643Df86f4",
72+
wormholeRelayer: "",
73+
wormhole: "",
6874
}],
6975
]], [
7076
"Testnet", [[
@@ -121,6 +127,12 @@ export const circleContracts = [[
121127
messageTransmitter: "0x081e86cebf457a0c6004f35bd648a2794698f52e0dde09a48619dcd3d4cc23d9",
122128
wormholeRelayer: "",
123129
wormhole: "",
130+
}], [
131+
"Unichain", {
132+
tokenMessenger: "0x8ed94B8dAd2Dc5453862ea5e316A8e71AAed9782",
133+
messageTransmitter: "0xbc498c326533d675cf571B90A2Ced265ACb7d086",
134+
wormholeRelayer: "",
135+
wormhole: "",
124136
}],
125137
]],
126138
] as const satisfies MapLevels<[Network, Chain, CircleContracts]>;

core/base/src/constants/finality.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ const finalityThresholds = [
6262
["Berachain", 1],
6363
["Seievm", 1],
6464
["Snaxchain", 512],
65-
["Unichain", 512],
65+
["Unichain", 1024], // TODO: validate, this is inferred from vaa metrics timing
6666
["Ink", 512],
6767
["HyperEVM", 1],
6868
["Monad", 1],
@@ -133,6 +133,7 @@ const blockTimeMilliseconds = [
133133
["Sui", 3_000],
134134
["Terra", 6_000],
135135
["Terra2", 6_000],
136+
["Unichain", 1_000],
136137
["Xpla", 5_000],
137138
["Xlayer", 3_000],
138139
["Worldchain", 2_000],

core/base/src/constants/rpc.ts

+1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const rpcConfig = [[
5050
["Berachain", "https://rpc.berachain.com"],
5151
["Unichain", "https://mainnet.unichain.org"],
5252
["Worldchain","https://worldchain-mainnet.g.alchemy.com/public"],
53+
["Unichain", "https://mainnet.unichain.org"],
5354
]], [
5455
"Testnet", [
5556
["Ethereum", "https://eth-sepolia.public.blastapi.io"],

0 commit comments

Comments
 (0)