diff --git a/src/chains.ts b/src/chains.ts index 14b8aaf5..23864318 100644 --- a/src/chains.ts +++ b/src/chains.ts @@ -26,7 +26,8 @@ export enum ChainId { XDAI = 100, COSTON2 = 114, EVMOS_TESTNET = 9000, - EVMOS_MAINNET = 9001 + EVMOS_MAINNET = 9001, + ZKSYNC_TESTNET = 280 } export enum StakingType { @@ -1991,6 +1992,58 @@ export const COSTON2_TESTNET: Chain = { blockExplorerUrls: ['https://coston2-explorer.flare.network'] } +export const ZKSYNC_TESTNET: Chain = { + id: 'zksync_testnet', + chain_id: ChainId.ZKSYNC_TESTNET, + name: 'zkSync Testnet', + symbol: 'ETH', + png_symbol: 'PZKS', + mainnet: false, + evm: true, + logo: 'https://raw.githubusercontent.com/pangolindex/sdk/master/src/images/chains/zksync.png', + pangolin_is_live: true, + tracked_by_debank: false, + supported_by_gelato: false, + supported_by_twap: false, + rpc_uri: 'https://zksync2-testnet.zksync.dev', + contracts: { + png: '0x8D127AF2E8015841508D9a99c320231EB78CD85E', + factory: '0x5eDBAe9fdbE01ba8246e8170E0F3aa4deB080bD3', + router: '0x431082C41C8cd3d7eA09D9aD6c6615011a17349A', + wrapped_native_token: '0x7C36d1a6Cd054eD821E41F12F9d9dd6Fbe2EA48d', + local_multisig: '0xbEf6ec231aA6200569ce84F3fe679F2d2Df7273B', + community_treasury: '0x05eE73ED2AAfC0b39c3A24a0a751E6f989B59dA0', + treasury_vester: '0x90933D8822cC8F75B968EebAf211F0381A3d1604', + mini_chef: { + address: '0xEF18B475Eea636a347D6c71E6F2eDa41e26fB1f6', + active: true, + type: ChefType.PANGO_CHEF + }, + airdrop: { + address: '0x6c6D7cEF610eF4e7d73A64c960dF0D098Cd88f83', + active: false, + type: AirdropType.MERKLE_TO_STAKING + }, + timelock: '0x41399e0a6a26B08ec0951b89d2253aB08eBc9eB0', + fee_collector: '0x8294278614264A5BfFE6Fc2311e8cD257335DF7d', + multicall: '0xBeCF15F939578a4fe2FE75Cc0A1128Eb3202647a', + staking: [ + { + address: '0xBF55A67bd5A1077988a63e817e2C0B8509DfAD08', + active: true, + reward_token: '0x8D127AF2E8015841508D9a99c320231EB78CD85E', + type: StakingType.SAR_POSITIONS + } + ] + }, + nativeCurrency: { + name: 'Ether', + symbol: 'ETH', + decimals: 18 + }, + blockExplorerUrls: ['https://zksync2-testnet.zkscan.io'] +} + export const CHAINS: { [chainId in ChainId]: Chain } = { [ChainId.FUJI]: AVALANCHE_FUJI, [ChainId.AVALANCHE]: AVALANCHE_MAINNET, @@ -2019,7 +2072,8 @@ export const CHAINS: { [chainId in ChainId]: Chain } = { [ChainId.OP]: OP_MAINNET, [ChainId.COSTON2]: COSTON2_TESTNET, [ChainId.EVMOS_TESTNET]: EVMOS_TESTNET, - [ChainId.EVMOS_MAINNET]: EVMOS_MAINNET + [ChainId.EVMOS_MAINNET]: EVMOS_MAINNET, + [ChainId.ZKSYNC_TESTNET]: ZKSYNC_TESTNET } export const ALL_CHAINS: Chain[] = [ @@ -2083,5 +2137,6 @@ export const ALL_CHAINS: Chain[] = [ OASIS_TESTNET, GODWOKEN_MAINNET, GODWOKEN_TESTNET, - COSTON2_TESTNET + COSTON2_TESTNET, + ZKSYNC_TESTNET ] diff --git a/src/constants.ts b/src/constants.ts index 0da899db..0f1cd3ff 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -43,7 +43,8 @@ export const FACTORY_ADDRESS: { [chainId in ChainId]: string } = { [ChainId.OP]: '', [ChainId.COSTON2]: CHAINS[ChainId.COSTON2].contracts!.factory, [ChainId.EVMOS_TESTNET]: CHAINS[ChainId.EVMOS_TESTNET].contracts!.factory, - [ChainId.EVMOS_MAINNET]: CHAINS[ChainId.EVMOS_MAINNET].contracts!.factory + [ChainId.EVMOS_MAINNET]: CHAINS[ChainId.EVMOS_MAINNET].contracts!.factory, + [ChainId.ZKSYNC_TESTNET]: CHAINS[ChainId.ZKSYNC_TESTNET].contracts!.factory } export const INIT_CODE_HASH = '0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545' @@ -76,7 +77,8 @@ export const INIT_CODE_HASH_MAPPING: { [chainId in ChainId]: string } = { [ChainId.OP]: '', [ChainId.COSTON2]: INIT_CODE_HASH, [ChainId.EVMOS_TESTNET]: INIT_CODE_HASH, - [ChainId.EVMOS_MAINNET]: INIT_CODE_HASH + [ChainId.EVMOS_MAINNET]: INIT_CODE_HASH, + [ChainId.ZKSYNC_TESTNET]: INIT_CODE_HASH } export const MINIMUM_LIQUIDITY = JSBI.BigInt(1000) diff --git a/src/entities/currency.ts b/src/entities/currency.ts index 025d8063..b489b52a 100644 --- a/src/entities/currency.ts +++ b/src/entities/currency.ts @@ -56,7 +56,12 @@ export class Currency { [ChainId.OP]: new Currency(18, CHAINS[ChainId.OP].symbol, CHAINS[ChainId.OP].name), [ChainId.COSTON2]: new Currency(18, CHAINS[ChainId.COSTON2].symbol, CHAINS[ChainId.COSTON2].name), [ChainId.EVMOS_TESTNET]: new Currency(18, CHAINS[ChainId.EVMOS_TESTNET].symbol, CHAINS[ChainId.EVMOS_TESTNET].name), - [ChainId.EVMOS_MAINNET]: new Currency(18, CHAINS[ChainId.EVMOS_MAINNET].symbol, CHAINS[ChainId.EVMOS_MAINNET].name) + [ChainId.EVMOS_MAINNET]: new Currency(18, CHAINS[ChainId.EVMOS_MAINNET].symbol, CHAINS[ChainId.EVMOS_MAINNET].name), + [ChainId.ZKSYNC_TESTNET]: new Currency( + 18, + CHAINS[ChainId.ZKSYNC_TESTNET].symbol, + CHAINS[ChainId.ZKSYNC_TESTNET].name + ) } /** diff --git a/src/entities/token.ts b/src/entities/token.ts index 138ea088..f7490aa2 100644 --- a/src/entities/token.ts +++ b/src/entities/token.ts @@ -173,5 +173,12 @@ export const WAVAX: { [chainId in ChainId]: Token } = { 18, 'WEVMOS', 'Wrapped Evmos' + ), + [ChainId.ZKSYNC_TESTNET]: new Token( + ChainId.ZKSYNC_TESTNET, + CHAINS[ChainId.ZKSYNC_TESTNET].contracts!.wrapped_native_token, + 18, + 'WAVAX', + 'Wrapped AVAX' ) } diff --git a/src/images/chains/zksync.png b/src/images/chains/zksync.png new file mode 100644 index 00000000..13296b9d Binary files /dev/null and b/src/images/chains/zksync.png differ