@mayanfinance/swap-sdk
Version:
A SDK to swap with Mayan
1 lines • 208 kB
JavaScript
"use strict";var Wr=Object.create;var At=Object.defineProperty;var Kr=Object.getOwnPropertyDescriptor;var Lr=Object.getOwnPropertyNames;var Ur=Object.getPrototypeOf,Gr=Object.prototype.hasOwnProperty;var Vr=(e,t)=>{for(var n in t)At(e,n,{get:t[n],enumerable:!0})},Cn=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Lr(t))!Gr.call(e,s)&&s!==n&&At(e,s,{get:()=>t[s],enumerable:!(r=Kr(t,s))||r.enumerable});return e};var Nt=(e,t,n)=>(n=e!=null?Wr(Ur(e)):{},Cn(t||!e||!e.__esModule?At(n,"default",{value:e,enumerable:!0}):n,e)),Hr=e=>Cn(At({},"__esModule",{value:!0}),e);var xa={};Vr(xa,{FAST_MCTP_PAYLOAD_TYPE_CUSTOM_PAYLOAD:()=>Vt,FAST_MCTP_PAYLOAD_TYPE_DEFAULT:()=>Gt,FAST_MCTP_PAYLOAD_TYPE_ORDER:()=>Ht,MCTP_INIT_ORDER_PAYLOAD_ID:()=>Ut,MCTP_PAYLOAD_TYPE_CUSTOM_PAYLOAD:()=>pt,MCTP_PAYLOAD_TYPE_DEFAULT:()=>ut,PermitTypes:()=>_n,SWIFT_PAYLOAD_TYPE_CUSTOM_PAYLOAD:()=>Ge,SWIFT_PAYLOAD_TYPE_DEFAULT:()=>Ue,ZeroPermit:()=>ge,addBridgeLockedFeeMoveCalls:()=>Sr,addBridgeWithFeeMoveCalls:()=>Cr,addBridgeWithFeeMoveCalls2:()=>_r,addInitOrderMoveCalls:()=>Mr,addresses:()=>l,assertArgumentIsImmutable:()=>It,broadcastJitoBundleId:()=>on,checkSdkVersionSupport:()=>Kt,confirmJitoBundleId:()=>sn,createApproveInstruction:()=>nn,createAssociatedTokenAccountInstruction:()=>pe,createCloseAccountInstruction:()=>Hn,createHyperCoreClonedQuote:()=>Ze,createHyperCoreDepositFromSolanaInstructions:()=>dn,createInitializeRandomTokenAccountInstructions:()=>He,createMctpBridgeLedgerInstruction:()=>cn,createMctpBridgeWithFeeInstruction:()=>pn,createMctpFromSolanaInstructions:()=>ln,createMctpFromSuiMoveCalls:()=>In,createMonoChainFromSolanaInstructions:()=>yn,createPayloadWriterCloseInstruction:()=>je,createPayloadWriterCreateInstruction:()=>Ye,createSplTransferInstruction:()=>Ke,createSwapFromSolanaInstructions:()=>yr,createSwapFromSuiMoveCalls:()=>Da,createSwiftFromSolanaInstructions:()=>bt,createSwiftOrderHash:()=>_t,createSwiftRandomKey:()=>ct,createSyncNativeInstruction:()=>et,createTransferAllAndCloseInstruction:()=>Qe,decentralizeClientSwapInstructions:()=>Fe,decideRelayer:()=>rn,deserializeInstructionInfo:()=>yt,estimateQuoteRequiredGas:()=>_a,estimateQuoteRequiredGasAprox:()=>ka,estimateQuoteRequiredGasAprox2:()=>Ea,fetchAllCoins:()=>Rt,fetchAllTokenList:()=>zr,fetchMayanSuiPackageId:()=>Je,fetchQuote:()=>qr,fetchTokenList:()=>Zr,generateFetchQuoteUrl:()=>Xr,generateFetchQuoteUrlAndBody:()=>kn,getAddressLookupTableAccounts:()=>Oe,getAmountOfFractionalAmount:()=>T,getAnchorInstructionData:()=>Z,getAssociatedTokenAddress:()=>K,getCurrentChainTime:()=>ea,getDisplayAmount:()=>jr,getEstimateGasEvm:()=>$t,getEvmChainIdByName:()=>st,getEvmSwiftParams:()=>gt,getFastMctpFromEvmTxPayload:()=>fn,getGasDecimal:()=>j,getGasDecimalsInSolana:()=>Lt,getHyperCoreDepositFromEvmTxPayload:()=>bn,getHyperCoreSwiftFromEvmGasLessParams:()=>gn,getHyperCoreUSDCDepositCustomPayload:()=>Xe,getHyperCoreWithdrawParams:()=>Tn,getJitoTipTransfer:()=>an,getLookupTableAddress:()=>ve,getMctpFromEvmTxPayload:()=>en,getMonoChainFromEvmTxPayload:()=>wn,getNormalizeFactor:()=>Ee,getPermitDomain:()=>Pn,getPermitParams:()=>Jr,getQuoteSuitableReferrerAddress:()=>We,getSafeU64Blob:()=>F,getSdkVersion:()=>ke,getSuggestedRelayer:()=>Qt,getSvmDurableNonce:()=>Jt,getSwapEvm:()=>Ve,getSwapFromEvmTxPayload:()=>ht,getSwapSolana:()=>Re,getSwapSui:()=>dt,getSwiftFromEvmGasLessParams:()=>wt,getSwiftFromEvmTxPayload:()=>Tt,getSwiftOrderTypeData:()=>br,getSwiftToTokenHexString:()=>qe,getTransactionFirstSignature:()=>Pt,getWormholeChainIdById:()=>ie,getWormholeChainIdByName:()=>P,hexToUint8Array:()=>Y,isValidAptosType:()=>Mn,nativeAddressToHexString:()=>I,resolveInputCoin:()=>Ne,sandwichInstructionInCpiProxy:()=>k,sendJitoBundle:()=>Mt,solMint:()=>Se,submitHyperCoreWithdraw:()=>zt,submitSwiftEvmSwap:()=>Yt,submitSwiftSolanaSwap:()=>jt,submitTransactionWithRetry:()=>ft,swapFromEvm:()=>Pa,swapFromSolana:()=>wa,unwrapSol:()=>sa,validateJupSwap:()=>Me,validateJupSwapInstructionData:()=>un,wait:()=>ot,wrapSol:()=>ia});module.exports=Hr(xa);var me=Nt(require("cross-fetch"));var l={MAYAN_FORWARDER_CONTRACT:"0x337685fdaB40D39bd02028545a4FfA7D287cC3E2",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",FAST_MCTP_PROGRAM_ID:"Gx9rivpS3YR8pBFwMuP6omYqVxunpLvLkNn7ubNyuZZ5",SWIFT_PROGRAM_ID:"BLZRi6frs4X4DNLw56V4EXai1b6QVESN1BhHBTYM9VcY",SWIFT_V2_PROGRAM_ID:"mayan34VedncxdK2XobtvWFDXQASUTBXhUVzt2kKgny",FEE_MANAGER_PROGRAM_ID:"5VtQHnhs2pfVEr68qQsbTRwKh4JV5GTu9mBHgHFxpHeQ",WORMHOLE_PROGRAM_ID:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",WORMHOLE_PROGRAM_ID_FOGO:"worm2mrQkG1B1KTz37erMfWN8anHkSK24nzca7UD8BB",WORMHOLE_SHIM_POST_MESSAGE_PROGRAM_ID:"EtZMZM22ViKMo4r5y4Anovs3wKQ2owUmDpjygnMMcdEX",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTPV2_CORE_PROGRAM_ID:"CCTPV2Sm4AdWt5296sk4P66VBZ7bEhcARwFaaS9YPbeC",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",CCTPV2_TOKEN_PROGRAM_ID:"CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE_SOLANA:"Ff3yi1meWQQ19VPZMzGg6H8JQQeRudiV7QtVtyzJyoht",LOOKUP_TABLE_FOGO:"ZnLmtY5qckPcBQfdD4uKh9GtiQTrzQfQXEX86U3aLq7",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",SUI_SWIFT_STATE:"0x7ac01a7c14c53098a41593c7623823bb677b5201fb3ee35b75b47cfc6c6c6f40",SUI_SWIFT_FEE_MANAGER_STATE:"0xe42174b6d742f40bd2b67b967542b21e6d7433f2d277a80bb59866ac73ff3f52",SUI_CCTP_CORE_PACKAGE_ID:"0x08d87d37ba49e785dde270a83f8e979605b03dc552b5548f26fdf2f49bf7ed1b",SUI_CCTP_CORE_STATE:"0xf68268c3d9b1df3215f2439400c1c4ea08ac4ef4bb7d6f3ca6a2a239e17510af",SUI_CCTP_TOKEN_PACKAGE_ID:"0x2aa6c5d56376c371f88a6cc42e852824994993cb9bab8d3e6450cbe3cb32b94e",SUI_CCTP_TOKEN_STATE:"0x45993eecc0382f37419864992c12faee2238f5cfe22b98ad3bf455baf65c8a2f",SUI_WORMHOLE_PACKAGE_ID:"0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a",SUI_WORMHOLE_STATE:"0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c",SUI_LOGGER_PACKAGE_ID:"0x05680e9030c147b413a489f7891273acc221d49bd061c433e5771bc170fc37ac",EXPLORER_URL:"https://explorer-api.mayan.finance/v3",PRICE_URL:"https://price-api.mayan.finance/v3",RELAYER_URL:"https://relayer-api.mayan.finance/v3",SWIFT_RELAYER_URL:"https://swift-relayer-api.mayan.finance/v3",GAS_ESTIMATE_URL:"https://gas-estimate.mayan.finance/v2",HC_ARBITRUM_BRIDGE:"0x2df1c51e09aecf9cacb7bc98cb1742757f163df7",HC_ARBITRUM_DEPOSIT_PROCESSOR:"0xdDd77e62C848C3334f1148d4F1457FC59ede4E4B",HC_HYPEREVM_DEPOSIT_PROCESSOR:"0x56032241c0adab58a29b13e94fb595a4bc414e33",HC_ARBITRUM_WITHDRAW_PROCESSOR:"0xe087f468efaece33b6b9b15c9448b8268bc3efe4",HYPEREVM_USDC_CONTRACT:"0xb88339CB7199b77E23DB6E890353E22632Ba630f",PAYLOAD_WRITER_PROGRAM_ID:"DwMLtdtJqJQkHzNcrdTBuWHJByJfgpKBnvFvzyKdy3cU",CPI_PROXY_PROGRAM_ID:"D8C8iW6zmoKg5TRr8nQ7h14TMWqQX8FiBdj2ju5MF3wa"};var W=require("ethers"),ye=require("@solana/web3.js"),Ae=require("buffer");var it={_format:"hh-sol-artifact-1",contractName:"ERC20Permit",sourceName:"contracts/token/ERC20/extensions/ERC20Permit.sol",abi:[{inputs:[],name:"ECDSAInvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"length",type:"uint256"}],name:"ECDSAInvalidSignatureLength",type:"error"},{inputs:[{internalType:"bytes32",name:"s",type:"bytes32"}],name:"ECDSAInvalidSignatureS",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"allowance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientAllowance",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC20InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC20InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC20InvalidSender",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"}],name:"ERC20InvalidSpender",type:"error"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"ERC2612ExpiredSignature",type:"error"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"owner",type:"address"}],name:"ERC2612InvalidSigner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"currentNonce",type:"uint256"}],name:"InvalidAccountNonce",type:"error"},{inputs:[],name:"InvalidShortString",type:"error"},{inputs:[{internalType:"string",name:"str",type:"string"}],name:"StringTooLong",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};var Sn=Nt(require("js-sha3")),Qr=Sn.sha3_256,Mn=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function I(e,t){if(t===ne.solana||t===ne.fogo)return(0,W.zeroPadValue)(new ye.PublicKey(e).toBytes(),32);if(t===ne.ethereum||t===ne.bsc||t===ne.polygon||t===ne.avalanche||t===ne.arbitrum||t===ne.optimism||t===ne.base||t===ne.unichain||t===ne.linea||t===ne.sonic||t===ne.hyperevm||t===ne.monad||t===ne.hypercore)return(0,W.zeroPadValue)(e,32);if(t===ne.aptos&&Mn(e))return`0x${Qr(e)}`;if(t===ne.sui||t===ne.ton){let n=e.startsWith("0x")?e.substring(2):e;if(Ae.Buffer.from(n,"hex").length!==32)throw new Error("Invalid address: "+e);return(0,W.zeroPadValue)(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function Y(e){return new Uint8Array(Ae.Buffer.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function K(e,t,n=!1,r=new ye.PublicKey(l.TOKEN_PROGRAM_ID),s=new ye.PublicKey(l.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!ye.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");let[a]=ye.PublicKey.findProgramAddressSync([t.toBuffer(),r.toBuffer(),e.toBuffer()],s);return a}function Yr(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function T(e,t){if(e==null)throw new Error("getAmountOfFractionalAmount: Amount is null or undefined");if(typeof e!="string"&&typeof e!="number")throw new Error("getAmountOfFractionalAmount: Amount is not a string or number");if(typeof e=="string"&&e.length===0)throw new Error("getAmountOfFractionalAmount: Amount is empty");if(!Number.isFinite(Number(e)))throw new Error("getAmountOfFractionalAmount: Amount is not a number");if(!Yr(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");let n=Math.min(8,Number(t)),r=Number(e).toFixed(n+1),s=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),a=r.match(s);if(!a)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");let u=a[0];return(0,W.parseUnits)(u,Number(t))}function jr(e,t){return Number((0,W.formatUnits)(e,t))}var ne={solana:1,ethereum:2,bsc:4,polygon:5,avalanche:6,arbitrum:23,optimism:24,base:30,aptos:22,sui:21,ton:13,unichain:44,linea:38,hypercore:65e3,sonic:52,hyperevm:47,fogo:51,monad:48};function P(e){let t=ne[e];if(!t)throw new Error(`Chain Id not found for chain: ${e}`);return t}var Wt={[1]:2,[56]:4,[137]:5,[43114]:6,[42161]:23,[10]:24,[8453]:30,[130]:44,[59144]:38,[146]:52,[999]:47,[143]:48,[65e3]:65e3};function st(e){let t=ne[e],n=Object.keys(Wt);for(let r of n)if(Wt[r]===t)return Number(r);throw new Error(`Unsupported chain: ${e}`)}function ie(e){return Wt[e]}var ze=[15,0,0];function ke(){return ze.join("_")}function Kt(e){return ze[0]<e[0]?!1:ze[0]>e[0]?!0:ze[1]<e[1]?!1:ze[1]>e[1]||ze[2]>=e[2]}function j(e){return e==="solana"||e==="sui"||e==="ton"?9:18}function Lt(e){return e==="solana"?9:8}var $r=BigInt(2)**BigInt(64)-BigInt(1);function F(e){if(e<BigInt(0)||e>$r)throw new Error(`Invalid u64: ${e}`);let t=Ae.Buffer.alloc(8);return t.writeBigUInt64LE(e),t}var ge={value:BigInt(0),deadline:0,v:0,r:`0x${ye.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${ye.SystemProgram.programId.toBuffer().toString("hex")}`};function ot(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}function We(e,t){if(!e||!t)return null;if(e.type==="WH")return t?.solana||null;if(e.type==="MCTP")return e.toChain==="solana"?t?.solana||null:e.toChain==="sui"?t?.sui||null:t?.evm||null;if(e.type==="SWIFT"){if(e.swiftVersion==="V2")return e.fromChain==="solana"||e.fromChain==="fogo"?t?.solana||null:e.fromChain==="sui"?t?.sui||null:t?.evm||null;if(e.toChain==="solana")return t?.solana||null;if(e.toChain==="sui")throw new Error("Swift V1 does not support SUI");return t?.evm||null}if(e.type==="FAST_MCTP"){if(e.toChain==="solana")return t?.solana||null;if(e.toChain!=="sui")return t?.evm||null}return e.type==="MONO_CHAIN"?e.fromChain==="solana"?t?.solana||null:e.fromChain==="sui"?t?.sui||null:t?.evm||null:null}var ut=1,pt=2,Ut=1,Gt=1,Vt=2,Ht=3,Ue=1,Ge=2;async function Pn(e,t){let n=new W.ethers.Contract(e.contract,it.abi,t),r,s;try{let[i,c]=await Promise.all([n.DOMAIN_SEPARATOR(),n.name()]);r=i,s=c}catch{throw{mayanError:{permitIssue:!0}}}let a={name:s,version:"1",chainId:e.chainId,verifyingContract:e.contract};for(let i=1;i<11;i++)if(a.version=String(i),W.TypedDataEncoder.hashDomain(a).toLowerCase()===r.toLowerCase())return a;let u=W.ethers.zeroPadValue(W.ethers.toBeHex(e.chainId),32),p=W.ethers.keccak256(W.ethers.toUtf8Bytes("EIP712Domain(string name,string version,address verifyingContract,bytes32 salt)"));if(e.realOriginChainId&&e.realOriginContractAddress&&e.wChainId!==e.realOriginChainId){let i=new Uint8Array(2);i[0]=e.realOriginChainId>>8&255,i[1]=e.realOriginChainId&255;let c=new Uint8Array(2+32);c.set(i,0),c.set(W.ethers.getBytes(W.ethers.zeroPadValue(e.realOriginContractAddress,32)),2);let o=W.ethers.keccak256(c),d=W.ethers.keccak256(W.ethers.toUtf8Bytes("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)"));for(let m=0;m<11;m++)if(W.ethers.keccak256(new W.ethers.AbiCoder().encode(["bytes32","bytes32","bytes32","uint256","address","bytes32"],[d,W.ethers.keccak256(W.ethers.toUtf8Bytes(s)),W.ethers.keccak256(W.ethers.toUtf8Bytes(String(m))),e.chainId,e.contract,o])).toLowerCase()===r.toLowerCase())return a.version=String(m),a.salt=o,a}for(let i=0;i<11;i++)if(W.ethers.keccak256(new W.ethers.AbiCoder().encode(["bytes32","bytes32","bytes32","address","bytes32"],[p,W.ethers.keccak256(W.ethers.toUtf8Bytes(s)),W.ethers.keccak256(W.ethers.toUtf8Bytes(String(i))),e.contract,u])).toLowerCase()===r.toLowerCase())return delete a.chainId,a.version=String(i),a.salt=u,a;throw{mayanError:{permitIssue:!0}}}var _n={Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]};async function Jr(e,t,n,r,s,a){if(e.standard!=="erc20"&&e.standard!=="hypertoken")throw new Error("Token is not ERC20");if(!e.supportsPermit)throw new Error("Token does not support permit");let u=new W.ethers.Contract(e.contract,it.abi,s),[p,i]=await Promise.all([Pn(e,s),u.nonces(t)]);return{domain:p,types:_n,value:{owner:t,spender:n,nonce:String(i),value:String(r),deadline:String(a)}}}function Ze(e){let t=JSON.parse(JSON.stringify(e));return t.toToken={...t.toToken,contract:l.HYPEREVM_USDC_CONTRACT,decimals:6,wChainId:P("hyperevm"),chainId:st("hyperevm")},t.gasDrop=0,t.toChain="hyperevm",t}function Xe(e,t,n){let r=Ae.Buffer.alloc(32),s=Ae.Buffer.from(t.startsWith("0x")?t.slice(2):t,"hex");if(s.length!==20)throw new Error("Invalid destination address length for EVM: "+t);return r.set(s),r.writeUint32BE(n,20),r.writeBigUInt64BE(BigInt(e?.hcSwiftDeposit?.relayerFee64||0),24),r}function qe(e){if(e.toChain==="sui"){if(!e.toToken.verifiedAddress)throw new Error("To token verified address is required for SUI");return I(e.toToken.verifiedAddress,P("sui"))}else if(e.toChain==="ton"){if(e.toToken.contract===W.ZeroAddress)return I(ye.SystemProgram.programId.toString(),P("solana"));if(!e.toToken.verifiedAddress)throw new Error("To token verified address is required for Ton chain");return e.toToken.verifiedAddress}else return e.toToken.contract===W.ZeroAddress?I(ye.SystemProgram.programId.toString(),P("solana")):I(e.toToken.contract,P(e.toChain))}function Ee(e,t){if(e==="ton"){if(t!=="SWIFT")throw new Error("Unsupported quote type for Tonchain destination");return 1/0}return 8}function ct(e){try{let t=Ae.Buffer.from(W.ethers.zeroPadValue(Ae.Buffer.from(e.quoteId.startsWith("0x")?e.quoteId.substring(2):e.quoteId,"hex"),16).substring(2),"hex"),n=e.memoHex?Ae.Buffer.from(W.ethers.zeroPadValue(Ae.Buffer.from(e.memoHex.startsWith("0x")?e.memoHex.substring(2):e.memoHex,"hex"),16).substring(2),"hex"):null;if(n)return Ae.Buffer.concat([t,n]);{let r=ye.Keypair.generate().publicKey.toBytes();return Ae.Buffer.concat([t,r.slice(0,16)])}}catch{}return ye.Keypair.generate().publicKey.toBuffer()}function lt(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function Te(e){if(e.status.toString().startsWith("5")){let t=new Error("Internal server error");try{let n=await e.json();(n?.code||n?.statusCode)&&(n?.message||n?.msg)&&(t={code:n?.code||n?.statusCode,message:n?.message||n?.msg})}catch{t=new Error("Internal server error")}throw t}}async function zr(e,t){let n=lt({standard:e?e.join(","):void 0,apiKey:t,sdkVersion:ke()}),r=await(0,me.default)(`${l.PRICE_URL}/tokens?${n}`,{method:"GET",redirect:"follow"});if(await Te(r),r.status===200)return await r.json();throw new Error("Cannot fetch Mayan tokens!")}async function Zr(e,t=!1,n,r){let s={chain:e,nonPortal:t,standard:n?n?.join(","):void 0,apiKey:r,sdkVersion:ke()},a=await(0,me.default)(`${l.PRICE_URL}/tokens?${lt(s)}`);if(await Te(a),a.status===200)return(await a.json())[e];throw new Error("Cannot fetch Mayan tokens!")}function Xr(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0,fullList:!1,payload:void 0,monoChain:!0}){let{gasDrop:n,referrerBps:r}=e,s=e.slippageBps;if(s!=="auto"&&!Number.isFinite(s)){if(e.slippage===void 0||e.slippage===null||!Number.isFinite(e.slippage))throw new Error("Either slippageBps or slippage must be provided");s=e.slippage*100}if(t.extraInstructions||t.solanaBridgeOptions)throw new Error("Should use generateFetchQuoteUrlAndBody when extraInstructions or solanaBridgeOptions is provided");let u={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0,fullList:t.fullList===!0,payload:typeof t.payload=="string"?t.payload:void 0,monoChain:t.monoChain!==!1,apiKey:typeof t.apiKey=="string"?t.apiKey:void 0,memoHex:typeof t.memoHex=="string"?t.memoHex:void 0},solanaProgram:l.MAYAN_PROGRAM_ID,forwarderAddress:l.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:s,referrer:e.referrer,referrerBps:Number.isFinite(r)?r:void 0,gasDrop:Number.isFinite(n)?n:void 0,destinationAddress:e.destinationAddress??void 0,sdkVersion:ke()},p=`${l.PRICE_URL}/quote?`,i=lt(u);return p+i}function kn(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0,fullList:!1,payload:void 0,monoChain:!0}){let{gasDrop:n,referrerBps:r}=e,s=e.slippageBps;if(s!=="auto"&&!Number.isFinite(s)){if(e.slippage===void 0||e.slippage===null||!Number.isFinite(e.slippage))throw new Error("Either slippageBps or slippage must be provided");s=e.slippage*100}let a=t.solanaBridgeOptions?{...t.solanaBridgeOptions,customPayload:t.solanaBridgeOptions.customPayload?Buffer.from(t.solanaBridgeOptions.customPayload).toString("hex"):void 0}:void 0,p={...{wormhole:t.wormhole!==!1,swift:t.swift!==!1,mctp:t.mctp!==!1,shuttle:t.shuttle===!0,fastMctp:t.fastMctp!==!1,gasless:t.gasless===!0,onlyDirect:t.onlyDirect===!0,fullList:t.fullList===!0,payload:typeof t.payload=="string"?t.payload:void 0,monoChain:t.monoChain!==!1,memoHex:typeof t.memoHex=="string"?t.memoHex:void 0,extraInstructions:t.extraInstructions},solanaBridgeOptions:a,solanaProgram:l.MAYAN_PROGRAM_ID,forwarderAddress:l.MAYAN_FORWARDER_CONTRACT,amountIn:!e.amountIn64&&Number.isFinite(e.amount)?e.amount:void 0,amountIn64:e.amountIn64,fromToken:e.fromToken,fromChain:e.fromChain,toToken:e.toToken,toChain:e.toChain,slippageBps:s,referrer:e.referrer,referrerBps:Number.isFinite(r)?r:void 0,gasDrop:Number.isFinite(n)?n:void 0,destinationAddress:e.destinationAddress??void 0,sdkVersion:ke()};return{url:`${l.PRICE_URL}/quote${typeof t.apiKey=="string"?"?apiKey="+t.apiKey:""}`,body:JSON.stringify(p,(c,o)=>typeof o=="bigint"?o.toString():o)}}async function qr(e,t={swift:!0,mctp:!0,gasless:!1,onlyDirect:!1}){let{url:n,body:r}=kn(e,t),s=await(0,me.default)(n,{method:"POST",headers:{"Content-Type":"application/json"},body:r,redirect:"follow"});await Te(s);let a=await s.json();if(s.status!==200&&s.status!==201)throw{code:a?.code||0,message:a?.msg||a?.message||"Route not found",data:a?.data};if(!Kt(a.minimumSdkVersion))throw{code:9999,message:"Swap SDK is outdated!"};return a.quotes}async function ea(e,t){let n=await(0,me.default)(`${l.PRICE_URL}/clock/${e}${t?"?apiKey="+t:""}`,{method:"GET",redirect:"follow"});await Te(n);let r=await n.json();if(n.status!==200&&n.status!==201)throw r;return r.clock}async function Qt(e){let t=await(0,me.default)(`${l.RELAYER_URL}/active-relayers?solanaProgram=${l.MAYAN_PROGRAM_ID}${e?"&apiKey="+e:""}`,{method:"GET",redirect:"follow"});await Te(t);let n=await t.json();if(t.status!==200&&t.status!==201)throw n;return n.suggested}async function Re(e){let t=lt({...e,sdkVersion:ke()}),n=await(0,me.default)(`${l.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await Te(n);let r=await n.json();if(n.status!==200&&n.status!==201)throw r;return r}async function dt(e){let t=JSON.stringify({...e,apiKey:void 0,sdkVersion:ke()}),n=`${l.PRICE_URL}/get-swap/sui${e.apiKey?"?apiKey="+e.apiKey:""}`,r=await(0,me.default)(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await Te(r);let s=await r.json();if(r.status!==200&&r.status!==201)throw s;return s}async function Ve(e){let t=lt({...e,sdkVersion:ke()}),n=await(0,me.default)(`${l.PRICE_URL}/get-swap/evm?${t}`,{method:"GET",redirect:"follow"});await Te(n);let r=await n.json();if(n.status!==200&&n.status!==201)throw r;return r}async function Yt(e,t,n){let r=await(0,me.default)(`${l.EXPLORER_URL}/submit/evm${n?"?apiKey="+n:""}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,signature:t},(s,a)=>typeof a=="bigint"?a.toString():a)});await Te(r)}async function jt(e,t,n){let r=await(0,me.default)(`${l.EXPLORER_URL}/submit/v2/svm${n?"?apiKey="+n:""}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({signedTx:e,chainName:t})});await Te(r);let s=await r.json();if(r.status!==200&&r.status!==201)throw s;return s}async function $t(e){let t=await(0,me.default)(`${l.GAS_ESTIMATE_URL}/evm`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...e,sdkVersion:ke()})});await Te(t);let n=await t.json();if(t.status!==200&&t.status!==201)throw n;return{estimatedGas:BigInt(n.estimatedGas),gasPrice:BigInt(n.gasPrice)}}async function Jt(e,t,n){let r=await(0,me.default)(`${l.SWIFT_RELAYER_URL}/nonces/assign${n?"?apiKey="+n:""}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chainName:e,swapperAddress:t,sdkVersion:ke()})});await Te(r);let s=await r.json();if(r.status!==200&&r.status!==201)throw s;return s}async function zt(e,t,n){let r=await(0,me.default)(`${l.EXPLORER_URL}/submit/hc-withdraw${n?"?apiKey="+n:""}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,signature:t},(a,u)=>typeof u=="bigint"?u.toString():u)});await Te(r);let s=await r.json();if(r.status!==200&&r.status!==201)throw s;return s.orderId}var _e=require("ethers"),nt=require("@solana/web3.js");var En={_format:"hh-sol-artifact-1",contractName:"MayanSwap",sourceName:"src/MayanSwap.sol",abi:[{inputs:[{internalType:"address",name:"_tokenBridge",type:"address"},{internalType:"address",name:"_weth",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint16",name:"emitterChainId",type:"uint16"},{indexed:!0,internalType:"bytes32",name:"emitterAddress",type:"bytes32"},{indexed:!0,internalType:"uint64",name:"sequence",type:"uint64"}],name:"Redeemed",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"tokenAddr",type:"bytes32"},{internalType:"uint16",name:"tokenChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"sourceAddr",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint64",name:"sequence",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bool",name:"unwrapRedeem",type:"bool"},{internalType:"bool",name:"unwrapRefund",type:"bool"}],internalType:"struct MayanStructs.Swap",name:"s",type:"tuple"}],name:"encodeSwap",outputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],stateMutability:"pure",type:"function"},{inputs:[],name:"getWeth",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRedeemPayload",outputs:[{components:[{internalType:"uint8",name:"payloadId",type:"uint8"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint64",name:"relayerFee",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanStructs.Redeem",name:"r",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeem",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"redeemAndUnwrap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"swap",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"sweepEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint64",name:"swapFee",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwap.RelayerFees",name:"relayerFees",type:"tuple"},{components:[{internalType:"bytes32",name:"mayanAddr",type:"bytes32"},{internalType:"uint16",name:"mayanChainId",type:"uint16"},{internalType:"bytes32",name:"auctionAddr",type:"bytes32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrer",type:"bytes32"},{internalType:"bytes32",name:"refundAddr",type:"bytes32"}],internalType:"struct MayanSwap.Recepient",name:"recipient",type:"tuple"},{internalType:"bytes32",name:"tokenOutAddr",type:"bytes32"},{internalType:"uint16",name:"tokenOutChainId",type:"uint16"},{components:[{internalType:"uint256",name:"transferDeadline",type:"uint256"},{internalType:"uint64",name:"swapDeadline",type:"uint64"},{internalType:"uint64",name:"amountOutMin",type:"uint64"},{internalType:"bool",name:"unwrap",type:"bool"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes",name:"customPayload",type:"bytes"}],internalType:"struct MayanSwap.Criteria",name:"criteria",type:"tuple"}],name:"wrapAndSwapETH",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}]};var Ce={_format:"hh-sol-artifact-1",contractName:"MayanForwarder",sourceName:"src/MayanForwarder.sol",abi:[{inputs:[{internalType:"address",name:"_guardian",type:"address"},{internalType:"address[]",name:"_swapProtocols",type:"address[]"},{internalType:"address[]",name:"_mayanProtocols",type:"address[]"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"UnsupportedProtocol",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"protocolData",type:"bytes"}],name:"ForwardedEth",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"SwapAndForwarded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenIn",type:"address"},{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedERC20",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amountIn",type:"uint256"},{indexed:!1,internalType:"address",name:"swapProtocol",type:"address"},{indexed:!1,internalType:"address",name:"middleToken",type:"address"},{indexed:!1,internalType:"uint256",name:"middleAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"mayanProtocol",type:"address"},{indexed:!1,internalType:"bytes",name:"mayanData",type:"bytes"}],name:"SwapAndForwardedEth",type:"event"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"protocolData",type:"bytes"}],name:"forwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mayanProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"to",type:"address"}],name:"rescueEth",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"rescueToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setMayanProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bool",name:"enabled",type:"bool"}],name:"setSwapProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],internalType:"struct MayanForwarder.PermitParams",name:"permitParams",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardERC20",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"},{internalType:"address",name:"middleToken",type:"address"},{internalType:"uint256",name:"minMiddleAmount",type:"uint256"},{internalType:"address",name:"mayanProtocol",type:"address"},{internalType:"bytes",name:"mayanData",type:"bytes"}],name:"swapAndForwardEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"swapProtocols",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],linkReferences:{},deployedLinkReferences:{}};var hn=require("buffer");var re=require("ethers"),qt=require("@solana/web3.js");var Zt={_format:"hh-sol-artifact-1",contractName:"MayanCircle",sourceName:"src/MayanCircle.sol",abi:[{inputs:[{internalType:"address",name:"_cctpTokenMessenger",type:"address"},{internalType:"address",name:"_wormhole",type:"address"},{internalType:"address",name:"_feeManager",type:"address"},{internalType:"uint16",name:"_auctionChainId",type:"uint16"},{internalType:"bytes32",name:"_auctionAddr",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerAlreadySet",type:"error"},{inputs:[],name:"CallerNotSet",type:"error"},{inputs:[],name:"CctpReceiveFailed",type:"error"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DomainAlreadySet",type:"error"},{inputs:[],name:"DomainNotSet",type:"error"},{inputs:[],name:"EmitterAlreadySet",type:"error"},{inputs:[],name:"EthTransferFailed",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidAmountOut",type:"error"},{inputs:[],name:"InvalidCaller",type:"error"},{inputs:[],name:"InvalidDestAddr",type:"error"},{inputs:[],name:"InvalidDomain",type:"error"},{inputs:[],name:"InvalidEmitter",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidMintRecipient",type:"error"},{inputs:[],name:"InvalidNonce",type:"error"},{inputs:[],name:"InvalidOrder",type:"error"},{inputs:[],name:"InvalidPayload",type:"error"},{inputs:[],name:"InvalidProtocolFee",type:"error"},{inputs:[],name:"InvalidRedeemFee",type:"error"},{inputs:[],name:"InvalidReferrerFee",type:"error"},{inputs:[],name:"MintRecipientAlreadySet",type:"error"},{inputs:[],name:"MintRecipientNotSet",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint32",name:"sourceDomain",type:"uint32"},{indexed:!1,internalType:"uint64",name:"sourceNonce",type:"uint64"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"OrderRefunded",type:"event"},{inputs:[],name:"auctionAddr",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"auctionChainId",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes",name:"customPayload",type:"bytes"}],name:"bridgeWithFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint256",name:"redeemFee",type:"uint256"},{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],name:"bridgeWithLockedFee",outputs:[{internalType:"uint64",name:"cctpNonce",type:"uint64"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cctpTokenMessenger",outputs:[{internalType:"contract ITokenMessenger",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint16",name:"",type:"uint16"}],name:"chainIdToEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGuardian",type:"address"}],name:"changeGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimGuardian",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consistencyLevel",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChain",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"}],internalType:"struct MayanCircle.OrderParams",name:"params",type:"tuple"}],name:"createOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"",type:"uint32"}],name:"domainToCaller",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint64",name:"",type:"uint64"}],name:"feeStorage",outputs:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"redeemFee",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"driver",type:"bytes32"}],internalType:"struct MayanCircle.FulfillParams",name:"params",type:"tuple"},{internalType:"address",name:"swapProtocol",type:"address"},{internalType:"bytes",name:"swapData",type:"bytes"}],name:"fulfillOrder",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"}],name:"getDomain",outputs:[{internalType:"uint32",name:"domain",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"isPaused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"keyToMintRecipient",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"localDomain",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"redeemFee",type:"uint64"},{internalType:"uint64",name:"burnAmount",type:"uint64"},{internalType:"bytes32",name:"burnToken",type:"bytes32"},{internalType:"bytes32",name:"customPayload",type:"bytes32"}],internalType:"struct MayanCircle.BridgeWithFeeParams",name:"bridgeParams",type:"tuple"}],name:"redeemWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"redeemWithLockedFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint32",name:"cctpNonce",type:"uint32"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"}],name:"refineFee",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes",name:"cctpMsg",type:"bytes"},{internalType:"bytes",name:"cctpSigs",type:"bytes"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{inte