@syncswap/sdk
Version:
SyncSwap TypeScript SDK for building DeFi applications
44 lines • 3.44 kB
JavaScript
import ContractRegistry from "./contractRegistry.js";
import { ContractTypes } from "./contractTypes.js";
const SOPHON_MAINNET = "sophonMainnet";
export class ContractInitiator {
/**
* @dev Initialize all contracts with necessary metadata.
*
* Provider / Signer is not required as they will be connected on using.
*/
static async initialize(provider, network = SOPHON_MAINNET) {
ContractRegistry.resetContracts();
ContractRegistry.setNetwork(network);
ContractRegistry.setProviderOrSigner(provider);
if (network === SOPHON_MAINNET) {
await registerSophonMainnetContracts(provider);
}
}
}
async function registerSophonMainnetContracts(provider) {
await Promise.all([
// WSOPH
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.WETH, "weth", "0x2b1a859de6a55c553520d7780bc5805712b128f9"),
// V2
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.ROUTER_V2, "router", "0x2da10A1e27bF85cEdD8FFb1AbBe97e53391C0295"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.POOL_MASTER, "pool_master3", "0x5b9f21d407F35b10CbfDDca17D5D84b129356ea3"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.CLASSIC_FACTORY, "classic_factory3", "0x432bcc3BC62DE9186f9E8763C82d43e418681e6C"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.STABLE_FACTORY, "stable_factory3", "0x8C9d66bA3E1D7681cfFFfa3C7d9807adae368E74"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.CRYPTO_FACTORY, "crypto_factory3", "0xA2E2F6B5dB704fDe654DB69895C89523332E538E"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.MULTICALL, "multicall", "0x6e5056cBaa4082d4eeE06906Be7680A8524Ed675"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.ROUTE_HELPER, "route_helper", "0xb9f34758a571052ABe9CBcB242434EfA5894Ea69"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.TOKEN_HELPER, "token_helper", "0x3c027273b160eF29C9b5Bce641881B9e96245C92"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.POOL_HELPER, "pool_helper", "0x46384918127fBd1679C757DF7b495C3F61481467"),
// V3
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.NFT_POSITION_MANAGER, "nft_position_manager", "0x55A853462862d54Ef6Fce380CE83dFd60494cf7a"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.QUOTER, "quoter", "0x7339B33F149B51616a01966Ba23bE63F11226b77"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.ROUTER_V3, ContractTypes.ROUTER_V3.name, "0x69663Ea7C713756A2cf34e9fEf1997C7e0d21bC5"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.POOL_MASTER, "pool_master_range", "0x9012C7CE4d1f677aaf9241CF7d4D05fC596556e8"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.CRYPTO_FACTORY, "ranged_factory", "0x0f6e27007e257e74c86522387BD071D561ba3C97"),
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.MULTICALL2, "multicall2", "0x5ecb88d35096bA7B89d75d13b8753F719F8C3feD"),
// eth multicall3
ContractRegistry.register(provider, SOPHON_MAINNET, ContractTypes.MULTICALL3, "multicall3", "0x159cf4d7016e77624950bCaBd1215332BdC9CFDA"),
]);
}
//# sourceMappingURL=contractInitiator.js.map