UNPKG

@xlink-network/xlink-sdk

Version:
937 lines (927 loc) 32.1 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/stacksUtils/stxContractAddresses.ts var stxContractAddresses_exports = {}; __export(stxContractAddresses_exports, { alexContractDeployerMainnet: () => alexContractDeployerMainnet, alexContractDeployerTestnet: () => alexContractDeployerTestnet, getEVMTokenIdFromTerminatingStacksTokenContractAddress: () => getEVMTokenIdFromTerminatingStacksTokenContractAddress, getTerminatingStacksTokenContractAddress: () => getTerminatingStacksTokenContractAddress, legacyAlexContractDeployerMainnet: () => legacyAlexContractDeployerMainnet, legacyAlexContractDeployerTestnet: () => legacyAlexContractDeployerTestnet, stxContractDeployers: () => stxContractDeployers, stxTokenContractAddresses: () => stxTokenContractAddresses, xlinkContractsDeployerMainnet: () => xlinkContractsDeployerMainnet, xlinkContractsDeployerTestnet: () => xlinkContractsDeployerTestnet, xlinkContractsMultisigMainnet: () => xlinkContractsMultisigMainnet, xlinkContractsMultisigTestnet: () => xlinkContractsMultisigTestnet }); module.exports = __toCommonJS(stxContractAddresses_exports); // src/utils/typeHelpers.ts function checkNever(_x) { return; } function assertExclude(asserting, excluding) { return; } ((assertExclude2) => { assertExclude2.i = () => null; })(assertExclude || (assertExclude = {})); // src/utils/types/knownIds.ts var chainId = (value) => value; var tokenId = (value) => value; var KnownTokenId; ((KnownTokenId2) => { function isKnownToken(value) { return isBitcoinToken(value) || isBRC20Token(value) || isRunesToken(value) || isEVMToken(value) || isStacksToken(value); } KnownTokenId2.isKnownToken = isKnownToken; let Bitcoin; ((Bitcoin2) => { Bitcoin2.BTC = tokenId("btc-btc"); })(Bitcoin = KnownTokenId2.Bitcoin || (KnownTokenId2.Bitcoin = {})); function isBitcoinToken(value) { return _allKnownBitcoinTokens.includes(value); } KnownTokenId2.isBitcoinToken = isBitcoinToken; function isBRC20Token(value) { return value.startsWith("brc20-"); } KnownTokenId2.isBRC20Token = isBRC20Token; function isRunesToken(value) { return value.startsWith("runes-"); } KnownTokenId2.isRunesToken = isRunesToken; let EVM; ((EVM2) => { EVM2.sUSDT = tokenId("evm-susdt"); EVM2.USDT = tokenId("evm-usdt"); EVM2.USDC = tokenId("evm-usdc"); EVM2.aBTC = tokenId("evm-abtc"); EVM2.WBTC = tokenId("evm-wbtc"); EVM2.BTCB = tokenId("evm-btcb"); EVM2.cbBTC = tokenId("evm-cbbtc"); EVM2.LUNR = tokenId("evm-lunr"); EVM2.ALEX = tokenId("evm-alex"); EVM2.SKO = tokenId("evm-sko"); EVM2.vLiSTX = tokenId("evm-vlistx"); EVM2.vLiALEX = tokenId("evm-vlialex"); EVM2.uBTC = tokenId("evm-ubtc"); EVM2.wuBTC = tokenId("evm-wubtc"); EVM2.DB20 = tokenId("evm-db20"); EVM2.DOG = tokenId("evm-dog"); })(EVM = KnownTokenId2.EVM || (KnownTokenId2.EVM = {})); function isEVMToken(value) { return _allKnownEVMTokens.includes(value); } KnownTokenId2.isEVMToken = isEVMToken; let Stacks; ((Stacks2) => { Stacks2.sUSDT = tokenId("stx-susdt"); Stacks2.sLUNR = tokenId("stx-slunr"); Stacks2.aBTC = tokenId("stx-abtc"); Stacks2.ALEX = tokenId("stx-alex"); Stacks2.sSKO = tokenId("stx-ssko"); Stacks2.vLiSTX = tokenId("stx-vlistx"); Stacks2.vLiALEX = tokenId("stx-vlialex"); Stacks2.uBTC = tokenId("stx-ubtc"); Stacks2.DB20 = tokenId("stx-db20"); Stacks2.DOG = tokenId("stx-dog"); })(Stacks = KnownTokenId2.Stacks || (KnownTokenId2.Stacks = {})); function isStacksToken(value) { return _allKnownStacksTokens.includes(value); } KnownTokenId2.isStacksToken = isStacksToken; })(KnownTokenId || (KnownTokenId = {})); var _allKnownBitcoinTokens = Object.values(KnownTokenId.Bitcoin); var _allKnownEVMTokens = Object.values(KnownTokenId.EVM); var _allKnownStacksTokens = Object.values(KnownTokenId.Stacks); var KnownChainId; ((KnownChainId2) => { function isKnownChain(value) { return isBitcoinChain(value) || isBRC20Chain(value) || isRunesChain(value) || isEVMChain(value) || isStacksChain(value); } KnownChainId2.isKnownChain = isKnownChain; let Bitcoin; ((Bitcoin2) => { Bitcoin2.Mainnet = chainId("bitcoin-mainnet"); Bitcoin2.Testnet = chainId("bitcoin-testnet"); })(Bitcoin = KnownChainId2.Bitcoin || (KnownChainId2.Bitcoin = {})); function isBitcoinChain(value) { return _allKnownBitcoinChains.includes(value); } KnownChainId2.isBitcoinChain = isBitcoinChain; let Runes; ((Runes2) => { Runes2.Mainnet = chainId("runes-mainnet"); Runes2.Testnet = chainId("runes-testnet"); })(Runes = KnownChainId2.Runes || (KnownChainId2.Runes = {})); function isRunesChain(value) { return _allKnownRunesChains.includes(value); } KnownChainId2.isRunesChain = isRunesChain; let BRC20; ((BRC202) => { BRC202.Mainnet = chainId("brc20-mainnet"); BRC202.Testnet = chainId("brc20-testnet"); })(BRC20 = KnownChainId2.BRC20 || (KnownChainId2.BRC20 = {})); function isBRC20Chain(value) { return _allKnownBRC20Chains.includes(value); } KnownChainId2.isBRC20Chain = isBRC20Chain; let EVM; ((EVM2) => { EVM2.Ethereum = chainId("evm-ethereum"); EVM2.Sepolia = chainId("evm-sepolia"); EVM2.BSC = chainId("evm-bsc"); EVM2.BSCTestnet = chainId("evm-bsctestnet"); EVM2.CoreDAO = chainId("evm-coredao"); EVM2.CoreDAOTestnet = chainId("evm-coredao-testnet"); EVM2.Bsquared = chainId("evm-bsquared"); EVM2.BOB = chainId("evm-bob"); EVM2.Bitlayer = chainId("evm-bitlayer"); EVM2.Lorenzo = chainId("evm-lorenzo"); EVM2.Merlin = chainId("evm-merlin"); EVM2.AILayer = chainId("evm-ailayer"); EVM2.Mode = chainId("evm-mode"); EVM2.XLayer = chainId("evm-xlayer"); EVM2.Arbitrum = chainId("evm-arbitrum"); EVM2.Aurora = chainId("evm-aurora"); EVM2.BlifeTestnet = chainId("evm-blife-testnet"); EVM2.BitboyTestnet = chainId("evm-bitboy-testnet"); EVM2.Manta = chainId("evm-manta"); EVM2.Linea = chainId("evm-linea"); EVM2.Base = chainId("evm-base"); EVM2.BeraTestnet = chainId("evm-bera-testnet"); })(EVM = KnownChainId2.EVM || (KnownChainId2.EVM = {})); function isEVMMainnetChain(value) { return _allKnownEVMMainnetChains.includes(value); } KnownChainId2.isEVMMainnetChain = isEVMMainnetChain; function isEVMTestnetChain(value) { return _allKnownEVMTestnetChains.includes(value); } KnownChainId2.isEVMTestnetChain = isEVMTestnetChain; function isEVMChain(value) { return _allKnownEVMChains.includes(value); } KnownChainId2.isEVMChain = isEVMChain; let Stacks; ((Stacks2) => { Stacks2.Mainnet = chainId("stacks-mainnet"); Stacks2.Testnet = chainId("stacks-testnet"); })(Stacks = KnownChainId2.Stacks || (KnownChainId2.Stacks = {})); function isStacksChain(value) { return _allKnownStacksChains.includes(value); } KnownChainId2.isStacksChain = isStacksChain; })(KnownChainId || (KnownChainId = {})); var _allKnownBitcoinChains = Object.values(KnownChainId.Bitcoin); var _allKnownRunesChains = Object.values(KnownChainId.Runes); var _allKnownBRC20Chains = Object.values(KnownChainId.BRC20); var _allKnownEVMChains = Object.values(KnownChainId.EVM); var _allKnownStacksChains = Object.values(KnownChainId.Stacks); var _allKnownEVMMainnetChains = [ KnownChainId.EVM.Ethereum, KnownChainId.EVM.BSC, KnownChainId.EVM.CoreDAO, KnownChainId.EVM.Bsquared, KnownChainId.EVM.BOB, KnownChainId.EVM.Bitlayer, KnownChainId.EVM.Lorenzo, KnownChainId.EVM.Merlin, KnownChainId.EVM.AILayer, KnownChainId.EVM.Mode, KnownChainId.EVM.XLayer, KnownChainId.EVM.Arbitrum, KnownChainId.EVM.Aurora, KnownChainId.EVM.Manta, KnownChainId.EVM.Linea, KnownChainId.EVM.Base ]; var _allKnownEVMTestnetChains = [ KnownChainId.EVM.Sepolia, KnownChainId.EVM.BSCTestnet, KnownChainId.EVM.CoreDAOTestnet, KnownChainId.EVM.BlifeTestnet, KnownChainId.EVM.BitboyTestnet, KnownChainId.EVM.BeraTestnet ]; var _allNoLongerSupportedEVMChains = [ KnownChainId.EVM.Lorenzo ]; var _restEVMChain = null; checkNever(_restEVMChain); // src/evmUtils/addressHelpers.ts var import_viem = require("viem"); var nativeCurrencyAddress = import_viem.zeroAddress; // src/evmUtils/evmContractAddresses.ts var EVMChain = KnownChainId.EVM; var EVMToken = KnownTokenId.EVM; var EVMEndpointContract; ((EVMEndpointContract2) => { EVMEndpointContract2.BridgeEndpoint = "BridgeEndpoint"; EVMEndpointContract2.NativeBridgeEndpoint = "NativeBridgeEndpoint"; EVMEndpointContract2.BridgeConfig = "BridgeConfig"; EVMEndpointContract2.TimeLock = "TimeLock"; EVMEndpointContract2.Registry = "Registry"; })(EVMEndpointContract || (EVMEndpointContract = {})); var evmContractAddresses = { [EVMChain.Ethereum]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0x79d1C91053baceced5C796aB8a765E4d5aB38e8a" }, [EVMChain.BSC]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0x7062dB5dcaECDb355878a0BAB00A6941345D8711" }, [EVMChain.CoreDAO]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0x7062dB5dcaECDb355878a0BAB00A6941345D8711" }, [EVMChain.Bsquared]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.BOB]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Bitlayer]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Lorenzo]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Merlin]: { // https://t.me/c/1599543687/57297 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.AILayer]: { // https://t.me/c/1599543687/57439 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Mode]: { // https://t.me/c/1599543687/57779 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.XLayer]: { // https://t.me/c/1599543687/58186 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Arbitrum]: { // https://t.me/c/1599543687/58824 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Aurora]: { // https://t.me/c/1599543687/59145 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Manta]: { // https://t.me/c/1599543687/60487 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Linea]: { // https://t.me/c/1599543687/61611 // https://t.me/c/1599543687/61873 // https://t.me/c/1599543687/61734 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, [EVMChain.Base]: { // https://t.me/c/1599543687/64684 [EVMEndpointContract.BridgeConfig]: "0xf99f62475F50BE59393dbdc148E6627E4E88Fc24" }, // testnet [EVMChain.Sepolia]: { [EVMEndpointContract.BridgeConfig]: "0xE76e9e28ab8f7974F8bA24e4d83f9550BFe08d21" }, [EVMChain.BSCTestnet]: {}, [EVMChain.CoreDAOTestnet]: { [EVMEndpointContract.BridgeConfig]: "0xdbe8BBA9C95140bc4F5e3480Fe6a958Cd1C7E6CC" }, [EVMChain.BlifeTestnet]: { [EVMEndpointContract.BridgeConfig]: "0x643F9D448BC0F8D365bd0DbEEcB5BC6A7b96d922", [EVMToken.WBTC]: nativeCurrencyAddress }, [EVMChain.BitboyTestnet]: { [EVMEndpointContract.BridgeEndpoint]: "0x3114671EefE856B32851DF4bc5b6278d5A74b86b", [EVMToken.sUSDT]: "0x0d05e721F127AF25bDa0FE8836F1A2127028ad01", [EVMToken.aBTC]: "0xEf33A9Afa67bad73b8df4beBD4C5Adc678D70528", [EVMToken.ALEX]: "0x1DcD5BE312cc70c1e86218D2aC86EDDf79a851E4" }, [EVMChain.BeraTestnet]: { // https://t.me/c/1599543687/60509 // [EVMEndpointContract.BridgeConfig]: // "0xBa175fDaB00e7FCF603f43bE8f68dB7f4de9f3A9", // https://t.me/c/1599543687/60499 [EVMEndpointContract.Registry]: "0x6c74Bc8c54114b8Fed89686cC345eBCd838Fa0b9", [EVMToken.aBTC]: "0xD66FEeb23463f99f56363a7de7acEd7d04F3356e", [EVMToken.ALEX]: "0x3114671EefE856B32851DF4bc5b6278d5A74b86b", [EVMToken.vLiALEX]: "0x8EcfD0a81c2965d16b78e86b8E4Dc71D0109e0e1", [EVMToken.vLiSTX]: "0x2e3149230f98e7474AAAB3c1F6323BADfC4A66F8", [EVMToken.sUSDT]: "0x8F4eB4dB1493D800Bf476137A25dC3c3cD58952C", [EVMToken.wuBTC]: "0x391c193a3268aA0A93D76EAc85B88985b5CB92da" } }; // src/utils/BigNumber.ts var import_big = require("big.js"); // src/utils/arrayHelpers.ts function last(ary) { return ary[ary.length - 1]; } var _concat = [].concat; var _reduce = [].reduce; function reduce(fn, initialValue, inputArray) { return _reduce.call(inputArray, fn, initialValue); } // src/utils/BigNumber.ts import_big.Big.PE = 21; import_big.Big.NE = -21; var toBig = (num) => { if (num instanceof import_big.Big) { return num; } return new import_big.Big(num); }; var fromBig = (num) => { return num; }; var BigNumber; ((BigNumber2) => { ({ roundUp: BigNumber2.roundUp, roundDown: BigNumber2.roundDown, roundHalfUp: BigNumber2.roundHalfUp, roundHalfEven: BigNumber2.roundHalfEven } = import_big.Big); let defaultRoundingMode = BigNumber2.roundHalfUp; BigNumber2.setDefaultRoundingMode = (roundingMode) => { defaultRoundingMode = roundingMode; }; BigNumber2.isBigNumber = (num) => { return num instanceof import_big.Big; }; BigNumber2.safeFrom = (value) => { try { return (0, BigNumber2.from)(value); } catch (e) { return void 0; } }; BigNumber2.from = (value) => { return fromBig(toBig(value)); }; BigNumber2.toString = (value) => { return toBig(value).toString(); }; BigNumber2.toNumber = (value) => { return toBig(value).toNumber(); }; BigNumber2.toBigInt = curry2( (options, value) => { return BigInt( (0, BigNumber2.toFixed)( { precision: 0, roundingMode: options.roundingMode ?? defaultRoundingMode }, toBig(value) ) ); } ); BigNumber2.toFixed = curry2( (options, value) => { return toBig(value).toFixed( options.precision, options.roundingMode ?? defaultRoundingMode ); } ); BigNumber2.toExponential = curry2( (options, value) => { return toBig(value).toExponential( options.precision, options.roundingMode ?? defaultRoundingMode ); } ); BigNumber2.isNegative = (value) => { return toBig(value).lt(0); }; BigNumber2.isGtZero = (value) => { return toBig(value).gt(0); }; BigNumber2.isZero = (value) => { return toBig(value).eq(0); }; BigNumber2.isEq = curry2( (value, a) => { return toBig(value).eq(toBig(a)); } ); BigNumber2.isGt = curry2( (value, a) => { return toBig(value).gt(toBig(a)); } ); BigNumber2.isGte = curry2( (value, a) => { return toBig(value).gte(toBig(a)); } ); BigNumber2.isLt = curry2( (value, a) => { return toBig(value).lt(toBig(a)); } ); BigNumber2.isLte = curry2( (value, a) => { return toBig(value).lte(toBig(a)); } ); BigNumber2.setPrecision = curry2( (options, value) => { return fromBig( toBig( toBig(value).toPrecision( options.precision, options.roundingMode ?? defaultRoundingMode ) ) ); } ); BigNumber2.getPrecision = (value) => { return toBig(value).c.length - (toBig(value).e + 1); }; BigNumber2.getIntegerLength = (value) => { return toBig(value).e + 1; }; BigNumber2.leftMoveDecimals = curry2( (distance, value) => (0, BigNumber2.moveDecimals)({ distance }, value) ); BigNumber2.rightMoveDecimals = curry2( (distance, value) => (0, BigNumber2.moveDecimals)({ distance: -distance }, value) ); BigNumber2.moveDecimals = curry2( (options, value) => { if (options.distance > 0) { return fromBig(toBig(value).div(10 ** options.distance)); } if (options.distance < 0) { return fromBig(toBig(value).mul(10 ** -options.distance)); } return (0, BigNumber2.from)(value); } ); BigNumber2.getDecimalPart = curry2( (options, value) => { const formatted = (0, BigNumber2.toFixed)( { precision: Math.min((0, BigNumber2.getPrecision)(value), options.precision), roundingMode: BigNumber2.roundDown }, value ); const [, decimals] = formatted.split("."); if (decimals == null) return void 0; return decimals; } ); BigNumber2.abs = (value) => { return fromBig(toBig(value).abs()); }; BigNumber2.neg = (value) => { return fromBig(toBig(value).neg()); }; BigNumber2.sqrt = (value) => { return fromBig(toBig(value).sqrt()); }; BigNumber2.add = curry2( (value, a) => { return fromBig(toBig(value).add(toBig(a))); } ); BigNumber2.minus = curry2( (value, a) => { return fromBig(toBig(value).minus(toBig(a))); } ); BigNumber2.mul = curry2( (value, a) => { return fromBig(toBig(value).mul(toBig(a))); } ); BigNumber2.cumulativeMul = curry2( (value, as) => { return reduce( (acc, currentRate) => [ ...acc, BigNumber2.mul(last(acc), currentRate) ], [(0, BigNumber2.from)(value)], as ); } ); BigNumber2.div = curry2( (value, a) => { return fromBig(toBig(value).div(toBig(a))); } ); BigNumber2.pow = curry2((value, a) => { return fromBig(toBig(value).pow(a)); }); BigNumber2.round = curry2( (options, value) => { return fromBig( toBig(value).round( options.precision, options.roundingMode ?? defaultRoundingMode ) ); } ); BigNumber2.toPrecision = curry2( (options, value) => { return toBig(value).toPrecision( options.precision, options.roundingMode ?? defaultRoundingMode ); } ); BigNumber2.ascend = curry2( (a, b) => (0, BigNumber2.isLt)(a, b) ? -1 : (0, BigNumber2.isGt)(a, b) ? 1 : 0 ); BigNumber2.descend = curry2( (a, b) => (0, BigNumber2.isLt)(a, b) ? 1 : (0, BigNumber2.isGt)(a, b) ? -1 : 0 ); BigNumber2.sort = (comparator, numbers) => { const _numbers = numbers.map((a) => fromBig(toBig(a))); _numbers.sort(comparator); return _numbers; }; BigNumber2.max = (numbers) => { return (0, BigNumber2.from)((0, BigNumber2.sort)(BigNumber2.descend, numbers)[0]); }; BigNumber2.min = (numbers) => { return (0, BigNumber2.from)((0, BigNumber2.sort)(BigNumber2.ascend, numbers)[0]); }; BigNumber2.clamp = (range, n) => { const [min2, max2] = range; if ((0, BigNumber2.isGte)(n, max2)) return max2; if ((0, BigNumber2.isLte)(n, min2)) return min2; return n; }; BigNumber2.sum = (numbers) => { return numbers.map((n) => fromBig(toBig(n))).reduce((acc, n) => (0, BigNumber2.add)(acc, n), BigNumber2.ZERO); }; BigNumber2.ZERO = BigNumber2.from(0); BigNumber2.ONE = BigNumber2.from(1); })(BigNumber || (BigNumber = {})); function curry2(fn) { return function(a, b) { if (arguments.length > 1) { return fn(a, b); } return (b2) => fn(a, b2); }; } // src/xlinkSdkUtils/types.ts var evmNativeCurrencyAddress = Symbol( "[XLinkSDK] EVM Native Currency Address" ); var isStacksContractAddressEqual = (a, b) => { return a.deployerAddress === b.deployerAddress && a.contractName === b.contractName; }; var PublicEVMContractType; ((PublicEVMContractType2) => { PublicEVMContractType2.BridgeEndpoint = EVMEndpointContract.BridgeEndpoint; })(PublicEVMContractType || (PublicEVMContractType = {})); // src/stacksUtils/stxContractAddresses.ts var xlinkContractsDeployerMainnet = "SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK"; var xlinkContractsDeployerTestnet = "ST2QXSK64YQX3CQPC530K79XWQ98XFAM9W3XKEH3N"; var xlinkContractsMultisigMainnet = "SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T"; var xlinkContractsMultisigTestnet = "ST2QXSK64YQX3CQPC530K79XWQ98XFAM9W3XKEH3N"; var alexContractDeployerMainnet = "SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM"; var alexContractDeployerTestnet = "ST1J4G6RR643BCG8G8SR6M2D9Z9KXT2NJDRK3FBTK"; var legacyAlexContractDeployerMainnet = "SP3K8BC0PPEVCV7NZ6QSRWPQ2JE9E5B6N3PA0KBR9"; var legacyAlexContractDeployerTestnet = "ST1J2JTYXGRMZYNKE40GM87ZCACSPSSEEQVSNB7DC"; var stxAlternativeTokenContractAddresses = { wbtc: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-wbtc" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-wbtc" } }, btcb: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-wbtc" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-btcb" } }, cbBTC: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-wbtc" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-wbtc" } }, usdt: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-usdt" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-usdt" } }, usdc: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-usdt" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-usdt" } } }; var getTerminatingStacksTokenContractAddress = (route) => { const { fromToken, toChain, toToken } = route; if (fromToken === KnownTokenId.Stacks.aBTC) { const restChains = assertExclude.i(); if ((toChain === KnownChainId.EVM.Ethereum || toChain === KnownChainId.EVM.Sepolia) && toToken === KnownTokenId.EVM.WBTC) { return stxAlternativeTokenContractAddresses.wbtc[route.fromChain]; } assertExclude(restChains, KnownChainId.EVM.Ethereum); assertExclude(restChains, KnownChainId.EVM.Sepolia); if ((toChain === KnownChainId.EVM.BSC || toChain === KnownChainId.EVM.BSCTestnet) && toToken === KnownTokenId.EVM.BTCB) { return stxAlternativeTokenContractAddresses.btcb[route.fromChain]; } assertExclude(restChains, KnownChainId.EVM.BSC); assertExclude(restChains, KnownChainId.EVM.BSCTestnet); if (toChain === KnownChainId.EVM.Base && toToken === KnownTokenId.EVM.cbBTC) { return stxAlternativeTokenContractAddresses.cbBTC[route.fromChain]; } assertExclude(restChains, KnownChainId.EVM.Base); checkNever(restChains); } if (fromToken === KnownTokenId.Stacks.sUSDT) { const restChains = assertExclude.i(); if ((toChain === KnownChainId.EVM.Ethereum || toChain === KnownChainId.EVM.Sepolia || toChain === KnownChainId.EVM.BSC || toChain === KnownChainId.EVM.BSCTestnet) && toToken === KnownTokenId.EVM.USDT) { return stxAlternativeTokenContractAddresses.usdt[route.fromChain]; } assertExclude(restChains, KnownChainId.EVM.Ethereum); assertExclude(restChains, KnownChainId.EVM.Sepolia); assertExclude(restChains, KnownChainId.EVM.BSC); assertExclude(restChains, KnownChainId.EVM.BSCTestnet); if (toChain === KnownChainId.EVM.Base && toToken === KnownTokenId.EVM.USDC) { return stxAlternativeTokenContractAddresses.usdt[route.fromChain]; } assertExclude(restChains, KnownChainId.EVM.Base); checkNever(restChains); } return void 0; }; var getEVMTokenIdFromTerminatingStacksTokenContractAddress = (route) => { const restStableUSDChains = assertExclude.i(); const restBTCChains = assertExclude.i(); if ((route.evmChain === KnownChainId.EVM.Ethereum || route.evmChain === KnownChainId.EVM.Sepolia) && isStacksContractAddressEqual( route.stacksTokenAddress, stxAlternativeTokenContractAddresses.wbtc[route.stacksChain] )) { return KnownTokenId.EVM.WBTC; } assertExclude(restBTCChains, KnownChainId.EVM.Ethereum); assertExclude(restBTCChains, KnownChainId.EVM.Sepolia); if ((route.evmChain === KnownChainId.EVM.BSC || route.evmChain === KnownChainId.EVM.BSCTestnet) && isStacksContractAddressEqual( route.stacksTokenAddress, stxAlternativeTokenContractAddresses.btcb[route.stacksChain] )) { return KnownTokenId.EVM.BTCB; } assertExclude(restBTCChains, KnownChainId.EVM.BSC); assertExclude(restBTCChains, KnownChainId.EVM.BSCTestnet); if (route.evmChain === KnownChainId.EVM.Base && isStacksContractAddressEqual( route.stacksTokenAddress, stxAlternativeTokenContractAddresses.cbBTC[route.stacksChain] )) { return KnownTokenId.EVM.cbBTC; } assertExclude(restBTCChains, KnownChainId.EVM.Base); if ((route.evmChain === KnownChainId.EVM.Ethereum || route.evmChain === KnownChainId.EVM.Sepolia || route.evmChain === KnownChainId.EVM.BSC || route.evmChain === KnownChainId.EVM.BSCTestnet) && isStacksContractAddressEqual( route.stacksTokenAddress, stxAlternativeTokenContractAddresses.usdt[route.stacksChain] )) { return KnownTokenId.EVM.USDT; } assertExclude(restStableUSDChains, KnownChainId.EVM.Ethereum); assertExclude(restStableUSDChains, KnownChainId.EVM.Sepolia); assertExclude(restStableUSDChains, KnownChainId.EVM.BSC); assertExclude(restStableUSDChains, KnownChainId.EVM.BSCTestnet); if (route.evmChain === KnownChainId.EVM.Base && isStacksContractAddressEqual( route.stacksTokenAddress, stxAlternativeTokenContractAddresses.usdc[route.stacksChain] )) { return KnownTokenId.EVM.USDC; } assertExclude(restStableUSDChains, KnownChainId.EVM.Base); checkNever(restStableUSDChains); checkNever(restBTCChains); return void 0; }; var stxContractDeployers = { "btc-peg-in-endpoint-v2-05": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsMultisigTestnet } }, "btc-peg-out-endpoint-v2-01": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet } }, "cross-peg-in-endpoint-v2-04": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsMultisigTestnet } }, "cross-peg-out-endpoint-v2-01": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet } }, "meta-peg-in-endpoint-v2-04": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsMultisigTestnet } }, "meta-peg-out-endpoint-v2-04": { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsMultisigTestnet } } }; var stxTokenContractAddresses = { [KnownTokenId.Stacks.ALEX]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: alexContractDeployerMainnet, contractName: "token-alex" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: alexContractDeployerTestnet, contractName: "token-alex" } }, [KnownTokenId.Stacks.aBTC]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet, contractName: "token-abtc" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-abtc" } }, [KnownTokenId.Stacks.sUSDT]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet, contractName: "token-susdt" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-susdt" } }, [KnownTokenId.Stacks.sLUNR]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet, contractName: "token-slunr" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-slunr" } }, [KnownTokenId.Stacks.sSKO]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsDeployerMainnet, contractName: "token-ssko" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-ssko" } }, [KnownTokenId.Stacks.vLiSTX]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: alexContractDeployerMainnet, contractName: "token-wvlqstx" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: alexContractDeployerTestnet, contractName: "token-wvlqstx" } }, [KnownTokenId.Stacks.vLiALEX]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: alexContractDeployerMainnet, contractName: "token-wvlialex" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: alexContractDeployerTestnet, contractName: "token-wvlialex" } }, [KnownTokenId.Stacks.uBTC]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: xlinkContractsMultisigMainnet, contractName: "token-ubtc" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: xlinkContractsDeployerTestnet, contractName: "token-ubtc" } }, [KnownTokenId.Stacks.DB20]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: legacyAlexContractDeployerMainnet, contractName: "brc20-db20" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: legacyAlexContractDeployerTestnet, contractName: "brc20-db20" } }, [KnownTokenId.Stacks.DOG]: { [KnownChainId.Stacks.Mainnet]: { deployerAddress: legacyAlexContractDeployerMainnet, contractName: "runes-dog" }, [KnownChainId.Stacks.Testnet]: { deployerAddress: legacyAlexContractDeployerTestnet, contractName: "runes-dog" } } }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { alexContractDeployerMainnet, alexContractDeployerTestnet, getEVMTokenIdFromTerminatingStacksTokenContractAddress, getTerminatingStacksTokenContractAddress, legacyAlexContractDeployerMainnet, legacyAlexContractDeployerTestnet, stxContractDeployers, stxTokenContractAddresses, xlinkContractsDeployerMainnet, xlinkContractsDeployerTestnet, xlinkContractsMultisigMainnet, xlinkContractsMultisigTestnet }); //# sourceMappingURL=stxContractAddresses.js.map