@xlink-network/xlink-sdk
Version:
1 lines • 19.6 kB
Source Map (JSON)
{"version":3,"sources":["../src/stacksUtils/stxContractAddresses.ts"],"sourcesContent":["import { KnownRoute_FromStacks_ToEVM } from \"../utils/buildSupportedRoutes\"\nimport { assertExclude, checkNever } from \"../utils/typeHelpers\"\nimport { KnownChainId, KnownTokenId } from \"../utils/types/knownIds\"\nimport {\n isStacksContractAddressEqual,\n StacksContractAddress,\n} from \"../xlinkSdkUtils/types\"\n\nexport const xlinkContractsDeployerMainnet =\n \"SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK\"\nexport const xlinkContractsDeployerTestnet =\n \"ST2QXSK64YQX3CQPC530K79XWQ98XFAM9W3XKEH3N\"\n\nexport const xlinkContractsMultisigMainnet =\n \"SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T\"\nexport const xlinkContractsMultisigTestnet =\n \"ST2QXSK64YQX3CQPC530K79XWQ98XFAM9W3XKEH3N\"\n\nexport const alexContractDeployerMainnet =\n \"SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM\"\nexport const alexContractDeployerTestnet =\n \"ST1J4G6RR643BCG8G8SR6M2D9Z9KXT2NJDRK3FBTK\"\n\nexport const legacyAlexContractDeployerMainnet =\n \"SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9\"\nexport const legacyAlexContractDeployerTestnet =\n \"ST1J2JTYXGRMZYNKE40GM87ZCACSPSSEEQVSNB7DC\"\n\nconst stxAlternativeTokenContractAddresses = {\n wbtc: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-wbtc\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-wbtc\",\n },\n },\n btcb: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-wbtc\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-btcb\",\n },\n },\n cbBTC: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-wbtc\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-wbtc\",\n },\n },\n usdt: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-usdt\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-usdt\",\n },\n },\n usdc: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-usdt\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-usdt\",\n },\n },\n} satisfies Record<\n string,\n Record<KnownChainId.StacksChain, StacksContractAddress>\n>\nexport const getTerminatingStacksTokenContractAddress = (\n route: KnownRoute_FromStacks_ToEVM,\n): undefined | StacksContractAddress => {\n const { fromToken, toChain, toToken } = route\n if (fromToken === KnownTokenId.Stacks.aBTC) {\n const restChains = assertExclude.i<ChainsHaveAlternativeBTC>()\n\n if (\n (toChain === KnownChainId.EVM.Ethereum ||\n toChain === KnownChainId.EVM.Sepolia) &&\n toToken === KnownTokenId.EVM.WBTC\n ) {\n return stxAlternativeTokenContractAddresses.wbtc[route.fromChain]\n }\n assertExclude(restChains, KnownChainId.EVM.Ethereum)\n assertExclude(restChains, KnownChainId.EVM.Sepolia)\n\n if (\n (toChain === KnownChainId.EVM.BSC ||\n toChain === KnownChainId.EVM.BSCTestnet) &&\n toToken === KnownTokenId.EVM.BTCB\n ) {\n return stxAlternativeTokenContractAddresses.btcb[route.fromChain]\n }\n assertExclude(restChains, KnownChainId.EVM.BSC)\n assertExclude(restChains, KnownChainId.EVM.BSCTestnet)\n\n if (\n toChain === KnownChainId.EVM.Base &&\n toToken === KnownTokenId.EVM.cbBTC\n ) {\n return stxAlternativeTokenContractAddresses.cbBTC[route.fromChain]\n }\n assertExclude(restChains, KnownChainId.EVM.Base)\n\n checkNever(restChains)\n }\n\n if (fromToken === KnownTokenId.Stacks.sUSDT) {\n const restChains = assertExclude.i<ChainsHaveAlternativeStableUSD>()\n\n if (\n (toChain === KnownChainId.EVM.Ethereum ||\n toChain === KnownChainId.EVM.Sepolia ||\n toChain === KnownChainId.EVM.BSC ||\n toChain === KnownChainId.EVM.BSCTestnet) &&\n toToken === KnownTokenId.EVM.USDT\n ) {\n return stxAlternativeTokenContractAddresses.usdt[route.fromChain]\n }\n assertExclude(restChains, KnownChainId.EVM.Ethereum)\n assertExclude(restChains, KnownChainId.EVM.Sepolia)\n assertExclude(restChains, KnownChainId.EVM.BSC)\n assertExclude(restChains, KnownChainId.EVM.BSCTestnet)\n\n if (\n toChain === KnownChainId.EVM.Base &&\n toToken === KnownTokenId.EVM.USDC\n ) {\n return stxAlternativeTokenContractAddresses.usdt[route.fromChain]\n }\n assertExclude(restChains, KnownChainId.EVM.Base)\n\n checkNever(restChains)\n }\n return undefined\n}\nexport const getEVMTokenIdFromTerminatingStacksTokenContractAddress = (route: {\n evmChain: KnownChainId.EVMChain\n stacksChain: KnownChainId.StacksChain\n stacksTokenAddress: StacksContractAddress\n}): undefined | KnownTokenId.EVMToken => {\n const restStableUSDChains = assertExclude.i<ChainsHaveAlternativeStableUSD>()\n const restBTCChains = assertExclude.i<ChainsHaveAlternativeBTC>()\n\n if (\n (route.evmChain === KnownChainId.EVM.Ethereum ||\n route.evmChain === KnownChainId.EVM.Sepolia) &&\n isStacksContractAddressEqual(\n route.stacksTokenAddress,\n stxAlternativeTokenContractAddresses.wbtc[route.stacksChain],\n )\n ) {\n return KnownTokenId.EVM.WBTC\n }\n assertExclude(restBTCChains, KnownChainId.EVM.Ethereum)\n assertExclude(restBTCChains, KnownChainId.EVM.Sepolia)\n\n if (\n (route.evmChain === KnownChainId.EVM.BSC ||\n route.evmChain === KnownChainId.EVM.BSCTestnet) &&\n isStacksContractAddressEqual(\n route.stacksTokenAddress,\n stxAlternativeTokenContractAddresses.btcb[route.stacksChain],\n )\n ) {\n return KnownTokenId.EVM.BTCB\n }\n assertExclude(restBTCChains, KnownChainId.EVM.BSC)\n assertExclude(restBTCChains, KnownChainId.EVM.BSCTestnet)\n\n if (\n route.evmChain === KnownChainId.EVM.Base &&\n isStacksContractAddressEqual(\n route.stacksTokenAddress,\n stxAlternativeTokenContractAddresses.cbBTC[route.stacksChain],\n )\n ) {\n return KnownTokenId.EVM.cbBTC\n }\n assertExclude(restBTCChains, KnownChainId.EVM.Base)\n\n if (\n (route.evmChain === KnownChainId.EVM.Ethereum ||\n route.evmChain === KnownChainId.EVM.Sepolia ||\n route.evmChain === KnownChainId.EVM.BSC ||\n route.evmChain === KnownChainId.EVM.BSCTestnet) &&\n isStacksContractAddressEqual(\n route.stacksTokenAddress,\n stxAlternativeTokenContractAddresses.usdt[route.stacksChain],\n )\n ) {\n return KnownTokenId.EVM.USDT\n }\n assertExclude(restStableUSDChains, KnownChainId.EVM.Ethereum)\n assertExclude(restStableUSDChains, KnownChainId.EVM.Sepolia)\n assertExclude(restStableUSDChains, KnownChainId.EVM.BSC)\n assertExclude(restStableUSDChains, KnownChainId.EVM.BSCTestnet)\n\n if (\n route.evmChain === KnownChainId.EVM.Base &&\n isStacksContractAddressEqual(\n route.stacksTokenAddress,\n stxAlternativeTokenContractAddresses.usdc[route.stacksChain],\n )\n ) {\n return KnownTokenId.EVM.USDC\n }\n assertExclude(restStableUSDChains, KnownChainId.EVM.Base)\n\n checkNever(restStableUSDChains)\n checkNever(restBTCChains)\n return undefined\n}\ntype ChainsHaveAlternativeStableUSD =\n | typeof KnownChainId.EVM.Ethereum\n | typeof KnownChainId.EVM.Sepolia\n | typeof KnownChainId.EVM.BSC\n | typeof KnownChainId.EVM.BSCTestnet\n | typeof KnownChainId.EVM.Base\ntype ChainsHaveAlternativeBTC =\n | typeof KnownChainId.EVM.Ethereum\n | typeof KnownChainId.EVM.Sepolia\n | typeof KnownChainId.EVM.BSC\n | typeof KnownChainId.EVM.BSCTestnet\n | typeof KnownChainId.EVM.Base\n\nexport const stxContractDeployers = {\n \"btc-peg-in-endpoint-v2-05\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsMultisigTestnet,\n },\n },\n \"btc-peg-out-endpoint-v2-01\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n },\n },\n \"cross-peg-in-endpoint-v2-04\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsMultisigTestnet,\n },\n },\n \"cross-peg-out-endpoint-v2-01\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n },\n },\n \"meta-peg-in-endpoint-v2-04\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsMultisigTestnet,\n },\n },\n \"meta-peg-out-endpoint-v2-04\": {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsMultisigTestnet,\n },\n },\n} satisfies Record<\n string,\n Record<KnownChainId.StacksChain, { deployerAddress: string }>\n>\n\nexport const stxTokenContractAddresses: Record<\n KnownTokenId.StacksToken,\n Record<KnownChainId.StacksChain, StacksContractAddress>\n> = {\n [KnownTokenId.Stacks.ALEX]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: alexContractDeployerMainnet,\n contractName: \"token-alex\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: alexContractDeployerTestnet,\n contractName: \"token-alex\",\n },\n },\n [KnownTokenId.Stacks.aBTC]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n contractName: \"token-abtc\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-abtc\",\n },\n },\n [KnownTokenId.Stacks.sUSDT]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n contractName: \"token-susdt\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-susdt\",\n },\n },\n [KnownTokenId.Stacks.sLUNR]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n contractName: \"token-slunr\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-slunr\",\n },\n },\n [KnownTokenId.Stacks.sSKO]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsDeployerMainnet,\n contractName: \"token-ssko\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-ssko\",\n },\n },\n [KnownTokenId.Stacks.vLiSTX]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: alexContractDeployerMainnet,\n contractName: \"token-wvlqstx\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: alexContractDeployerTestnet,\n contractName: \"token-wvlqstx\",\n },\n },\n [KnownTokenId.Stacks.vLiALEX]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: alexContractDeployerMainnet,\n contractName: \"token-wvlialex\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: alexContractDeployerTestnet,\n contractName: \"token-wvlialex\",\n },\n },\n [KnownTokenId.Stacks.uBTC]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: xlinkContractsMultisigMainnet,\n contractName: \"token-ubtc\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: xlinkContractsDeployerTestnet,\n contractName: \"token-ubtc\",\n },\n },\n [KnownTokenId.Stacks.DB20]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: legacyAlexContractDeployerMainnet,\n contractName: \"brc20-db20\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: legacyAlexContractDeployerTestnet,\n contractName: \"brc20-db20\",\n },\n },\n [KnownTokenId.Stacks.DOG]: {\n [KnownChainId.Stacks.Mainnet]: {\n deployerAddress: legacyAlexContractDeployerMainnet,\n contractName: \"runes-dog\",\n },\n [KnownChainId.Stacks.Testnet]: {\n deployerAddress: legacyAlexContractDeployerTestnet,\n contractName: \"runes-dog\",\n },\n },\n}\n"],"mappings":"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","names":[]}