@syncswap/sdk
Version:
SyncSwap TypeScript SDK for building DeFi applications
173 lines • 17.5 kB
JavaScript
;
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