diff --git a/src/constants/contracts.ts b/src/constants/contracts.ts index f721402..e71f306 100644 --- a/src/constants/contracts.ts +++ b/src/constants/contracts.ts @@ -12,6 +12,9 @@ import MAINNET_CONTRACTS from './contracts_addresses/mainnet'; import OPTIMISM_ADDRESSES from './contracts_addresses/optimism'; import POLYGON_ADDRESSES from './contracts_addresses/polygon'; import POLYGONZKEVM_ADDRESSES from './contracts_addresses/polygonzkevm'; +import LINEA_ADDRESSES from './contracts_addresses/linea'; +import ZKSYNC_ADDRESSES from './contracts_addresses/zksync'; +import MANTLE_ADDRESSES from './contracts_addresses/mantle'; export enum AMO { 'agEURvEUROC' = 'agEURvEUROC', @@ -211,6 +214,9 @@ export const CONTRACTS_ADDRESSES: ContractsRegistryType = { [ChainId.POLYGONZKEVM]: POLYGONZKEVM_ADDRESSES, [ChainId.BASE]: BASE_ADDRESSES, [ChainId.LOCAL]: LOCAL_ADDRESSES, + [ChainId.LINEA]: LINEA_ADDRESSES, + [ChainId.MANTLE]: MANTLE_ADDRESSES, + [ChainId.ZKSYNC]: ZKSYNC_ADDRESSES, }; type RegistryArgs = diff --git a/src/constants/contracts_addresses/linea.ts b/src/constants/contracts_addresses/linea.ts new file mode 100644 index 0000000..0bc974d --- /dev/null +++ b/src/constants/contracts_addresses/linea.ts @@ -0,0 +1,23 @@ +import { ContractsRegistryType } from '../contracts'; + +const addresses: ContractsRegistryType['1'] = { + agEUR: { + AgToken: '0x1a7e4e63778B4f12a199C062f3eFdD288afCBce8', + bridges: { + LayerZero: '0x12f31B73D812C6Bb0d735a218c086d44D5fe5f89', + }, + Treasury: '0xf1dDcACA7D17f8030Ab2eb54f2D9811365EFe123', + }, + CoreBorrow: '0x4b1E2c2762667331Bc91648052F646d1b0d35984', + Governor: '0x7D47A94Bc2eA9f6A65aD7a46CF454d6F2b676CFb', + Guardian: '0x10DeF8a92c51C8082087356186a1485301078DCd', + ProxyAdmin: '0x1D941EF0D3Bba4ad67DBfBCeE5262F4CEE53A32b', + ProxyAdminGuardian: '0x007475B60d88B02663D6f975927b70BB4335e4b3', + Merkl: { + CoreMerkl: '0x5adDc89785D75C86aB939E9e15bfBBb7Fc086A87', + DistributionCreator: '0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd', + Distributor: '0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae', + }, +}; + +export default addresses; diff --git a/src/constants/contracts_addresses/mantle.ts b/src/constants/contracts_addresses/mantle.ts new file mode 100644 index 0000000..2443cdd --- /dev/null +++ b/src/constants/contracts_addresses/mantle.ts @@ -0,0 +1,23 @@ +import { ContractsRegistryType } from '../contracts'; + +const addresses: ContractsRegistryType['1'] = { + agEUR: { + AgToken: '0xA61BeB4A3d02decb01039e378237032B351125B4', + bridges: { + LayerZero: '0x2859a4eBcB58c8Dd5cAC1419C4F63A071b642B20', + }, + Treasury: '0xFA5Ed56A203466CbBC2430a43c66b9D8723528E7', + }, + CoreBorrow: '0x4b1E2c2762667331Bc91648052F646d1b0d35984', + Governor: '0x852a4D6b6f202B05D7B3C0eA92891B69F4607239', + Guardian: '0x3aaF12AA2c580eE29F8fFAA4B1509c31Ef0eDCe8', + ProxyAdmin: '0x1D941EF0D3Bba4ad67DBfBCeE5262F4CEE53A32b', + ProxyAdminGuardian: '0x31429d1856aD1377A8A0079410B297e1a9e214c2', + Merkl: { + CoreMerkl: '0xC16B81Af351BA9e64C1a069E3Ab18c244A1E3049', + DistributionCreator: '0x8BB4C975Ff3c250e0ceEA271728547f3802B36Fd', + Distributor: '0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae', + }, +}; + +export default addresses; diff --git a/src/constants/contracts_addresses/zksync.ts b/src/constants/contracts_addresses/zksync.ts new file mode 100644 index 0000000..4d36c16 --- /dev/null +++ b/src/constants/contracts_addresses/zksync.ts @@ -0,0 +1,8 @@ +import { ContractsRegistryType } from '../contracts'; + +const addresses: ContractsRegistryType['1'] = { + Governor: '0xA7499Aa6464c078EeB940da2fc95C6aCd010c3Cc', + Guardian: '0x13Bf4cC864916cB6d8a74A5c9A9ac56931e95125', +}; + +export default addresses; diff --git a/src/constants/layerZero.ts b/src/constants/layerZero.ts index 1a9465e..d5f5f4c 100644 --- a/src/constants/layerZero.ts +++ b/src/constants/layerZero.ts @@ -12,6 +12,9 @@ export const layerZeroChainIds: { [chain: number | string]: number } = { [ChainId.GNOSIS]: 145, [ChainId.POLYGONZKEVM]: 158, [ChainId.BASE]: 184, + [ChainId.LINEA]: 183, + [ChainId.MANTLE]: 181, + [ChainId.ZKSYNC]: 165, arbitrum: 110, 'arbitrum-rinkeby': 10010, avalanche: 106, diff --git a/src/keepers/multicall/index.ts b/src/keepers/multicall/index.ts index c6f84f9..248b1b5 100644 --- a/src/keepers/multicall/index.ts +++ b/src/keepers/multicall/index.ts @@ -17,6 +17,9 @@ const MULTICALL_NETWORKS: { [chainId in ChainId]: string } = { [ChainId.GNOSIS]: '', [ChainId.POLYGONZKEVM]: '', [ChainId.BASE]: '', + [ChainId.LINEA]: '', + [ChainId.MANTLE]: '', + [ChainId.ZKSYNC]: '', }; const MULTICALL_INTERFACE = new utils.Interface(MULTICALL_ABI); diff --git a/src/types/constants.ts b/src/types/constants.ts index 4a2f20a..e3d6dcf 100644 --- a/src/types/constants.ts +++ b/src/types/constants.ts @@ -14,6 +14,9 @@ export enum ChainId { GNOSIS = 100, POLYGONZKEVM = 1101, BASE = 8453, + LINEA = 59144, + MANTLE = 5000, + ZKSYNC = 324, } export const NETWORK_LABELS: { [key in ChainId]: string } = { @@ -30,6 +33,9 @@ export const NETWORK_LABELS: { [key in ChainId]: string } = { [ChainId.GNOSIS]: 'Gnosis Chain', [ChainId.POLYGONZKEVM]: 'Polygon zkEVM', [ChainId.BASE]: 'Base', + [ChainId.LINEA]: 'Linea', + [ChainId.MANTLE]: 'Mantle', + [ChainId.ZKSYNC]: 'zkSync', }; export enum AssetType {