@wormhole-foundation/wormhole-connect 4.1.0-beta.0-development → 4.1.0-beta.1-development

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/README.md +1 -1
  2. package/dist/main.mjs +68 -68
  3. package/dist/src/config/testnet/chains.d.ts.map +1 -1
  4. package/dist/src/config/testnet/rpcs.d.ts.map +1 -1
  5. package/dist/src/config/testnet/tokens.d.ts.map +1 -1
  6. package/dist/src/sdklegacy/config/TESTNET.d.ts.map +1 -1
  7. package/lib/{aptos-BRApiL_4.mjs → aptos-B84P9rJZ.mjs} +2 -2
  8. package/lib/{aptos-d56Mw8DO.js → aptos-DWDR5o78.js} +1 -1
  9. package/lib/{basic-DjAbnFVK.mjs → basic-BERCwt2M.mjs} +2 -2
  10. package/lib/{basic-DR75AlQZ.mjs → basic-CukRIaOD.mjs} +2 -2
  11. package/lib/{basic-BxzNlZH2.js → basic-DJXXfABO.js} +1 -1
  12. package/lib/{basic-Bj1RjRlj.js → basic-NhXxxbR1.js} +1 -1
  13. package/lib/{constants-Bkyn6tLV.js → constants-B9TBfA4z.js} +1 -1
  14. package/lib/{constants-PWEvTwIh.mjs → constants-VaoVbllu.mjs} +4 -4
  15. package/lib/{core-CkIseV8K.mjs → core-BCZrVb_s.mjs} +5 -5
  16. package/lib/{core-CCO0WKg_.js → core-BE6SS7Ye.js} +3 -3
  17. package/lib/{evm-BAU31wxF.js → evm--K7mr7Kr.js} +2 -2
  18. package/lib/{evm-9NnChBii.js → evm-C5BixKBn.js} +1 -1
  19. package/lib/{evm-2dSclZz6.mjs → evm-CmmnpcFD.mjs} +3 -3
  20. package/lib/{evm-CMxUV_bG.mjs → evm-DKaWm7eC.mjs} +3 -3
  21. package/lib/hosted.js +1 -1
  22. package/lib/hosted.mjs +1 -1
  23. package/lib/{hypercore-DJV-pPts.js → hypercore-4R7JGmbr.js} +1 -1
  24. package/lib/{hypercore-Bmlyd4uI.mjs → hypercore-birmbh9T.mjs} +9 -9
  25. package/lib/{index-arjwwpj2.mjs → index-BN_2mA2n.mjs} +1 -1
  26. package/lib/{index-C5j1HoFr.js → index-BRFbmsc_.js} +1 -1
  27. package/lib/{index-CS6YnwIH.js → index-BTcij9Np.js} +1 -1
  28. package/lib/{index-cRi8si5A.js → index-BUbUhbMe.js} +1 -1
  29. package/lib/{index-DUyGY36L.js → index-Bs28m4ya.js} +1 -1
  30. package/lib/{index-B16yfCYF.mjs → index-C8YhpD9T.mjs} +1 -1
  31. package/lib/{index-BYuhx88C.js → index-C8eqQ_7p.js} +1 -1
  32. package/lib/{index-CZHdN9pg.js → index-CED5jdrg.js} +1 -1
  33. package/lib/{index-Cl9Df47-.mjs → index-CH0iw38J.mjs} +1 -1
  34. package/lib/{index-hyk_rzOj.mjs → index-CR1itkLl.mjs} +700 -683
  35. package/lib/{index-CHvWl09c.js → index-Cw0jWBks.js} +1 -1
  36. package/lib/{index-BXsTZ9x_.mjs → index-DSnylejH.mjs} +23 -15
  37. package/lib/{index-CPGWCfWD.js → index-HrZv1SyT.js} +8 -8
  38. package/lib/{index-_IZO0QRl.mjs → index-N4FkpEh9.mjs} +1 -1
  39. package/lib/{index-Ds7-hb1n.mjs → index-Txz5xwr6.mjs} +1 -1
  40. package/lib/{index-BCKX-m7h.mjs → index-pYTU7pQK.mjs} +1 -1
  41. package/lib/{index.es-ByyzusUN.mjs → index.es-B0fk_42a.mjs} +3 -3
  42. package/lib/{index.es-BC9c-IV7.mjs → index.es-CDqFguL5.mjs} +2 -2
  43. package/lib/{index.es-BmZ1Eaml.js → index.es-Dg6IFrL4.js} +1 -1
  44. package/lib/{index.es-DxdcaWwJ.js → index.es-DmmqAOLD.js} +3 -3
  45. package/lib/index.js +1 -1
  46. package/lib/index.mjs +6 -6
  47. package/lib/lifi.js +1 -1
  48. package/lib/lifi.mjs +2 -2
  49. package/lib/mayan.js +1 -1
  50. package/lib/mayan.mjs +2 -2
  51. package/lib/monad.js +1 -1
  52. package/lib/monad.mjs +1 -1
  53. package/lib/ntt.js +1 -1
  54. package/lib/ntt.mjs +1 -1
  55. package/lib/{secp256k1-BLiUzGcX.js → secp256k1-BkoM1Jum.js} +1 -1
  56. package/lib/{secp256k1-r0ke-jeG.js → secp256k1-CcVQkYNr.js} +1 -1
  57. package/lib/{secp256k1-D24BZJAq.js → secp256k1-CglUNI04.js} +1 -1
  58. package/lib/{secp256k1-rufcCDcw.mjs → secp256k1-DROP2Lhv.mjs} +1 -1
  59. package/lib/{secp256k1-ZQ8UIhmk.mjs → secp256k1-DzRCmd6a.mjs} +1 -1
  60. package/lib/{secp256k1-CXRI4XfW.mjs → secp256k1-LTcmQEQ5.mjs} +1 -1
  61. package/lib/{solana-CXtk3UX1.js → solana-C4k_Yg7w.js} +4 -4
  62. package/lib/{solana-lhrSUH_P.mjs → solana-D1LVIhGd.mjs} +8 -8
  63. package/lib/{solanaEmbed.esm-BMynjubZ.js → solanaEmbed.esm--Ac-IlRA.js} +1 -1
  64. package/lib/{solanaEmbed.esm-CFu0h50b.mjs → solanaEmbed.esm-AvWQUA9e.mjs} +2 -2
  65. package/lib/src/config/testnet/chains.d.ts.map +1 -1
  66. package/lib/src/config/testnet/rpcs.d.ts.map +1 -1
  67. package/lib/src/config/testnet/tokens.d.ts.map +1 -1
  68. package/lib/src/sdklegacy/config/TESTNET.d.ts.map +1 -1
  69. package/lib/{sui-CZNJPZ5q.mjs → sui-BPAb7kcs.mjs} +2 -2
  70. package/lib/{sui-CBxh7zmc.js → sui-CgmDTkXK.js} +1 -1
  71. package/lib/{tokenHelpers-DZRdlDO-.js → tokenHelpers-CbE0g9BP.js} +1 -1
  72. package/lib/{tokenHelpers-DT6mPtNP.mjs → tokenHelpers-DvWQs1tu.mjs} +1 -1
  73. package/lib/{tokens-FIs8YBYj.mjs → tokens-BJDttoCp.mjs} +1 -1
  74. package/lib/{tokens--uOMY2-j.js → tokens-CvZuVW-g.js} +1 -1
  75. package/lib/{w3m-modal-B5PtkowQ.js → w3m-modal-ByamyZny.js} +1 -1
  76. package/lib/{w3m-modal-CBYJj-sR.mjs → w3m-modal-CtQ0TPA4.mjs} +2 -2
  77. package/lib/{w3m-modal-h85Jyy9l.mjs → w3m-modal-DM5Pf8SH.mjs} +2 -2
  78. package/lib/{w3m-modal-B3FfPDki.js → w3m-modal-k23UDiov.js} +1 -1
  79. package/package.json +6 -6
@@ -1,4 +1,4 @@
1
- "use strict";const s=require("./unsignedTransaction-DA4tlY5u.js"),c=require("./platform-CCG_jgOO.js"),Ot=require("./index-CPGWCfWD.js"),Un=BigInt(-1),le=BigInt(0),Me=BigInt(1),Wn=BigInt(5),_e={};let Pe="0000";for(;Pe.length<80;)Pe+=Pe;function Te(e){let t=Pe;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function Ee(e,t,n){const r=BigInt(t.width);if(t.signed){const u=Me<<r-Me;c.assert(n==null||e>=-u&&e<u,"overflow","NUMERIC_FAULT",{operation:n,fault:"overflow",value:e}),e>le?e=c.fromTwos(c.mask(e,r),r):e=-c.fromTwos(c.mask(-e,r),r)}else{const u=Me<<r;c.assert(n==null||e>=0&&e<u,"overflow","NUMERIC_FAULT",{operation:n,fault:"overflow",value:e}),e=(e%u+u)%u&u-Me}return e}function jt(e){typeof e=="number"&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if(typeof e=="string"){if(e!=="fixed")if(e==="ufixed")t=!1;else{const o=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);c.assertArgument(o,"invalid fixed format","format",e),t=o[1]!=="u",n=parseInt(o[2]),r=parseInt(o[3])}}else if(e){const o=e,p=(i,y,l)=>o[i]==null?l:(c.assertArgument(typeof o[i]===y,"invalid fixed format ("+i+" not "+y+")","format."+i,o[i]),o[i]);t=p("signed","boolean",t),n=p("width","number",n),r=p("decimals","number",r)}c.assertArgument(n%8===0,"invalid FixedNumber width (not byte aligned)","format.width",n),c.assertArgument(r<=80,"invalid FixedNumber decimals (too large)","format.decimals",r);const u=(t?"":"u")+"fixed"+String(n)+"x"+String(r);return{signed:t,width:n,decimals:r,name:u}}function Ln(e,t){let n="";e<le&&(n="-",e*=Un);let r=e.toString();if(t===0)return n+r;for(;r.length<=t;)r=Pe+r;const u=r.length-t;for(r=r.substring(0,u)+"."+r.substring(u);r[0]==="0"&&r[1]!==".";)r=r.substring(1);for(;r[r.length-1]==="0"&&r[r.length-2]!==".";)r=r.substring(0,r.length-1);return n+r}class fe{format;#n;#e;#t;_value;constructor(t,n,r){c.assertPrivate(t,_e,"FixedNumber"),this.#e=n,this.#n=r;const u=Ln(n,r.decimals);c.defineProperties(this,{format:r.name,_value:u}),this.#t=Te(r.decimals)}get signed(){return this.#n.signed}get width(){return this.#n.width}get decimals(){return this.#n.decimals}get value(){return this.#e}#r(t){c.assertArgument(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)}#a(t,n){return t=Ee(t,this.#n,n),new fe(_e,t,this.#n)}#i(t,n){return this.#r(t),this.#a(this.#e+t.#e,n)}addUnsafe(t){return this.#i(t)}add(t){return this.#i(t,"add")}#s(t,n){return this.#r(t),this.#a(this.#e-t.#e,n)}subUnsafe(t){return this.#s(t)}sub(t){return this.#s(t,"sub")}#o(t,n){return this.#r(t),this.#a(this.#e*t.#e/this.#t,n)}mulUnsafe(t){return this.#o(t)}mul(t){return this.#o(t,"mul")}mulSignal(t){this.#r(t);const n=this.#e*t.#e;return c.assert(n%this.#t===le,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#a(n/this.#t,"mulSignal")}#u(t,n){return c.assert(t.#e!==le,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#r(t),this.#a(this.#e*this.#t/t.#e,n)}divUnsafe(t){return this.#u(t)}div(t){return this.#u(t,"div")}divSignal(t){c.assert(t.#e!==le,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#r(t);const n=this.#e*this.#t;return c.assert(n%t.#e===le,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#a(n/t.#e,"divSignal")}cmp(t){let n=this.value,r=t.value;const u=this.decimals-t.decimals;return u>0?r*=Te(u):u<0&&(n*=Te(-u)),n<r?-1:n>r?1:0}eq(t){return this.cmp(t)===0}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#e;return this.#e<le&&(t-=this.#t-Me),t=this.#e/this.#t*this.#t,this.#a(t,"floor")}ceiling(){let t=this.#e;return this.#e>le&&(t+=this.#t-Me),t=this.#e/this.#t*this.#t,this.#a(t,"ceiling")}round(t){if(t==null&&(t=0),t>=this.decimals)return this;const n=this.decimals-t,r=Wn*Te(n-1);let u=this.value+r;const o=Te(n);return u=u/o*o,Ee(u,this.#n,"round"),new fe(_e,u,this.#n)}isZero(){return this.#e===le}isNegative(){return this.#e<le}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return fe.fromString(this.toString(),t)}static fromValue(t,n,r){const u=n==null?0:c.getNumber(n),o=jt(r);let p=c.getBigInt(t,"value");const i=u-o.decimals;if(i>0){const y=Te(i);c.assert(p%y===le,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),p/=y}else i<0&&(p*=Te(-i));return Ee(p,o,"fromValue"),new fe(_e,p,o)}static fromString(t,n){const r=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);c.assertArgument(r&&r[2].length+r[3].length>0,"invalid FixedNumber string value","value",t);const u=jt(n);let o=r[2]||"0",p=r[3]||"";for(;p.length<u.decimals;)p+=Pe;c.assert(p.substring(u.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),p=p.substring(0,u.decimals);const i=BigInt(r[1]+o+p);return Ee(i,u,"fromString"),new fe(_e,i,u)}static fromBytes(t,n){let r=c.toBigInt(c.getBytes(t,"value"));const u=jt(n);return u.signed&&(r=c.fromTwos(r,u.width)),Ee(r,u,"fromBytes"),new fe(_e,r,u)}}const _n=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Qt(e,t){let n=18;if(typeof t=="string"){const r=_n.indexOf(t);c.assertArgument(r>=0,"invalid unit","unit",t),n=3*r}else t!=null&&(n=c.getNumber(t,"unit"));return fe.fromValue(e,n,{decimals:n,width:512}).toString()}function Cn(e,t){c.assertArgument(typeof e=="string","value must be a string","value",e);let n=18;if(typeof t=="string"){const r=_n.indexOf(t);c.assertArgument(r>=0,"invalid unit","unit",t),n=3*r}else t!=null&&(n=c.getNumber(t,"unit"));return fe.fromString(e,{decimals:n,width:512}).value}function Kn(e){return Qt(e,18)}class Hn extends Error{constructor(){super("Not supported")}}class Gn extends Error{constructor(){super("Not connected")}}exports.BaseFeatures=void 0;(function(e){e.SignTransaction="SignTransaction",e.SendTransaction="SendTransaction",e.SignAndSendTransaction="SignAndSendTransaction",e.SignMessage="SignMessage"})(exports.BaseFeatures||(exports.BaseFeatures={}));exports.WalletState=void 0;(function(e){e.Installed="Installed",e.NotDetected="NotDetected",e.Loadable="Loadable",e.Unsupported="Unsupported"})(exports.WalletState||(exports.WalletState={}));class $n extends s.EventEmitter{getWalletState(){return exports.WalletState.Installed}supportsFeature(t){const n=this.getFeatures();return Array.isArray(t)?t.every(r=>n.includes(r)):n.includes(t)}}const Z={unset:0,solana:1,ethereum:2,terra:3,bsc:4,polygon:5,avalanche:6,oasis:7,algorand:8,aurora:9,fantom:10,karura:11,acala:12,klaytn:13,celo:14,near:15,moonbeam:16,neon:17,terra2:18,injective:19,osmosis:20,sui:21,aptos:22,arbitrum:23,optimism:24,gnosis:25,pythnet:26,xpla:28,btc:29,base:30,sei:32,rootstock:33,scroll:34,mantle:35,blast:36,xlayer:37,linea:38,berachain:39,seievm:40,unichain:44,worldchain:45,monad:48,wormchain:3104,cosmoshub:4e3,evmos:4001,kujira:4002,neutron:4003,celestia:4004,stargaze:4005,seda:4006,dymension:4007,provenance:4008,sepolia:10002,arbitrum_sepolia:10003,base_sepolia:10004,optimism_sepolia:10005,holesky:10006,polygon_sepolia:10007};Object.entries(Z).reduce((e,[t,n])=>(e[n]=t,e),{});const Vn=Z.solana,Sn=Z.ethereum,jn=Z.bsc,Yn=Z.polygon,zn=Z.avalanche,Zn=Z.oasis,Jn=Z.aurora,Qn=Z.fantom,Xn=Z.karura,qn=Z.acala,ea=Z.klaytn,ta=Z.celo,na=Z.moonbeam,aa=Z.neon,ra=Z.sui,ia=Z.aptos,sa=Z.arbitrum,oa=Z.optimism,ua=Z.gnosis,pa=Z.base,la=Z.scroll,ca=Z.mantle,ya=Z.blast,da=Z.xlayer,ma=Z.worldchain,fa=Z.unichain,ba=Z.monad;function ha(e){return e===Sn||e===jn||e===zn||e===Yn||e===Zn||e===Jn||e===Qn||e===Xn||e===qn||e===ea||e===ta||e===na||e===aa||e===sa||e===oa||e===ua||e===pa||e===la||e===ma||e===ya||e===da||e===ca||e===fa||e===ba}var Bt=(e=>(e.SENDING="sending",e.RECEIVING="receiving",e))(Bt||{});const Ta=e=>e?Ot.config.chainsArr.filter(t=>c.chainToPlatform(t.sdkName)===e).map(t=>t.sdkName):Ot.config.chainsArr.map(t=>t.sdkName),ga=async(e,t,n,r={})=>{const u=Ot.config.chains[e],o=c.chainToPlatform(u.sdkName);if(o==="Evm")return await(await Promise.resolve().then(()=>require("./evm-BAU31wxF.js"))).signAndSendTransaction(t,n,e);if(o==="Solana")return await(await Promise.resolve().then(()=>require("./solana-CXtk3UX1.js")).then(y=>y.solana)).signAndSendTransactionWithResends(t,n,r);if(o==="Sui")return(await(await Promise.resolve().then(()=>require("./sui-CBxh7zmc.js"))).signAndSendTransaction(t,n)).id;if(o==="Aptos")return(await(await Promise.resolve().then(()=>require("./aptos-d56Mw8DO.js"))).signAndSendTransaction(t,n)).id;throw new Error("unimplemented")},wa=e=>{const t=e.getWalletState();return t!==exports.WalletState.Unsupported&&t!==exports.WalletState.NotDetected},Rt=(e,t,n=[])=>Object.values(e).filter((r,u,o)=>u===o.findIndex(p=>p.getName()===r.getName())).filter(r=>!n.includes(r.getName())).map(r=>({wallet:r,type:t,name:r.getName(),icon:r.getIcon(),isReady:wa(r)}));function Aa(){return typeof window<"u"&&window.ethereum&&window.ethereum.isNightly===!0}const Ia=async e=>{if(e===void 0)return[];const t=c.chainToPlatform(e.sdkName);if(t==="Evm"){const n=await Promise.resolve().then(()=>require("./evm-BAU31wxF.js"));let r=Object.values(Rt(n.getWallets(),t));return Aa()&&(r=r.filter(u=>u.name!=="Injected Wallet")),r}else if(t==="Solana"){const r=(await Promise.resolve().then(()=>require("./solana-CXtk3UX1.js")).then(u=>u.solana)).fetchOptions(e.sdkName);return Object.values(Rt(r,t))}else if(t==="Sui"){const r=await(await Promise.resolve().then(()=>require("./sui-CBxh7zmc.js"))).fetchOptions();return Object.values(Rt(r,t))}else if(t==="Aptos"){const r=await(await Promise.resolve().then(()=>require("./aptos-d56Mw8DO.js"))).fetchOptions();return Object.values(Rt(r,t))}return[]};var vt={exports:{}},nn;function _a(){return nn||(nn=1,(function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof s.commonjsGlobal<"u"&&s.commonjsGlobal,r=(function(){function o(){this.fetch=!1,this.DOMException=n.DOMException}return o.prototype=n,new o})();(function(o){(function(p){var i=typeof o<"u"&&o||typeof self<"u"&&self||typeof s.commonjsGlobal<"u"&&s.commonjsGlobal||{},y={searchParams:"URLSearchParams"in i,iterable:"Symbol"in i&&"iterator"in Symbol,blob:"FileReader"in i&&"Blob"in i&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:"FormData"in i,arrayBuffer:"ArrayBuffer"in i};function l(m){return m&&DataView.prototype.isPrototypeOf(m)}if(y.arrayBuffer)var d=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],f=ArrayBuffer.isView||function(m){return m&&d.indexOf(Object.prototype.toString.call(m))>-1};function b(m){if(typeof m!="string"&&(m=String(m)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(m)||m==="")throw new TypeError('Invalid character in header field name: "'+m+'"');return m.toLowerCase()}function g(m){return typeof m!="string"&&(m=String(m)),m}function h(m){var I={next:function(){var R=m.shift();return{done:R===void 0,value:R}}};return y.iterable&&(I[Symbol.iterator]=function(){return I}),I}function T(m){this.map={},m instanceof T?m.forEach(function(I,R){this.append(R,I)},this):Array.isArray(m)?m.forEach(function(I){if(I.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+I.length);this.append(I[0],I[1])},this):m&&Object.getOwnPropertyNames(m).forEach(function(I){this.append(I,m[I])},this)}T.prototype.append=function(m,I){m=b(m),I=g(I);var R=this.map[m];this.map[m]=R?R+", "+I:I},T.prototype.delete=function(m){delete this.map[b(m)]},T.prototype.get=function(m){return m=b(m),this.has(m)?this.map[m]:null},T.prototype.has=function(m){return this.map.hasOwnProperty(b(m))},T.prototype.set=function(m,I){this.map[b(m)]=g(I)},T.prototype.forEach=function(m,I){for(var R in this.map)this.map.hasOwnProperty(R)&&m.call(I,this.map[R],R,this)},T.prototype.keys=function(){var m=[];return this.forEach(function(I,R){m.push(R)}),h(m)},T.prototype.values=function(){var m=[];return this.forEach(function(I){m.push(I)}),h(m)},T.prototype.entries=function(){var m=[];return this.forEach(function(I,R){m.push([R,I])}),h(m)},y.iterable&&(T.prototype[Symbol.iterator]=T.prototype.entries);function w(m){if(!m._noBody){if(m.bodyUsed)return Promise.reject(new TypeError("Already read"));m.bodyUsed=!0}}function M(m){return new Promise(function(I,R){m.onload=function(){I(m.result)},m.onerror=function(){R(m.error)}})}function P(m){var I=new FileReader,R=M(I);return I.readAsArrayBuffer(m),R}function E(m){var I=new FileReader,R=M(I),W=/charset=([A-Za-z0-9_-]+)/.exec(m.type),j=W?W[1]:"utf-8";return I.readAsText(m,j),R}function D(m){for(var I=new Uint8Array(m),R=new Array(I.length),W=0;W<I.length;W++)R[W]=String.fromCharCode(I[W]);return R.join("")}function B(m){if(m.slice)return m.slice(0);var I=new Uint8Array(m.byteLength);return I.set(new Uint8Array(m)),I.buffer}function Y(){return this.bodyUsed=!1,this._initBody=function(m){this.bodyUsed=this.bodyUsed,this._bodyInit=m,m?typeof m=="string"?this._bodyText=m:y.blob&&Blob.prototype.isPrototypeOf(m)?this._bodyBlob=m:y.formData&&FormData.prototype.isPrototypeOf(m)?this._bodyFormData=m:y.searchParams&&URLSearchParams.prototype.isPrototypeOf(m)?this._bodyText=m.toString():y.arrayBuffer&&y.blob&&l(m)?(this._bodyArrayBuffer=B(m.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):y.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(m)||f(m))?this._bodyArrayBuffer=B(m):this._bodyText=m=Object.prototype.toString.call(m):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof m=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):y.searchParams&&URLSearchParams.prototype.isPrototypeOf(m)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},y.blob&&(this.blob=function(){var m=w(this);if(m)return m;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var m=w(this);return m||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(y.blob)return this.blob().then(P);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var m=w(this);if(m)return m;if(this._bodyBlob)return E(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},y.formData&&(this.formData=function(){return this.text().then(te)}),this.json=function(){return this.text().then(JSON.parse)},this}var J=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function K(m){var I=m.toUpperCase();return J.indexOf(I)>-1?I:m}function z(m,I){if(!(this instanceof z))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');I=I||{};var R=I.body;if(m instanceof z){if(m.bodyUsed)throw new TypeError("Already read");this.url=m.url,this.credentials=m.credentials,I.headers||(this.headers=new T(m.headers)),this.method=m.method,this.mode=m.mode,this.signal=m.signal,!R&&m._bodyInit!=null&&(R=m._bodyInit,m.bodyUsed=!0)}else this.url=String(m);if(this.credentials=I.credentials||this.credentials||"same-origin",(I.headers||!this.headers)&&(this.headers=new T(I.headers)),this.method=K(I.method||this.method||"GET"),this.mode=I.mode||this.mode||null,this.signal=I.signal||this.signal||(function(){if("AbortController"in i){var V=new AbortController;return V.signal}})(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&R)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(R),(this.method==="GET"||this.method==="HEAD")&&(I.cache==="no-store"||I.cache==="no-cache")){var W=/([?&])_=[^&]*/;if(W.test(this.url))this.url=this.url.replace(W,"$1_="+new Date().getTime());else{var j=/\?/;this.url+=(j.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}z.prototype.clone=function(){return new z(this,{body:this._bodyInit})};function te(m){var I=new FormData;return m.trim().split("&").forEach(function(R){if(R){var W=R.split("="),j=W.shift().replace(/\+/g," "),V=W.join("=").replace(/\+/g," ");I.append(decodeURIComponent(j),decodeURIComponent(V))}}),I}function $(m){var I=new T,R=m.replace(/\r?\n[\t ]+/g," ");return R.split("\r").map(function(W){return W.indexOf(`
1
+ "use strict";const s=require("./unsignedTransaction-DA4tlY5u.js"),c=require("./platform-CCG_jgOO.js"),Ot=require("./index-HrZv1SyT.js"),Un=BigInt(-1),le=BigInt(0),Me=BigInt(1),Wn=BigInt(5),_e={};let Pe="0000";for(;Pe.length<80;)Pe+=Pe;function Te(e){let t=Pe;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function Ee(e,t,n){const r=BigInt(t.width);if(t.signed){const u=Me<<r-Me;c.assert(n==null||e>=-u&&e<u,"overflow","NUMERIC_FAULT",{operation:n,fault:"overflow",value:e}),e>le?e=c.fromTwos(c.mask(e,r),r):e=-c.fromTwos(c.mask(-e,r),r)}else{const u=Me<<r;c.assert(n==null||e>=0&&e<u,"overflow","NUMERIC_FAULT",{operation:n,fault:"overflow",value:e}),e=(e%u+u)%u&u-Me}return e}function jt(e){typeof e=="number"&&(e=`fixed128x${e}`);let t=!0,n=128,r=18;if(typeof e=="string"){if(e!=="fixed")if(e==="ufixed")t=!1;else{const o=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);c.assertArgument(o,"invalid fixed format","format",e),t=o[1]!=="u",n=parseInt(o[2]),r=parseInt(o[3])}}else if(e){const o=e,p=(i,y,l)=>o[i]==null?l:(c.assertArgument(typeof o[i]===y,"invalid fixed format ("+i+" not "+y+")","format."+i,o[i]),o[i]);t=p("signed","boolean",t),n=p("width","number",n),r=p("decimals","number",r)}c.assertArgument(n%8===0,"invalid FixedNumber width (not byte aligned)","format.width",n),c.assertArgument(r<=80,"invalid FixedNumber decimals (too large)","format.decimals",r);const u=(t?"":"u")+"fixed"+String(n)+"x"+String(r);return{signed:t,width:n,decimals:r,name:u}}function Ln(e,t){let n="";e<le&&(n="-",e*=Un);let r=e.toString();if(t===0)return n+r;for(;r.length<=t;)r=Pe+r;const u=r.length-t;for(r=r.substring(0,u)+"."+r.substring(u);r[0]==="0"&&r[1]!==".";)r=r.substring(1);for(;r[r.length-1]==="0"&&r[r.length-2]!==".";)r=r.substring(0,r.length-1);return n+r}class fe{format;#n;#e;#t;_value;constructor(t,n,r){c.assertPrivate(t,_e,"FixedNumber"),this.#e=n,this.#n=r;const u=Ln(n,r.decimals);c.defineProperties(this,{format:r.name,_value:u}),this.#t=Te(r.decimals)}get signed(){return this.#n.signed}get width(){return this.#n.width}get decimals(){return this.#n.decimals}get value(){return this.#e}#r(t){c.assertArgument(this.format===t.format,"incompatible format; use fixedNumber.toFormat","other",t)}#a(t,n){return t=Ee(t,this.#n,n),new fe(_e,t,this.#n)}#i(t,n){return this.#r(t),this.#a(this.#e+t.#e,n)}addUnsafe(t){return this.#i(t)}add(t){return this.#i(t,"add")}#s(t,n){return this.#r(t),this.#a(this.#e-t.#e,n)}subUnsafe(t){return this.#s(t)}sub(t){return this.#s(t,"sub")}#o(t,n){return this.#r(t),this.#a(this.#e*t.#e/this.#t,n)}mulUnsafe(t){return this.#o(t)}mul(t){return this.#o(t,"mul")}mulSignal(t){this.#r(t);const n=this.#e*t.#e;return c.assert(n%this.#t===le,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#a(n/this.#t,"mulSignal")}#u(t,n){return c.assert(t.#e!==le,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#r(t),this.#a(this.#e*this.#t/t.#e,n)}divUnsafe(t){return this.#u(t)}div(t){return this.#u(t,"div")}divSignal(t){c.assert(t.#e!==le,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#r(t);const n=this.#e*this.#t;return c.assert(n%t.#e===le,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#a(n/t.#e,"divSignal")}cmp(t){let n=this.value,r=t.value;const u=this.decimals-t.decimals;return u>0?r*=Te(u):u<0&&(n*=Te(-u)),n<r?-1:n>r?1:0}eq(t){return this.cmp(t)===0}lt(t){return this.cmp(t)<0}lte(t){return this.cmp(t)<=0}gt(t){return this.cmp(t)>0}gte(t){return this.cmp(t)>=0}floor(){let t=this.#e;return this.#e<le&&(t-=this.#t-Me),t=this.#e/this.#t*this.#t,this.#a(t,"floor")}ceiling(){let t=this.#e;return this.#e>le&&(t+=this.#t-Me),t=this.#e/this.#t*this.#t,this.#a(t,"ceiling")}round(t){if(t==null&&(t=0),t>=this.decimals)return this;const n=this.decimals-t,r=Wn*Te(n-1);let u=this.value+r;const o=Te(n);return u=u/o*o,Ee(u,this.#n,"round"),new fe(_e,u,this.#n)}isZero(){return this.#e===le}isNegative(){return this.#e<le}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(t){return fe.fromString(this.toString(),t)}static fromValue(t,n,r){const u=n==null?0:c.getNumber(n),o=jt(r);let p=c.getBigInt(t,"value");const i=u-o.decimals;if(i>0){const y=Te(i);c.assert(p%y===le,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:t}),p/=y}else i<0&&(p*=Te(-i));return Ee(p,o,"fromValue"),new fe(_e,p,o)}static fromString(t,n){const r=t.match(/^(-?)([0-9]*)\.?([0-9]*)$/);c.assertArgument(r&&r[2].length+r[3].length>0,"invalid FixedNumber string value","value",t);const u=jt(n);let o=r[2]||"0",p=r[3]||"";for(;p.length<u.decimals;)p+=Pe;c.assert(p.substring(u.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:t}),p=p.substring(0,u.decimals);const i=BigInt(r[1]+o+p);return Ee(i,u,"fromString"),new fe(_e,i,u)}static fromBytes(t,n){let r=c.toBigInt(c.getBytes(t,"value"));const u=jt(n);return u.signed&&(r=c.fromTwos(r,u.width)),Ee(r,u,"fromBytes"),new fe(_e,r,u)}}const _n=["wei","kwei","mwei","gwei","szabo","finney","ether"];function Qt(e,t){let n=18;if(typeof t=="string"){const r=_n.indexOf(t);c.assertArgument(r>=0,"invalid unit","unit",t),n=3*r}else t!=null&&(n=c.getNumber(t,"unit"));return fe.fromValue(e,n,{decimals:n,width:512}).toString()}function Cn(e,t){c.assertArgument(typeof e=="string","value must be a string","value",e);let n=18;if(typeof t=="string"){const r=_n.indexOf(t);c.assertArgument(r>=0,"invalid unit","unit",t),n=3*r}else t!=null&&(n=c.getNumber(t,"unit"));return fe.fromString(e,{decimals:n,width:512}).value}function Kn(e){return Qt(e,18)}class Hn extends Error{constructor(){super("Not supported")}}class Gn extends Error{constructor(){super("Not connected")}}exports.BaseFeatures=void 0;(function(e){e.SignTransaction="SignTransaction",e.SendTransaction="SendTransaction",e.SignAndSendTransaction="SignAndSendTransaction",e.SignMessage="SignMessage"})(exports.BaseFeatures||(exports.BaseFeatures={}));exports.WalletState=void 0;(function(e){e.Installed="Installed",e.NotDetected="NotDetected",e.Loadable="Loadable",e.Unsupported="Unsupported"})(exports.WalletState||(exports.WalletState={}));class $n extends s.EventEmitter{getWalletState(){return exports.WalletState.Installed}supportsFeature(t){const n=this.getFeatures();return Array.isArray(t)?t.every(r=>n.includes(r)):n.includes(t)}}const Z={unset:0,solana:1,ethereum:2,terra:3,bsc:4,polygon:5,avalanche:6,oasis:7,algorand:8,aurora:9,fantom:10,karura:11,acala:12,klaytn:13,celo:14,near:15,moonbeam:16,neon:17,terra2:18,injective:19,osmosis:20,sui:21,aptos:22,arbitrum:23,optimism:24,gnosis:25,pythnet:26,xpla:28,btc:29,base:30,sei:32,rootstock:33,scroll:34,mantle:35,blast:36,xlayer:37,linea:38,berachain:39,seievm:40,unichain:44,worldchain:45,monad:48,wormchain:3104,cosmoshub:4e3,evmos:4001,kujira:4002,neutron:4003,celestia:4004,stargaze:4005,seda:4006,dymension:4007,provenance:4008,sepolia:10002,arbitrum_sepolia:10003,base_sepolia:10004,optimism_sepolia:10005,holesky:10006,polygon_sepolia:10007};Object.entries(Z).reduce((e,[t,n])=>(e[n]=t,e),{});const Vn=Z.solana,Sn=Z.ethereum,jn=Z.bsc,Yn=Z.polygon,zn=Z.avalanche,Zn=Z.oasis,Jn=Z.aurora,Qn=Z.fantom,Xn=Z.karura,qn=Z.acala,ea=Z.klaytn,ta=Z.celo,na=Z.moonbeam,aa=Z.neon,ra=Z.sui,ia=Z.aptos,sa=Z.arbitrum,oa=Z.optimism,ua=Z.gnosis,pa=Z.base,la=Z.scroll,ca=Z.mantle,ya=Z.blast,da=Z.xlayer,ma=Z.worldchain,fa=Z.unichain,ba=Z.monad;function ha(e){return e===Sn||e===jn||e===zn||e===Yn||e===Zn||e===Jn||e===Qn||e===Xn||e===qn||e===ea||e===ta||e===na||e===aa||e===sa||e===oa||e===ua||e===pa||e===la||e===ma||e===ya||e===da||e===ca||e===fa||e===ba}var Bt=(e=>(e.SENDING="sending",e.RECEIVING="receiving",e))(Bt||{});const Ta=e=>e?Ot.config.chainsArr.filter(t=>c.chainToPlatform(t.sdkName)===e).map(t=>t.sdkName):Ot.config.chainsArr.map(t=>t.sdkName),ga=async(e,t,n,r={})=>{const u=Ot.config.chains[e],o=c.chainToPlatform(u.sdkName);if(o==="Evm")return await(await Promise.resolve().then(()=>require("./evm--K7mr7Kr.js"))).signAndSendTransaction(t,n,e);if(o==="Solana")return await(await Promise.resolve().then(()=>require("./solana-C4k_Yg7w.js")).then(y=>y.solana)).signAndSendTransactionWithResends(t,n,r);if(o==="Sui")return(await(await Promise.resolve().then(()=>require("./sui-CgmDTkXK.js"))).signAndSendTransaction(t,n)).id;if(o==="Aptos")return(await(await Promise.resolve().then(()=>require("./aptos-DWDR5o78.js"))).signAndSendTransaction(t,n)).id;throw new Error("unimplemented")},wa=e=>{const t=e.getWalletState();return t!==exports.WalletState.Unsupported&&t!==exports.WalletState.NotDetected},Rt=(e,t,n=[])=>Object.values(e).filter((r,u,o)=>u===o.findIndex(p=>p.getName()===r.getName())).filter(r=>!n.includes(r.getName())).map(r=>({wallet:r,type:t,name:r.getName(),icon:r.getIcon(),isReady:wa(r)}));function Aa(){return typeof window<"u"&&window.ethereum&&window.ethereum.isNightly===!0}const Ia=async e=>{if(e===void 0)return[];const t=c.chainToPlatform(e.sdkName);if(t==="Evm"){const n=await Promise.resolve().then(()=>require("./evm--K7mr7Kr.js"));let r=Object.values(Rt(n.getWallets(),t));return Aa()&&(r=r.filter(u=>u.name!=="Injected Wallet")),r}else if(t==="Solana"){const r=(await Promise.resolve().then(()=>require("./solana-C4k_Yg7w.js")).then(u=>u.solana)).fetchOptions(e.sdkName);return Object.values(Rt(r,t))}else if(t==="Sui"){const r=await(await Promise.resolve().then(()=>require("./sui-CgmDTkXK.js"))).fetchOptions();return Object.values(Rt(r,t))}else if(t==="Aptos"){const r=await(await Promise.resolve().then(()=>require("./aptos-DWDR5o78.js"))).fetchOptions();return Object.values(Rt(r,t))}return[]};var vt={exports:{}},nn;function _a(){return nn||(nn=1,(function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof s.commonjsGlobal<"u"&&s.commonjsGlobal,r=(function(){function o(){this.fetch=!1,this.DOMException=n.DOMException}return o.prototype=n,new o})();(function(o){(function(p){var i=typeof o<"u"&&o||typeof self<"u"&&self||typeof s.commonjsGlobal<"u"&&s.commonjsGlobal||{},y={searchParams:"URLSearchParams"in i,iterable:"Symbol"in i&&"iterator"in Symbol,blob:"FileReader"in i&&"Blob"in i&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:"FormData"in i,arrayBuffer:"ArrayBuffer"in i};function l(m){return m&&DataView.prototype.isPrototypeOf(m)}if(y.arrayBuffer)var d=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],f=ArrayBuffer.isView||function(m){return m&&d.indexOf(Object.prototype.toString.call(m))>-1};function b(m){if(typeof m!="string"&&(m=String(m)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(m)||m==="")throw new TypeError('Invalid character in header field name: "'+m+'"');return m.toLowerCase()}function g(m){return typeof m!="string"&&(m=String(m)),m}function h(m){var I={next:function(){var R=m.shift();return{done:R===void 0,value:R}}};return y.iterable&&(I[Symbol.iterator]=function(){return I}),I}function T(m){this.map={},m instanceof T?m.forEach(function(I,R){this.append(R,I)},this):Array.isArray(m)?m.forEach(function(I){if(I.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+I.length);this.append(I[0],I[1])},this):m&&Object.getOwnPropertyNames(m).forEach(function(I){this.append(I,m[I])},this)}T.prototype.append=function(m,I){m=b(m),I=g(I);var R=this.map[m];this.map[m]=R?R+", "+I:I},T.prototype.delete=function(m){delete this.map[b(m)]},T.prototype.get=function(m){return m=b(m),this.has(m)?this.map[m]:null},T.prototype.has=function(m){return this.map.hasOwnProperty(b(m))},T.prototype.set=function(m,I){this.map[b(m)]=g(I)},T.prototype.forEach=function(m,I){for(var R in this.map)this.map.hasOwnProperty(R)&&m.call(I,this.map[R],R,this)},T.prototype.keys=function(){var m=[];return this.forEach(function(I,R){m.push(R)}),h(m)},T.prototype.values=function(){var m=[];return this.forEach(function(I){m.push(I)}),h(m)},T.prototype.entries=function(){var m=[];return this.forEach(function(I,R){m.push([R,I])}),h(m)},y.iterable&&(T.prototype[Symbol.iterator]=T.prototype.entries);function w(m){if(!m._noBody){if(m.bodyUsed)return Promise.reject(new TypeError("Already read"));m.bodyUsed=!0}}function M(m){return new Promise(function(I,R){m.onload=function(){I(m.result)},m.onerror=function(){R(m.error)}})}function P(m){var I=new FileReader,R=M(I);return I.readAsArrayBuffer(m),R}function E(m){var I=new FileReader,R=M(I),W=/charset=([A-Za-z0-9_-]+)/.exec(m.type),j=W?W[1]:"utf-8";return I.readAsText(m,j),R}function D(m){for(var I=new Uint8Array(m),R=new Array(I.length),W=0;W<I.length;W++)R[W]=String.fromCharCode(I[W]);return R.join("")}function B(m){if(m.slice)return m.slice(0);var I=new Uint8Array(m.byteLength);return I.set(new Uint8Array(m)),I.buffer}function Y(){return this.bodyUsed=!1,this._initBody=function(m){this.bodyUsed=this.bodyUsed,this._bodyInit=m,m?typeof m=="string"?this._bodyText=m:y.blob&&Blob.prototype.isPrototypeOf(m)?this._bodyBlob=m:y.formData&&FormData.prototype.isPrototypeOf(m)?this._bodyFormData=m:y.searchParams&&URLSearchParams.prototype.isPrototypeOf(m)?this._bodyText=m.toString():y.arrayBuffer&&y.blob&&l(m)?(this._bodyArrayBuffer=B(m.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):y.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(m)||f(m))?this._bodyArrayBuffer=B(m):this._bodyText=m=Object.prototype.toString.call(m):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof m=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):y.searchParams&&URLSearchParams.prototype.isPrototypeOf(m)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},y.blob&&(this.blob=function(){var m=w(this);if(m)return m;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var m=w(this);return m||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(y.blob)return this.blob().then(P);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var m=w(this);if(m)return m;if(this._bodyBlob)return E(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},y.formData&&(this.formData=function(){return this.text().then(te)}),this.json=function(){return this.text().then(JSON.parse)},this}var J=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function K(m){var I=m.toUpperCase();return J.indexOf(I)>-1?I:m}function z(m,I){if(!(this instanceof z))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');I=I||{};var R=I.body;if(m instanceof z){if(m.bodyUsed)throw new TypeError("Already read");this.url=m.url,this.credentials=m.credentials,I.headers||(this.headers=new T(m.headers)),this.method=m.method,this.mode=m.mode,this.signal=m.signal,!R&&m._bodyInit!=null&&(R=m._bodyInit,m.bodyUsed=!0)}else this.url=String(m);if(this.credentials=I.credentials||this.credentials||"same-origin",(I.headers||!this.headers)&&(this.headers=new T(I.headers)),this.method=K(I.method||this.method||"GET"),this.mode=I.mode||this.mode||null,this.signal=I.signal||this.signal||(function(){if("AbortController"in i){var V=new AbortController;return V.signal}})(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&R)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(R),(this.method==="GET"||this.method==="HEAD")&&(I.cache==="no-store"||I.cache==="no-cache")){var W=/([?&])_=[^&]*/;if(W.test(this.url))this.url=this.url.replace(W,"$1_="+new Date().getTime());else{var j=/\?/;this.url+=(j.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}z.prototype.clone=function(){return new z(this,{body:this._bodyInit})};function te(m){var I=new FormData;return m.trim().split("&").forEach(function(R){if(R){var W=R.split("="),j=W.shift().replace(/\+/g," "),V=W.join("=").replace(/\+/g," ");I.append(decodeURIComponent(j),decodeURIComponent(V))}}),I}function $(m){var I=new T,R=m.replace(/\r?\n[\t ]+/g," ");return R.split("\r").map(function(W){return W.indexOf(`
2
2
  `)===0?W.substr(1,W.length):W}).forEach(function(W){var j=W.split(":"),V=j.shift().trim();if(V){var me=j.join(":").trim();try{I.append(V,me)}catch(Q){console.warn("Response "+Q.message)}}}),I}Y.call(z.prototype);function U(m,I){if(!(this instanceof U))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(I||(I={}),this.type="default",this.status=I.status===void 0?200:I.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=I.statusText===void 0?"":""+I.statusText,this.headers=new T(I.headers),this.url=I.url||"",this._initBody(m)}Y.call(U.prototype),U.prototype.clone=function(){return new U(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new T(this.headers),url:this.url})},U.error=function(){var m=new U(null,{status:200,statusText:""});return m.ok=!1,m.status=0,m.type="error",m};var pe=[301,302,303,307,308];U.redirect=function(m,I){if(pe.indexOf(I)===-1)throw new RangeError("Invalid status code");return new U(null,{status:I,headers:{location:m}})},p.DOMException=i.DOMException;try{new p.DOMException}catch{p.DOMException=function(I,R){this.message=I,this.name=R;var W=Error(I);this.stack=W.stack},p.DOMException.prototype=Object.create(Error.prototype),p.DOMException.prototype.constructor=p.DOMException}function ne(m,I){return new Promise(function(R,W){var j=new z(m,I);if(j.signal&&j.signal.aborted)return W(new p.DOMException("Aborted","AbortError"));var V=new XMLHttpRequest;function me(){V.abort()}V.onload=function(){var q={statusText:V.statusText,headers:$(V.getAllResponseHeaders()||"")};j.url.indexOf("file://")===0&&(V.status<200||V.status>599)?q.status=200:q.status=V.status,q.url="responseURL"in V?V.responseURL:q.headers.get("X-Request-URL");var a="response"in V?V.response:V.responseText;setTimeout(function(){R(new U(a,q))},0)},V.onerror=function(){setTimeout(function(){W(new TypeError("Network request failed"))},0)},V.ontimeout=function(){setTimeout(function(){W(new TypeError("Network request timed out"))},0)},V.onabort=function(){setTimeout(function(){W(new p.DOMException("Aborted","AbortError"))},0)};function Q(q){try{return q===""&&i.location.href?i.location.href:q}catch{return q}}if(V.open(j.method,Q(j.url),!0),j.credentials==="include"?V.withCredentials=!0:j.credentials==="omit"&&(V.withCredentials=!1),"responseType"in V&&(y.blob?V.responseType="blob":y.arrayBuffer&&(V.responseType="arraybuffer")),I&&typeof I.headers=="object"&&!(I.headers instanceof T||i.Headers&&I.headers instanceof i.Headers)){var be=[];Object.getOwnPropertyNames(I.headers).forEach(function(q){be.push(b(q)),V.setRequestHeader(q,g(I.headers[q]))}),j.headers.forEach(function(q,a){be.indexOf(a)===-1&&V.setRequestHeader(a,q)})}else j.headers.forEach(function(q,a){V.setRequestHeader(a,q)});j.signal&&(j.signal.addEventListener("abort",me),V.onreadystatechange=function(){V.readyState===4&&j.signal.removeEventListener("abort",me)}),V.send(typeof j._bodyInit>"u"?null:j._bodyInit)})}return ne.polyfill=!0,i.fetch||(i.fetch=ne,i.Headers=T,i.Request=z,i.Response=U),p.Headers=T,p.Request=z,p.Response=U,p.fetch=ne,Object.defineProperty(p,"__esModule",{value:!0}),p})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var u=n.fetch?n:r;t=u.fetch,t.default=u.fetch,t.fetch=u.fetch,t.Headers=u.Headers,t.Request=u.Request,t.Response=u.Response,e.exports=t})(vt,vt.exports)),vt.exports}var Ca=_a();const ke=s.getDefaultExportFromCjs(Ca);var Yt={exports:{}},an;function Sa(){return an||(an=1,(function(e){(function(){var t="input is invalid type",n="finalize already called",r=typeof window=="object",u=r?window:{};u.JS_SHA3_NO_WINDOW&&(r=!1);var o=!r&&typeof self=="object",p=!u.JS_SHA3_NO_NODE_JS&&typeof c.process$1=="object"&&c.process$1.versions&&c.process$1.versions.node;p?u=s.commonjsGlobal:o&&(u=self);var i=!u.JS_SHA3_NO_COMMON_JS&&!0&&e.exports,y=!u.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",l="0123456789abcdef".split(""),d=[31,7936,2031616,520093696],f=[4,1024,262144,67108864],b=[1,256,65536,16777216],g=[6,1536,393216,100663296],h=[0,8,16,24],T=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],w=[224,256,384,512],M=[128,256],P=["hex","buffer","arrayBuffer","array","digest"],E={128:168,256:136};(u.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"}),y&&(u.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(a){return typeof a=="object"&&a.buffer&&a.buffer.constructor===ArrayBuffer});for(var D=function(a,_,C){return function(S){return new Q(a,_,a).update(S)[C]()}},B=function(a,_,C){return function(S,v){return new Q(a,_,v).update(S)[C]()}},Y=function(a,_,C){return function(S,v,x,L){return ne["cshake"+a].update(S,v,x,L)[C]()}},J=function(a,_,C){return function(S,v,x,L){return ne["kmac"+a].update(S,v,x,L)[C]()}},K=function(a,_,C,S){for(var v=0;v<P.length;++v){var x=P[v];a[x]=_(C,S,x)}return a},z=function(a,_){var C=D(a,_,"hex");return C.create=function(){return new Q(a,_,a)},C.update=function(S){return C.create().update(S)},K(C,D,a,_)},te=function(a,_){var C=B(a,_,"hex");return C.create=function(S){return new Q(a,_,S)},C.update=function(S,v){return C.create(v).update(S)},K(C,B,a,_)},$=function(a,_){var C=E[a],S=Y(a,_,"hex");return S.create=function(v,x,L){return!x&&!L?ne["shake"+a].create(v):new Q(a,_,v).bytepad([x,L],C)},S.update=function(v,x,L,N){return S.create(x,L,N).update(v)},K(S,Y,a,_)},U=function(a,_){var C=E[a],S=J(a,_,"hex");return S.create=function(v,x,L){return new be(a,_,x).bytepad(["KMAC",L],C).bytepad([v],C)},S.update=function(v,x,L,N){return S.create(v,L,N).update(x)},K(S,J,a,_)},pe=[{name:"keccak",padding:b,bits:w,createMethod:z},{name:"sha3",padding:g,bits:w,createMethod:z},{name:"shake",padding:d,bits:M,createMethod:te},{name:"cshake",padding:f,bits:M,createMethod:$},{name:"kmac",padding:f,bits:M,createMethod:U}],ne={},m=[],I=0;I<pe.length;++I)for(var R=pe[I],W=R.bits,j=0;j<W.length;++j){var V=R.name+"_"+W[j];if(m.push(V),ne[V]=R.createMethod(W[j],R.padding),R.name!=="sha3"){var me=R.name+W[j];m.push(me),ne[me]=ne[V]}}function Q(a,_,C){this.blocks=[],this.s=[],this.padding=_,this.outputBits=C,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(a<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=C>>5,this.extraBytes=(C&31)>>3;for(var S=0;S<50;++S)this.s[S]=0}Q.prototype.update=function(a){if(this.finalized)throw new Error(n);var _,C=typeof a;if(C!=="string"){if(C==="object"){if(a===null)throw new Error(t);if(y&&a.constructor===ArrayBuffer)a=new Uint8Array(a);else if(!Array.isArray(a)&&(!y||!ArrayBuffer.isView(a)))throw new Error(t)}else throw new Error(t);_=!0}for(var S=this.blocks,v=this.byteCount,x=a.length,L=this.blockCount,N=0,ie=this.s,H,ae;N<x;){if(this.reset)for(this.reset=!1,S[0]=this.block,H=1;H<L+1;++H)S[H]=0;if(_)for(H=this.start;N<x&&H<v;++N)S[H>>2]|=a[N]<<h[H++&3];else for(H=this.start;N<x&&H<v;++N)ae=a.charCodeAt(N),ae<128?S[H>>2]|=ae<<h[H++&3]:ae<2048?(S[H>>2]|=(192|ae>>6)<<h[H++&3],S[H>>2]|=(128|ae&63)<<h[H++&3]):ae<55296||ae>=57344?(S[H>>2]|=(224|ae>>12)<<h[H++&3],S[H>>2]|=(128|ae>>6&63)<<h[H++&3],S[H>>2]|=(128|ae&63)<<h[H++&3]):(ae=65536+((ae&1023)<<10|a.charCodeAt(++N)&1023),S[H>>2]|=(240|ae>>18)<<h[H++&3],S[H>>2]|=(128|ae>>12&63)<<h[H++&3],S[H>>2]|=(128|ae>>6&63)<<h[H++&3],S[H>>2]|=(128|ae&63)<<h[H++&3]);if(this.lastByteIndex=H,H>=v){for(this.start=H-v,this.block=S[L],H=0;H<L;++H)ie[H]^=S[H];q(ie),this.reset=!0}else this.start=H}return this},Q.prototype.encode=function(a,_){var C=a&255,S=1,v=[C];for(a=a>>8,C=a&255;C>0;)v.unshift(C),a=a>>8,C=a&255,++S;return _?v.push(S):v.unshift(S),this.update(v),v.length},Q.prototype.encodeString=function(a){var _,C=typeof a;if(C!=="string"){if(C==="object"){if(a===null)throw new Error(t);if(y&&a.constructor===ArrayBuffer)a=new Uint8Array(a);else if(!Array.isArray(a)&&(!y||!ArrayBuffer.isView(a)))throw new Error(t)}else throw new Error(t);_=!0}var S=0,v=a.length;if(_)S=v;else for(var x=0;x<a.length;++x){var L=a.charCodeAt(x);L<128?S+=1:L<2048?S+=2:L<55296||L>=57344?S+=3:(L=65536+((L&1023)<<10|a.charCodeAt(++x)&1023),S+=4)}return S+=this.encode(S*8),this.update(a),S},Q.prototype.bytepad=function(a,_){for(var C=this.encode(_),S=0;S<a.length;++S)C+=this.encodeString(a[S]);var v=_-C%_,x=[];return x.length=v,this.update(x),this},Q.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var a=this.blocks,_=this.lastByteIndex,C=this.blockCount,S=this.s;if(a[_>>2]|=this.padding[_&3],this.lastByteIndex===this.byteCount)for(a[0]=a[C],_=1;_<C+1;++_)a[_]=0;for(a[C-1]|=2147483648,_=0;_<C;++_)S[_]^=a[_];q(S)}},Q.prototype.toString=Q.prototype.hex=function(){this.finalize();for(var a=this.blockCount,_=this.s,C=this.outputBlocks,S=this.extraBytes,v=0,x=0,L="",N;x<C;){for(v=0;v<a&&x<C;++v,++x)N=_[v],L+=l[N>>4&15]+l[N&15]+l[N>>12&15]+l[N>>8&15]+l[N>>20&15]+l[N>>16&15]+l[N>>28&15]+l[N>>24&15];x%a===0&&(q(_),v=0)}return S&&(N=_[v],L+=l[N>>4&15]+l[N&15],S>1&&(L+=l[N>>12&15]+l[N>>8&15]),S>2&&(L+=l[N>>20&15]+l[N>>16&15])),L},Q.prototype.arrayBuffer=function(){this.finalize();var a=this.blockCount,_=this.s,C=this.outputBlocks,S=this.extraBytes,v=0,x=0,L=this.outputBits>>3,N;S?N=new ArrayBuffer(C+1<<2):N=new ArrayBuffer(L);for(var ie=new Uint32Array(N);x<C;){for(v=0;v<a&&x<C;++v,++x)ie[x]=_[v];x%a===0&&q(_)}return S&&(ie[v]=_[v],N=N.slice(0,L)),N},Q.prototype.buffer=Q.prototype.arrayBuffer,Q.prototype.digest=Q.prototype.array=function(){this.finalize();for(var a=this.blockCount,_=this.s,C=this.outputBlocks,S=this.extraBytes,v=0,x=0,L=[],N,ie;x<C;){for(v=0;v<a&&x<C;++v,++x)N=x<<2,ie=_[v],L[N]=ie&255,L[N+1]=ie>>8&255,L[N+2]=ie>>16&255,L[N+3]=ie>>24&255;x%a===0&&q(_)}return S&&(N=x<<2,ie=_[v],L[N]=ie&255,S>1&&(L[N+1]=ie>>8&255),S>2&&(L[N+2]=ie>>16&255)),L};function be(a,_,C){Q.call(this,a,_,C)}be.prototype=new Q,be.prototype.finalize=function(){return this.encode(this.outputBits,!0),Q.prototype.finalize.call(this)};var q=function(a){var _,C,S,v,x,L,N,ie,H,ae,ve,De,Oe,Be,xe,Fe,Ne,Ue,We,Le,Ke,He,Ge,$e,Ve,je,Ye,ze,Ze,Je,Qe,Xe,qe,et,tt,nt,at,rt,it,st,ot,ut,pt,lt,ct,yt,dt,mt,ft,bt,ht,Tt,gt,wt,At,It,_t,Ct,St,Mt,Pt,Et,kt;for(S=0;S<48;S+=2)v=a[0]^a[10]^a[20]^a[30]^a[40],x=a[1]^a[11]^a[21]^a[31]^a[41],L=a[2]^a[12]^a[22]^a[32]^a[42],N=a[3]^a[13]^a[23]^a[33]^a[43],ie=a[4]^a[14]^a[24]^a[34]^a[44],H=a[5]^a[15]^a[25]^a[35]^a[45],ae=a[6]^a[16]^a[26]^a[36]^a[46],ve=a[7]^a[17]^a[27]^a[37]^a[47],De=a[8]^a[18]^a[28]^a[38]^a[48],Oe=a[9]^a[19]^a[29]^a[39]^a[49],_=De^(L<<1|N>>>31),C=Oe^(N<<1|L>>>31),a[0]^=_,a[1]^=C,a[10]^=_,a[11]^=C,a[20]^=_,a[21]^=C,a[30]^=_,a[31]^=C,a[40]^=_,a[41]^=C,_=v^(ie<<1|H>>>31),C=x^(H<<1|ie>>>31),a[2]^=_,a[3]^=C,a[12]^=_,a[13]^=C,a[22]^=_,a[23]^=C,a[32]^=_,a[33]^=C,a[42]^=_,a[43]^=C,_=L^(ae<<1|ve>>>31),C=N^(ve<<1|ae>>>31),a[4]^=_,a[5]^=C,a[14]^=_,a[15]^=C,a[24]^=_,a[25]^=C,a[34]^=_,a[35]^=C,a[44]^=_,a[45]^=C,_=ie^(De<<1|Oe>>>31),C=H^(Oe<<1|De>>>31),a[6]^=_,a[7]^=C,a[16]^=_,a[17]^=C,a[26]^=_,a[27]^=C,a[36]^=_,a[37]^=C,a[46]^=_,a[47]^=C,_=ae^(v<<1|x>>>31),C=ve^(x<<1|v>>>31),a[8]^=_,a[9]^=C,a[18]^=_,a[19]^=C,a[28]^=_,a[29]^=C,a[38]^=_,a[39]^=C,a[48]^=_,a[49]^=C,Be=a[0],xe=a[1],yt=a[11]<<4|a[10]>>>28,dt=a[10]<<4|a[11]>>>28,ze=a[20]<<3|a[21]>>>29,Ze=a[21]<<3|a[20]>>>29,Mt=a[31]<<9|a[30]>>>23,Pt=a[30]<<9|a[31]>>>23,ut=a[40]<<18|a[41]>>>14,pt=a[41]<<18|a[40]>>>14,et=a[2]<<1|a[3]>>>31,tt=a[3]<<1|a[2]>>>31,Fe=a[13]<<12|a[12]>>>20,Ne=a[12]<<12|a[13]>>>20,mt=a[22]<<10|a[23]>>>22,ft=a[23]<<10|a[22]>>>22,Je=a[33]<<13|a[32]>>>19,Qe=a[32]<<13|a[33]>>>19,Et=a[42]<<2|a[43]>>>30,kt=a[43]<<2|a[42]>>>30,wt=a[5]<<30|a[4]>>>2,At=a[4]<<30|a[5]>>>2,nt=a[14]<<6|a[15]>>>26,at=a[15]<<6|a[14]>>>26,Ue=a[25]<<11|a[24]>>>21,We=a[24]<<11|a[25]>>>21,bt=a[34]<<15|a[35]>>>17,ht=a[35]<<15|a[34]>>>17,Xe=a[45]<<29|a[44]>>>3,qe=a[44]<<29|a[45]>>>3,$e=a[6]<<28|a[7]>>>4,Ve=a[7]<<28|a[6]>>>4,It=a[17]<<23|a[16]>>>9,_t=a[16]<<23|a[17]>>>9,rt=a[26]<<25|a[27]>>>7,it=a[27]<<25|a[26]>>>7,Le=a[36]<<21|a[37]>>>11,Ke=a[37]<<21|a[36]>>>11,Tt=a[47]<<24|a[46]>>>8,gt=a[46]<<24|a[47]>>>8,lt=a[8]<<27|a[9]>>>5,ct=a[9]<<27|a[8]>>>5,je=a[18]<<20|a[19]>>>12,Ye=a[19]<<20|a[18]>>>12,Ct=a[29]<<7|a[28]>>>25,St=a[28]<<7|a[29]>>>25,st=a[38]<<8|a[39]>>>24,ot=a[39]<<8|a[38]>>>24,He=a[48]<<14|a[49]>>>18,Ge=a[49]<<14|a[48]>>>18,a[0]=Be^~Fe&Ue,a[1]=xe^~Ne&We,a[10]=$e^~je&ze,a[11]=Ve^~Ye&Ze,a[20]=et^~nt&rt,a[21]=tt^~at&it,a[30]=lt^~yt&mt,a[31]=ct^~dt&ft,a[40]=wt^~It&Ct,a[41]=At^~_t&St,a[2]=Fe^~Ue&Le,a[3]=Ne^~We&Ke,a[12]=je^~ze&Je,a[13]=Ye^~Ze&Qe,a[22]=nt^~rt&st,a[23]=at^~it&ot,a[32]=yt^~mt&bt,a[33]=dt^~ft&ht,a[42]=It^~Ct&Mt,a[43]=_t^~St&Pt,a[4]=Ue^~Le&He,a[5]=We^~Ke&Ge,a[14]=ze^~Je&Xe,a[15]=Ze^~Qe&qe,a[24]=rt^~st&ut,a[25]=it^~ot&pt,a[34]=mt^~bt&Tt,a[35]=ft^~ht&gt,a[44]=Ct^~Mt&Et,a[45]=St^~Pt&kt,a[6]=Le^~He&Be,a[7]=Ke^~Ge&xe,a[16]=Je^~Xe&$e,a[17]=Qe^~qe&Ve,a[26]=st^~ut&et,a[27]=ot^~pt&tt,a[36]=bt^~Tt&lt,a[37]=ht^~gt&ct,a[46]=Mt^~Et&wt,a[47]=Pt^~kt&At,a[8]=He^~Be&Fe,a[9]=Ge^~xe&Ne,a[18]=Xe^~$e&je,a[19]=qe^~Ve&Ye,a[28]=ut^~et&nt,a[29]=pt^~tt&at,a[38]=Tt^~lt&yt,a[39]=gt^~ct&dt,a[48]=Et^~wt&It,a[49]=kt^~At&_t,a[0]^=T[S],a[1]^=T[S+1]};if(i)e.exports=ne;else for(I=0;I<m.length;++I)u[m[I]]=ne[m[I]]})()})(Yt)),Yt.exports}var Ma=Sa();function Pa(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let l=0;l<t.length;l++)t[l]=255;for(let l=0;l<e.length;l++){const d=e.charAt(l),f=d.charCodeAt(0);if(t[f]!==255)throw new TypeError(d+" is ambiguous");t[f]=l}const n=e.length,r=e.charAt(0),u=Math.log(n)/Math.log(256),o=Math.log(256)/Math.log(n);function p(l){if(l instanceof Uint8Array||(ArrayBuffer.isView(l)?l=new Uint8Array(l.buffer,l.byteOffset,l.byteLength):Array.isArray(l)&&(l=Uint8Array.from(l))),!(l instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(l.length===0)return"";let d=0,f=0,b=0;const g=l.length;for(;b!==g&&l[b]===0;)b++,d++;const h=(g-b)*o+1>>>0,T=new Uint8Array(h);for(;b!==g;){let P=l[b],E=0;for(let D=h-1;(P!==0||E<f)&&D!==-1;D--,E++)P+=256*T[D]>>>0,T[D]=P%n>>>0,P=P/n>>>0;if(P!==0)throw new Error("Non-zero carry");f=E,b++}let w=h-f;for(;w!==h&&T[w]===0;)w++;let M=r.repeat(d);for(;w<h;++w)M+=e.charAt(T[w]);return M}function i(l){if(typeof l!="string")throw new TypeError("Expected String");if(l.length===0)return new Uint8Array;let d=0,f=0,b=0;for(;l[d]===r;)f++,d++;const g=(l.length-d)*u+1>>>0,h=new Uint8Array(g);for(;d<l.length;){const P=l.charCodeAt(d);if(P>255)return;let E=t[P];if(E===255)return;let D=0;for(let B=g-1;(E!==0||D<b)&&B!==-1;B--,D++)E+=n*h[B]>>>0,h[B]=E%256>>>0,E=E/256>>>0;if(E!==0)throw new Error("Non-zero carry");b=D,d++}let T=g-b;for(;T!==g&&h[T]===0;)T++;const w=new Uint8Array(f+(g-T));let M=f;for(;T!==g;)w[M++]=h[T++];return w}function y(l){const d=i(l);if(d)return d;throw new Error("Non-base"+n+" character")}return{encode:p,decodeUnsafe:i,decode:y}}var Ea="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";Pa(Ea);var A={MAYAN_FORWARDER_CONTRACT:"0x337685fdaB40D39bd02028545a4FfA7D287cC3E2",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"BLZRi6frs4X4DNLw56V4EXai1b6QVESN1BhHBTYM9VcY",FEE_MANAGER_PROGRAM_ID:"5VtQHnhs2pfVEr68qQsbTRwKh4JV5GTu9mBHgHFxpHeQ",WORMHOLE_PROGRAM_ID:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",WORMHOLE_SHIM_POST_MESSAGE_PROGRAM_ID:"EtZMZM22ViKMo4r5y4Anovs3wKQ2owUmDpjygnMMcdEX",CCTP_CORE_PROGRAM_ID:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",CCTP_TOKEN_PROGRAM_ID:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",TOKEN_PROGRAM_ID:"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",TOKEN_2022_PROGRAM_ID:"TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb",ASSOCIATED_TOKEN_PROGRAM_ID:"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL",SPL_UTILS_PROGRAM_ID:"B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69",LOOKUP_TABLE:"Ff3yi1meWQQ19VPZMzGg6H8JQQeRudiV7QtVtyzJyoht",SUI_MCTP_STATE:"0xb787fe0f7530b4fd2162fa0cc92f4f6c5a97c54b4c5c55eb04ab29f4b803ac9c",SUI_MCTP_FEE_MANAGER_STATE:"0xa1b4a96ce93d36dd0bbce0adc39533a07d2f32928918c80cd6fe7868320978f2",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",HC_ARBITRUM_BRIDGE:"0x2df1c51e09aecf9cacb7bc98cb1742757f163df7",HC_ARBITRUM_DEPOSIT_PROCESSOR:"0xdDd77e62C848C3334f1148d4F1457FC59ede4E4B",ARBITRUM_USDC_CONTRACT:"0xaf88d065e77c8cC2239327C5EDb3A432268e5831",PAYLOAD_WRITER_PROGRAM_ID:"DwMLtdtJqJQkHzNcrdTBuWHJByJfgpKBnvFvzyKdy3cU",CPI_PROXY_PROGRAM_ID:"D8C8iW6zmoKg5TRr8nQ7h14TMWqQX8FiBdj2ju5MF3wa"},Mn={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"}]},ka=Ma.sha3_256,Ra=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function O(e,t){if(t===1)return c.zeroPadValue(new s.PublicKey(e).toBytes(),32);if(t===ue.ethereum||t===ue.bsc||t===ue.polygon||t===ue.avalanche||t===ue.arbitrum||t===ue.optimism||t===ue.base||t===ue.unichain||t===ue.linea||t===ue.sonic||t===ue.hyperevm)return c.zeroPadValue(e,32);if(t===ue.aptos&&Ra(e))return`0x${ka(e)}`;if(t===ue.sui){let n=e.startsWith("0x")?e.substring(2):e;if(c.Buffer$1.from(n,"hex").length!==32)throw new Error("Invalid sui address: "+e);return c.zeroPadValue(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function se(e){return new Uint8Array(c.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function re(e,t,n=!1,r=new s.PublicKey(A.TOKEN_PROGRAM_ID),u=new s.PublicKey(A.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!n&&!s.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[o]=s.PublicKey.findProgramAddressSync([t.toBuffer(),r.toBuffer(),e.toBuffer()],u);return o}function va(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function k(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(!va(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");const n=Math.min(8,Number(t)),r=Number(e).toFixed(n+1),u=new RegExp(`^-?\\d+(?:\\.\\d{0,${n}})?`),o=r.match(u);if(!o)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const p=o[0];return Cn(p,Number(t))}function Da(e,t){return Number(Qt(e,t))}var ue={solana:1,ethereum:2,bsc:4,polygon:5,avalanche:6,arbitrum:23,optimism:24,base:30,aptos:22,sui:21,unichain:44,linea:38,hypercore:65e3,sonic:52,hyperevm:47};function G(e){return ue[e]}var Oa={1:2,56:4,137:5,43114:6,42161:23,10:24,8453:30,130:44,59144:38,146:52,999:47};function de(e){return Oa[e]}var Ba=[11,3,0];function Lt(){return Ba.join("_")}function oe(e){return e==="solana"?9:18}function xa(e){return e==="solana"?9:8}var Fa=BigInt(2)**BigInt(64)-BigInt(1);function X(e){if(e<BigInt(0)||e>Fa)throw new Error(`Invalid u64: ${e}`);const t=c.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var we={value:BigInt(0),deadline:0,v:0,r:`0x${s.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${s.SystemProgram.programId.toBuffer().toString("hex")}`};function Xt(e,t){return!e||!t?null:e.type==="WH"?t?.solana||null:e.type==="MCTP"||e.type==="SWIFT"?e.toChain==="solana"?t?.solana||null:e.toChain==="sui"?t?.sui||null:t?.evm||null:e.type==="FAST_MCTP"&&e.toChain!=="solana"&&e.toChain!=="sui"?t?.evm||null:e.type==="MONO_CHAIN"?e.fromChain==="solana"?t?.solana||null:e.fromChain==="sui"?t?.sui||null:t?.evm||null:null}var Pn=1,Na=2,Ua=1,Wa=1,La=3;async function Ka(e,t){const n=new c.Contract(e.contract,Mn.abi,t);let r,u;try{let[p,i]=await Promise.all([n.DOMAIN_SEPARATOR(),n.name()]);r=p,u=i}catch{throw{mayanError:{permitIssue:!0}}}const o={name:u,version:"1",chainId:e.chainId,verifyingContract:e.contract};for(let p=1;p<11;p++)if(o.version=String(p),c.TypedDataEncoder.hashDomain(o).toLowerCase()===r.toLowerCase())return o;throw{mayanError:{permitIssue:!0}}}var Ha={Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]};async function Ga(e,t,n,r,u,o){const p=new c.Contract(e.contract,Mn.abi,u),[i,y]=await Promise.all([Ka(e,u),p.nonces(t)]);return{domain:i,types:Ha,value:{owner:t,spender:n,nonce:String(y),value:String(r),deadline:String(o)}}}async function $a(e,t,n){if(!e.hyperCoreParams)throw new Error("Quote does not have hyperCoreParams");if(e.toChain!=="hypercore")throw new Error("Quote toChain is not hypercore");if(e.toToken.contract.toLowerCase()!==A.ARBITRUM_USDC_CONTRACT.toLowerCase())throw new Error("Quote toToken is not USDC on Arbitrum");const r={contract:"0xaf88d065e77c8cc2239327c5edb3a432268e5831",chainId:42161},[u,o]=await Promise.all([Ga(r,t,A.HC_ARBITRUM_BRIDGE,BigInt(e.hyperCoreParams.depositAmountUSDC64),n,BigInt(e.deadline64)),Ya(t,e.toToken.contract)]);if(!o)throw new Error("Because of concurrency, deposit is not possible at the moment, please try again later");return u}function En(e,t,n){const r=c.Buffer$1.alloc(109),u=c.Buffer$1.from(se(t));if(u.length!==20)throw new Error("Invalid destination address length, expected 20 bytes");const o=c.Buffer$1.from(se(n));if(o.length!==65)throw new Error("Invalid USDC permit signature length, expected 65 bytes");return r.writeBigUInt64BE(BigInt(e.redeemRelayerFee64),0),r.set(u,8),r.writeBigUInt64BE(BigInt(e.hyperCoreParams.depositAmountUSDC64),28),r.writeBigUInt64BE(BigInt(e.deadline64),36),r.set(o,44),r}function qt(e){return Object.entries(e).filter(([t,n])=>n!=null&&!Array.isArray(n)).map(([t,n])=>`${encodeURIComponent(t)}=${encodeURIComponent(n)}`).join("&")}async function Kt(e){if(e.status.toString().startsWith("5")){let t;try{const 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}}function Va(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0,fullList:!1,payload:void 0,monoChain:!0}){const{gasDrop:n,referrerBps:r}=e;let u=e.slippageBps;const 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},solanaProgram:A.MAYAN_PROGRAM_ID,forwarderAddress:A.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:u,referrer:e.referrer,referrerBps:Number.isFinite(r)?r:void 0,gasDrop:Number.isFinite(n)?n:void 0,sdkVersion:Lt()},i=`${A.PRICE_URL}/quote?`,y=qt(p);return i+y}async function ja(){const e=await ke(`${A.RELAYER_URL}/active-relayers?solanaProgram=${A.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await Kt(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function Ht(e){const t=qt({...e,sdkVersion:Lt()}),n=await ke(`${A.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await Kt(n);const r=await n.json();if(n.status!==200&&n.status!==201)throw r;return r}async function kn(e){const t=JSON.stringify({...e,sdkVersion:Lt()}),n=`${A.PRICE_URL}/get-swap/sui`,r=await ke(n,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await Kt(r);const u=await r.json();if(r.status!==200&&r.status!==201)throw u;return u}async function Ya(e,t){const n=qt({destWallet:e,destToken:t,sdkVersion:Lt()}),r=await ke(`${A.EXPLORER_URL}/hypercore/is-allowed?${n}`,{method:"GET",redirect:"follow"});await Kt(r);const u=await r.json();if(r.status!==200&&r.status!==201)throw u;return u.allowed===!0}var za={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"}]},Ae={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"}]},Rn={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"},{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:"orderParams",type:"tuple"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"uint16",name:"sourceChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"}],internalType:"struct MayanCircle.ExtraParams",name:"extraParams",type:"tuple"}],name:"refund",outputs:[],stateMutability:"payable",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:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"setDomain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"domain",type:"uint32"},{internalType:"bytes32",name:"caller",type:"bytes32"}],name:"setDomainCaller",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"chainId",type:"uint16"},{internalType:"bytes32",name:"emitter",type:"bytes32"}],name:"setEmitter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint32",name:"destDomain",type:"uint32"},{internalType:"address",name:"tokenIn",type:"address"},{internalType:"bytes32",name:"mintRecipient",type:"bytes32"}],name:"setMintRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"}],name:"unlockFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm1",type:"bytes"},{internalType:"bytes",name:"encodedVm2",type:"bytes"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"}],internalType:"struct MayanCircle.UnlockFeeMsg",name:"unlockMsg",type:"tuple"},{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"uint8",name:"payloadType",type:"uint8"},{internalType:"uint64",name:"cctpNonce",type:"uint64"},{internalType:"uint32",name:"cctpDomain",type:"uint32"},{internalType:"bytes32",name:"unlockerAddr",type:"bytes32"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"}],internalType:"struct MayanCircle.UnlockRefinedFeeMsg",name:"refinedMsg",type:"tuple"}],name:"unlockFeeRefined",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]},ee=6;function Ie(e){switch(e){case"ethereum":return 0;case"avalanche":return 1;case"optimism":return 2;case"arbitrum":return 3;case"solana":return 5;case"base":return 6;case"polygon":return 7;case"sui":return 8;case"unichain":return 10;case"linea":return 11;case"sonic":return 13;case"hyperevm":return 19;default:throw new Error("unsupported chain for cctp")}}function en(e,t){const n=new s.PublicKey(A.CCTP_CORE_PROGRAM_ID),r=new s.PublicKey(A.CCTP_TOKEN_PROGRAM_ID),[u]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("message_transmitter")],n),[o]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("sender_authority")],r),[p]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("local_token"),e.toBytes()],r),[i]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("token_messenger")],r),[y]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("token_minter")],r),l=Ie(t),[d]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("remote_token_messenger"),c.Buffer$1.from(l.toString())],r),[f]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("__event_authority")],n),[b]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("__event_authority")],r);return{messageTransmitter:u,senderAuthority:o,remoteTokenMessengerKey:d,tokenMessenger:i,tokenMinter:y,eventAuthToken:b,eventAuthCore:f,localToken:p}}function Za(e,t,n,r){const u=de(Number(n)),o=G(e.fromChain),p=G(e.toChain);if(o!==u)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${o} !== ${u}`);const i=e.cheaperChain===e.fromChain,y=O(t,p),l=k(e.redeemRelayerFee,ee),d=k(e.gasDrop,Math.min(oe(e.toChain),8)),f=BigInt(e.effectiveAmountIn64),b=Ie(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const g=e.mctpMayanContract;if(e.toChain==="solana"&&i)throw new Error("Cannot lock fee for transfer to solana");let h=k(e.bridgeFee,oe(e.fromChain));return i&&(h=BigInt(0)),{lockFee:i,tokenIn:e.mctpInputContract,amountIn:f,redeemFee:l,gasDrop:d,destAddr:y,destDomain:b,payloadType:Pn,customPayload:"0x",bridgeFee:h,contractAddress:g}}function rn(e,t,n,r){const u=Za(e,t,n),{contractAddress:o,tokenIn:p,amountIn:i,destAddr:y,lockFee:l,redeemFee:d,gasDrop:f,destDomain:b,customPayload:g,payloadType:h,bridgeFee:T}=u,w=new c.Contract(o,Rn.abi);let M,P;return l?M=w.interface.encodeFunctionData("bridgeWithLockedFee",[p,i,f,d,b,y]):M=w.interface.encodeFunctionData("bridgeWithFee",[p,i,d,f,y,b,h,g]),P=c.toBeHex(T),{to:o,data:M,value:P,_params:u}}function Ja(e,t,n,r){const u=de(Number(r)),o=G(e.fromChain),p=G(e.toChain);if(o!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${u}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.mctpMayanContract,y=O(t,p);let l;n?l=O(n,p):l=O(s.SystemProgram.programId.toString(),G("solana"));const d=k(e.redeemRelayerFee,ee),f=k(e.gasDrop,Math.min(oe(e.toChain),8));let b=BigInt(e.effectiveAmountIn64);const g=k(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),T=e.toToken.contract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),G("solana")):O(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:b,gasDrop:f,destAddr:y,destChain:p,tokenOut:T,minAmountOut:g,deadline:h,redeemFee:d,referrerAddr:l,referrerBps:e.referrerBps||0},bridgeFee:k(e.bridgeFee,oe(e.fromChain)),contractAddress:i}}function sn(e,t,n,r){const u=Ja(e,t,n,r),{contractAddress:o,params:p,bridgeFee:i}=u,l=new c.Contract(o,Rn.abi).interface.encodeFunctionData("createOrder",[p]),d=c.toBeHex(i);return{to:o,data:l,value:d,_params:u}}function Qa(e,t,n,r,u,o){if(e.type!=="MCTP")throw new Error("Quote type is not MCTP");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");r=Number(r);const p=u||we,i=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi),y=k(e.bridgeFee,oe(e.fromChain));let l=c.toBeHex(y);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const d=sn(e,t,n,r),f="forwardERC20",b=[e.fromToken.contract,d._params.params.amountIn,p,d._params.contractAddress,d.data];return{data:i.interface.encodeFunctionData(f,b),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:f,params:b}}}else{const d=rn(e,t,r),f="forwardERC20",b=[e.fromToken.contract,d._params.amountIn,p,d._params.contractAddress,d.data];return{data:i.interface.encodeFunctionData(f,b),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:f,params:b}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:f,evmSwapRouterCalldata:b}=e;if(!d||!f||!b)throw new Error("MCTP swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const g=sn(e,t,n,r),h=k(e.minMiddleAmount,ee);if(e.fromToken.contract===c.ZeroAddress){let T=g._params.params.amountIn;if(T<=y)throw new Error("Amount in is less than bridge fee");y!==BigInt(0)&&(T-=y),l=c.toBeHex(g._params.params.amountIn);const w="swapAndForwardEth",M=[T,f,b,e.mctpInputContract,h,g._params.contractAddress,g.data];return{data:i.interface.encodeFunctionData(w,M),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:w,params:M}}}else{const T="swapAndForwardERC20",w=[e.fromToken.contract,g._params.params.amountIn,p,f,b,e.mctpInputContract,h,g._params.contractAddress,g.data];return{data:i.interface.encodeFunctionData(T,w),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:T,params:w}}}}else{const g=rn(e,t,r),h=k(e.minMiddleAmount,ee);if(e.fromToken.contract===c.ZeroAddress){let T=g._params.amountIn;if(T<=y)throw new Error("Amount in is less than bridge fee");y!==BigInt(0)&&(T-=y),l=c.toBeHex(g._params.amountIn);const w="swapAndForwardEth",M=[T,f,b,e.mctpInputContract,h,g._params.contractAddress,g.data];return{data:i.interface.encodeFunctionData(w,M),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:w,params:M}}}else{const T="swapAndForwardERC20",w=[e.fromToken.contract,g._params.amountIn,p,f,b,e.mctpInputContract,h,g._params.contractAddress,g.data];return{data:i.interface.encodeFunctionData(T,w),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(l),chainId:r,_forwarder:{method:T,params:w}}}}}}var Xa={abi:[{inputs:[{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:"bytes32",name:"_solanaEmitter",type:"bytes32"},{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"DeadlineViolation",type:"error"},{inputs:[],name:"DuplicateOrder",type:"error"},{inputs:[],name:"FeesTooHigh",type:"error"},{inputs:[],name:"InvalidAction",type:"error"},{inputs:[],name:"InvalidAmount",type:"error"},{inputs:[],name:"InvalidAuctionMode",type:"error"},{inputs:[],name:"InvalidBpsFee",type:"error"},{inputs:[],name:"InvalidContractSignature",type:"error"},{inputs:[],name:"InvalidDestChain",type:"error"},{inputs:[],name:"InvalidEmitterAddress",type:"error"},{inputs:[],name:"InvalidEmitterChain",type:"error"},{inputs:[],name:"InvalidEvmAddr",type:"error"},{inputs:[],name:"InvalidGasDrop",type:"error"},{inputs:[],name:"InvalidOrderHash",type:"error"},{inputs:[],name:"InvalidOrderStatus",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSignatureLength",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[],name:"InvalidSrcChain",type:"error"},{inputs:[],name:"InvalidWormholeFee",type:"error"},{inputs:[],name:"OrderNotExists",type:"error"},{inputs:[],name:"Paused",type:"error"},{inputs:[],name:"SmallAmountIn",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"}],name:"OrderCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint64",name:"sequence",type:"uint64"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"netAmount",type:"uint256"}],name:"OrderRefunded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"key",type:"bytes32"}],name:"OrderUnlocked",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:"bytes32",name:"tokenIn",type:"bytes32"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{internalType:"bytes32",name:"canceler",type:"bytes32"}],name:"cancelOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",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:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithEth",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes",name:"signedOrderHash",type:"bytes"}],name:"createOrderWithSig",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"}],name:"createOrderWithToken",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeManager",outputs:[{internalType:"contract IFeeManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes",name:"encodedVm",type:"bytes"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillOrder",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"fulfillAmount",type:"uint256"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"uint8",name:"protocolBps",type:"uint8"},{components:[{internalType:"bytes32",name:"trader",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"minAmountOut",type:"uint64"},{internalType:"uint64",name:"gasDrop",type:"uint64"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"},{internalType:"uint64",name:"deadline",type:"uint64"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"referrerAddr",type:"bytes32"},{internalType:"uint8",name:"referrerBps",type:"uint8"},{internalType:"uint8",name:"auctionMode",type:"uint8"},{internalType:"bytes32",name:"random",type:"bytes32"}],internalType:"struct MayanSwift.OrderParams",name:"params",type:"tuple"},{internalType:"bytes32",name:"recepient",type:"bytes32"},{internalType:"bool",name:"batch",type:"bool"}],name:"fulfillSimple",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[],name:"guardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"nextGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"orders",outputs:[{internalType:"enum MayanSwift.Status",name:"status",type:"uint8"},{internalType:"uint64",name:"amountIn",type:"uint64"},{internalType:"uint16",name:"destChainId",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseFulfillPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"destChainId",type:"uint16"},{internalType:"bytes32",name:"destAddr",type:"bytes32"},{internalType:"bytes32",name:"driver",type:"bytes32"},{internalType:"bytes32",name:"tokenOut",type:"bytes32"},{internalType:"uint64",name:"promisedAmount",type:"uint64"},{internalType:"uint64",name:"gasDrop",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:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"}],internalType:"struct MayanSwift.FulfillMsg",name:"fulfillMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseRefundPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"canceler",type:"bytes32"},{internalType:"uint64",name:"cancelFee",type:"uint64"},{internalType:"uint64",name:"refundFee",type:"uint64"}],internalType:"struct MayanSwift.RefundMsg",name:"refundMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"bytes",name:"encoded",type:"bytes"}],name:"parseUnlockPayload",outputs:[{components:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],internalType:"struct MayanSwift.UnlockMsg",name:"unlockMsg",type:"tuple"}],stateMutability:"pure",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"postBatch",outputs:[{internalType:"uint64",name:"sequence",type:"uint64"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"refundOrder",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint8",name:"_consistencyLevel",type:"uint8"}],name:"setConsistencyLevel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_feeManager",type:"address"}],name:"setFeeManager",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"_pause",type:"bool"}],name:"setPause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"solanaEmitter",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockBatch",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"unlockMsgs",outputs:[{internalType:"uint8",name:"action",type:"uint8"},{internalType:"bytes32",name:"orderHash",type:"bytes32"},{internalType:"uint16",name:"srcChainId",type:"uint16"},{internalType:"bytes32",name:"tokenIn",type:"bytes32"},{internalType:"bytes32",name:"recipient",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"encodedVm",type:"bytes"}],name:"unlockSingle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wormhole",outputs:[{internalType:"contract IWormhole",name:"",type:"address"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}]};function qa(e,t){const n=t.subarray(0,8),r=e.instructions.find(i=>c.Buffer$1.from(i.discriminator).toString("hex").toLowerCase()===c.Buffer$1.from(n).toString("hex").toLowerCase());if(!r)throw new Error(`Instruction ${c.Buffer$1.from(n).toString("hex")} not in IDL`);const u=r.args||[],o={};let p=8;for(const i of u){const[y,l]=Se(i.type,t,p,e);o[i.name]=y,p=l}return o}function Se(e,t,n,r){if(typeof e=="string")switch(e){case"u8":return[t.readUInt8(n),n+1];case"u16":return[t.readUInt16LE(n),n+2];case"u32":return[t.readUInt32LE(n),n+4];case"u64":return[t.readBigUInt64LE(n),n+8];case"bool":return[t.readUInt8(n)!==0,n+1];case"pubkey":{const u=t.subarray(n,n+32);return[new s.PublicKey(u),n+32]}default:throw new Error(`Unknown primitive: ${e}`)}if("array"in e){const[u,o]=e.array,p=[];let i=n;for(let y=0;y<o;y++){const[l,d]=Se(u,t,i,r);p.push(l),i=d}return[p,i]}if("defined"in e){const u=r.types?.find(o=>o.name===e.defined.name);if(!u)throw new Error(`Type ${e.defined} not found`);if(u.type.kind==="struct"){const o={};let p=n;for(const i of u.type.fields){const[y,l]=Se(i.type,t,p,r);o[i.name]=y,p=l}return[o,p]}else{const o=t.readUInt8(n),p=u.type.variants[o];if(!p)throw new Error(`Invalid enum index ${o}`);let i=n+1;const y={variant:p.name};if(p.fields&&p.fields.length){const l=[];for(const d of p.fields){const[f,b]=Se(d.type,t,i,r);l.push(f),i=b}y.fields=l}return[y,i]}}if("option"in e)return t.readUInt8(n)===0?[null,n+1]:Se(e.option,t,n+1,r);if("vec"in e){const u=t.readUInt32LE(n);let o=n+4;const p=[];for(let i=0;i<u;i++){const[y,l]=Se(e.vec,t,o,r);p.push(y),o=l}return[p,o]}throw new Error(`Unsupported type shape: ${JSON.stringify(e)}`)}function er(e){return qa(tr,c.Buffer$1.from(e))}var tr={instructions:[{name:"route",docs:["route_plan Topologically sorted trade DAG"],discriminator:[229,23,203,151,122,227,173,42],accounts:[{name:"token_program"},{name:"user_transfer_authority",signer:!0},{name:"user_source_token_account",writable:!0},{name:"user_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0,optional:!0},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"},{name:"shared_accounts_route",docs:["Route by using program owned token accounts and open orders accounts."],discriminator:[193,32,155,51,65,214,156,129],accounts:[{name:"token_program"},{name:"program_authority"},{name:"user_transfer_authority",signer:!0},{name:"source_token_account",writable:!0},{name:"program_source_token_account",writable:!0},{name:"program_destination_token_account",writable:!0},{name:"destination_token_account",writable:!0},{name:"source_mint"},{name:"destination_mint"},{name:"platform_fee_account",writable:!0,optional:!0},{name:"token_2022_program",optional:!0},{name:"event_authority",address:"D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"},{name:"program"}],args:[{name:"id",type:"u8"},{name:"route_plan",type:{vec:{defined:{name:"RoutePlanStep"}}}},{name:"in_amount",type:"u64"},{name:"quoted_out_amount",type:"u64"},{name:"slippage_bps",type:"u16"},{name:"platform_fee_bps",type:"u8"}],returns:"u64"}],types:[{name:"AccountsType",type:{kind:"enum",variants:[{name:"TransferHookA"},{name:"TransferHookB"},{name:"TransferHookReward"},{name:"TransferHookInput"},{name:"TransferHookIntermediate"},{name:"TransferHookOutput"},{name:"SupplementalTickArrays"},{name:"SupplementalTickArraysOne"},{name:"SupplementalTickArraysTwo"}]}},{name:"FeeEvent",type:{kind:"struct",fields:[{name:"account",type:"pubkey"},{name:"mint",type:"pubkey"},{name:"amount",type:"u64"}]}},{name:"RemainingAccountsInfo",type:{kind:"struct",fields:[{name:"slices",type:{vec:{defined:{name:"RemainingAccountsSlice"}}}}]}},{name:"RemainingAccountsSlice",type:{kind:"struct",fields:[{name:"accounts_type",type:{defined:{name:"AccountsType"}}},{name:"length",type:"u8"}]}},{name:"RoutePlanStep",type:{kind:"struct",fields:[{name:"swap",type:{defined:{name:"Swap"}}},{name:"percent",type:"u8"},{name:"input_index",type:"u8"},{name:"output_index",type:"u8"}]}},{name:"Side",type:{kind:"enum",variants:[{name:"Bid"},{name:"Ask"}]}},{name:"Swap",type:{kind:"enum",variants:[{name:"Saber"},{name:"SaberAddDecimalsDeposit"},{name:"SaberAddDecimalsWithdraw"},{name:"TokenSwap"},{name:"Sencha"},{name:"Step"},{name:"Cropper"},{name:"Raydium"},{name:"Crema",fields:[{name:"a_to_b",type:"bool"}]},{name:"Lifinity"},{name:"Mercurial"},{name:"Cykura"},{name:"Serum",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"MarinadeDeposit"},{name:"MarinadeUnstake"},{name:"Aldrin",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"AldrinV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Whirlpool",fields:[{name:"a_to_b",type:"bool"}]},{name:"Invariant",fields:[{name:"x_to_y",type:"bool"}]},{name:"Meteora"},{name:"GooseFX"},{name:"DeltaFi",fields:[{name:"stable",type:"bool"}]},{name:"Balansol"},{name:"MarcoPolo",fields:[{name:"x_to_y",type:"bool"}]},{name:"Dradex",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"LifinityV2"},{name:"RaydiumClmm"},{name:"Openbook",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Phoenix",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"Symmetry",fields:[{name:"from_token_id",type:"u64"},{name:"to_token_id",type:"u64"}]},{name:"TokenSwapV2"},{name:"HeliumTreasuryManagementRedeemV0"},{name:"StakeDexStakeWrappedSol"},{name:"StakeDexSwapViaStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"GooseFXV2"},{name:"Perps"},{name:"PerpsAddLiquidity"},{name:"PerpsRemoveLiquidity"},{name:"MeteoraDlmm"},{name:"OpenBookV2",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumClmmV2"},{name:"StakeDexPrefundWithdrawStakeAndDepositStake",fields:[{name:"bridge_stake_seed",type:"u32"}]},{name:"Clone",fields:[{name:"pool_index",type:"u8"},{name:"quantity_is_input",type:"bool"},{name:"quantity_is_collateral",type:"bool"}]},{name:"SanctumS",fields:[{name:"src_lst_value_calc_accs",type:"u8"},{name:"dst_lst_value_calc_accs",type:"u8"},{name:"src_lst_index",type:"u32"},{name:"dst_lst_index",type:"u32"}]},{name:"SanctumSAddLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"SanctumSRemoveLiquidity",fields:[{name:"lst_value_calc_accs",type:"u8"},{name:"lst_index",type:"u32"}]},{name:"RaydiumCP"},{name:"WhirlpoolSwapV2",fields:[{name:"a_to_b",type:"bool"},{name:"remaining_accounts_info",type:{option:{defined:{name:"RemainingAccountsInfo"}}}}]},{name:"OneIntro"},{name:"PumpdotfunWrappedBuy"},{name:"PumpdotfunWrappedSell"},{name:"PerpsV2"},{name:"PerpsV2AddLiquidity"},{name:"PerpsV2RemoveLiquidity"},{name:"MoonshotWrappedBuy"},{name:"MoonshotWrappedSell"},{name:"StabbleStableSwap"},{name:"StabbleWeightedSwap"},{name:"Obric",fields:[{name:"x_to_y",type:"bool"}]},{name:"FoxBuyFromEstimatedCost"},{name:"FoxClaimPartial",fields:[{name:"is_y",type:"bool"}]},{name:"SolFi",fields:[{name:"is_quote_to_base",type:"bool"}]},{name:"SolayerDelegateNoInit"},{name:"SolayerUndelegateNoInit"},{name:"TokenMill",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"DaosFunBuy"},{name:"DaosFunSell"},{name:"ZeroFi"},{name:"StakeDexWithdrawWrappedSol"},{name:"VirtualsBuy"},{name:"VirtualsSell"},{name:"Perena",fields:[{name:"in_index",type:"u8"},{name:"out_index",type:"u8"}]},{name:"PumpdotfunAmmBuy"},{name:"PumpdotfunAmmSell"},{name:"Gamma"},{name:"MeteoraDlmmSwapV2",fields:[{name:"remaining_accounts_info",type:{defined:{name:"RemainingAccountsInfo"}}}]},{name:"Woofi"},{name:"MeteoraDammV2"},{name:"MeteoraDynamicBondingCurveSwap"},{name:"StabbleStableSwapV2"},{name:"StabbleWeightedSwapV2"},{name:"RaydiumLaunchlabBuy",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"RaydiumLaunchlabSell",fields:[{name:"share_fee_rate",type:"u64"}]},{name:"BoopdotfunWrappedBuy"},{name:"BoopdotfunWrappedSell"},{name:"Plasma",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"GoonFi",fields:[{name:"is_bid",type:"bool"},{name:"blacklist_bump",type:"u8"}]},{name:"HumidiFi",fields:[{name:"swap_id",type:"u64"},{name:"is_base_to_quote",type:"bool"}]},{name:"MeteoraDynamicBondingCurveSwapWithRemainingAccounts"},{name:"TesseraV",fields:[{name:"side",type:{defined:{name:"Side"}}}]},{name:"RaydiumStable"}]}},{name:"SwapEvent",type:{kind:"struct",fields:[{name:"amm",type:"pubkey"},{name:"input_mint",type:"pubkey"},{name:"input_amount",type:"u64"},{name:"output_mint",type:"pubkey"},{name:"output_amount",type:"u64"}]}},{name:"TokenLedger",type:{kind:"struct",fields:[{name:"token_account",type:"pubkey"},{name:"amount",type:"u64"}]}}]};function ye(e,t,n,r,u=new s.PublicKey(A.TOKEN_PROGRAM_ID),o=new s.PublicKey(A.ASSOCIATED_TOKEN_PROGRAM_ID)){const p=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:s.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:s.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new s.TransactionInstruction({keys:p,programId:o,data:c.Buffer$1.from([1])})}var on=165;async function xt(e,t,n,r,u,o=new s.PublicKey(A.TOKEN_PROGRAM_ID)){const p=[],i=await e.getMinimumBalanceForRentExemption(on);return p.push(s.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:u.publicKey,lamports:i,space:on,programId:o})),p.push(new s.TransactionInstruction({keys:[{pubkey:u.publicKey,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:s.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:o,data:c.Buffer$1.from([1])})),p}var un=s.LayoutExports.struct([s.LayoutExports.u8("instruction"),s.LayoutExports.blob(8,"amount")]);function nr(e,t,n,r,u=new s.PublicKey(A.TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],p=c.Buffer$1.alloc(un.span);return un.encode({instruction:4,amount:X(r)},p),new s.TransactionInstruction({keys:o,programId:u,data:p})}var pn=s.LayoutExports.struct([s.LayoutExports.u8("instruction")]);function vn(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],n=c.Buffer$1.alloc(pn.span);return pn.encode({instruction:17},n),new s.TransactionInstruction({keys:t,programId:new s.PublicKey(A.TOKEN_PROGRAM_ID),data:n})}s.LayoutExports.struct([s.LayoutExports.u8("instruction")]);var ln=s.LayoutExports.struct([s.LayoutExports.u8("instruction"),s.LayoutExports.blob(8,"amount")]);function Ft(e,t,n,r,u=new s.PublicKey(A.TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],p=c.Buffer$1.alloc(ln.span);return ln.encode({instruction:3,amount:X(r)},p),new s.TransactionInstruction({keys:o,programId:u,data:p})}var Gt=new s.PublicKey("So11111111111111111111111111111111111111112");function Dt(e){return new s.TransactionInstruction({programId:new s.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new s.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:c.Buffer$1.from(e.data,"base64")})}async function $t(e,t){return(await t.getMultipleAccountsInfo(e.map(r=>new s.PublicKey(r)))).reduce((r,u,o)=>{const p=e[o];if(u){const i=new s.AddressLookupTableAccount({key:new s.PublicKey(p),state:s.AddressLookupTableAccount.deserialize(u.data)});r.push(i)}return r},new Array)}function Vt(e,t,n){const r=Dt(e.swapInstruction),u=e.cleanupInstruction?Dt(e.cleanupInstruction):null,o=e.computeBudgetInstructions?e.computeBudgetInstructions.map(Dt):[],p=e.setupInstructions?rr(e.setupInstructions,n).map(Dt):[];return{swapInstruction:r,cleanupInstruction:u,computeBudgetInstructions:o,setupInstructions:p,addressLookupTableAddresses:e.addressLookupTableAddresses}}var ar=[{programId:s.SystemProgram.programId.toString(),instructionDataHex:"00000000",discriminatorLength:4,accountIndex:0},{programId:A.ASSOCIATED_TOKEN_PROGRAM_ID,instructionDataHex:"01",discriminatorLength:1,accountIndex:0},{programId:A.ASSOCIATED_TOKEN_PROGRAM_ID,instructionDataHex:"",discriminatorLength:0,accountIndex:0}];function rr(e,t){return t?e.map(n=>{const r=ar.find(u=>u.programId===n.programId&&u.instructionDataHex===c.Buffer$1.from(n.data,"base64").subarray(0,u.discriminatorLength).toString("hex")&&n.accounts.length>u.accountIndex);if(r){const u=[...n.accounts];return u[r.accountIndex]={...u[r.accountIndex],pubkey:t.toString()},{...n,accounts:u}}else return n}):e}function ce(e){let t=`global:${e}`;return c.Buffer$1.from(c.sha256(t)).subarray(0,8)}async function ir(){let e;try{const t=await ja();e=new s.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=s.SystemProgram.programId}return e}function sr(e,t){if(e){if(!e.programId.equals(new s.PublicKey(A.TOKEN_PROGRAM_ID))&&!e.programId.equals(new s.PublicKey(A.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid cleanup instruction:: programId");if(Uint8Array.from(e.data).length!==1)throw new Error("Invalid cleanup instruction:: data");if(Uint8Array.from(e.data)[0]!==9)throw new Error("Invalid cleanup instruction:: data");if(t&&!e.keys[1].pubkey.equals(t))throw new Error("Invalid cleanup instruction:: dest account")}}function or(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(n=>{if(!n.programId.equals(new s.PublicKey(A.ASSOCIATED_TOKEN_PROGRAM_ID))&&!n.programId.equals(s.SystemProgram.programId)&&!n.programId.equals(new s.PublicKey(A.TOKEN_PROGRAM_ID))&&!n.programId.equals(new s.PublicKey(A.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(n.programId.equals(new s.PublicKey(A.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(n.data).length===1){if(Uint8Array.from(n.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(n.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(n.programId.equals(s.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const r=re(Gt,t,!0);if(n.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!n.keys[1].pubkey.equals(r))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(n.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function ur(e,t,n=!1){const r=new s.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");if(!e.programId.equals(r))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===ce("shared_accounts_route").toString("hex")){if(!e.keys[6].pubkey.equals(t))throw new Error("Invalid swap instruction shared_accounts_route:: dest account")}else if(e.data.subarray(0,8).toString("hex")===ce("route").toString("hex")){if(n){if(!e.keys[4].pubkey.equals(r)&&!e.keys[3].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else if(!e.keys[4].pubkey.equals(t))throw new Error("Invalid swap instruction route:: dest account")}else throw new Error("Invalid swap instruction:: ix id")}function pr(e,t){const n=er(Uint8Array.from(e.data));if(n.in_amount>BigInt(t.effectiveAmountIn64))throw new Error("Invalid swap instruction:: amount in");const r=k(t.minAmountOut,t.toToken.decimals);if(n.quoted_out_amount-n.quoted_out_amount*BigInt(n.slippage_bps)/10000n<r)throw new Error("Invalid swap instruction:: quote expired");if(n.platform_fee_bps!==t.referrerBps)throw new Error("Invalid swap instruction:: platform fee")}function lr(e){e.forEach(t=>{if(!t.programId.equals(s.ComputeBudgetProgram.programId))throw new Error("Invalid compute budget instruction:: programId");if(Uint8Array.from(t.data)[0]===3&&t.data.readBigUInt64LE(1)>100000000n)throw new Error("Invalid compute budget instruction:: to high tx fee")})}function ge(e,t,n,r,u=!1){lr(e.computeBudgetInstructions),or(e.setupInstructions,n),ur(e.swapInstruction,t,u),sr(e.cleanupInstruction,r)}function tn(e,t,n,r,u,o=new s.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new s.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:o,isSigner:!1,isWritable:!1}],programId:new s.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:ce("transfer_all_and_close")})}function zt(e,t,n,r){const u=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:s.SystemProgram.programId,isSigner:!1,isWritable:!1}],o=14+n.length,p=c.Buffer$1.alloc(o);return p.set(ce("create_simple"),0),p.writeUint16LE(r,8),p.writeUint32LE(n.length,10),p.set(n,14),new s.TransactionInstruction({keys:u,programId:new s.PublicKey(A.PAYLOAD_WRITER_PROGRAM_ID),data:p})}function Zt(e,t,n){const r=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],o=c.Buffer$1.alloc(10);return o.set(ce("close"),0),o.writeUint16LE(n,8),new s.TransactionInstruction({keys:r,programId:new s.PublicKey(A.PAYLOAD_WRITER_PROGRAM_ID),data:o})}function F(e,t=!1){return t?e:new s.TransactionInstruction({keys:[{pubkey:e.programId,isSigner:!1,isWritable:!1}].concat(e.keys),programId:new s.PublicKey(A.CPI_PROXY_PROGRAM_ID),data:e.data})}function cr(e){const t=new s.PublicKey(A.WORMHOLE_PROGRAM_ID),n=new s.PublicKey(A.WORMHOLE_SHIM_POST_MESSAGE_PROGRAM_ID),r=new s.PublicKey(e),[u]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("Bridge")],t),[o]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("emitter")],r),[p]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("Sequence"),o.toBuffer()],t),[i]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("fee_collector")],t),[y]=s.PublicKey.findProgramAddressSync([o.toBuffer()],n),[l]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("__event_authority")],n);return{bridgeConfig:u,sequenceKey:p,feeCollector:i,emitter:o,shimEventAuth:l,shimMessage:y}}var cn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction")]);function Nt(e,t,n,r,u){const o=new s.PublicKey(A.WORMHOLE_PROGRAM_ID),p=new s.PublicKey(A.WORMHOLE_SHIM_POST_MESSAGE_PROGRAM_ID),i=new s.PublicKey(A.TOKEN_PROGRAM_ID),y=new s.PublicKey(A.CCTP_CORE_PROGRAM_ID),l=new s.PublicKey(A.CCTP_TOKEN_PROGRAM_ID),d=new s.PublicKey(A.MCTP_PROGRAM_ID),f=new s.PublicKey(r),b=new s.PublicKey(n),g=re(b,e,!0);let h;u&&u>BigInt(0)?h=re(b,f,!1):h=new s.PublicKey(A.MCTP_PROGRAM_ID);const T=en(b,t),w=cr(A.MCTP_PROGRAM_ID),M=s.Keypair.generate(),P=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:T.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:T.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:T.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:T.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:T.localToken,isWritable:!0,isSigner:!1},{pubkey:T.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:T.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:M.publicKey,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:w.emitter,isWritable:!1,isSigner:!1},{pubkey:w.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:w.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:w.feeCollector,isWritable:!0,isSigner:!1},{pubkey:w.shimMessage,isWritable:!0,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:s.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:w.shimEventAuth,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1}],E=c.Buffer$1.alloc(cn.span);return cn.encode({instruction:ce("bridge_with_fee_shim")},E),{instruction:new s.TransactionInstruction({keys:P,data:E,programId:d}),signers:[M]}}var yn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction")]);function dn(e,t,n,r,u){const o=[null,null],p=new s.PublicKey(A.TOKEN_PROGRAM_ID),i=new s.PublicKey(A.ASSOCIATED_TOKEN_PROGRAM_ID),y=new s.PublicKey(A.CCTP_CORE_PROGRAM_ID),l=new s.PublicKey(A.CCTP_TOKEN_PROGRAM_ID),d=new s.PublicKey(A.MCTP_PROGRAM_ID),f=new s.PublicKey(r),b=new s.PublicKey(n),g=re(b,e,!0),h=en(b,t),T=s.Keypair.generate(),[w]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("LOCKED_FEE"),b.toBuffer(),T.publicKey.toBytes()],d);let M;u&&u>BigInt(0)?M=re(b,f,!1):M=new s.PublicKey(A.MCTP_PROGRAM_ID);const P=re(b,w,!0);o[0]=ye(f,P,w,b);const E=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:g,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!0},{pubkey:M,isWritable:!0,isSigner:!1},{pubkey:w,isWritable:!0,isSigner:!1},{pubkey:P,isWritable:!0,isSigner:!1},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:h.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:h.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:h.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:h.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:h.localToken,isWritable:!0,isSigner:!1},{pubkey:h.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:h.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1}],D=c.Buffer$1.alloc(yn.span);yn.encode({instruction:ce("bridge_locked_fee")},D);const B=new s.TransactionInstruction({keys:E,data:D,programId:d});return o[1]=B,{instructions:o,signer:T}}var mn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction")]);function fn(e,t,n,r,u){const o=new s.PublicKey(A.TOKEN_PROGRAM_ID),p=new s.PublicKey(A.CCTP_CORE_PROGRAM_ID),i=new s.PublicKey(A.CCTP_TOKEN_PROGRAM_ID),y=new s.PublicKey(A.MCTP_PROGRAM_ID),l=new s.PublicKey(r),d=new s.PublicKey(n),f=re(d,e,!0),b=en(d,t),g=s.Keypair.generate(),[h]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],y);let T;u&&u>BigInt(0)?T=re(d,l,!1):T=new s.PublicKey(A.MCTP_PROGRAM_ID);const w=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:b.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:b.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:b.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:b.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:b.localToken,isWritable:!0,isSigner:!1},{pubkey:b.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:b.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:g.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:new s.PublicKey(A.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1}],M=c.Buffer$1.alloc(mn.span);return mn.encode({instruction:ce("create_order")},M),{instruction:new s.TransactionInstruction({keys:w,data:M,programId:y}),signer:g}}var bn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction"),s.LayoutExports.blob(32,"destAddress"),s.LayoutExports.blob(8,"amountInMin"),s.LayoutExports.blob(8,"gasDrop"),s.LayoutExports.blob(8,"feeRedeem"),s.LayoutExports.blob(8,"feeSolana"),s.LayoutExports.u16("destinationChain"),s.LayoutExports.blob(32,"keyRnd"),s.LayoutExports.u8("mode")]);function Ut(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);if(e.customPayload&&e.mode!=="WITH_FEE")throw new Error("Custom payload is only supported in WITH_FEE mode");const t=new s.PublicKey(e.swapperAddress),n=new s.PublicKey(e.relayerAddress),r=new s.PublicKey(e.mintAddress),u=re(r,e.ledger,!0),o=G(e.toChain),p=c.Buffer$1.from(se(O(e.destinationAddress,o))),i=X(e.amountInMin64),y=X(k(e.gasDrop,Math.min(oe(e.toChain),8))),l=X(k(e.feeRedeem,ee)),d=X(e.feeSolana),f=e.referrerAddress?c.Buffer$1.from(se(O(e.referrerAddress,o))):s.SystemProgram.programId.toBuffer(),b=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new s.PublicKey(A.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!0},{pubkey:new s.PublicKey(f),isWritable:!1,isSigner:!1}],g=c.Buffer$1.alloc(bn.span);return bn.encode({instruction:ce("init_bridge_ledger_gasless"),destAddress:p,amountInMin:i,gasDrop:y,feeRedeem:l,feeSolana:d,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},g),new s.TransactionInstruction({keys:b,data:g,programId:new s.PublicKey(A.MCTP_PROGRAM_ID)})}var hn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction"),s.LayoutExports.blob(32,"destAddress"),s.LayoutExports.blob(8,"amountInMin"),s.LayoutExports.blob(8,"gasDrop"),s.LayoutExports.blob(8,"feeRedeem"),s.LayoutExports.blob(8,"feeSolana"),s.LayoutExports.u16("destinationChain"),s.LayoutExports.blob(32,"keyRnd"),s.LayoutExports.u8("mode"),s.LayoutExports.blob(32,"tokenOut"),s.LayoutExports.blob(8,"amountOutMin"),s.LayoutExports.blob(8,"deadline"),s.LayoutExports.blob(32,"refAddress"),s.LayoutExports.u8("feeRateRef")]);function Tn(e){const t=new s.PublicKey(e.swapperAddress),n=new s.PublicKey(e.relayerAddress),r=new s.PublicKey(e.mintAddress),u=re(r,e.ledger,!0),o=G(e.toChain),p=c.Buffer$1.from(se(O(e.destinationAddress,o))),i=X(e.amountInMin64),y=X(k(e.gasDrop,Math.min(oe(e.toChain),8))),l=X(k(e.feeRedeem,ee)),d=X(e.feeSolana),f=c.Buffer$1.from(se(O(e.tokenOut,o))),b=e.referrerAddress?c.Buffer$1.from(se(O(e.referrerAddress,o))):s.SystemProgram.programId.toBuffer(),g=X(k(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),h=X(e.deadline),T=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:u,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!0,isSigner:!0}],w=c.Buffer$1.alloc(hn.span);return hn.encode({instruction:ce("init_order_ledger_gasless"),destAddress:p,amountInMin:i,gasDrop:y,feeRedeem:l,feeSolana:d,destinationChain:o,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:f,refAddress:b,amountOutMin:g,deadline:h,feeRateRef:e.feeRateRef},w),new s.TransactionInstruction({keys:T,data:w,programId:new s.PublicKey(A.MCTP_PROGRAM_ID)})}async function yr(e,t,n,r,u,o={}){const p=o?.forceSkipCctpInstructions||!1,i=o?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const y=e.relayer||t;let l=[],d=[],f=[],b=[],g=[],h=[],T=[];const w=s.Keypair.generate();let M=null;l.push(A.LOOKUP_TABLE);const P=new s.PublicKey(A.MCTP_PROGRAM_ID),E=new s.PublicKey(t),D=new s.PublicKey(y),B=s.Keypair.generate(),Y=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const J=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[K]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from(J),E.toBytes(),B.publicKey.toBytes()],P),z=re(new s.PublicKey(e.mctpInputContract),K,!0),te=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(o.customPayload&&e.hasAuction)throw new Error("Cannot use customPayload with create Mctp swap");let U=null;const pe=Math.floor(Math.random()*65e3);if(o.customPayload&&(U=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("PAYLOAD"),D.toBuffer(),(()=>{const m=c.Buffer$1.alloc(2);return m.writeUInt16LE(pe,0),m})()],new s.PublicKey(A.PAYLOAD_WRITER_PROGRAM_ID))[0],d.push(F(zt(D,U,c.Buffer$1.from(o.customPayload),pe)))),e.fromToken.contract===e.mctpInputContract){const m=BigInt(p?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&d.push(s.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),d.push(F(ye(D,z,K,new s.PublicKey(e.mctpInputContract)))),d.push(F(Ft(re(new s.PublicKey(e.mctpInputContract),E,i),z,E,BigInt(e.effectiveAmountIn64)))),e.hasAuction){if(d.push(F(Tn({ledger:K,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:B.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:m,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:Y,feeRateRef:e.referrerBps,relayerAddress:y}),o.skipProxyMayanInstructions)),!p){const{instruction:I,signer:R}=fn(K,e.toChain,e.mctpInputContract,y,m);d.push(F(I,o.skipProxyMayanInstructions)),f.push(R)}}else if(d.push(F(Ut({ledger:K,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:B.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:m,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:te,referrerAddress:r,relayerAddress:y,customPayload:U}),o.skipProxyMayanInstructions)),!p)if(te==="WITH_FEE"){const{instruction:I,signers:R}=Nt(K,e.toChain,e.mctpInputContract,y,m);d.push(F(I,o.skipProxyMayanInstructions)),f.push(...R)}else{const{instructions:I,signer:R}=dn(K,e.toChain,e.mctpInputContract,y,m);d.push(F(I[0])),d.push(F(I[1],o.skipProxyMayanInstructions)),f.push(R)}}else{const m=await Ht({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:K.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":te,fillMaxAccounts:o?.separateSwapTx||!1,tpmTokenAccount:o?.separateSwapTx?w.publicKey.toString():null}),I=Vt(m,u,D);o?.separateSwapTx&&m.maxAccountsFilled?(ge(I,w.publicKey,E),T=await xt(u,D,new s.PublicKey(e.mctpInputContract),E,w),h.push(...I.computeBudgetInstructions),I.setupInstructions&&h.push(...I.setupInstructions),h.push(I.swapInstruction),I.cleanupInstruction&&h.push(I.cleanupInstruction),g.push(...I.addressLookupTableAddresses),d.push(F(ye(D,z,K,new s.PublicKey(e.mctpInputContract)))),d.push(F(tn(E,new s.PublicKey(e.mctpInputContract),w.publicKey,z,D)))):(ge(I,z,E),d.push(...I.computeBudgetInstructions),I.setupInstructions&&d.push(...I.setupInstructions.map(W=>F(W))),d.push(F(I.swapInstruction)),I.cleanupInstruction&&d.push(F(I.cleanupInstruction)),l.push(...I.addressLookupTableAddresses));const R=h.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(d.push(F(Tn({ledger:K,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:B.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:R,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:k(e.minMiddleAmount,ee),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:Y,feeRateRef:e.referrerBps,relayerAddress:y}),o.skipProxyMayanInstructions)),h.length>0){const{instruction:W,signer:j}=fn(K,e.toChain,e.mctpInputContract,y,R);d.push(F(W,o.skipProxyMayanInstructions)),f.push(j)}}else if(d.push(F(Ut({ledger:K,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:B.publicKey,toChain:e.toChain,destinationAddress:n,feeSolana:R,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:k(e.minMiddleAmount,ee),mode:te,referrerAddress:r,relayerAddress:y,customPayload:U}),o.skipProxyMayanInstructions)),h.length>0)if(te==="WITH_FEE"){const{instruction:W,signers:j}=Nt(K,e.toChain,e.mctpInputContract,y,R);d.push(F(W,o.skipProxyMayanInstructions)),f.push(...j)}else{const{instructions:W,signer:j}=dn(K,e.toChain,e.mctpInputContract,y,R);d.push(F(W[0])),d.push(F(W[1],o.skipProxyMayanInstructions)),f.push(j)}}U&&d.push(F(Zt(D,U,pe)));const ne=await $t(l.concat(g),u);if(b=ne.slice(0,l.length),h.length>0){const m=ne.slice(l.length);M={messageV0:{payerKey:E,instructions:h,addressLookupTableAccounts:m},createTmpTokenAccountIxs:T,tmpTokenAccount:w}}return{instructions:d,signers:f,lookupTables:b,swapMessageV0Params:M}}function dr(e,t,n,r,u){const p=c.Buffer$1.alloc(239);let i=0;const y=G(e.fromChain),l=c.Buffer$1.from(se(O(t,y)));p.set(l,0),i+=32,p.writeUInt16BE(y,i),i+=2;const d=e.swiftInputContract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),G("solana")):O(e.swiftInputContract,y),f=c.Buffer$1.from(se(d));p.set(f,i),i+=32;const b=G(e.toChain),g=c.Buffer$1.from(se(O(n,b)));p.set(g,i),i+=32,p.writeUInt16BE(b,i),i+=2;const h=e.toToken.contract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),G("solana")):O(e.toToken.contract,b),T=c.Buffer$1.from(se(h));p.set(T,i),i+=32,p.writeBigUInt64BE(k(e.minAmountOut,Math.min(e.toToken.decimals,8)),i),i+=8,p.writeBigUInt64BE(k(e.gasDrop,Math.min(oe(e.toChain),8)),i),i+=8,p.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),i),i+=8,p.writeBigUInt64BE(BigInt(e.refundRelayerFee64),i),i+=8,p.writeBigUInt64BE(BigInt(e.deadline64),i),i+=8;const w=r?c.Buffer$1.from(se(O(r,b))):s.SystemProgram.programId.toBuffer();p.set(w,i),i+=32,p.writeUInt8(e.referrerBps,i),i+=1;const M=e.protocolBps;p.writeUInt8(M,i),i+=1,p.writeUInt8(e.swiftAuctionMode,i),i+=1;const P=c.Buffer$1.from(se(u));if(p.set(P,i),i+=32,i!==239)throw new Error(`Invalid order data size: ${i}`);const E=c.keccak256(p);return c.Buffer$1.from(se(E))}var gn=s.LayoutExports.struct([s.LayoutExports.blob(8,"instruction"),s.LayoutExports.blob(8,"amountInMin"),s.LayoutExports.u8("nativeInput"),s.LayoutExports.blob(8,"feeSubmit"),s.LayoutExports.blob(32,"destAddress"),s.LayoutExports.u16("destinationChain"),s.LayoutExports.blob(32,"tokenOut"),s.LayoutExports.blob(8,"amountOutMin"),s.LayoutExports.blob(8,"gasDrop"),s.LayoutExports.blob(8,"feeCancel"),s.LayoutExports.blob(8,"feeRefund"),s.LayoutExports.blob(8,"deadline"),s.LayoutExports.blob(32,"refAddress"),s.LayoutExports.u8("feeRateRef"),s.LayoutExports.u8("feeRateMayan"),s.LayoutExports.u8("auctionMode"),s.LayoutExports.blob(32,"randomKey")]);function mr(e){const{quote:t}=e,n=t.swiftInputContract===c.ZeroAddress?Gt:new s.PublicKey(t.swiftInputContract),r=G(t.toChain);if(r!==t.toToken.wChainId)throw new Error(`Destination chain ID mismatch: ${r} != ${t.toToken.wChainId}`);const u=[{pubkey:e.trader,isWritable:!1,isSigner:!0},{pubkey:e.relayer,isWritable:!0,isSigner:!0},{pubkey:e.state,isWritable:!0,isSigner:!1},{pubkey:e.stateAccount,isWritable:!0,isSigner:!1},{pubkey:e.relayerAccount,isWritable:!0,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:new s.PublicKey(A.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new s.PublicKey(A.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1}],o=c.Buffer$1.alloc(gn.span),p=e.referrerAddress?c.Buffer$1.from(se(O(e.referrerAddress,r))):s.SystemProgram.programId.toBuffer(),i=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):k(t.minMiddleAmount,t.swiftInputDecimals);return gn.encode({instruction:ce("init_order"),amountInMin:X(i),nativeInput:t.swiftInputContract===c.ZeroAddress?1:0,feeSubmit:X(BigInt(t.submitRelayerFee64)),destAddress:c.Buffer$1.from(se(O(e.destinationAddress,r))),destinationChain:r,tokenOut:c.Buffer$1.from(se(O(t.toToken.contract,r))),amountOutMin:X(k(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:X(k(t.gasDrop,Math.min(oe(t.toChain),8))),feeCancel:X(BigInt(t.cancelRelayerFee64)),feeRefund:X(BigInt(t.refundRelayerFee64)),deadline:X(e.deadline),refAddress:p,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},o),new s.TransactionInstruction({keys:u,data:o,programId:new s.PublicKey(A.SWIFT_PROGRAM_ID)})}async function fr(e,t,n,r,u,o={}){if(e.type!=="SWIFT")throw new Error("Unsupported quote type for Swift: "+e.type);if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);const p=o.allowSwapperOffCurve||!1;let i=[],y=[],l=[];l.push(A.LOOKUP_TABLE);let d=[],f=[],b=[];const g=s.Keypair.generate();let h=null;const T=new s.PublicKey(A.SWIFT_PROGRAM_ID),w=new s.PublicKey(t),M=s.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const P=BigInt(e.deadline64),E=dr(e,t,n,r,M.publicKey.toBuffer().toString("hex")),[D]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("STATE_SOURCE"),E],T),B=e.swiftInputContract===c.ZeroAddress?Gt:new s.PublicKey(e.swiftInputContract),Y=re(B,D,!0),J=e.gasless?new s.PublicKey(e.relayer):w,K=re(B,J,!1);if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&i.push(s.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(F(ye(J,Y,D,B))),e.swiftInputContract===c.ZeroAddress?i.push(F(s.SystemProgram.transfer({fromPubkey:w,toPubkey:Y,lamports:BigInt(e.effectiveAmountIn64)})),F(vn(Y))):i.push(F(Ft(re(B,w,p),Y,w,BigInt(e.effectiveAmountIn64))));else{const te=await Ht({minMiddleAmount:e.minMiddleAmount,middleToken:e.swiftInputContract,userWallet:t,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.gasless?"SWIFT_GASLESS":"SWIFT",orderHash:`0x${E.toString("hex")}`,fillMaxAccounts:o?.separateSwapTx||!1,tpmTokenAccount:o?.separateSwapTx?g.publicKey.toString():null}),$=Vt(te,u,J);o?.separateSwapTx&&te.maxAccountsFilled?(ge($,g.publicKey,w),b=await xt(u,J,B,w,g),f.push(...$.computeBudgetInstructions),$.setupInstructions&&f.push(...$.setupInstructions),f.push($.swapInstruction),$.cleanupInstruction&&f.push($.cleanupInstruction),d.push(...$.addressLookupTableAddresses),i.push(F(ye(J,Y,D,B))),i.push(F(tn(w,B,g.publicKey,Y,J)))):(ge($,Y,w),i.push(...$.computeBudgetInstructions),$.setupInstructions&&i.push(...$.setupInstructions.map(U=>F(U))),i.push(F($.swapInstruction)),$.cleanupInstruction&&i.push(F($.cleanupInstruction)),l.push(...$.addressLookupTableAddresses))}i.push(F(mr({quote:e,state:D,trader:w,stateAccount:Y,randomKey:M.publicKey,relayerAccount:K,relayer:J,destinationAddress:n,deadline:P,referrerAddress:r}),o.skipProxyMayanInstructions));const z=await $t(l.concat(d),u);if(y=z.slice(0,l.length),f.length>0){const te=z.slice(l.length);h={messageV0:{payerKey:J,instructions:f,addressLookupTableAccounts:te},createTmpTokenAccountIxs:b,tmpTokenAccount:g}}return{instructions:i,signers:[],lookupTables:y,swapMessageV0Params:h}}async function br(e,t,n,r,u,o={}){if(e.toToken.contract.toLowerCase()!==A.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!o?.usdcPermitSignature)throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");const p=o.allowSwapperOffCurve||!1;let i=[],y=[],l=[],d=[];d.push(A.LOOKUP_TABLE);let f=[],b=[],g=[];const h=s.Keypair.generate();let T=null;const w=new s.PublicKey(t),M=e.relayer||t,P=new s.PublicKey(e.hyperCoreParams.initiateTokenContract),E=Math.floor(Math.random()*65e3),[D]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("PAYLOAD"),w.toBuffer(),(()=>{const $=c.Buffer$1.alloc(2);return $.writeUInt16LE(E,0),$})()],new s.PublicKey(A.PAYLOAD_WRITER_PROGRAM_ID)),B=En(e,n,o.usdcPermitSignature),Y=s.Keypair.generate(),J=new s.PublicKey(A.MCTP_PROGRAM_ID),[K]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("LEDGER_BRIDGE"),w.toBytes(),Y.publicKey.toBytes()],J),z=re(P,K,!0);if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract){e.suggestedPriorityFee>0&&i.push(s.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(F(ye(w,z,K,P))),i.push(F(Ft(re(P,w,p),z,w,BigInt(e.hyperCoreParams.bridgeAmountUSDC64)))),i.push(F(zt(w,D,B,E))),i.push(F(Ut({ledger:K,randomKey:Y.publicKey,swapperAddress:w.toString(),mintAddress:P.toString(),mode:"WITH_FEE",feeSolana:BigInt(0),amountInMin64:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),customPayload:D,destinationAddress:A.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum",relayerAddress:M}),o.skipProxyMayanInstructions));const{instruction:$,signers:U}=Nt(K,"arbitrum",e.hyperCoreParams.initiateTokenContract,M,BigInt(0));i.push(F($,o.skipProxyMayanInstructions)),y.push(...U),i.push(F(Zt(w,D,E)))}else{const $=await Ht({minMiddleAmount:e.minMiddleAmount,middleToken:e.hyperCoreParams.initiateTokenContract,userWallet:w.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:"HC_USDC",fillMaxAccounts:o?.separateSwapTx||!1,tpmTokenAccount:h.publicKey.toString()}),U=Vt($);if(o?.separateSwapTx&&$.maxAccountsFilled)ge(U,h.publicKey,w),g=await xt(u,w,P,w,h),b.push(...U.computeBudgetInstructions),U.setupInstructions&&b.push(...U.setupInstructions),b.push(U.swapInstruction),U.cleanupInstruction&&b.push(U.cleanupInstruction),f.push(...U.addressLookupTableAddresses);else{ge(U,h.publicKey,w),i.push(...U.computeBudgetInstructions);const R=await xt(u,w,P,w,h);i.push(...R.map(W=>F(W))),y.push(h),U.setupInstructions&&i.push(...U.setupInstructions.map(W=>F(W))),i.push(F(U.swapInstruction)),U.cleanupInstruction&&i.push(F(U.cleanupInstruction)),d.push(...U.addressLookupTableAddresses)}const pe=b.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);let ne=BigInt(e.hyperCoreParams.bridgeAmountUSDC64);b.length>0&&(ne=ne-BigInt(e.solanaRelayerFee64)),i.push(F(ye(w,z,K,new s.PublicKey(e.mctpInputContract)))),i.push(F(Ft(h.publicKey,z,w,ne)));const m=re(P,w,p),I=await u.getAccountInfo(m);if((!I||!I.data)&&i.push(F(ye(w,m,w,P))),i.push(F(tn(w,P,h.publicKey,m,w))),i.push(F(zt(w,D,B,E))),i.push(F(Ut({ledger:K,swapperAddress:w.toString(),mintAddress:P.toString(),randomKey:Y.publicKey,mode:"WITH_FEE",feeSolana:pe,amountInMin64:ne,customPayload:D,destinationAddress:A.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum",relayerAddress:M}),o.skipProxyMayanInstructions)),i.push(F(Zt(w,D,E))),b.length>0){const{instruction:R,signers:W}=Nt(K,"arbitrum",e.hyperCoreParams.initiateTokenContract,M,BigInt(0));i.push(F(R,o.skipProxyMayanInstructions)),y.push(...W)}}const te=await $t(d.concat(f),u);if(l=te.slice(0,d.length),b.length>0){const $=te.slice(d.length);T={messageV0:{payerKey:w,instructions:b,addressLookupTableAccounts:$},createTmpTokenAccountIxs:g,tmpTokenAccount:h}}return{instructions:i,signers:y,lookupTables:l,swapMessageV0Params:T}}async function hr(e,t,n,r,u,o={}){if(e.type!=="MONO_CHAIN")throw new Error("Unsupported quote type for mono chain: "+e.type);if(e.fromChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.fromChain);if(e.toChain!=="solana")throw new Error("Unsupported destination chain for mono chain: "+e.toChain);if(e.fromToken.contract===e.toToken.contract)throw new Error("From token and to token are the same: "+e.fromToken.contract);if(n.startsWith("0x"))throw new Error("Destination address should not be EVM address");try{new s.PublicKey(n)}catch{throw new Error("Invalid destination address: "+n)}let p=[],i=[],y=[];const l=new s.PublicKey(t),d=new s.PublicKey(n),f=e.toToken.contract===c.ZeroAddress?Gt:new s.PublicKey(e.toToken.contract),b=re(f,d,!0,e.toToken.standard==="spl2022"?new s.PublicKey(A.TOKEN_2022_PROGRAM_ID):new s.PublicKey(A.TOKEN_PROGRAM_ID)),g=k(e.expectedAmountOut,e.toToken.decimals),h=await Ht({userWallet:t,destinationWallet:n,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,middleToken:e.toToken.contract,amountIn64:e.effectiveAmountIn64,expectedAmountOut64:String(g),depositMode:"MONO_CHAIN",referrerAddress:r,referrerBps:e.referrerBps}),T=Vt(h);return ge(T,b,l,d,l.equals(d)),pr(T.swapInstruction,e),p.push(...T.computeBudgetInstructions),T.setupInstructions&&p.push(...T.setupInstructions.map(w=>F(w))),p.push(F(T.swapInstruction,o?.skipProxyMayanInstructions)),T.cleanupInstruction&&p.push(F(T.cleanupInstruction)),y.push(...T.addressLookupTableAddresses),y.push(A.LOOKUP_TABLE),i=await $t(y,u),{instructions:p,signers:[],lookupTables:i,swapMessageV0Params:null}}var Tr=420,wn=s.LayoutExports.struct([s.LayoutExports.u8("instruction"),s.LayoutExports.u8("stateNonce"),s.LayoutExports.blob(8,"amount"),s.LayoutExports.blob(8,"minAmountOut"),s.LayoutExports.blob(8,"deadline"),s.LayoutExports.blob(8,"feeSwap"),s.LayoutExports.blob(8,"feeReturn"),s.LayoutExports.blob(8,"feeCancel"),s.LayoutExports.blob(8,"gasDrop"),s.LayoutExports.u16("destinationChain"),s.LayoutExports.blob(32,"destinationAddress"),s.LayoutExports.u8("unwrapRedeem"),s.LayoutExports.u8("unwrapRefund"),s.LayoutExports.u8("mayanFeeNonce"),s.LayoutExports.u8("referrerFeeNonce")]);async function gr(e,t,n,r,u,o={}){const p=Xt(e,r);if(e.fromChain==="hypercore")throw new Error("HyperCore as source chain is not supported in Solana");if(e.toChain==="hypercore"){if(o.customPayload)throw new Error("Custom payload is not supported for HyperCore");return br(e,t,n,p,u,o)}if(e.type==="MCTP")return yr(e,t,n,p,u,o);if(e.type==="SWIFT"){if(o.customPayload)throw new Error("Custom payload is not supported for SWIFT yet");return fr(e,t,n,p,u,o)}if(e.type==="MONO_CHAIN"){if(o.customPayload)throw new Error("Custom payload is not supported for MONO_CHAIN yet");return hr(e,t,n,p,u,o)}if(o.customPayload)throw new Error("Custom payload is not supported for WH from Solana");let i=[];const y=u??new s.Connection("https://rpc.ankr.com/solana"),l=new s.PublicKey(A.MAYAN_PROGRAM_ID),d=new s.PublicKey(A.TOKEN_PROGRAM_ID),f=new s.PublicKey(t),b=new s.PublicKey(A.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&i.push(s.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let g;p?g=new s.PublicKey(p):g=s.SystemProgram.programId;const[h,T]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("MAYANFEE")],l),[w,M]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("REFERRERFEE"),g.toBuffer()],l),P=s.Keypair.generate(),E=s.Keypair.generate(),[D,B]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("V2STATE"),c.Buffer$1.from(P.publicKey.toBytes()),c.Buffer$1.from(E.publicKey.toBytes())],l),Y=new s.PublicKey(e.fromToken.mint),J=new s.PublicKey(e.toToken.mint),K=re(Y,f),z=re(Y,D,!0),[[te,$],U,pe]=await Promise.all([y.getMultipleAccountsInfo([K,z],"finalized"),y.getMinimumBalanceForRentExemption(Tr),ir()]);(!te||te.data.length===0)&&i.push(ye(f,K,f,Y)),(!$||$.data.length===0)&&i.push(ye(f,z,D,Y)),e.fromToken.contract===c.ZeroAddress&&(i.push(s.SystemProgram.transfer({fromPubkey:f,toPubkey:K,lamports:BigInt(e.effectiveAmountIn64)})),i.push(vn(K)));const ne=BigInt(e.effectiveAmountIn64),m=s.Keypair.generate();i.push(nr(K,m.publicKey,f,ne)),i.push(s.SystemProgram.transfer({fromPubkey:f,toPubkey:m.publicKey,lamports:U}));const I=[{pubkey:m.publicKey,isWritable:!1,isSigner:!0},{pubkey:P.publicKey,isWritable:!1,isSigner:!0},{pubkey:E.publicKey,isWritable:!1,isSigner:!0},{pubkey:D,isWritable:!0,isSigner:!1},{pubkey:K,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:z,isWritable:!0,isSigner:!1},{pubkey:Y,isWritable:!1,isSigner:!1},{pubkey:J,isWritable:!1,isSigner:!1},{pubkey:b,isWritable:!1,isSigner:!1},{pubkey:g,isWritable:!1,isSigner:!1},{pubkey:h,isWritable:!1,isSigner:!1},{pubkey:w,isWritable:!1,isSigner:!1},{pubkey:m.publicKey,isWritable:!0,isSigner:!0},{pubkey:pe,isWritable:!1,isSigner:!1},{pubkey:s.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:s.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:s.SystemProgram.programId,isWritable:!1,isSigner:!1}],R=G(e.toChain);if(R===1){const x=await y.getAccountInfo(new s.PublicKey(n));if(x&&x.owner&&x.owner.equals(d))throw new Error("Destination address is not about token account. It should be a owner address")}const W=c.Buffer$1.from(se(O(n,R))),j=k(e.minAmountOut,e.mintDecimals.to),V=k(e.swapRelayerFee,e.mintDecimals.from),me=k(e.redeemRelayerFee,e.mintDecimals.to),Q=k(e.refundRelayerFee,e.mintDecimals.from),be=k(e.gasDrop,xa(e.toChain)),q=e.toToken.contract===c.ZeroAddress,a=e.fromToken.contract===c.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const _=BigInt(e.deadline64),C=c.Buffer$1.alloc(wn.span),S={instruction:101,stateNonce:B,amount:X(ne),minAmountOut:X(j),deadline:X(_),feeSwap:X(V),feeReturn:X(me),feeCancel:X(Q),gasDrop:X(be),destinationChain:R,destinationAddress:W,unwrapRedeem:q?1:0,unwrapRefund:a?1:0,mayanFeeNonce:T,referrerFeeNonce:M};wn.encode(S,C);const v=new s.TransactionInstruction({keys:I,data:C,programId:l});return i.push(v),{instructions:i,signers:[m,P,E],lookupTables:[],swapMessageV0Params:null}}function wr(e,t,n,r,u){const o=de(Number(u)),p=G(e.fromChain),i=G(e.toChain);if(p!==o)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${p} !== ${o}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==i)throw new Error(`Destination chain ID mismatch: ${i} != ${e.toToken.wChainId}`);const y=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const l=BigInt(e.deadline64),d=e.swiftInputContract,f=BigInt(e.effectiveAmountIn64);let b;r?b=O(r,i):b=O(s.SystemProgram.programId.toString(),1);const g=O(s.Keypair.generate().publicKey.toString(),1),h=e.toToken.contract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),1):O(e.toToken.contract,i),T=k(e.minAmountOut,Math.min(8,e.toToken.decimals)),w=k(e.gasDrop,Math.min(8,oe(e.toChain))),M=O(n,i),P={trader:O(t,p),tokenOut:h,minAmountOut:T,gasDrop:w,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:l,destAddr:M,destChainId:i,referrerAddr:b,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:g};return{contractAddress:y,tokenIn:d,amountIn:f,order:P}}function Ar(e,t,n,r,u,o){if(e.type!=="SWIFT")throw new Error("Quote type is not SWIFT");if(!Number.isFinite(Number(u)))throw new Error("Invalid signer chain id");if(!Number(e.deadline64))throw new Error("Swift order requires timeout");u=Number(u);const p=we,i=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi),{tokenIn:y,amountIn:l,order:d,contractAddress:f}=wr(e,t,n,r,u);let b;const g=new c.Contract(f,Xa.abi);e.swiftInputContract===c.ZeroAddress?b=g.interface.encodeFunctionData("createOrderWithEth",[d]):b=g.interface.encodeFunctionData("createOrderWithToken",[y,l,d]);let h,T,w;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===c.ZeroAddress?(h="forwardEth",T=[f,b],w=c.toBeHex(l)):(h="forwardERC20",T=[y,l,p,f,b],w=c.toBeHex(0));else{const{evmSwapRouterAddress:P,evmSwapRouterCalldata:E}=e;if(!e.minMiddleAmount||!P||!E)throw new Error("Swift swap requires middle amount, router address and calldata");const D=e.fromToken.contract,B=k(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===c.ZeroAddress?(h="swapAndForwardEth",T=[l,P,E,e.swiftInputContract,B,f,b],w=c.toBeHex(l)):(h="swapAndForwardERC20",T=[D,l,p,P,E,e.swiftInputContract,B,f,b],w=c.toBeHex(0))}return{data:i.interface.encodeFunctionData(h,T),to:A.MAYAN_FORWARDER_CONTRACT,value:w,chainId:u,_forwarder:{method:h,params:T}}}var Ir={abi:[{type:"function",name:"batchMaxApprove",inputs:[{name:"approvals",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initiate",inputs:[{name:"recipient",type:"bytes32",internalType:"bytes32"},{name:"overrideAmountIn",type:"uint256",internalType:"uint256"},{name:"targetChain",type:"uint16",internalType:"uint16"},{name:"params",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"error",name:"ChainNotSupported",inputs:[{name:"chain",type:"uint16",internalType:"uint16"}]},{type:"error",name:"DeadlineExpired",inputs:[{name:"blocktime",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"}]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"ExceedsMaxGasDropoff",inputs:[{name:"requested",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ExceedsMaxRelayingFee",inputs:[{name:"fee",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InsufficientInputAmount",inputs:[{name:"input",type:"uint256",internalType:"uint256"},{name:"minimum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidAddress",inputs:[{name:"addr",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"InvalidBoolVal",inputs:[{name:"val",type:"uint8",internalType:"uint8"}]},{type:"error",name:"InvalidOverrideAmount",inputs:[{name:"received",type:"uint256",internalType:"uint256"},{name:"maximum",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapType",inputs:[{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidSwapTypeForChain",inputs:[{name:"chain",type:"uint16",internalType:"uint16"},{name:"swapType",type:"uint256",internalType:"uint256"}]},{type:"error",name:"LengthMismatch",inputs:[{name:"encodedLength",type:"uint256",internalType:"uint256"},{name:"expectedLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"RelayingDisabledForChain",inputs:[]}]},he={FAST_MODE_FLAG:1,RELAY_REDEEM_MODE:2,EXACT_IN_FLAG:1,USDC_INPUT_TOKEN_TYPE:0,PRE_APPROVED_ACQUIRE_MODE:0,OUTPUT_USDC_MODE:0,OUTPUT_NATIVE_MODE:1,OUTPUT_OTHER_MODE:2};function _r(e){const t=(1n<<128n)-1n;if(e<0n||e>t)throw new RangeError("Value must fit in an unsigned 128-bit integer (0 <= value < 2^128)");const n=c.Buffer$1.alloc(16);for(let r=15;r>=0;r--)n[r]=Number(e&0xFFn),e>>=8n;return n}function Cr(e,t,n){const{shuttleParams:r}=e;if(!r)throw new Error("Swap layer params are missing in quote response");const u=de(Number(n)),o=G(e.fromChain),p=G(e.toChain);if(o!==u)throw new Error(`Signer chain id(${Number(n)}) and quote from chain are not same! ${o} !== ${u}`);let i=[];i.push(he.FAST_MODE_FLAG);const y=c.Buffer$1.alloc(8);y.writeBigUInt64BE(BigInt(r.maxLLFee));const l=y.subarray(2);i.push(...l);const d=c.Buffer$1.alloc(4);d.writeUInt32BE(r.fastTransferDeadline),i.push(...d),i.push(he.RELAY_REDEEM_MODE);const f=k(e.gasDrop,Math.min(6,oe(e.toChain))),b=c.Buffer$1.alloc(8);b.writeBigUInt64BE(f);const g=b.subarray(4);i.push(...g);const h=c.Buffer$1.alloc(8);h.writeBigUInt64BE(BigInt(r.maxRelayingFee));const T=h.subarray(2);i.push(...T),i.push(he.EXACT_IN_FLAG),i.push(he.USDC_INPUT_TOKEN_TYPE);const w=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){i.push(...Array(8).fill(0));const P=c.Buffer$1.alloc(8);P.writeBigUInt64BE(w),i.push(...P)}else i.push(...Array(16).fill(0));if(i.push(he.PRE_APPROVED_ACQUIRE_MODE),r.hasDestSwap){if(e.toToken.contract===c.ZeroAddress)i.push(he.OUTPUT_NATIVE_MODE);else{i.push(he.OUTPUT_OTHER_MODE);const B=c.Buffer$1.from(O(e.toToken.contract,p).slice(2),"hex");i.push(...B)}const P=c.Buffer$1.alloc(4);P.writeUInt32BE(Number(BigInt(e.deadline64))),i.push(...P);const E=k(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){i.push(...Array(8).fill(0));const B=c.Buffer$1.alloc(8);B.writeBigUInt64BE(E),i.push(...B)}else{const B=_r(E);i.push(...B)}const D=c.Buffer$1.from(r.path.slice(2),"hex");i.push(...D)}else i.push(he.OUTPUT_USDC_MODE);return{destAddr:O(t,p),destChainId:p,serializedParams:`0x${c.Buffer$1.from(i).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:w,bridgeFee:k(e.bridgeFee,oe(e.fromChain))}}function Sr(e,t,n,r){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(n)))throw new Error("Invalid signer chain id");n=Number(n);const u=we,o=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi),{destAddr:p,destChainId:i,serializedParams:y,contractAddress:l,amountIn:d,bridgeFee:f}=Cr(e,t,n);let b;b=new c.Contract(l,Ir.abi).interface.encodeFunctionData("initiate",[p,d,i,y]);let h,T,w;if(e.fromToken.contract===e.shuttleInputContract)h="forwardERC20",T=[e.shuttleInputContract,d,u,l,b],w=c.toBeHex(f);else{const{evmSwapRouterAddress:P,evmSwapRouterCalldata:E}=e;if(!e.minMiddleAmount||!P||!E)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const D=e.fromToken.contract,B=k(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===c.ZeroAddress?(h="swapAndForwardEth",T=[d,P,E,e.shuttleInputContract,B,l,b],w=c.toBeHex(d)):(h="swapAndForwardERC20",T=[D,d,u,P,E,e.shuttleInputContract,B,l,b],w=c.toBeHex(f))}return{data:o.interface.encodeFunctionData(h,T),to:A.MAYAN_FORWARDER_CONTRACT,value:w,chainId:n,_forwarder:{method:h,params:T}}}var Dn={abi:[{type:"constructor",inputs:[{name:"_cctpTokenMessengerV2",type:"address",internalType:"address"},{name:"_feeManager",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"bridge",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"customPayload",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cctpTokenMessengerV2",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ITokenMessengerV2"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createOrder",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"orderPayload",type:"tuple",internalType:"struct FastMCTP.OrderPayload",components:[{name:"payloadType",type:"uint8",internalType:"uint8"},{name:"destAddr",type:"bytes32",internalType:"bytes32"},{name:"tokenOut",type:"bytes32",internalType:"bytes32"},{name:"amountOutMin",type:"uint64",internalType:"uint64"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"redeemFee",type:"uint64",internalType:"uint64"},{name:"refundFee",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"referrerAddr",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"domainToCaller",inputs:[{name:"",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"feeManager",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"fulfillOrder",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"},{name:"swapProtocol",type:"address",internalType:"address"},{name:"swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"keyToMintRecipient",inputs:[{name:"",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"redeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"refund",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"rescueEth",inputs:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueRedeem",inputs:[{name:"cctpMsg",type:"bytes",internalType:"bytes"},{name:"cctpSigs",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setDomainCallers",inputs:[{name:"domain",type:"uint32",internalType:"uint32"},{name:"caller",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFeeManager",inputs:[{name:"_feeManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMintRecipient",inputs:[{name:"destDomain",type:"uint32",internalType:"uint32"},{name:"tokenIn",type:"address",internalType:"address"},{name:"mintRecipient",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPause",inputs:[{name:"_pause",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedMsgSenders",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setWhitelistedSwapProtocols",inputs:[{name:"protocol",type:"address",internalType:"address"},{name:"isWhitelisted",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"whitelistedMsgSenders",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"whitelistedSwapProtocols",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"OrderFulfilled",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OrderRefunded",inputs:[{name:"sourceDomain",type:"uint32",indexed:!1,internalType:"uint32"},{name:"sourceNonce",type:"bytes32",indexed:!1,internalType:"bytes32"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"CallerNotSet",inputs:[]},{type:"error",name:"CctpReceiveFailed",inputs:[]},{type:"error",name:"DeadlineViolation",inputs:[]},{type:"error",name:"EthTransferFailed",inputs:[]},{type:"error",name:"InvalidAddress",inputs:[]},{type:"error",name:"InvalidAmountOut",inputs:[]},{type:"error",name:"InvalidGasDrop",inputs:[]},{type:"error",name:"InvalidMintRecipient",inputs:[]},{type:"error",name:"InvalidPayload",inputs:[]},{type:"error",name:"InvalidPayloadType",inputs:[]},{type:"error",name:"InvalidRedeemFee",inputs:[]},{type:"error",name:"InvalidRefundFee",inputs:[]},{type:"error",name:"MintRecipientNotSet",inputs:[]},{type:"error",name:"Paused",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UnauthorizedMsgSender",inputs:[]},{type:"error",name:"UnauthorizedSwapProtocol",inputs:[]}]};function Mr(e,t,n,r,u){const o=de(Number(r)),p=G(e.fromChain),i=G(e.toChain);if(p!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${p} !== ${o}`);const y=O(t,i),l=k(e.redeemRelayerFee,ee),d=k(e.gasDrop,Math.min(oe(e.toChain),8)),f=BigInt(e.circleMaxFee64),b=BigInt(e.effectiveAmountIn64),g=Ie(e.toChain);let h;if(n?h=O(n,i):h=O(s.SystemProgram.programId.toString(),G("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const T=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:b,redeemFee:l,gasDrop:d,destAddr:y,destDomain:g,referrerAddr:h,referrerBps:e.referrerBps,payloadType:Wa,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:f,contractAddress:T}}function An(e,t,n,r,u){const o=Mr(e,t,n,r),{contractAddress:p,tokenIn:i,amountIn:y,destAddr:l,redeemFee:d,gasDrop:f,circleMaxFee:b,referrerAddr:g,referrerBps:h,destDomain:T,customPayload:w,minFinalityThreshold:M,payloadType:P}=o,E=new c.Contract(p,Dn.abi);let D,B;return D=E.interface.encodeFunctionData("bridge",[i,y,d,b,f,l,T,g,h,P,M,w]),B=c.toBeHex(0),{to:p,data:D,value:B,_params:o}}function Pr(e,t,n,r){const u=de(Number(r)),o=G(e.fromChain),p=G(e.toChain);if(o!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${u}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const i=e.fastMctpMayanContract,y=O(t,p);let l;n?l=O(n,p):l=O(s.SystemProgram.programId.toString(),G("solana"));const d=k(e.redeemRelayerFee,ee),f=BigInt(e.refundRelayerFee64),b=BigInt(e.circleMaxFee64),g=k(e.gasDrop,Math.min(oe(e.toChain),8)),h=Ie(e.toChain),T=BigInt(e.effectiveAmountIn64),w=k(e.minAmountOut,Math.min(8,e.toToken.decimals)),M=BigInt(e.deadline64),P=e.toToken.contract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),G("solana")):O(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:T,circleMaxFee:b,destDomain:h,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:La,destAddr:y,tokenOut:P,amountOutMin:w,gasDrop:g,redeemFee:d,refundFee:f,deadline:M,referrerAddr:l,referrerBps:e.referrerBps||0},contractAddress:i}}function In(e,t,n,r){const u=Pr(e,t,n,r),{contractAddress:o,orderPayload:p,tokenIn:i,amountIn:y,circleMaxFee:l,destDomain:d,minFinalityThreshold:f}=u,g=new c.Contract(o,Dn.abi).interface.encodeFunctionData("createOrder",[i,y,l,d,f,p]),h=c.toBeHex(0);return{to:o,data:g,value:h,_params:u}}function Er(e,t,n,r,u,o){if(e.type!=="FAST_MCTP")throw new Error("Quote type is not FAST_MCTP");if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");r=Number(r);const p=u||we,i=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const y=In(e,t,n,r),l="forwardERC20",d=[e.fromToken.contract,y._params.amountIn,p,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(l,d),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:r,_forwarder:{method:l,params:d}}}else{const y=An(e,t,n,r),l="forwardERC20",d=[e.fromToken.contract,y._params.amountIn,p,y._params.contractAddress,y.data];return{data:i.interface.encodeFunctionData(l,d),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:r,_forwarder:{method:l,params:d}}}else{const{minMiddleAmount:y,evmSwapRouterAddress:l,evmSwapRouterCalldata:d}=e;if(!y||!l||!d)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const f=In(e,t,n,r),b=k(e.minMiddleAmount,ee);if(e.fromToken.contract===c.ZeroAddress){const g="swapAndForwardEth",h=[f._params.amountIn,l,d,e.fastMctpInputContract,b,f._params.contractAddress,f.data];return{data:i.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(f._params.amountIn),chainId:r,_forwarder:{method:g,params:h}}}else{const g="swapAndForwardERC20",h=[e.fromToken.contract,f._params.amountIn,p,l,d,e.fastMctpInputContract,b,f._params.contractAddress,f.data];return{data:i.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:r,_forwarder:{method:g,params:h}}}}else{const f=An(e,t,n,r),b=k(e.minMiddleAmount,ee);if(e.fromToken.contract===c.ZeroAddress){const g="swapAndForwardEth",h=[f._params.amountIn,l,d,e.fastMctpInputContract,b,f._params.contractAddress,f.data];return{data:i.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(f._params.amountIn),chainId:r,_forwarder:{method:g,params:h}}}else{const g="swapAndForwardERC20",h=[e.fromToken.contract,f._params.amountIn,p,l,d,e.fastMctpInputContract,b,f._params.contractAddress,f.data];return{data:i.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:r,_forwarder:{method:g,params:h}}}}}}var On={abi:[{type:"constructor",inputs:[{name:"_hcProcessor",type:"address",internalType:"address"},{name:"_usdc",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastDeposit",inputs:[{name:"tokenIn",type:"address",internalType:"address"},{name:"amountIn",type:"uint256",internalType:"uint256"},{name:"trader",type:"address",internalType:"address"},{name:"circleMaxFee",type:"uint256",internalType:"uint256"},{name:"gasDrop",type:"uint64",internalType:"uint64"},{name:"referrerAddress",type:"bytes32",internalType:"bytes32"},{name:"referrerBps",type:"uint8",internalType:"uint8"},{name:"minFinalityThreshold",type:"uint32",internalType:"uint32"},{name:"bridgeAmount",type:"uint256",internalType:"uint256"},{name:"depositPayload",type:"tuple",internalType:"struct HCDepositInitiator.DepositPayload",components:[{name:"relayerFee",type:"uint64",internalType:"uint64"},{name:"permit",type:"tuple",internalType:"struct IHCBridge.DepositWithPermit",components:[{name:"user",type:"address",internalType:"address"},{name:"usd",type:"uint64",internalType:"uint64"},{name:"deadline",type:"uint64",internalType:"uint64"},{name:"signature",type:"tuple",internalType:"struct IHCBridge.Signature",components:[{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"}]}]}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"fastMCTP",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"mayanCircle",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setFastMCTP",inputs:[{name:"_fastMCTP",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMayanCircle",inputs:[{name:"_mayanCircle",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AlreadySet",inputs:[]},{type:"error",name:"InsufficientAmount",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function kr(e,t,n,r){if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const u=new c.Contract(e.hyperCoreParams.initiateContractAddress,On.abi),o=c.Buffer$1.from(se(r));if(o.length!==65)throw new Error("Invalid USDC permit signature length");const p="0x"+o.subarray(0,32).toString("hex"),i="0x"+o.subarray(32,64).toString("hex"),y=o[64];let l,d;return l=u.interface.encodeFunctionData("deposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,k(e.hyperCoreParams.failureGasDrop,Math.min(oe("arbitrum"),8)),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:k(e.redeemRelayerFee,ee),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:p,s:i,v:y}}}]),d=c.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:l,value:d,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function Rr(e,t,n,r,u){const o=G("arbitrum");if(!e.hyperCoreParams.initiateContractAddress)throw new Error("HyperCore initiate contract address is missing");if(e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);const p=new c.Contract(e.hyperCoreParams.initiateContractAddress,On.abi),i=c.Buffer$1.from(se(u));if(i.length!==65)throw new Error("Invalid USDC permit signature length");const y="0x"+i.subarray(0,32).toString("hex"),l="0x"+i.subarray(32,64).toString("hex"),d=i[64];let f;r?f=O(r,o):f=O(s.SystemProgram.programId.toString(),G("solana"));let b,g;return b=p.interface.encodeFunctionData("fastDeposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,BigInt(e.circleMaxFee64),k(e.hyperCoreParams.failureGasDrop,Math.min(oe("arbitrum"),8)),f,e.referrerBps,Number(e.fastMctpMinFinality),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:k(e.redeemRelayerFee,ee),permit:{user:n,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:y,s:l,v:d}}}]),g=c.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:b,value:g,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function vr(e,t,n,r,u,o,p,i={}){if(e.toToken.contract.toLowerCase()!==A.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP"&&e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!i?.usdcPermitSignature)throw new Error("USDC permit signature is required for this quote");if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!Number.isFinite(Number(u)))throw new Error("Invalid signer chain id");const y=de(Number(u)),l=G(e.fromChain);if(l!==y)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${l} !== ${y}`);const d=o||we,f=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi);let b;if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");if(e.type==="MCTP")b=kr(e,t,n,i.usdcPermitSignature);else if(e.type==="FAST_MCTP")b=Rr(e,t,n,r,i.usdcPermitSignature);else throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);if(e.fromToken.contract.toLowerCase()===e.hyperCoreParams.initiateTokenContract.toLowerCase()){const g="forwardERC20",h=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,b._params.contractAddress,b.data];return{data:f.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:u,_forwarder:{method:g,params:h}}}else{const{evmSwapRouterAddress:g,evmSwapRouterCalldata:h}=e;if(!e.minMiddleAmount||!g||!h)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");const T=k(e.minMiddleAmount,ee);if(e.fromToken.contract===c.ZeroAddress){const w="swapAndForwardEth",M=[BigInt(e.effectiveAmountIn64),g,h,e.hyperCoreParams.initiateTokenContract,T,b._params.contractAddress,b.data];return{data:f.interface.encodeFunctionData(w,M),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(BigInt(e.effectiveAmountIn64)),chainId:u,_forwarder:{method:w,params:M}}}else{const w="swapAndForwardERC20",M=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,g,h,e.hyperCoreParams.initiateTokenContract,T,b._params.contractAddress,b.data];return{data:f.interface.encodeFunctionData(w,M),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:u,_forwarder:{method:w,params:M}}}}}var Dr={abi:[{type:"constructor",inputs:[{name:"_forwarderAddress",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"ForwarderAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"MAX_REFERRER_BPS",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"changeGuardian",inputs:[{name:"newGuardian",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGuardian",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"guardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"nextGuardian",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"rescueETH",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rescueToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferEth",inputs:[{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"payable"},{type:"function",name:"transferToken",inputs:[{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"},{name:"referrerAddr",type:"address",internalType:"address"},{name:"referrerBps",type:"uint8",internalType:"uint8"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"EthTransferred",inputs:[{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TokenTransferred",inputs:[{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"to",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"InvalidReferrerBps",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}]};function Or(e,t,n){const r=k(e.expectedAmountOut,e.toToken.decimals),u=new c.Contract(e.monoChainMayanContract,Dr.abi),o=n&&e.referrerBps||0;let p,i;return e.toToken.contract===c.ZeroAddress?p=u.interface.encodeFunctionData("transferEth",[t,n||c.ZeroAddress,o]):p=u.interface.encodeFunctionData("transferToken",[e.toToken.contract,r,t,n||c.ZeroAddress,o]),e.fromToken.contract===c.ZeroAddress?i=c.toBeHex(e.effectiveAmountIn64):i=c.toBeHex(0),{to:e.monoChainMayanContract,data:p,value:i,_params:{amountIn:BigInt(e.effectiveAmountIn64),tokenIn:e.fromToken.contract}}}function Br(e,t,n,r,u){if(e.type!=="MONO_CHAIN")throw new Error("Quote type is not MONO_CHAIN");if(e.fromChain!==e.toChain)throw new Error("Quote chains are not equal");if(e.fromToken.contract.toLowerCase()===e.toToken.contract.toLowerCase())throw new Error(`From token and to token are the same: ${e.fromToken.contract}`);if(!Number.isFinite(Number(r)))throw new Error("Invalid signer chain id");const o=de(Number(r)),p=G(e.fromChain);if(p!==o)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${p} !== ${o}`);r=Number(r);const i=u||we,y=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi),{evmSwapRouterAddress:l,evmSwapRouterCalldata:d}=e;if(!l||!d)throw new Error("Mono chain swap requires router address and calldata");const f=Or(e,t,n),b=k(e.minAmountOut,e.toToken.decimals);if(e.fromToken.contract===c.ZeroAddress){const g="swapAndForwardEth",h=[f._params.amountIn,l,d,e.toToken.contract,b,e.monoChainMayanContract,f.data];return{data:y.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(f._params.amountIn),chainId:r,_forwarder:{method:g,params:h}}}else{const g="swapAndForwardERC20",h=[e.fromToken.contract,f._params.amountIn,i,l,d,e.toToken.contract,b,e.monoChainMayanContract,f.data];return{data:y.interface.encodeFunctionData(g,h),to:A.MAYAN_FORWARDER_CONTRACT,value:c.toBeHex(0),chainId:r,_forwarder:{method:g,params:h}}}}function xr(e,t,n,r,u,o){const p=new s.PublicKey(A.MAYAN_PROGRAM_ID),[i]=s.PublicKey.findProgramAddressSync([c.Buffer$1.from("MAIN")],p),y=re(new s.PublicKey(e.fromToken.mint),i,!0),l=BigInt(e.effectiveAmountIn64),d=O(y.toString(),1),f=O(A.AUCTION_PROGRAM_ID,1);let b;n?b=O(n,1):b=O(s.SystemProgram.programId.toString(),1);const g=de(Number(u)),h=G(e.fromChain),T=G(e.toChain);if(h!==g)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${h} !== ${g}`);const w=e.whMayanContract,M={mayanAddr:d,mayanChainId:1,destAddr:O(t,T),destChainId:T,auctionAddr:f,referrer:b,refundAddr:O(r,g)},P=e.toToken.contract===c.ZeroAddress,E={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:k(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:k(e.gasDrop,Math.min(8,oe(e.toChain))),unwrap:P,customPayload:"0x"},D={swapFee:k(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:k(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:k(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},B=O(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),Y=k(e.bridgeFee,18);return{amountIn:l,tokenIn:e.fromToken.contract,tokenOut:B,tokenOutWChainId:e.toToken.realOriginChainId,criteria:E,recipient:M,relayerFees:D,contractAddress:w,bridgeFee:Y}}function Fr(e,t,n,r,u,o,p,i,y){const l=de(Number(o)),d=G(e.fromChain);if(d!==l)throw new Error(`Signer chain id(${Number(o)}) and quote from chain are not same! ${d} !== ${l}`);const f=Xt(e,r);if(e.toChain==="hypercore")return vr(e,t,n,f,o,i,p,y);if(e.type==="MCTP")return Qa(e,n,f,o,i);if(e.type==="SWIFT")return Ar(e,t,n,f,o);if(e.type==="SHUTTLE")return Sr(e,n,o);if(e.type==="FAST_MCTP")return Er(e,n,f,o,i);if(e.type==="MONO_CHAIN")return Br(e,n,f,o,i);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:b,recipient:g,tokenOut:h,tokenOutWChainId:T,criteria:w,tokenIn:M,amountIn:P,contractAddress:E,bridgeFee:D}=xr(e,n,f,u,o),B=new c.Contract(A.MAYAN_FORWARDER_CONTRACT,Ae.abi),Y=new c.Contract(E,za.abi);let J,K,z;const te=we;if(M===c.ZeroAddress){const U=Y.interface.encodeFunctionData("wrapAndSwapETH",[b,g,h,T,w]);J="forwardEth",K=[E,U],z=c.toBeHex(P)}else{const U=Y.interface.encodeFunctionData("swap",[b,g,h,T,w,M,P]);J="forwardERC20",K=[M,P,te,E,U],z=c.toBeHex(D)}const $=B.interface.encodeFunctionData(J,K);return{to:A.MAYAN_FORWARDER_CONTRACT,data:$,value:z,chainId:o,_forwarder:{method:J,params:K}}}async function Nr(e,t){let n;try{n=await t.getMoveFunctionArgTypes({package:e.package,module:e.module,function:e.function})}catch{throw new Error(`Failed to fetch ${e.package}::${e.module}::${e.function} ArgTypes`)}if(n){if(n[e.argumentIndex]!=="Pure"&&n[e.argumentIndex]?.Object!=="ByImmutableReference")throw new Error(`Argument ${e.argumentIndex} of ${e.module}::${e.function} is not immutable`)}else throw new Error(`Failed to fetch package::${e.module}::${e.function} ArgTypes`)}async function Bn(e,t){let n=[],r=BigInt(0),u;do{const o=await t.getCoins({...e,owner:e.walletAddress,cursor:u}),p=o.data.filter(i=>BigInt(i.balance)>BigInt(0));if(n=[...n,...p],p.forEach(i=>{r+=BigInt(i.balance)}),o.data.length===0||!o.hasNextPage||!o.nextCursor||r>=e.coinAmount)return{coins:n.sort((i,y)=>Number(BigInt(i.coinObjectId)-BigInt(y.coinObjectId))),sum:r};u=o.nextCursor}while(!0)}async function Jt(e,t){let n;try{n=await t.getObject({id:e,options:{showContent:!0}})}catch(r){throw new Error(`Failed to fetch Mayan Sui package ID:
3
3
 
4
4
  ${r}`)}if(n.data?.content?.fields?.latest_package_id)return n.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function Re(e,t,n,r,u,o){let p;if(o?.result)p=o.result;else if(o?.objectId)p=u.object(o.objectId);else{const{coins:i,sum:y}=await Bn({walletAddress:t,coinType:n,coinAmount:e},r);if(y<e)throw new Error(`Insufficient funds to create Coin ${n} with amount ${e}`);i.length>1&&u.mergeCoins(i[0].coinObjectId,i.slice(1).map(d=>d.coinObjectId));const[l]=u.splitCoins(i[0].coinObjectId,[e]);p=l}return p}async function Ur(e,t,n,r,u,o,p){const[i,y]=await Promise.all([Jt(A.SUI_MCTP_STATE,o),e.hasAuction?Jt(A.SUI_MCTP_FEE_MANAGER_STATE,o):null]),l=k(e.minMiddleAmount,ee);let d,f,b;if(e.fromToken.contract===e.mctpInputContract)d=p?.builtTransaction??new s.Transaction,f=await Re(l,t,e.mctpInputContract,o,d,p?.inputCoin);else{const{tx:T,outCoin:w,whFeeCoin:M}=await kn({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:r,inputCoin:p?.inputCoin,transaction:p?.builtTransaction?await p.builtTransaction.toJSON():void 0});d=s.Transaction.from(T),f=w,b=M?{result:M}:null}e.hasAuction?await Kr(e,t,n,r,i,y,o,{inputCoin:{result:f},whFeeCoin:b,builtTransaction:d}):e.cheaperChain==="sui"?await Lr(e,t,n,i,o,{inputCoin:{result:f},builtTransaction:d}):await Wr(e,t,n,i,u,o,{inputCoin:{result:f},whFeeCoin:b,builtTransaction:d});const g=BigInt(e.effectiveAmountIn64),h=Uint8Array.from([]);d.moveCall({package:i,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[d.pure.u64(g),d.object(e.fromToken.verifiedAddress),d.pure.vector("u8",h)]});try{let T;r?T=O(r,G(e.toChain)):T=O(s.SystemProgram.programId.toString(),G("solana")),d.moveCall({package:A.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[d.pure.address(T),d.pure.u8(e.referrerBps||0)]})}catch(T){console.error("Failed to log referrer",T)}return d}async function Wr(e,t,n,r,u,o,p){return Fn({swapperAddress:t,destinationAddress:n,toChain:e.toChain,minMiddleAmount:e.minMiddleAmount,mctpPackageId:r,mctpInputContract:e.mctpInputContract,gasDrop:e.gasDrop,redeemRelayerFee:e.redeemRelayerFee,mctpVerifiedInputAddress:e.mctpVerifiedInputAddress,mctpInputTreasury:e.mctpInputTreasury,bridgeFee:e.bridgeFee,payload:u,suiClient:o,options:p})}async function Lr(e,t,n,r,u,o){const p=G(e.toChain),i=o?.builtTransaction??new s.Transaction,y=k(e.minMiddleAmount,ee),l=await Re(y,t,e.mctpInputContract,u,i,o?.inputCoin),d=O(n,p),f=Ie(e.toChain),b=k(e.gasDrop,Math.min(oe(e.toChain),8)),g=k(e.redeemRelayerFee,ee),[h]=i.moveCall({package:r,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[l,i.pure.u64(y),i.pure.address(d),i.pure.u32(f),i.pure.u64(b),i.pure.u64(g)]}),[T,w]=i.moveCall({package:r,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(A.SUI_MCTP_STATE),i.object(A.SUI_CCTP_CORE_STATE),i.object(e.mctpVerifiedInputAddress),h]}),[M,P]=i.moveCall({package:A.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::bridge_locked_fee::CircleAuth`],arguments:[w,i.object(A.SUI_CCTP_TOKEN_STATE),i.object(A.SUI_CCTP_CORE_STATE),i.object("0x403"),i.object(e.mctpInputTreasury)]});return i.moveCall({package:r,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i.object(A.SUI_MCTP_STATE),i.object(e.mctpVerifiedInputAddress),T,P]}),i}async function Kr(e,t,n,r,u,o,p,i){const y=G(e.toChain),l=i?.builtTransaction??new s.Transaction,d=k(e.minMiddleAmount,ee),[f]=await Promise.all([Re(d,t,e.mctpInputContract,p,l,i?.inputCoin),Nr({package:o,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},p)]),b=e.toToken.contract===c.ZeroAddress?O(s.SystemProgram.programId.toString(),G("solana")):O(e.toToken.contract,e.toToken.wChainId),g=k(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=O(n,y),T=Ie(e.toChain),w=k(e.gasDrop,Math.min(oe(e.toChain),8)),M=k(e.redeemRelayerFee,ee),P=BigInt(e.deadline64);let E;r?E=O(r,y):E=O(s.SystemProgram.programId.toString(),G("solana"));const D=[l.object(e.mctpVerifiedInputAddress),l.pure.u8(Ua),l.pure.address(t),f,l.pure.address(h),l.pure.u16(y),l.pure.address(b),l.pure.u64(g),l.pure.u64(w),l.pure.u64(M),l.pure.u64(P),l.pure.address(E),l.pure.u8(e.referrerBps)],[B]=l.moveCall({package:o,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:D}),[Y]=l.moveCall({package:o,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[l.object(A.SUI_MCTP_FEE_MANAGER_STATE),B]}),[J]=l.moveCall({package:u,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...D.slice(1),l.pure.u32(T),l.pure.u64(d)]}),[K,z]=l.moveCall({package:u,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[l.object(A.SUI_MCTP_STATE),l.object(A.SUI_CCTP_CORE_STATE),l.object(e.mctpVerifiedInputAddress),J,Y]}),[te,$]=l.moveCall({package:A.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${u}::init_order::CircleAuth`],arguments:[z,l.object(A.SUI_CCTP_TOKEN_STATE),l.object(A.SUI_CCTP_CORE_STATE),l.object("0x403"),l.object(e.mctpInputTreasury)]}),[U]=l.moveCall({package:u,module:"init_order",function:"publish_init_order",arguments:[l.object(A.SUI_MCTP_STATE),K,$]});return await xn(l,U,p,BigInt(e.bridgeFee),t,i?.whFeeCoin),l}async function xn(e,t,n,r,u,o){let p;if(o?.result)p=o.result;else if(o?.objectId)p=e.object(o.objectId);else if(r>BigInt(0)){const{coins:i,sum:y}=await Bn({walletAddress:u,coinType:s.SUI_TYPE_ARG,coinAmount:r},n);if(y<r)throw new Error("Insufficient funds to pay Wormhole message fee");i.length>1&&e.mergeCoins(i[0].coinObjectId,i.slice(1).map(d=>d.coinObjectId));const[l]=e.splitCoins(i[0].coinObjectId,[r]);p=l}else{const[i]=e.splitCoins(e.gas,[e.pure.u64(0)]);p=i}return e.moveCall({package:A.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(A.SUI_WORMHOLE_STATE),p,t,e.object(s.SUI_CLOCK_OBJECT_ID)]}),e}async function Fn(e){const{swapperAddress:t,destinationAddress:n,mctpPackageId:r,payload:u,suiClient:o,options:p}=e,i=G(e.toChain),y=p?.builtTransaction??new s.Transaction,l=k(e.minMiddleAmount,ee),d=await Re(l,t,e.mctpInputContract,o,y,p?.inputCoin),f=u?Na:Pn,b=O(n,i),g=Ie(e.toChain),h=k(e.gasDrop,Math.min(oe(e.toChain),8)),T=k(e.redeemRelayerFee,ee),w=u?Uint8Array.from(u):Uint8Array.from([]),[M]=y.moveCall({package:r,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[y.pure.u8(f),d,y.pure.u64(l),y.pure.address(b),y.pure.u32(g),y.pure.u64(h),y.pure.u64(T),y.pure.vector("u8",w)]}),[P,E]=y.moveCall({package:r,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[y.object(A.SUI_MCTP_STATE),y.object(A.SUI_CCTP_CORE_STATE),y.object(e.mctpVerifiedInputAddress),M]}),[D,B]=y.moveCall({package:A.SUI_CCTP_TOKEN_PACKAGE_ID,module:"deposit_for_burn",function:"deposit_for_burn_with_caller_with_package_auth",typeArguments:[e.mctpInputContract,`${r}::bridge_with_fee::CircleAuth`],arguments:[E,y.object(A.SUI_CCTP_TOKEN_STATE),y.object(A.SUI_CCTP_CORE_STATE),y.object("0x403"),y.object(e.mctpInputTreasury)]}),[Y]=y.moveCall({package:r,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[y.object(A.SUI_MCTP_STATE),P,B]});return await xn(y,Y,o,BigInt(e.bridgeFee),t,p?.whFeeCoin),y}async function Hr(e,t,n,r,u,o){if(e.toToken.contract.toLowerCase()!==A.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!o?.usdcPermitSignature)throw new Error("USDC permit signature is required for this quote");if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");const[p]=await Promise.all([Jt(A.SUI_MCTP_STATE,u)]);k(e.minMiddleAmount,ee);let i,y,l;if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract)i=o?.builtTransaction??new s.Transaction,y=await Re(BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,e.mctpInputContract,u,i,o?.inputCoin);else{const{tx:g,outCoin:h,whFeeCoin:T}=await kn({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.hyperCoreParams.initiateTokenContract,userWallet:t,withWhFee:!0,referrerAddress:r,inputCoin:o?.inputCoin,transaction:o?.builtTransaction?await o.builtTransaction.toJSON():void 0});i=s.Transaction.from(g);const[w]=i.splitCoins(h,[BigInt(e.hyperCoreParams.bridgeAmountUSDC64)]);i.transferObjects([h],i.pure.address(t)),y=w,l=T?{result:T}:null}const d=En(e,n,o.usdcPermitSignature);await Fn({swapperAddress:t,destinationAddress:A.HC_ARBITRUM_DEPOSIT_PROCESSOR,mctpPackageId:p,toChain:"arbitrum",minMiddleAmount:Da(e.hyperCoreParams.bridgeAmountUSDC64,ee),bridgeFee:e.bridgeFee,gasDrop:e.hyperCoreParams.failureGasDrop,mctpInputContract:e.mctpInputContract,mctpInputTreasury:e.mctpInputTreasury,mctpVerifiedInputAddress:e.mctpVerifiedInputAddress,redeemRelayerFee:0,payload:d,suiClient:u,options:{inputCoin:{result:y},whFeeCoin:l,builtTransaction:i}});const f=BigInt(e.effectiveAmountIn64),b=Uint8Array.from(d);i.moveCall({package:p,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[i.pure.u64(f),i.object(e.fromToken.verifiedAddress),i.pure.vector("u8",b)]});try{let g;r?g=O(r,G(e.toChain)):g=O(s.SystemProgram.programId.toString(),G("solana")),i.moveCall({package:A.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[i.pure.address(g),i.pure.u8(e.referrerBps||0)]})}catch(g){console.error("Failed to log referrer",g)}return i}async function Gr(e,t,n,r,u,o,p){const i=Xt(e,r);if(e.toChain==="hypercore"){if(!e.hyperCoreParams)throw new Error("HyperCore parameters are required for this quote");if(!p?.usdcPermitSignature)throw new Error("USDC permit signature is required for this quote");if(e.type!=="MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);return Hr(e,t,n,i,o,p)}if(e.type==="MCTP")return Ur(e,t,n,i,u,o,p);throw new Error("Unsupported quote type from Sui chain")}function Nn(e){return c.chainToPlatform.has(e)&&c.chainToPlatform.get(e)==="Evm"}const Ce="Arbitrum";function Wt(e){return e==="HyperCore"}function $r(e,t){const{fromChain:n,toChain:r}=e;return Wt(n.chain)?{valid:!1,params:t,error:new c.UnavailableError(new Error("HyperCore cannot be used as a source chain"))}:Wt(r.chain)?r.network!=="Mainnet"?{valid:!1,params:t,error:new c.UnavailableError(new Error("HyperCore is only available on Mainnet"))}:Nn(n.chain)||n.chain==="Sui"||n.chain==="Solana"?null:{valid:!1,params:t,error:new c.UnavailableError(new Error("HyperCore only supports EVM, Solana or Sui source chains"))}:null}async function Vr(e,t,n,r){if(!(Wt(e.toChain.chain)&&n.details?.hyperCoreParams!==void 0))return;const o=n.details;if(!o)throw new Error("Missing HyperCore quote details required for permit");const y=(await Ot.getWormholeContextV2()).getPlatform(c.chainToPlatform(Ce)).getRpc(Ce);if(!y)throw new Error(`Could not resolve ${Ce} RPC connection needed for HyperCore`);let l,d,f;try{({domain:l,types:d,value:f}=await $a(o,r,y))}catch(M){throw new Error(`Failed to fetch HyperCore USDC permit params: ${M.message}`)}const g=t?.provider?.();if(!g)throw new Error("No wallet provider available for HyperCore permit");const h=Nn(e.fromChain.chain)?Bt.SENDING:Bt.RECEIVING,T=g.getWallet(Ce,h);if(!T)throw new Error(`An ${Ce} wallet connection is required to sign the HyperCore permit`);try{await T.switchChain(42161)}catch(M){const P=M instanceof Error?`: ${M.message}`:"";throw new Error(`Unable to switch the connected wallet to ${Ce} (chainId 42161) for the HyperCore permit${P}`)}const w=await T.getSigner();if(!w)throw new Error("Failed to access signer for HyperCore permit");return w.signTypedData(l,d,f)}exports.CHAINS=Z;exports.CHAIN_ID_APTOS=ia;exports.CHAIN_ID_ETH=Sn;exports.CHAIN_ID_SOLANA=Vn;exports.CHAIN_ID_SUI=ra;exports.NotConnected=Gn;exports.NotSupported=Hn;exports.TransferWallet=Bt;exports.Wallet=$n;exports.addresses_default=A;exports.createSwapFromSolanaInstructions=gr;exports.createSwapFromSuiMoveCalls=Gr;exports.formatEther=Kn;exports.formatUnits=Qt;exports.generateFetchQuoteUrl=Va;exports.getSwapFromEvmTxPayload=Fr;exports.getWalletOptions=Ia;exports.isEVMChain=ha;exports.isHyperCoreChain=Wt;exports.maybeGetHyperCorePermitSignature=Vr;exports.o=ke;exports.parseUnits=Cn;exports.signAndSendTransaction=ga;exports.validateHyperCoreTransfer=$r;exports.walletAcceptedChains=Ta;