Skip to content

Commit

Permalink
add lz berachain bridge supports
Browse files Browse the repository at this point in the history
  • Loading branch information
brightiron committed Feb 8, 2025
1 parent 9048ad5 commit cfbc06d
Show file tree
Hide file tree
Showing 9 changed files with 71 additions and 3 deletions.
6 changes: 6 additions & 0 deletions public/assets/images/berachain.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 16 additions & 3 deletions src/constants/addresses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@ export const OHM_ADDRESSES = {
[NetworkId.BASE]: "0x060cb087a9730E13aa191f31A6d86bFF8DfcdCC0",
[NetworkId.BASE_TESTNET]: "",
[NetworkId.ARBITRUM_GOERLI]: "0x69da0a4ace14c0befe906f18881a35670e7568ac",
[NetworkId.BERACHAIN]: "0x18878df23e2a36f81e820e4b47b4a40576d3159c",
[NetworkId.BERACHAIN_TESTNET]: "",
};

export const V1_OHM_ADDRESSES = {
Expand Down Expand Up @@ -210,6 +212,7 @@ export const CROSS_CHAIN_BRIDGE_ADDRESSES = {
[NetworkId.MAINNET]: "0x45e563c39cddba8699a90078f42353a57509543a",
[NetworkId.ARBITRUM]: "0x20B3834091f038Ce04D8686FAC99CA44A0FB285c",
[NetworkId.BASE]: "0x6CA1a916e883c7ce2BFBcF59dc70F2c1EF9dac6e",
[NetworkId.BERACHAIN]: "0xBA42BE149e5260EbA4B82418A6306f55D532eA47",
[NetworkId.TESTNET_GOERLI]: "0xefffab0Aa61828c4af926E039ee754e3edE10dAc",
[NetworkId.ARBITRUM_GOERLI]: "0xB01432c01A9128e3d1d70583eA873477B2a1f5e1",
};
Expand All @@ -218,6 +221,7 @@ export const CROSS_CHAIN_BRIDGE_ADDRESSES_TESTNET = {
[NetworkId.MAINNET]: "",
[NetworkId.ARBITRUM]: "",
[NetworkId.BASE]: "",
[NetworkId.BERACHAIN]: "",
[NetworkId.TESTNET_GOERLI]: "0xefffab0Aa61828c4af926E039ee754e3edE10dAc",
[NetworkId.ARBITRUM_GOERLI]: "0xB01432c01A9128e3d1d70583eA873477B2a1f5e1",
};
Expand All @@ -229,6 +233,7 @@ export const MINTER_ADDRESSES = {
[NetworkId.TESTNET_GOERLI]: "0xefffab0Aa61828c4af926E039ee754e3edE10dAc",
[NetworkId.ARBITRUM_GOERLI]: "0x78f84998c73655ac2da0aa1e1270f6cb985a343e",
[NetworkId.BASE]: "0x623164A9Ee2556D524b08f34F1d2389d7B4e1A1C",
[NetworkId.BERACHAIN]: "0xbC9eE0D911739cBc72cd094ADA26F56E0C49EeAE",
};

/** for display purposes */
Expand All @@ -253,20 +258,24 @@ export const BRIDGE_CHAINS = {
name: "Arbitrum Goerli",
token: "ARBITRUM",
},
[NetworkId.BERACHAIN]: {
name: "Berachain",
token: "BERACHAIN",
},
};

export const BRIDGEABLE_CHAINS = {
[NetworkId.MAINNET]: {
defaultRecChain: NetworkId.ARBITRUM,
availableChains: [NetworkId.ARBITRUM, NetworkId.BASE],
availableChains: [NetworkId.ARBITRUM, NetworkId.BASE, NetworkId.BERACHAIN],
},
[NetworkId.ARBITRUM]: {
defaultRecChain: NetworkId.MAINNET,
availableChains: [NetworkId.MAINNET, NetworkId.BASE],
availableChains: [NetworkId.MAINNET, NetworkId.BASE, NetworkId.BERACHAIN],
},
[NetworkId.BASE]: {
defaultRecChain: NetworkId.MAINNET,
availableChains: [NetworkId.MAINNET, NetworkId.ARBITRUM],
availableChains: [NetworkId.MAINNET, NetworkId.ARBITRUM, NetworkId.BERACHAIN],
},
[NetworkId.TESTNET_GOERLI]: {
defaultRecChain: NetworkId.ARBITRUM_GOERLI,
Expand All @@ -276,6 +285,10 @@ export const BRIDGEABLE_CHAINS = {
defaultRecChain: NetworkId.TESTNET_GOERLI,
availableChains: [NetworkId.TESTNET_GOERLI],
},
[NetworkId.BERACHAIN]: {
defaultRecChain: NetworkId.MAINNET,
availableChains: [NetworkId.MAINNET, NetworkId.ARBITRUM, NetworkId.BASE],
},
};

export const COOLER_CLEARING_HOUSE_V1_ADDRESSES = {
Expand Down
10 changes: 10 additions & 0 deletions src/helpers/environment/Environment/Environment.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,16 @@ export class Environment {
key: `VITE_BASE_TESTNET_NODE_URL`,
fallback: "https://sepolia.base.org",
});
case NetworkId.BERACHAIN:
return this._get({
key: `VITE_BERACHAIN_NODE_URL`,
fallback: "https://rpc.berachain.com",
});
case NetworkId.BERACHAIN_TESTNET:
return this._get({
key: `VITE_BERACHAIN_TESTNET_NODE_URL`,
fallback: "https://bartio.rpc.berachain.com",
});
}
};
public static getArchiveNodeUrls = (networkId: NetworkId) => {
Expand Down
1 change: 1 addition & 0 deletions src/hooks/useTestableNetworks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@ export const useTestableNetworks = () => {
POLYGON: getTestnet(NetworkId.POLYGON, NetworkId.POLYGON_TESTNET, chain.id),
FANTOM: getTestnet(NetworkId.FANTOM, NetworkId.FANTOM_TESTNET, chain.id),
BASE: getTestnet(NetworkId.BASE, NetworkId.BASE_TESTNET, chain.id),
BERACHAIN: getTestnet(NetworkId.BERACHAIN, NetworkId.BERACHAIN_TESTNET, chain.id),
};
};
27 changes: 27 additions & 0 deletions src/hooks/wagmi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,33 @@ export const { chains, provider, webSocketProvider } = configureChains(
},
},
},
{
id: 80094,
name: "Berachain",
network: "berachain",
iconUrl: "/assets/images/berachain.svg",
nativeCurrency: {
decimals: 18,
name: "BERA Token",
symbol: "BERA",
},
contracts: {
multicall3: {
address: "0xcA11bde05977b3631167028862bE2a173976CA11",
blockCreated: 0,
},
},
rpcUrls: {
default: { http: ["https://rpc.berachain.com"] },
public: { http: ["https://rpc.berachain.com"] },
},
blockExplorers: {
default: {
name: "Berascan",
url: "https://berascan.com",
},
},
},
goerli,
arbitrumGoerli,
],
Expand Down
3 changes: 3 additions & 0 deletions src/networkDetails.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ export enum NetworkId {

BOBA = 288,
BOBA_TESTNET = 28,

BERACHAIN = 80094,
BERACHAIN_TESTNET = 80084,
}

// VIEWS FOR NETWORK is used to denote which paths should be viewable on each network
Expand Down
4 changes: 4 additions & 0 deletions src/views/Bridge/components/BridgeInputArea.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ export const BridgeInputArea = () => {
token={
BRIDGE_CHAINS[chain.id as keyof typeof BRIDGE_CHAINS].token === "BASE" ? (
<Avatar src="/assets/images/base.svg" sx={{ width: "20px", height: "20px" }} />
) : BRIDGE_CHAINS[chain.id as keyof typeof BRIDGE_CHAINS].token === "BERACHAIN" ? (
<Avatar src="/assets/images/berachain.svg" sx={{ width: "20px", height: "20px" }} />
) : (
<Token
name={BRIDGE_CHAINS[chain.id as keyof typeof BRIDGE_CHAINS].token as OHMTokenProps["name"]}
Expand All @@ -80,6 +82,8 @@ export const BridgeInputArea = () => {
token={
BRIDGE_CHAINS[receivingChain as keyof typeof BRIDGE_CHAINS].token === "BASE" ? (
<Avatar src="/assets/images/base.svg" sx={{ width: "20px", height: "20px" }} />
) : BRIDGE_CHAINS[receivingChain as keyof typeof BRIDGE_CHAINS].token === "BERACHAIN" ? (
<Avatar src="/assets/images/berachain.svg" sx={{ width: "20px", height: "20px" }} />
) : (
<Token
name={
Expand Down
2 changes: 2 additions & 0 deletions src/views/Bridge/components/ChainPickerModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ export const ChainPickerModal = ({
<Box display="flex" gap={1} alignItems="center">
{chain.token === "BASE" ? (
<Avatar src="/assets/images/base.svg" sx={{ width: "36px", height: "36px" }} />
) : chain.token === "BERACHAIN" ? (
<Avatar src="/assets/images/berachain.svg" sx={{ width: "36px", height: "36px" }} />
) : (
<Token name={chain.token as OHMTokenProps["name"]} />
)}
Expand Down
2 changes: 2 additions & 0 deletions src/views/Bridge/helpers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ export const layerZeroChainIdsFromEVM = ({ evmChainId }: { evmChainId: number })
return 111;
case NetworkId.BASE:
return 184;
case NetworkId.BERACHAIN:
return 30362;
case NetworkId.MAINNET:
default:
return 101;
Expand Down

0 comments on commit cfbc06d

Please sign in to comment.