UNPKG

@syncswap/sdk

Version:

SyncSwap TypeScript SDK for building DeFi applications

173 lines 17.5 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ContractInitiator = void 0; const sdkHelper_1 = require("../sdkHelper"); const statestore_1 = require("../statestore/statestore"); const tokenRegistry_1 = require("../tokens/tokenRegistry"); const contractRegistry_1 = __importDefault(require("./contractRegistry")); const contractTypes_1 = require("./contractTypes"); let previousNetwork = null; class ContractInitiator { /** * @dev Initialize all contracts with necessary metadata. * * Provider / Signer is not required as they will be connected on using. */ static async initialize(targetNetwork) { const startTime = Date.now(); const network = targetNetwork ?? (0, statestore_1.stateStore)().network; if (true || network !== previousNetwork) { previousNetwork = network; contractRegistry_1.default.resetContracts(); tokenRegistry_1.Token.ETHER = tokenRegistry_1.Token._ETHER; if (network === sdkHelper_1.SOPHON_MAINNET) { tokenRegistry_1.Token.ETHER = tokenRegistry_1.Token._SOPH; } } if (network === sdkHelper_1.ZKSYNC_MAINNET) { await registerZkSyncMainnetContracts(); } if (network === sdkHelper_1.LINEA_MAINNET) { await registerLineaMainnetContracts(); } if (network === sdkHelper_1.SCROLL_MAINNET) { await registerScrollMainnetContracts(); } if (network === sdkHelper_1.SOPHON_MAINNET) { await registerSophonMainnetContracts(); } if (network === tokenRegistry_1.ETH_MAINNET) { await registerEthereumMainnetContracts(); } if (network === sdkHelper_1.ZKCANDY_MAINNET) { await registerZkCandyMainnetContracts(); } console.log('Contract initialize: cost', (Date.now() - startTime), 'ms'); } } exports.ContractInitiator = ContractInitiator; // zkSync Mainnet async function registerZkSyncMainnetContracts() { await Promise.all([ contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.WETH, 'weth', '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91'), // V2 contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.ROUTER_V2, 'router', '0x9B5def958d0f3b6955cBEa4D5B7809b2fb26b059'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master3', '0x1FC09AC4b4217602bC34223859783c81310e3791'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.CLASSIC_FACTORY, 'classic_factory3', '0xA757eD0812092E2a8F78e6642a2A3215995A4131'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.STABLE_FACTORY, 'stable_factory3', '0x582ad7014C3f755Fc0d29eCFC02FAB4c3A2D5a3D'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'crypto_factory3', '0x0754870C1aAb00eDCFABDF4e6FEbDD30e90f327d'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.MULTICALL, 'multicall', '0xA23DDf516C1B00B2f00E5466426FA244d275D4F1'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.ROUTE_HELPER, 'route_helper', '0x123c8659127b39925072f1333c9C99a093d069a3'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, 'token_helper', '0x455FFfa180D50D8a1AdaaA46Eb2bfb4C1bb28602'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.POOL_HELPER, 'pool_helper', '0x3c027273b160eF29C9b5Bce641881B9e96245C92'), // V3 contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.NFT_POSITION_MANAGER, 'nft_position_manager', '0x7581A80c84D7488BE276E6c7b4c1206F25946502'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.QUOTER, 'quoter', '0x877B04aA6ee60d39dccC675633157E293f6991E9'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.ROUTER_V3, contractTypes_1.ContractTypes.ROUTER_V3.name, '0x2c81dF4F11A1C7E43Acb972e73767B1f5d0d9edc'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master_range', '0x31a2c9BDE9396222A07D06Ed79Ef1C9200303978'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'ranged_factory', '0x9D63d318143cF14FF05f8AAA7491904A494e6f13'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.MULTICALL2, 'multicall2', '0x1194Ad57A4e0CCebC75BFD90d94277b38017bA30'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.MULTICALL3, 'multicall3', '0xF9cda624FBC7e059355ce98a31693d299FACd963'), contractRegistry_1.default.register(sdkHelper_1.ZKSYNC_MAINNET, contractTypes_1.ContractTypes.WRAPPER_ROUTER_V3, contractTypes_1.ContractTypes.WRAPPER_ROUTER_V3.name, '0xFbC0F41075b5D9927dd3b08dE18F53D00B16c399'), ]); } // Linea Mainnet async function registerLineaMainnetContracts() { await Promise.all([ contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.WETH, 'weth', '0xe5d7c2a44ffddf6b295a15c148167daaaf5cf34f'), // V2 contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.ROUTER_V2, 'router', '0xc2a1947d2336b2af74d5813dc9ca6e0c3b3e8a1e'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master3', '0xeE8790cE315c0871ec612f0A6EbB5471A955b3A0'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.CLASSIC_FACTORY, 'classic_factory3', '0xb8AbaEa25E42DA5ac6897C9DAb0a8157885fE32b'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.STABLE_FACTORY, 'stable_factory3', '0x024A096bAb43587d24004C95C3e20FcB7518Ad86'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'crypto_factory3', '0x1080EE857D165186aF7F8d63e8ec510C28A6d1Ea'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.MULTICALL, 'multicall', '0xC70a3224DE690F1e0c3AcF271219cf68a728D8b4'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.ROUTE_HELPER, 'route_helper', '0x948702164daBb36Acc9f4e68D8e373f4DFF72b0c'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, 'token_helper', '0x3d7B585A835e1f37dF2fe081234Da0cA95D88462'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.POOL_HELPER, 'pool_helper', '0xA211DF3fc0451c640eEBe5Dd6dBd80b7A2A1D4f3'), // V3 contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.NFT_POSITION_MANAGER, 'nft_position_manager', '0x19BBE6BB16d9Ff3F8c2fBfC5dfa5805DeDd9A09d'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.QUOTER, 'quoter', '0xee424Ee3a453b91Da9d64A69d4506a2351eFA57f'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.ROUTER_V3, contractTypes_1.ContractTypes.ROUTER_V3.name, '0x0B64bA230D4c9d133aA7a52ceFF1620178b07c55'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master_range', '0xBc632B9683a63ac6fa10cacE8a48491f065963dB'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'ranged_factory', '0xc5916f6cF441c72DaA2E2C48AfC7CE642eEe6690'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.MULTICALL2, 'multicall2', '0x4ebEAF7f85253b0E191F9DA7D19D2B56B1fa9d27'), contractRegistry_1.default.register(sdkHelper_1.LINEA_MAINNET, contractTypes_1.ContractTypes.MULTICALL3, 'multicall3', '0xcA11bde05977b3631167028862bE2a173976CA11'), ]); } // Scroll Mainnet async function registerScrollMainnetContracts() { await Promise.all([ contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.WETH, 'weth', '0x5300000000000000000000000000000000000004'), // V2 contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.ROUTER_V2, 'router', '0xfd541d0e2773a189450a70f06bc7edd3c1dc9115'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master3', '0x4318a74425E5353a1194CF26138Baa87B607657C'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.CLASSIC_FACTORY, 'classic_factory3', '0x76f549af692efA64952d02c075226df9878Fb54C'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.STABLE_FACTORY, 'stable_factory3', '0xA2acA673C00495A184F88De533BBa8e1b7f38D00'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'crypto_factory3', '0x87aeb51d606056F48D241C4072f55ACd9D937018'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.MULTICALL, 'multicall', '0xA727701bFAA356a3bf2Ea64107c1Da9Ea2080957'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.ROUTE_HELPER, 'route_helper', '0x06A05357a6928940888Ad9460ED53Bb61f0Aef6D'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, 'token_helper', '0x4460F0dCacBf61B1D71CBca70B7167C372B836B6'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.POOL_HELPER, 'pool_helper', '0xaAeaBF86D1Ffb52B562DFdBDaaef7C042887acF4'), // V3 contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.NFT_POSITION_MANAGER, 'nft_position_manager', '0x85237Fd21640B414b1101dAE5C306e4E126B2709'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.QUOTER, 'quoter', '0x0dD628A68bE876D48b11627c63a6900AEf737B42'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.ROUTER_V3, contractTypes_1.ContractTypes.ROUTER_V3.name, '0x88A0E09D40b021c0590cf106b7F87A909B9C508C'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master_range', '0x53C261DaF681CaBBD5cE3ae855BBE7aFcA72377D'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'ranged_factory', '0xB11042007e78bE92dc1c79DA1e7eF499b4B31838'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.MULTICALL2, 'multicall2', '0x23001017Eb99d57d02775C23C4Ac96CF89AB9d43'), contractRegistry_1.default.register(sdkHelper_1.SCROLL_MAINNET, contractTypes_1.ContractTypes.MULTICALL3, 'multicall3', '0xcA11bde05977b3631167028862bE2a173976CA11'), ]); } // Ethereum Mainnet async function registerEthereumMainnetContracts() { await Promise.all([ contractRegistry_1.default.register(tokenRegistry_1.ETH_MAINNET, contractTypes_1.ContractTypes.WETH, 'weth', '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2'), contractRegistry_1.default.register(tokenRegistry_1.ETH_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, 'token_helper', '0xEFF36a18bfE1B1eB98ea22Ae86a25e7190499d46'), ]); } // ZkCandy Mainnet async function registerZkCandyMainnetContracts() { await Promise.all([ contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.WETH, 'weth', '0x1e347256309b4764edd8d7bdf4aa4ecb62b58320'), // V2 contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.ROUTER_V2, 'router', '0x5b9f21d407F35b10CbfDDca17D5D84b129356ea3'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, 'pool_master3', '0x2da10A1e27bF85cEdD8FFb1AbBe97e53391C0295'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.CLASSIC_FACTORY, 'classic_factory3', '0xC0A4682C82754b6AbBe6eB98E0070e464DA19f72'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.STABLE_FACTORY, 'stable_factory3', '0xE341c99621d2Eb13E79CAe7F0F79Db1bE314e428'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, 'crypto_factory3', '0x4444f80DfB8a8a29E79087f066eaC306784699Ce'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.MULTICALL, 'multicall', '0xa2504f4a5f67CC573c6531Ac4e7A2e6A2fB003f2'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.ROUTE_HELPER, 'route_helper', '0xFF65D0a12fAF7781d3188B810aa57526479179c3'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, 'token_helper', '0xe5d006525a045783ca63B1ad7841E9345daA9f99'), contractRegistry_1.default.register(sdkHelper_1.ZKCANDY_MAINNET, contractTypes_1.ContractTypes.POOL_HELPER, 'pool_helper', '0xd45ab0E1dc7F503Eb177949c2Fb2Ab772B4B6CFC'), ]); } async function registerSophonMainnetContracts() { await Promise.all([ // WSOPH contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.WETH, "weth", "0x2b1a859de6a55c553520d7780bc5805712b128f9"), // V2 contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.ROUTER_V2, "router", "0x2da10A1e27bF85cEdD8FFb1AbBe97e53391C0295"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, "pool_master3", "0x5b9f21d407F35b10CbfDDca17D5D84b129356ea3"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.CLASSIC_FACTORY, "classic_factory3", "0x432bcc3BC62DE9186f9E8763C82d43e418681e6C"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.STABLE_FACTORY, "stable_factory3", "0x8C9d66bA3E1D7681cfFFfa3C7d9807adae368E74"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, "crypto_factory3", "0xA2E2F6B5dB704fDe654DB69895C89523332E538E"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.MULTICALL, "multicall", "0x6e5056cBaa4082d4eeE06906Be7680A8524Ed675"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.ROUTE_HELPER, "route_helper", "0xb9f34758a571052ABe9CBcB242434EfA5894Ea69"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.TOKEN_HELPER, "token_helper", "0x3c027273b160eF29C9b5Bce641881B9e96245C92"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.POOL_HELPER, "pool_helper", "0x46384918127fBd1679C757DF7b495C3F61481467"), // V3 contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.NFT_POSITION_MANAGER, "nft_position_manager", "0x55A853462862d54Ef6Fce380CE83dFd60494cf7a"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.QUOTER, "quoter", "0x7339B33F149B51616a01966Ba23bE63F11226b77"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.ROUTER_V3, contractTypes_1.ContractTypes.ROUTER_V3.name, "0x69663Ea7C713756A2cf34e9fEf1997C7e0d21bC5"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.POOL_MASTER, "pool_master_range", "0x9012C7CE4d1f677aaf9241CF7d4D05fC596556e8"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.CRYPTO_FACTORY, "ranged_factory", "0x0f6e27007e257e74c86522387BD071D561ba3C97"), contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.MULTICALL2, "multicall2", "0x5ecb88d35096bA7B89d75d13b8753F719F8C3feD"), // eth multicall3 contractRegistry_1.default.register(sdkHelper_1.SOPHON_MAINNET, contractTypes_1.ContractTypes.MULTICALL3, "multicall3", "0x159cf4d7016e77624950bCaBd1215332BdC9CFDA"), ]); } //# sourceMappingURL=contractInitiator.js.map