@wormhole-foundation/wormhole-connect 4.0.0-beta.1-development → 4.0.0

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 (59) hide show
  1. package/dist/main.js +1 -1
  2. package/lib/{aptos-5b4F4UXd.mjs → aptos-Dol0ReEK.mjs} +2 -2
  3. package/lib/{aptos-B_Yz-0gh.js → aptos-eGdJuKke.js} +1 -1
  4. package/lib/{basic-BdiYk8Hf.js → basic-B3aoOwRb.js} +1 -1
  5. package/lib/{basic-BclwqsOq.mjs → basic-BI1HDLIO.mjs} +3 -3
  6. package/lib/{basic-HasHL_DG.mjs → basic-C6oQe5cg.mjs} +3 -3
  7. package/lib/{basic-CuO6iz8a.js → basic-pJmrDH53.js} +1 -1
  8. package/lib/{constants-DnbaS3cF.mjs → constants-BPs5UFxq.mjs} +3 -3
  9. package/lib/constants-BqHCu7gS.js +1 -0
  10. package/lib/{core-COM78LTW.js → core-BN_eDiBJ.js} +3 -3
  11. package/lib/{core-DT_3gIqi.mjs → core-BZzw8R4f.mjs} +4 -4
  12. package/lib/{evm-Dv-WYu07.js → evm-BdbjSrMR.js} +1 -1
  13. package/lib/{evm-DoVrPE_X.mjs → evm-CUhPokEi.mjs} +3 -3
  14. package/lib/{evm-CUR4-a7F.mjs → evm-IC5cigOX.mjs} +3 -3
  15. package/lib/{evm-CoLwXequ.js → evm-bdCQPjof.js} +2 -2
  16. package/lib/hosted.js +1 -1
  17. package/lib/hosted.mjs +1 -1
  18. package/lib/{index-cggXdVJu.mjs → index-1boJ8yzF.mjs} +1 -1
  19. package/lib/{index-C8HxYDNY.js → index-943_uCEO.js} +1 -1
  20. package/lib/{index-CkGYgQTz.js → index-BeBO_sCU.js} +1 -1
  21. package/lib/{index-DaY7_eQ6.js → index-Blvg4PFN.js} +2 -2
  22. package/lib/{index-P9DbJOzh.js → index-BnMkdrhM.js} +1 -1
  23. package/lib/{index-B1KwS33G.mjs → index-CQ0RB2r3.mjs} +1 -1
  24. package/lib/{index-DZaOh3F9.mjs → index-CR3DmYPt.mjs} +3 -3
  25. package/lib/{index-BaYN-RHF.js → index-CbFvm_Mr.js} +1 -1
  26. package/lib/{index-B7Afz_5P.js → index-Cv9hvmqc.js} +1 -1
  27. package/lib/{index-cCBQV2Yv.js → index-D61fXWwH.js} +2 -2
  28. package/lib/{index-DlmQ0_RF.mjs → index-DJs1h8_N.mjs} +10 -10
  29. package/lib/{index-DGzoIr_I.mjs → index-N8cPdMnf.mjs} +1 -1
  30. package/lib/{index-B3idKQJG.mjs → index-UOvy4usi.mjs} +1 -1
  31. package/lib/{index-B2sVzSwb.mjs → index-dU3yVyBt.mjs} +1 -1
  32. package/lib/{index.es-5ecqX8B9.mjs → index.es-B5hLka3L.mjs} +3 -3
  33. package/lib/{index.es-owVcNlof.js → index.es-CSmeunOk.js} +3 -3
  34. package/lib/{index.es-LBG64XJ6.js → index.es-E2DQPkYK.js} +1 -1
  35. package/lib/{index.es-zNH_KzcH.mjs → index.es-Vlpe_OYB.mjs} +1 -1
  36. package/lib/index.js +1 -1
  37. package/lib/index.mjs +2 -2
  38. package/lib/mayan.js +1 -1
  39. package/lib/mayan.mjs +1 -1
  40. package/lib/{secp256k1-BF6Vm50D.mjs → secp256k1-B-wUOgWh.mjs} +1 -1
  41. package/lib/{secp256k1-DRTQ6WrU.js → secp256k1-BAjH_sHz.js} +1 -1
  42. package/lib/{secp256k1-BfK5OWRP.mjs → secp256k1-CpJIg24C.mjs} +1 -1
  43. package/lib/{secp256k1-Bb6lbAjK.js → secp256k1-Ds1M1Mtb.js} +1 -1
  44. package/lib/{secp256k1-D_GNj8sK.js → secp256k1-PbbUc2aU.js} +1 -1
  45. package/lib/{secp256k1-CqT-a-I8.mjs → secp256k1-YWWAmpaN.mjs} +1 -1
  46. package/lib/{solana-C1puc64V.mjs → solana-Bh5bkUXQ.mjs} +7 -7
  47. package/lib/{solana-CtBdJ6Wt.js → solana-sjjxa4_B.js} +4 -4
  48. package/lib/{solanaEmbed.esm-BpIKVhXq.js → solanaEmbed.esm-CDt8Bk0U.js} +1 -1
  49. package/lib/{solanaEmbed.esm-NdE_DQuw.mjs → solanaEmbed.esm-DGgxfQDB.mjs} +2 -2
  50. package/lib/{sui-DdujB9Bc.js → sui-Do5RtJvP.js} +1 -1
  51. package/lib/{sui-BW7tMLZs.mjs → sui-tKXg9e-c.mjs} +2 -2
  52. package/lib/{tokens-DI-tPIbd.mjs → tokens-CNITO7DN.mjs} +1 -1
  53. package/lib/{tokens-DJos2DwM.js → tokens-DhBcLH6x.js} +1 -1
  54. package/lib/{w3m-modal-DSY2qJYP.js → w3m-modal-BUP-c20y.js} +1 -1
  55. package/lib/{w3m-modal-C32eQxEe.mjs → w3m-modal-Bj2tG9wb.mjs} +2 -2
  56. package/lib/{w3m-modal-DgqSQLqZ.js → w3m-modal-CGeDlu49.js} +1 -1
  57. package/lib/{w3m-modal-B2VF8j7W.mjs → w3m-modal-D78VqEEI.mjs} +2 -2
  58. package/package.json +1 -1
  59. package/lib/constants-abC7FLXq.js +0 -1
package/lib/mayan.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const browserPonyfill=require("./browser-ponyfill-VhIu9z_I.js"),web3=require("./web3-BKaP497Y.js"),platform=require("./platform-Bkbg7A9d.js"),providerJsonrpc=require("./provider-jsonrpc-DHzam3ud.js"),contract=require("./contract-CTycrpaK.js"),units=require("./units-DtldPRXy.js"),index=require("./index-cCBQV2Yv.js"),unsignedTransaction=require("./unsignedTransaction-DL3WyIkF.js"),transfer=require("./transfer-BinEH6ml.js"),unsignedTransaction$1=require("./unsignedTransaction-5HCmv6m2.js"),platform$1=require("./platform-qdbxkhTI.js"),unsignedTransaction$2=require("./unsignedTransaction-Bv76DnOj.js"),mint=require("./mint-B4t2SvV6.js");var sha3={exports:{}},hasRequiredSha3;function requireSha3(){return hasRequiredSha3||(hasRequiredSha3=1,(function(e){(function(){var t="input is invalid type",a="finalize already called",r=typeof window=="object",u=r?window:{};u.JS_SHA3_NO_WINDOW&&(r=!1);var s=!r&&typeof self=="object",o=!u.JS_SHA3_NO_NODE_JS&&typeof web3.process$1=="object"&&web3.process$1.versions&&web3.process$1.versions.node;o?u=web3.commonjsGlobal:s&&(u=self);var n=!u.JS_SHA3_NO_COMMON_JS&&!0&&e.exports,p=!u.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",i="0123456789abcdef".split(""),d=[31,7936,2031616,520093696],l=[4,1024,262144,67108864],y=[1,256,65536,16777216],m=[6,1536,393216,100663296],f=[0,8,16,24],b=[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],T=[224,256,384,512],h=[128,256],w=["hex","buffer","arrayBuffer","array","digest"],g={128:168,256:136};(u.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(c){return Object.prototype.toString.call(c)==="[object Array]"}),p&&(u.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(c){return typeof c=="object"&&c.buffer&&c.buffer.constructor===ArrayBuffer});for(var A=function(c,C,_){return function(P){return new U(c,C,c).update(P)[_]()}},I=function(c,C,_){return function(P,k){return new U(c,C,k).update(P)[_]()}},M=function(c,C,_){return function(P,k,R,O){return W["cshake"+c].update(P,k,R,O)[_]()}},x=function(c,C,_){return function(P,k,R,O){return W["kmac"+c].update(P,k,R,O)[_]()}},F=function(c,C,_,P){for(var k=0;k<w.length;++k){var R=w[k];c[R]=C(_,P,R)}return c},$=function(c,C){var _=A(c,C,"hex");return _.create=function(){return new U(c,C,c)},_.update=function(P){return _.create().update(P)},F(_,A,c,C)},D=function(c,C){var _=I(c,C,"hex");return _.create=function(P){return new U(c,C,P)},_.update=function(P,k){return _.create(k).update(P)},F(_,I,c,C)},S=function(c,C){var _=g[c],P=M(c,C,"hex");return P.create=function(k,R,O){return!R&&!O?W["shake"+c].create(k):new U(c,C,k).bytepad([R,O],_)},P.update=function(k,R,O,v){return P.create(R,O,v).update(k)},F(P,M,c,C)},E=function(c,C){var _=g[c],P=x(c,C,"hex");return P.create=function(k,R,O){return new X(c,C,R).bytepad(["KMAC",O],_).bytepad([k],_)},P.update=function(k,R,O,v){return P.create(k,O,v).update(R)},F(P,x,c,C)},N=[{name:"keccak",padding:y,bits:T,createMethod:$},{name:"sha3",padding:m,bits:T,createMethod:$},{name:"shake",padding:d,bits:h,createMethod:D},{name:"cshake",padding:l,bits:h,createMethod:S},{name:"kmac",padding:l,bits:h,createMethod:E}],W={},L=[],Y=0;Y<N.length;++Y)for(var G=N[Y],z=G.bits,j=0;j<z.length;++j){var Z=G.name+"_"+z[j];if(L.push(Z),W[Z]=G.createMethod(z[j],G.padding),G.name!=="sha3"){var Q=G.name+z[j];L.push(Q),W[Q]=W[Z]}}function U(c,C,_){this.blocks=[],this.s=[],this.padding=C,this.outputBits=_,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(c<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=_>>5,this.extraBytes=(_&31)>>3;for(var P=0;P<50;++P)this.s[P]=0}U.prototype.update=function(c){if(this.finalized)throw new Error(a);var C,_=typeof c;if(_!=="string"){if(_==="object"){if(c===null)throw new Error(t);if(p&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!p||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);C=!0}for(var P=this.blocks,k=this.byteCount,R=c.length,O=this.blockCount,v=0,V=this.s,B,H;v<R;){if(this.reset)for(this.reset=!1,P[0]=this.block,B=1;B<O+1;++B)P[B]=0;if(C)for(B=this.start;v<R&&B<k;++v)P[B>>2]|=c[v]<<f[B++&3];else for(B=this.start;v<R&&B<k;++v)H=c.charCodeAt(v),H<128?P[B>>2]|=H<<f[B++&3]:H<2048?(P[B>>2]|=(192|H>>6)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]):H<55296||H>=57344?(P[B>>2]|=(224|H>>12)<<f[B++&3],P[B>>2]|=(128|H>>6&63)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]):(H=65536+((H&1023)<<10|c.charCodeAt(++v)&1023),P[B>>2]|=(240|H>>18)<<f[B++&3],P[B>>2]|=(128|H>>12&63)<<f[B++&3],P[B>>2]|=(128|H>>6&63)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]);if(this.lastByteIndex=B,B>=k){for(this.start=B-k,this.block=P[O],B=0;B<O;++B)V[B]^=P[B];J(V),this.reset=!0}else this.start=B}return this},U.prototype.encode=function(c,C){var _=c&255,P=1,k=[_];for(c=c>>8,_=c&255;_>0;)k.unshift(_),c=c>>8,_=c&255,++P;return C?k.push(P):k.unshift(P),this.update(k),k.length},U.prototype.encodeString=function(c){var C,_=typeof c;if(_!=="string"){if(_==="object"){if(c===null)throw new Error(t);if(p&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!p||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);C=!0}var P=0,k=c.length;if(C)P=k;else for(var R=0;R<c.length;++R){var O=c.charCodeAt(R);O<128?P+=1:O<2048?P+=2:O<55296||O>=57344?P+=3:(O=65536+((O&1023)<<10|c.charCodeAt(++R)&1023),P+=4)}return P+=this.encode(P*8),this.update(c),P},U.prototype.bytepad=function(c,C){for(var _=this.encode(C),P=0;P<c.length;++P)_+=this.encodeString(c[P]);var k=C-_%C,R=[];return R.length=k,this.update(R),this},U.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var c=this.blocks,C=this.lastByteIndex,_=this.blockCount,P=this.s;if(c[C>>2]|=this.padding[C&3],this.lastByteIndex===this.byteCount)for(c[0]=c[_],C=1;C<_+1;++C)c[C]=0;for(c[_-1]|=2147483648,C=0;C<_;++C)P[C]^=c[C];J(P)}},U.prototype.toString=U.prototype.hex=function(){this.finalize();for(var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O="",v;R<_;){for(k=0;k<c&&R<_;++k,++R)v=C[k],O+=i[v>>4&15]+i[v&15]+i[v>>12&15]+i[v>>8&15]+i[v>>20&15]+i[v>>16&15]+i[v>>28&15]+i[v>>24&15];R%c===0&&(J(C),k=0)}return P&&(v=C[k],O+=i[v>>4&15]+i[v&15],P>1&&(O+=i[v>>12&15]+i[v>>8&15]),P>2&&(O+=i[v>>20&15]+i[v>>16&15])),O},U.prototype.arrayBuffer=function(){this.finalize();var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O=this.outputBits>>3,v;P?v=new ArrayBuffer(_+1<<2):v=new ArrayBuffer(O);for(var V=new Uint32Array(v);R<_;){for(k=0;k<c&&R<_;++k,++R)V[R]=C[k];R%c===0&&J(C)}return P&&(V[k]=C[k],v=v.slice(0,O)),v},U.prototype.buffer=U.prototype.arrayBuffer,U.prototype.digest=U.prototype.array=function(){this.finalize();for(var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O=[],v,V;R<_;){for(k=0;k<c&&R<_;++k,++R)v=R<<2,V=C[k],O[v]=V&255,O[v+1]=V>>8&255,O[v+2]=V>>16&255,O[v+3]=V>>24&255;R%c===0&&J(C)}return P&&(v=R<<2,V=C[k],O[v]=V&255,P>1&&(O[v+1]=V>>8&255),P>2&&(O[v+2]=V>>16&255)),O};function X(c,C,_){U.call(this,c,C,_)}X.prototype=new U,X.prototype.finalize=function(){return this.encode(this.outputBits,!0),U.prototype.finalize.call(this)};var J=function(c){var C,_,P,k,R,O,v,V,B,H,q,ee,te,ne,ae,re,ie,se,oe,ue,pe,ce,de,le,ye,me,fe,be,Te,we,he,ge,Ae,Ie,Ce,_e,Se,Me,Pe,Ee,ke,Re,xe,Fe,ve,Oe,Be,De,$e,Ne,We,Le,Ke,Ue,He,Ge,Ve,Ye,je,Je,ze,Ze,Xe;for(P=0;P<48;P+=2)k=c[0]^c[10]^c[20]^c[30]^c[40],R=c[1]^c[11]^c[21]^c[31]^c[41],O=c[2]^c[12]^c[22]^c[32]^c[42],v=c[3]^c[13]^c[23]^c[33]^c[43],V=c[4]^c[14]^c[24]^c[34]^c[44],B=c[5]^c[15]^c[25]^c[35]^c[45],H=c[6]^c[16]^c[26]^c[36]^c[46],q=c[7]^c[17]^c[27]^c[37]^c[47],ee=c[8]^c[18]^c[28]^c[38]^c[48],te=c[9]^c[19]^c[29]^c[39]^c[49],C=ee^(O<<1|v>>>31),_=te^(v<<1|O>>>31),c[0]^=C,c[1]^=_,c[10]^=C,c[11]^=_,c[20]^=C,c[21]^=_,c[30]^=C,c[31]^=_,c[40]^=C,c[41]^=_,C=k^(V<<1|B>>>31),_=R^(B<<1|V>>>31),c[2]^=C,c[3]^=_,c[12]^=C,c[13]^=_,c[22]^=C,c[23]^=_,c[32]^=C,c[33]^=_,c[42]^=C,c[43]^=_,C=O^(H<<1|q>>>31),_=v^(q<<1|H>>>31),c[4]^=C,c[5]^=_,c[14]^=C,c[15]^=_,c[24]^=C,c[25]^=_,c[34]^=C,c[35]^=_,c[44]^=C,c[45]^=_,C=V^(ee<<1|te>>>31),_=B^(te<<1|ee>>>31),c[6]^=C,c[7]^=_,c[16]^=C,c[17]^=_,c[26]^=C,c[27]^=_,c[36]^=C,c[37]^=_,c[46]^=C,c[47]^=_,C=H^(k<<1|R>>>31),_=q^(R<<1|k>>>31),c[8]^=C,c[9]^=_,c[18]^=C,c[19]^=_,c[28]^=C,c[29]^=_,c[38]^=C,c[39]^=_,c[48]^=C,c[49]^=_,ne=c[0],ae=c[1],Oe=c[11]<<4|c[10]>>>28,Be=c[10]<<4|c[11]>>>28,be=c[20]<<3|c[21]>>>29,Te=c[21]<<3|c[20]>>>29,Je=c[31]<<9|c[30]>>>23,ze=c[30]<<9|c[31]>>>23,Re=c[40]<<18|c[41]>>>14,xe=c[41]<<18|c[40]>>>14,Ie=c[2]<<1|c[3]>>>31,Ce=c[3]<<1|c[2]>>>31,re=c[13]<<12|c[12]>>>20,ie=c[12]<<12|c[13]>>>20,De=c[22]<<10|c[23]>>>22,$e=c[23]<<10|c[22]>>>22,we=c[33]<<13|c[32]>>>19,he=c[32]<<13|c[33]>>>19,Ze=c[42]<<2|c[43]>>>30,Xe=c[43]<<2|c[42]>>>30,Ue=c[5]<<30|c[4]>>>2,He=c[4]<<30|c[5]>>>2,_e=c[14]<<6|c[15]>>>26,Se=c[15]<<6|c[14]>>>26,se=c[25]<<11|c[24]>>>21,oe=c[24]<<11|c[25]>>>21,Ne=c[34]<<15|c[35]>>>17,We=c[35]<<15|c[34]>>>17,ge=c[45]<<29|c[44]>>>3,Ae=c[44]<<29|c[45]>>>3,le=c[6]<<28|c[7]>>>4,ye=c[7]<<28|c[6]>>>4,Ge=c[17]<<23|c[16]>>>9,Ve=c[16]<<23|c[17]>>>9,Me=c[26]<<25|c[27]>>>7,Pe=c[27]<<25|c[26]>>>7,ue=c[36]<<21|c[37]>>>11,pe=c[37]<<21|c[36]>>>11,Le=c[47]<<24|c[46]>>>8,Ke=c[46]<<24|c[47]>>>8,Fe=c[8]<<27|c[9]>>>5,ve=c[9]<<27|c[8]>>>5,me=c[18]<<20|c[19]>>>12,fe=c[19]<<20|c[18]>>>12,Ye=c[29]<<7|c[28]>>>25,je=c[28]<<7|c[29]>>>25,Ee=c[38]<<8|c[39]>>>24,ke=c[39]<<8|c[38]>>>24,ce=c[48]<<14|c[49]>>>18,de=c[49]<<14|c[48]>>>18,c[0]=ne^~re&se,c[1]=ae^~ie&oe,c[10]=le^~me&be,c[11]=ye^~fe&Te,c[20]=Ie^~_e&Me,c[21]=Ce^~Se&Pe,c[30]=Fe^~Oe&De,c[31]=ve^~Be&$e,c[40]=Ue^~Ge&Ye,c[41]=He^~Ve&je,c[2]=re^~se&ue,c[3]=ie^~oe&pe,c[12]=me^~be&we,c[13]=fe^~Te&he,c[22]=_e^~Me&Ee,c[23]=Se^~Pe&ke,c[32]=Oe^~De&Ne,c[33]=Be^~$e&We,c[42]=Ge^~Ye&Je,c[43]=Ve^~je&ze,c[4]=se^~ue&ce,c[5]=oe^~pe&de,c[14]=be^~we&ge,c[15]=Te^~he&Ae,c[24]=Me^~Ee&Re,c[25]=Pe^~ke&xe,c[34]=De^~Ne&Le,c[35]=$e^~We&Ke,c[44]=Ye^~Je&Ze,c[45]=je^~ze&Xe,c[6]=ue^~ce&ne,c[7]=pe^~de&ae,c[16]=we^~ge&le,c[17]=he^~Ae&ye,c[26]=Ee^~Re&Ie,c[27]=ke^~xe&Ce,c[36]=Ne^~Le&Fe,c[37]=We^~Ke&ve,c[46]=Je^~Ze&Ue,c[47]=ze^~Xe&He,c[8]=ce^~ne&re,c[9]=de^~ae&ie,c[18]=ge^~le&me,c[19]=Ae^~ye&fe,c[28]=Re^~Ie&_e,c[29]=xe^~Ce&Se,c[38]=Le^~Fe&Oe,c[39]=Ke^~ve&Be,c[48]=Ze^~Ue&Ge,c[49]=Xe^~He&Ve,c[0]^=b[P],c[1]^=b[P+1]};if(n)e.exports=W;else for(Y=0;Y<L.length;++Y)u[L[Y]]=W[L[Y]]})()})(sha3)),sha3.exports}var sha3Exports=requireSha3(),sha256={exports:{}},hasRequiredSha256;function requireSha256(){return hasRequiredSha256||(hasRequiredSha256=1,(function(module){(function(){var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof web3.process$1=="object"&&web3.process$1.versions&&web3.process$1.versions.node;NODE_JS?root=web3.commonjsGlobal:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&!0&&module.exports,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(a){return new Sha256(t,!0).update(a)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(u){return t.create().update(u)};for(var a=0;a<OUTPUT_TYPES.length;++a){var r=OUTPUT_TYPES[a];t[r]=createOutputMethod(r,e)}return t},nodeWrap=function(method,is224){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),algorithm=is224?"sha224":"sha256",nodeMethod=function(e){if(typeof e=="string")return crypto.createHash(algorithm).update(e,"utf8").digest("hex");if(e==null)throw new Error(ERROR);return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash(algorithm).update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod},createHmacOutputMethod=function(e,t){return function(a,r){return new HmacSha256(a,t,!0).update(r)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(u){return new HmacSha256(u,e)},t.update=function(u,s){return t.create(u).update(s)};for(var a=0;a<OUTPUT_TYPES.length;++a){var r=OUTPUT_TYPES[a];t[r]=createHmacOutputMethod(r,e)}return t};function Sha256(e,t){t?(blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}Sha256.prototype.update=function(e){if(!this.finalized){var t,a=typeof e;if(a!=="string"){if(a==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);t=!0}for(var r,u=0,s,o=e.length,n=this.blocks;u<o;){if(this.hashed&&(this.hashed=!1,n[0]=this.block,n[16]=n[1]=n[2]=n[3]=n[4]=n[5]=n[6]=n[7]=n[8]=n[9]=n[10]=n[11]=n[12]=n[13]=n[14]=n[15]=0),t)for(s=this.start;u<o&&s<64;++u)n[s>>2]|=e[u]<<SHIFT[s++&3];else for(s=this.start;u<o&&s<64;++u)r=e.charCodeAt(u),r<128?n[s>>2]|=r<<SHIFT[s++&3]:r<2048?(n[s>>2]|=(192|r>>6)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]):r<55296||r>=57344?(n[s>>2]|=(224|r>>12)<<SHIFT[s++&3],n[s>>2]|=(128|r>>6&63)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]):(r=65536+((r&1023)<<10|e.charCodeAt(++u)&1023),n[s>>2]|=(240|r>>18)<<SHIFT[s++&3],n[s>>2]|=(128|r>>12&63)<<SHIFT[s++&3],n[s>>2]|=(128|r>>6&63)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=n[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=this.blocks,i,d,l,y,m,f,b,T,h,w,g;for(i=16;i<64;++i)m=p[i-15],d=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,m=p[i-2],l=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,p[i]=p[i-16]+d+p[i-7]+l<<0;for(g=t&a,i=0;i<64;i+=4)this.first?(this.is224?(T=300032,m=p[0]-1413257819,n=m-150054599<<0,r=m+24177077<<0):(T=704751109,m=p[0]-210244248,n=m-1521486534<<0,r=m+143694565<<0),this.first=!1):(d=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),l=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),T=e&t,y=T^e&a^g,b=u&s^~u&o,m=n+l+b+K[i]+p[i],f=d+y,n=r+m<<0,r=m+f<<0),d=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),l=(n>>>6|n<<26)^(n>>>11|n<<21)^(n>>>25|n<<7),h=r&e,y=h^r&t^T,b=n&u^~n&s,m=o+l+b+K[i+1]+p[i+1],f=d+y,o=a+m<<0,a=m+f<<0,d=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),l=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),w=a&r,y=w^a&e^h,b=o&n^~o&u,m=s+l+b+K[i+2]+p[i+2],f=d+y,s=t+m<<0,t=m+f<<0,d=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),l=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),g=t&a,y=g^t&r^w,b=s&o^~s&n,m=u+l+b+K[i+3]+p[i+3],f=d+y,u=e+m<<0,e=m+f<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+a<<0,this.h3=this.h3+r<<0,this.h4=this.h4+u<<0,this.h5=this.h5+s<<0,this.h6=this.h6+o<<0,this.h7=this.h7+n<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[u>>28&15]+HEX_CHARS[u>>24&15]+HEX_CHARS[u>>20&15]+HEX_CHARS[u>>16&15]+HEX_CHARS[u>>12&15]+HEX_CHARS[u>>8&15]+HEX_CHARS[u>>4&15]+HEX_CHARS[u&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15];return this.is224||(p+=HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]),p},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,a>>24&255,a>>16&255,a>>8&255,a&255,r>>24&255,r>>16&255,r>>8&255,r&255,u>>24&255,u>>16&255,u>>8&255,u&255,s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255];return this.is224||p.push(n>>24&255,n>>16&255,n>>8&255,n&255),p},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,a){var r,u=typeof e;if(u==="string"){var s=[],o=e.length,n=0,p;for(r=0;r<o;++r)p=e.charCodeAt(r),p<128?s[n++]=p:p<2048?(s[n++]=192|p>>6,s[n++]=128|p&63):p<55296||p>=57344?(s[n++]=224|p>>12,s[n++]=128|p>>6&63,s[n++]=128|p&63):(p=65536+((p&1023)<<10|e.charCodeAt(++r)&1023),s[n++]=240|p>>18,s[n++]=128|p>>12&63,s[n++]=128|p>>6&63,s[n++]=128|p&63);e=s}else if(u==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var i=[],d=[];for(r=0;r<64;++r){var l=e[r]||0;i[r]=92^l,d[r]=54^l}Sha256.call(this,t,a),this.update(d),this.oKeyPad=i,this.inner=!0,this.sharedMemory=a}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256)),sha256.exports}var sha256Exports=requireSha256();function base$1(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let i=0;i<t.length;i++)t[i]=255;for(let i=0;i<e.length;i++){const d=e.charAt(i),l=d.charCodeAt(0);if(t[l]!==255)throw new TypeError(d+" is ambiguous");t[l]=i}const a=e.length,r=e.charAt(0),u=Math.log(a)/Math.log(256),s=Math.log(256)/Math.log(a);function o(i){if(i instanceof Uint8Array||(ArrayBuffer.isView(i)?i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength):Array.isArray(i)&&(i=Uint8Array.from(i))),!(i instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(i.length===0)return"";let d=0,l=0,y=0;const m=i.length;for(;y!==m&&i[y]===0;)y++,d++;const f=(m-y)*s+1>>>0,b=new Uint8Array(f);for(;y!==m;){let w=i[y],g=0;for(let A=f-1;(w!==0||g<l)&&A!==-1;A--,g++)w+=256*b[A]>>>0,b[A]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");l=g,y++}let T=f-l;for(;T!==f&&b[T]===0;)T++;let h=r.repeat(d);for(;T<f;++T)h+=e.charAt(b[T]);return h}function n(i){if(typeof i!="string")throw new TypeError("Expected String");if(i.length===0)return new Uint8Array;let d=0,l=0,y=0;for(;i[d]===r;)l++,d++;const m=(i.length-d)*u+1>>>0,f=new Uint8Array(m);for(;d<i.length;){const w=i.charCodeAt(d);if(w>255)return;let g=t[w];if(g===255)return;let A=0;for(let I=m-1;(g!==0||A<y)&&I!==-1;I--,A++)g+=a*f[I]>>>0,f[I]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");y=A,d++}let b=m-y;for(;b!==m&&f[b]===0;)b++;const T=new Uint8Array(l+(m-b));let h=l;for(;b!==m;)T[h++]=f[b++];return T}function p(i){const d=n(i);if(d)return d;throw new Error("Non-base"+a+" character")}return{encode:o,decodeUnsafe:n,decode:p}}var ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base$1(ALPHABET$1);var addresses_default$1={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",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:"6u55Hqo1AsGMuJQ31VgNBfVhnpeszxXC4b6KzFaRU2JM"},sha3_2562=sha3Exports.sha3_256,isValidAptosType=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function nativeAddressToHexString$1(e,t){if(t===1)return web3.zeroPadValue(new web3.PublicKey(e).toBytes(),32);if(t===chains$1.ethereum||t===chains$1.bsc||t===chains$1.polygon||t===chains$1.avalanche||t===chains$1.arbitrum||t===chains$1.optimism||t===chains$1.base||t===chains$1.unichain||t===chains$1.linea||t===chains$1.sonic||t===chains$1.hyperevm)return web3.zeroPadValue(e,32);if(t===chains$1.aptos&&isValidAptosType(e))return`0x${sha3_2562(e)}`;if(t===chains$1.sui){let a=e.startsWith("0x")?e.substring(2):e;if(web3.Buffer$1.from(a,"hex").length!==32)throw new Error("Invalid sui address: "+e);return web3.zeroPadValue(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array$1(e){return new Uint8Array(web3.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress$1(e,t,a=!1,r=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),u=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!a&&!web3.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[s]=web3.PublicKey.findProgramAddressSync([t.toBuffer(),r.toBuffer(),e.toBuffer()],u);return s}function isValidNumericInput(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function getAmountOfFractionalAmount$1(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(!isValidNumericInput(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");const a=Math.min(8,Number(t)),r=Number(e).toFixed(a+1),u=new RegExp(`^-?\\d+(?:\\.\\d{0,${a}})?`),s=r.match(u);if(!s)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=s[0];return units.parseUnits(o,Number(t))}function getDisplayAmount(e,t){return Number(units.formatUnits(e,t))}var chains$1={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 getWormholeChainIdByName$1(e){return chains$1[e]}var evmChainIdMap$1={1:2,56:4,137:5,43114:6,42161:23,10:24,8453:30,130:44,59144:38,146:52,999:47};function getWormholeChainIdById$1(e){return evmChainIdMap$1[e]}var sdkVersion$1=[11,0,1];function getSdkVersion$1(){return sdkVersion$1.join("_")}function getGasDecimal$1(e){return e==="solana"?9:18}function getGasDecimalsInSolana$1(e){return e==="solana"?9:8}var MAX_U64$1=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob$1(e){if(e<BigInt(0)||e>MAX_U64$1)throw new Error(`Invalid u64: ${e}`);const t=web3.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit$1={value:BigInt(0),deadline:0,v:0,r:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress$1(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 MCTP_PAYLOAD_TYPE_DEFAULT$1=1,MCTP_PAYLOAD_TYPE_CUSTOM_PAYLOAD=2,MCTP_INIT_ORDER_PAYLOAD_ID$1=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1=1,FAST_MCTP_PAYLOAD_TYPE_ORDER$1=3;function getHyperCoreUSDCDepositCustomPayload(e,t,a){const r=web3.Buffer$1.alloc(109),u=web3.Buffer$1.from(hexToUint8Array$1(t));if(u.length!==20)throw new Error("Invalid destination address length, expected 20 bytes");const s=web3.Buffer$1.from(hexToUint8Array$1(a));if(s.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(s,44),r}function toQueryString$1(e){return Object.entries(e).filter(([t,a])=>a!=null&&!Array.isArray(a)).map(([t,a])=>`${encodeURIComponent(t)}=${encodeURIComponent(a)}`).join("&")}async function check5xxError$1(e){if(e.status.toString().startsWith("5")){let t;try{const a=await e.json();(a?.code||a?.statusCode)&&(a?.message||a?.msg)&&(t={code:a?.code||a?.statusCode,message:a?.message||a?.msg})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl$1(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:a,referrerBps:r}=e;let u=e.slippageBps;const o={...{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:addresses_default$1.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default$1.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(a)?a:void 0,sdkVersion:getSdkVersion$1()},n=`${addresses_default$1.PRICE_URL}/quote?`,p=toQueryString$1(o);return n+p}async function getSuggestedRelayer$1(){const e=await browserPonyfill.o(`${addresses_default$1.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default$1.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError$1(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana$1(e){const t=toQueryString$1({...e,sdkVersion:getSdkVersion$1()}),a=await browserPonyfill.o(`${addresses_default$1.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError$1(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}async function getSwapSui$1(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion$1()}),a=`${addresses_default$1.PRICE_URL}/get-swap/sui`,r=await browserPonyfill.o(a,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError$1(r);const u=await r.json();if(r.status!==200&&r.status!==201)throw u;return u}var MayanSwapArtifact_default$1={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"}]},MayanForwarderArtifact_default$1={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"}]},MayanCircleArtifact_default$1={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"}]},CCTP_TOKEN_DECIMALS$1=6;function getCCTPDomain$1(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;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs$1(e,t){const a=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),r=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("message_transmitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("sender_authority")],r),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("local_token"),e.toBytes()],r),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_messenger")],r),[p]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_minter")],r),i=getCCTPDomain$1(t),[d]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("remote_token_messenger"),web3.Buffer$1.from(i.toString())],r),[l]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],a),[y]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],r);return{messageTransmitter:u,senderAuthority:s,remoteTokenMessengerKey:d,tokenMessenger:n,tokenMinter:p,eventAuthToken:y,eventAuthCore:l,localToken:o}}function getEvmMctpBridgeParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);const n=e.cheaperChain===e.fromChain,p=nativeAddressToHexString$1(t,o),i=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),d=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),l=BigInt(e.effectiveAmountIn64),y=getCCTPDomain$1(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const m=e.mctpMayanContract;if(e.toChain==="solana"&&n)throw new Error("Cannot lock fee for transfer to solana");let f=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));return n&&(f=BigInt(0)),{lockFee:n,tokenIn:e.mctpInputContract,amountIn:l,redeemFee:i,gasDrop:d,destAddr:p,destDomain:y,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",bridgeFee:f,contractAddress:m}}function getEvmMctpBridgeTxPayload$1(e,t,a,r){const u=getEvmMctpBridgeParams$1(e,t,a),{contractAddress:s,tokenIn:o,amountIn:n,destAddr:p,lockFee:i,redeemFee:d,gasDrop:l,destDomain:y,customPayload:m,payloadType:f,bridgeFee:b}=u,T=new contract.Contract(s,MayanCircleArtifact_default$1.abi);let h,w;return i?h=T.interface.encodeFunctionData("bridgeWithLockedFee",[o,n,l,d,y,p]):h=T.interface.encodeFunctionData("bridgeWithFee",[o,n,d,l,p,y,f,m]),w=contract.toBeHex(b),{to:s,data:h,value:w,_params:u}}function getEvmMctpCreateOrderParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(r)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.mctpMayanContract,p=nativeAddressToHexString$1(t,o);let i;a?i=nativeAddressToHexString$1(a,o):i=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const d=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8));let y=BigInt(e.effectiveAmountIn64);const m=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),f=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:y,gasDrop:l,destAddr:p,destChain:o,tokenOut:b,minAmountOut:m,deadline:f,redeemFee:d,referrerAddr:i,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain)),contractAddress:n}}function getEvmMctpCreateOrderTxPayload$1(e,t,a,r){const u=getEvmMctpCreateOrderParams$1(e,t,a,r),{contractAddress:s,params:o,bridgeFee:n}=u,i=new contract.Contract(s,MayanCircleArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[o]),d=contract.toBeHex(n);return{to:s,data:i,value:d,_params:u}}function getMctpFromEvmTxPayload$1(e,t,a,r,u,s){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 o=u||ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),p=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));let i=contract.toBeHex(p);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const d=getEvmMctpCreateOrderTxPayload$1(e,t,a,r),l="forwardERC20",y=[e.fromToken.contract,d._params.params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const d=getEvmMctpBridgeTxPayload$1(e,t,r),l="forwardERC20",y=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:l,evmSwapRouterCalldata:y}=e;if(!d||!l||!y)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 m=getEvmMctpCreateOrderTxPayload$1(e,t,a,r),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}else{const m=getEvmMctpBridgeTxPayload$1(e,t,r),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}}}var MayanSwiftArtifact_default$1={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 decodeInstructionArgs(e,t){const a=t.subarray(0,8),r=e.instructions.find(n=>web3.Buffer$1.from(n.discriminator).toString("hex").toLowerCase()===web3.Buffer$1.from(a).toString("hex").toLowerCase());if(!r)throw new Error(`Instruction ${web3.Buffer$1.from(a).toString("hex")} not in IDL`);const u=r.args||[],s={};let o=8;for(const n of u){const[p,i]=decodeType(n.type,t,o,e);s[n.name]=p,o=i}return s}function decodeType(e,t,a,r){if(typeof e=="string")switch(e){case"u8":return[t.readUInt8(a),a+1];case"u16":return[t.readUInt16LE(a),a+2];case"u32":return[t.readUInt32LE(a),a+4];case"u64":return[t.readBigUInt64LE(a),a+8];case"bool":return[t.readUInt8(a)!==0,a+1];case"pubkey":{const u=t.subarray(a,a+32);return[new web3.PublicKey(u),a+32]}default:throw new Error(`Unknown primitive: ${e}`)}if("array"in e){const[u,s]=e.array,o=[];let n=a;for(let p=0;p<s;p++){const[i,d]=decodeType(u,t,n,r);o.push(i),n=d}return[o,n]}if("defined"in e){const u=r.types?.find(s=>s.name===e.defined.name);if(!u)throw new Error(`Type ${e.defined} not found`);if(u.type.kind==="struct"){const s={};let o=a;for(const n of u.type.fields){const[p,i]=decodeType(n.type,t,o,r);s[n.name]=p,o=i}return[s,o]}else{const s=t.readUInt8(a),o=u.type.variants[s];if(!o)throw new Error(`Invalid enum index ${s}`);let n=a+1;const p={variant:o.name};if(o.fields&&o.fields.length){const i=[];for(const d of o.fields){const[l,y]=decodeType(d.type,t,n,r);i.push(l),n=y}p.fields=i}return[p,n]}}if("option"in e)return t.readUInt8(a)===0?[null,a+1]:decodeType(e.option,t,a+1,r);if("vec"in e){const u=t.readUInt32LE(a);let s=a+4;const o=[];for(let n=0;n<u;n++){const[p,i]=decodeType(e.vec,t,s,r);o.push(p),s=i}return[o,s]}throw new Error(`Unsupported type shape: ${JSON.stringify(e)}`)}function decodeJupiterV6InsArgs(e){return decodeInstructionArgs(jupV6Idl,web3.Buffer$1.from(e))}var jupV6Idl={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 createAssociatedTokenAccountInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),s=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new web3.TransactionInstruction({keys:o,programId:s,data:web3.Buffer$1.from([1])})}var TOKEN_ACCOUNT_LEN$1=165;async function createInitializeRandomTokenAccountInstructions$1(e,t,a,r,u,s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const o=[],n=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN$1);return o.push(web3.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:u.publicKey,lamports:n,space:TOKEN_ACCOUNT_LEN$1,programId:s})),o.push(new web3.TransactionInstruction({keys:[{pubkey:u.publicKey,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:s,data:web3.Buffer$1.from([1])})),o}var ApproveInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createApproveInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(ApproveInstructionData$1.span);return ApproveInstructionData$1.encode({instruction:4,amount:getSafeU64Blob$1(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var SyncNativeInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);function createSyncNativeInstruction$1(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],a=web3.Buffer$1.alloc(SyncNativeInstructionData$1.span);return SyncNativeInstructionData$1.encode({instruction:17},a),new web3.TransactionInstruction({keys:t,programId:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),data:a})}web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);var SplTransferInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createSplTransferInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(SplTransferInstructionData$1.span);return SplTransferInstructionData$1.encode({instruction:3,amount:getSafeU64Blob$1(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var solMint$1=new web3.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo$1(e){return new web3.TransactionInstruction({programId:new web3.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new web3.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:web3.Buffer$1.from(e.data,"base64")})}async function getAddressLookupTableAccounts$1(e,t){return(await t.getMultipleAccountsInfo(e.map(r=>new web3.PublicKey(r)))).reduce((r,u,s)=>{const o=e[s];if(u){const n=new web3.AddressLookupTableAccount({key:new web3.PublicKey(o),state:web3.AddressLookupTableAccount.deserialize(u.data)});r.push(n)}return r},new Array)}function decentralizeClientSwapInstructions$1(e,t){const a=deserializeInstructionInfo$1(e.swapInstruction),r=e.cleanupInstruction?deserializeInstructionInfo$1(e.cleanupInstruction):null,u=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo$1):[],s=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo$1):[];return{swapInstruction:a,cleanupInstruction:r,computeBudgetInstructions:u,setupInstructions:s,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData$1(e){let t=`global:${e}`;return web3.Buffer$1.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer$1(){let e;try{const t=await getSuggestedRelayer$1();e=new web3.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=web3.SystemProgram.programId}return e}function validateJupCleanupInstruction$1(e,t){if(e){if(!e.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!e.programId.equals(new web3.PublicKey(addresses_default$1.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 validateJupSetupInstructions$1(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(a=>{if(!a.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))&&!a.programId.equals(web3.SystemProgram.programId)&&!a.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!a.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(a.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(a.data).length===1){if(Uint8Array.from(a.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(a.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(a.programId.equals(web3.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const r=getAssociatedTokenAddress$1(solMint$1,t,!0);if(a.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!a.keys[1].pubkey.equals(r))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(a.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction$1(e,t,a=!1){const r=new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");if(!e.programId.equals(r))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("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")===getAnchorInstructionData$1("route").toString("hex")){if(a){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 validateJupSwapInstructionData(e,t){const a=decodeJupiterV6InsArgs(Uint8Array.from(e.data));if(a.in_amount>BigInt(t.effectiveAmountIn64))throw new Error("Invalid swap instruction:: amount in");const r=getAmountOfFractionalAmount$1(t.minAmountOut,t.toToken.decimals);if(a.quoted_out_amount-a.quoted_out_amount*BigInt(a.slippage_bps)/10000n<r)throw new Error("Invalid swap instruction:: quote expired");if(a.platform_fee_bps!==t.referrerBps)throw new Error("Invalid swap instruction:: platform fee")}function validateJupComputeBudgetInstructions$1(e){e.forEach(t=>{if(!t.programId.equals(web3.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 validateJupSwap$1(e,t,a,r,u=!1){validateJupComputeBudgetInstructions$1(e.computeBudgetInstructions),validateJupSetupInstructions$1(e.setupInstructions,a),validateJupSwapInstruction$1(e.swapInstruction,t,u),validateJupCleanupInstruction$1(e.cleanupInstruction,r)}function createTransferAllAndCloseInstruction$1(e,t,a,r,u,s=new web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new web3.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}],programId:new web3.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData$1("transfer_all_and_close")})}function createPayloadWriterCreateInstruction(e,t,a,r){const u=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1}],s=14+a.length,o=web3.Buffer$1.alloc(s);return o.set(getAnchorInstructionData$1("create_simple"),0),o.writeUint16LE(r,8),o.writeUint32LE(a.length,10),o.set(a,14),new web3.TransactionInstruction({keys:u,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:o})}function createPayloadWriterCloseInstruction(e,t,a){const r=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],s=web3.Buffer$1.alloc(10);return s.set(getAnchorInstructionData$1("close"),0),s.writeUint16LE(a,8),new web3.TransactionInstruction({keys:r,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:s})}function sandwichInstructionInCpiProxy(e,t=!1){if(t)return e;const a=new web3.PublicKey(addresses_default$1.CPI_PROXY_PROGRAM_ID),r=web3.Buffer$1.alloc(4);r.writeUint32LE(e.data.length,0);const u=web3.Buffer$1.concat([getAnchorInstructionData$1("foreign_program_invoker"),r,e.data]),s=[{pubkey:e.programId,isSigner:!1,isWritable:!1},{pubkey:e.programId,isSigner:!1,isWritable:!1}].concat(e.keys.map(o=>({pubkey:o.pubkey,isSigner:o.isSigner,isWritable:o.isWritable})));return new web3.TransactionInstruction({keys:s,programId:a,data:u})}function getWormholePDAs$1(e){const t=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),a=new web3.PublicKey(e),[r]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Bridge")],t),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("emitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Sequence"),u.toBuffer()],t),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("fee_collector")],t);return{bridgeConfig:r,sequenceKey:s,feeCollector:o,emitter:u}}var MCTPBridgeWithFeeLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction$1(e,t,a,r,u){const s=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),d=new web3.PublicKey(r),l=new web3.PublicKey(a),y=getAssociatedTokenAddress$1(l,e,!0);let m;u&&u>BigInt(0)?m=getAssociatedTokenAddress$1(l,d,!1):m=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const f=getCCTPBridgePDAs$1(l,t),b=getWormholePDAs$1(addresses_default$1.MCTP_PROGRAM_ID),T=web3.Keypair.generate(),h=web3.Keypair.generate(),w=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!0},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],g=web3.Buffer$1.alloc(MCTPBridgeWithFeeLayout$1.span);return MCTPBridgeWithFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_with_fee")},g),{instruction:new web3.TransactionInstruction({keys:w,data:g,programId:i}),signers:[T,h]}}var MctpBridgeLockFeeLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction$1(e,t,a,r,u){const s=[null,null],o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),d=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),l=new web3.PublicKey(r),y=new web3.PublicKey(a),m=getAssociatedTokenAddress$1(y,e,!0),f=getCCTPBridgePDAs$1(y,t),b=web3.Keypair.generate(),[T]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("LOCKED_FEE"),y.toBuffer(),b.publicKey.toBytes()],d);let h;u&&u>BigInt(0)?h=getAssociatedTokenAddress$1(y,l,!1):h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const w=getAssociatedTokenAddress$1(y,T,!0);s[0]=createAssociatedTokenAccountInstruction$1(l,w,T,y);const g=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:w,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=web3.Buffer$1.alloc(MctpBridgeLockFeeLayout$1.span);MctpBridgeLockFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_locked_fee")},A);const I=new web3.TransactionInstruction({keys:g,data:A,programId:d});return s[1]=I,{instructions:s,signer:b}}var MctpInitSwapLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpInitSwapInstruction$1(e,t,a,r,u){const s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),i=new web3.PublicKey(r),d=new web3.PublicKey(a),l=getAssociatedTokenAddress$1(d,e,!0),y=getCCTPBridgePDAs$1(d,t),m=web3.Keypair.generate(),[f]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],p);let b;u&&u>BigInt(0)?b=getAssociatedTokenAddress$1(d,i,!1):b=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const T=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:y.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:y.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:y.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:y.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:y.localToken,isWritable:!0,isSigner:!1},{pubkey:y.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:y.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:m.publicKey,isWritable:!0,isSigner:!0},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=web3.Buffer$1.alloc(MctpInitSwapLayout$1.span);return MctpInitSwapLayout$1.encode({instruction:getAnchorInstructionData$1("create_order")},h),{instruction:new web3.TransactionInstruction({keys:T,data:h,programId:p}),signer:m}}var MctpBridgeLedgerLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode")]);function createMctpBridgeLedgerInstruction$1(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress$1(a,e.ledger,!0),u=getWormholeChainIdByName$1(e.toChain),s=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,u))),o=getSafeU64Blob$1(e.amountInMin64),n=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),p=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),i=getSafeU64Blob$1(e.feeSolana),d=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),l=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(d),isWritable:!1,isSigner:!1}],y=web3.Buffer$1.alloc(MctpBridgeLedgerLayout$1.span);return MctpBridgeLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_bridge_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},y),new web3.TransactionInstruction({keys:l,data:y,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef")]);function createMctpSwapLedgerInstruction$1(e){const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress$1(a,e.ledger,!0),u=getWormholeChainIdByName$1(e.toChain),s=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,u))),o=getSafeU64Blob$1(e.amountInMin64),n=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),p=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),i=getSafeU64Blob$1(e.feeSolana),d=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.tokenOut,u))),l=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),y=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),m=getSafeU64Blob$1(e.deadline),f=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=web3.Buffer$1.alloc(MctpSwapLedgerLayout$1.span);return MctpSwapLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_order_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:d,refAddress:l,amountOutMin:y,deadline:m,feeRateRef:e.feeRateRef},b),new web3.TransactionInstruction({keys:f,data:b,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions$1(e,t,a,r,u,s={}){const o=s?.forceSkipCctpInstructions||!1,n=s?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let p=[],i=[],d=[],l=[],y=[],m=[],f=[];const b=web3.Keypair.generate();let T=null;p.push(addresses_default$1.LOOKUP_TABLE);const h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),w=new web3.PublicKey(t),g=web3.Keypair.generate(),A=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const I=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[M]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from(I),w.toBytes(),g.publicKey.toBytes()],h),x=getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),M,!0),F=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const S=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(w,x,M,new web3.PublicKey(e.mctpInputContract)))),i.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),w,n),x,w,BigInt(e.effectiveAmountIn64)))),e.hasAuction){if(i.push(sandwichInstructionInCpiProxy(createMctpSwapLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps}),s.skipProxyMayanInstructions)),!o){const{instruction:E,signer:N}=createMctpInitSwapInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E,s.skipProxyMayanInstructions)),d.push(N)}}else if(i.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:F,referrerAddress:r}),s.skipProxyMayanInstructions)),!o)if(F==="WITH_FEE"){const{instruction:E,signers:N}=createMctpBridgeWithFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E,s.skipProxyMayanInstructions)),d.push(...N)}else{const{instructions:E,signer:N}=createMctpBridgeLockFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E[0])),i.push(sandwichInstructionInCpiProxy(E[1],s.skipProxyMayanInstructions)),d.push(N)}}else{const S=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:M.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":F,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?b.publicKey.toString():null}),E=decentralizeClientSwapInstructions$1(S);s?.separateSwapTx&&S.maxAccountsFilled?(validateJupSwap$1(E,b.publicKey,w),f=await createInitializeRandomTokenAccountInstructions$1(u,w,new web3.PublicKey(e.mctpInputContract),w,b),m.push(...E.computeBudgetInstructions),E.setupInstructions&&m.push(...E.setupInstructions),m.push(E.swapInstruction),E.cleanupInstruction&&m.push(E.cleanupInstruction),y.push(...E.addressLookupTableAddresses),i.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(w,x,M,new web3.PublicKey(e.mctpInputContract)))),i.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(w,new web3.PublicKey(e.mctpInputContract),b.publicKey,x,w)))):(validateJupSwap$1(E,x,w),i.push(...E.computeBudgetInstructions),E.setupInstructions&&i.push(...E.setupInstructions.map(W=>sandwichInstructionInCpiProxy(W))),i.push(sandwichInstructionInCpiProxy(E.swapInstruction)),E.cleanupInstruction&&i.push(sandwichInstructionInCpiProxy(E.cleanupInstruction)),p.push(...E.addressLookupTableAddresses));const N=m.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(i.push(sandwichInstructionInCpiProxy(createMctpSwapLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps}),s.skipProxyMayanInstructions)),m.length>0){const{instruction:W,signer:L}=createMctpInitSwapInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W,s.skipProxyMayanInstructions)),d.push(L)}}else if(i.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),mode:F,referrerAddress:r}),s.skipProxyMayanInstructions)),m.length>0)if(F==="WITH_FEE"){const{instruction:W,signers:L}=createMctpBridgeWithFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W,s.skipProxyMayanInstructions)),d.push(...L)}else{const{instructions:W,signer:L}=createMctpBridgeLockFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W[0])),i.push(sandwichInstructionInCpiProxy(W[1],s.skipProxyMayanInstructions)),d.push(L)}}const D=await getAddressLookupTableAccounts$1(p.concat(y),u);if(l=D.slice(0,p.length),m.length>0){const S=D.slice(p.length);T={messageV0:{payerKey:w,instructions:m,addressLookupTableAccounts:S},createTmpTokenAccountIxs:f,tmpTokenAccount:b}}return{instructions:i,signers:d,lookupTables:l,swapMessageV0Params:T}}function createSwiftOrderHash$1(e,t,a,r,u){const o=web3.Buffer$1.alloc(239);let n=0;const p=getWormholeChainIdByName$1(e.fromChain),i=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(t,p)));o.set(i,0),n+=32,o.writeUInt16BE(p,n),n+=2;const d=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.swiftInputContract,p),l=web3.Buffer$1.from(hexToUint8Array$1(d));o.set(l,n),n+=32;const y=getWormholeChainIdByName$1(e.toChain),m=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(a,y)));o.set(m,n),n+=32,o.writeUInt16BE(y,n),n+=2;const f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,y),b=web3.Buffer$1.from(hexToUint8Array$1(f));o.set(b,n),n+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(e.toToken.decimals,8)),n),n+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),n),n+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.deadline64),n),n+=8;const T=r?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(r,y))):web3.SystemProgram.programId.toBuffer();o.set(T,n),n+=32,o.writeUInt8(e.referrerBps,n),n+=1;const h=e.protocolBps;o.writeUInt8(h,n),n+=1,o.writeUInt8(e.swiftAuctionMode,n),n+=1;const w=web3.Buffer$1.from(hexToUint8Array$1(u));if(o.set(w,n),n+=32,n!==239)throw new Error(`Invalid order data size: ${n}`);const g=web3.keccak256(o);return web3.Buffer$1.from(hexToUint8Array$1(g))}var InitSwiftLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.u8("nativeInput"),web3.LayoutExports.blob(8,"feeSubmit"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"feeRefund"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef"),web3.LayoutExports.u8("feeRateMayan"),web3.LayoutExports.u8("auctionMode"),web3.LayoutExports.blob(32,"randomKey")]);function createSwiftInitInstruction$1(e){const{quote:t}=e,a=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(t.swiftInputContract),r=getWormholeChainIdByName$1(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:a,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],s=web3.Buffer$1.alloc(InitSwiftLayout$1.span),o=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),n=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount$1(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout$1.encode({instruction:getAnchorInstructionData$1("init_order"),amountInMin:getSafeU64Blob$1(n),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob$1(BigInt(t.submitRelayerFee64)),destAddress:web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),destinationChain:r,tokenOut:web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(t.toToken.contract,r))),amountOutMin:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.gasDrop,Math.min(getGasDecimal$1(t.toChain),8))),feeCancel:getSafeU64Blob$1(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob$1(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob$1(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},s),new web3.TransactionInstruction({keys:u,data:s,programId:new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions$1(e,t,a,r,u,s={}){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 o=s.allowSwapperOffCurve||!1;let n=[],p=[],i=[];i.push(addresses_default$1.LOOKUP_TABLE);let d=[],l=[],y=[];const m=web3.Keypair.generate();let f=null;const b=new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID),T=new web3.PublicKey(t),h=web3.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const w=BigInt(e.deadline64),g=createSwiftOrderHash$1(e,t,a,r,h.publicKey.toBuffer().toString("hex")),[A]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("STATE_SOURCE"),g],b),I=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.swiftInputContract),M=getAssociatedTokenAddress$1(I,A,!0),x=e.gasless?new web3.PublicKey(e.relayer):T,F=getAssociatedTokenAddress$1(I,x,!1);if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(x,M,A,I))),e.swiftInputContract===providerJsonrpc.ZeroAddress?n.push(sandwichInstructionInCpiProxy(web3.SystemProgram.transfer({fromPubkey:T,toPubkey:M,lamports:BigInt(e.effectiveAmountIn64)})),sandwichInstructionInCpiProxy(createSyncNativeInstruction$1(M))):n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(I,T,o),M,T,BigInt(e.effectiveAmountIn64))));else{const D=await getSwapSolana$1({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${g.toString("hex")}`,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?m.publicKey.toString():null}),S=decentralizeClientSwapInstructions$1(D);s?.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap$1(S,m.publicKey,T),y=await createInitializeRandomTokenAccountInstructions$1(u,x,I,T,m),l.push(...S.computeBudgetInstructions),S.setupInstructions&&l.push(...S.setupInstructions),l.push(S.swapInstruction),S.cleanupInstruction&&l.push(S.cleanupInstruction),d.push(...S.addressLookupTableAddresses),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(x,M,A,I))),n.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(T,I,m.publicKey,M,x)))):(validateJupSwap$1(S,M,T),n.push(...S.computeBudgetInstructions),S.setupInstructions&&n.push(...S.setupInstructions.map(E=>sandwichInstructionInCpiProxy(E))),n.push(sandwichInstructionInCpiProxy(S.swapInstruction)),S.cleanupInstruction&&n.push(sandwichInstructionInCpiProxy(S.cleanupInstruction)),i.push(...S.addressLookupTableAddresses))}n.push(sandwichInstructionInCpiProxy(createSwiftInitInstruction$1({quote:e,state:A,trader:T,stateAccount:M,randomKey:h.publicKey,relayerAccount:F,relayer:x,destinationAddress:a,deadline:w,referrerAddress:r}),s.skipProxyMayanInstructions));const $=await getAddressLookupTableAccounts$1(i.concat(d),u);if(p=$.slice(0,i.length),l.length>0){const D=$.slice(i.length);f={messageV0:{payerKey:x,instructions:l,addressLookupTableAccounts:D},createTmpTokenAccountIxs:y,tmpTokenAccount:m}}return{instructions:n,signers:[],lookupTables:p,swapMessageV0Params:f}}async function createHyperCoreDepositFromSolanaInstructions(e,t,a,r,u,s={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!s?.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 o=s.allowSwapperOffCurve||!1;let n=[],p=[],i=[],d=[];d.push(addresses_default$1.LOOKUP_TABLE);let l=[],y=[],m=[];const f=web3.Keypair.generate();let b=null;const T=new web3.PublicKey(t),h=new web3.PublicKey(e.hyperCoreParams.initiateTokenContract),w=Math.floor(Math.random()*65e3),[g]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("PAYLOAD"),T.toBuffer(),(()=>{const D=web3.Buffer$1.alloc(2);return D.writeUInt16LE(w,0),D})()],new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID)),A=getHyperCoreUSDCDepositCustomPayload(e,a,s.usdcPermitSignature),I=web3.Keypair.generate(),M=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),[x]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("LEDGER_BRIDGE"),T.toBytes(),I.publicKey.toBytes()],M),F=getAssociatedTokenAddress$1(h,x,!0);if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract){e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,F,x,h))),n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(h,T,o),F,T,BigInt(e.hyperCoreParams.bridgeAmountUSDC64)))),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCreateInstruction(T,g,A,w))),n.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:x,randomKey:I.publicKey,swapperAddress:T.toString(),mintAddress:h.toString(),mode:"WITH_FEE",feeSolana:BigInt(0),amountInMin64:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),customPayload:g,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}),s.skipProxyMayanInstructions));const{instruction:D,signers:S}=createMctpBridgeWithFeeInstruction$1(x,"arbitrum",e.hyperCoreParams.initiateTokenContract,T.toString(),BigInt(0));n.push(sandwichInstructionInCpiProxy(D,s.skipProxyMayanInstructions)),p.push(...S),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCloseInstruction(T,g,w)))}else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.hyperCoreParams.initiateTokenContract,userWallet:T.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:"HC_USDC",fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:f.publicKey.toString()}),S=decentralizeClientSwapInstructions$1(D);if(s?.separateSwapTx&&D.maxAccountsFilled)validateJupSwap$1(S,f.publicKey,T),m=await createInitializeRandomTokenAccountInstructions$1(u,T,h,T,f),y.push(...S.computeBudgetInstructions),S.setupInstructions&&y.push(...S.setupInstructions),y.push(S.swapInstruction),S.cleanupInstruction&&y.push(S.cleanupInstruction),l.push(...S.addressLookupTableAddresses);else{validateJupSwap$1(S,f.publicKey,T),n.push(...S.computeBudgetInstructions);const Y=await createInitializeRandomTokenAccountInstructions$1(u,T,h,T,f);n.push(...Y.map(G=>sandwichInstructionInCpiProxy(G))),p.push(f),S.setupInstructions&&n.push(...S.setupInstructions.map(G=>sandwichInstructionInCpiProxy(G))),n.push(sandwichInstructionInCpiProxy(S.swapInstruction)),S.cleanupInstruction&&n.push(sandwichInstructionInCpiProxy(S.cleanupInstruction)),d.push(...S.addressLookupTableAddresses)}const E=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);let N=BigInt(e.hyperCoreParams.bridgeAmountUSDC64);y.length>0&&(N=N-BigInt(e.solanaRelayerFee64)),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,F,x,new web3.PublicKey(e.mctpInputContract)))),n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(f.publicKey,F,T,N)));const W=getAssociatedTokenAddress$1(h,T,o),L=await u.getAccountInfo(W);if((!L||!L.data)&&n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,W,T,h))),n.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(T,h,f.publicKey,W,T))),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCreateInstruction(T,g,A,w))),n.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:x,swapperAddress:T.toString(),mintAddress:h.toString(),randomKey:I.publicKey,mode:"WITH_FEE",feeSolana:E,amountInMin64:N,customPayload:g,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}),s.skipProxyMayanInstructions)),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCloseInstruction(T,g,w))),y.length>0){const{instruction:Y,signers:G}=createMctpBridgeWithFeeInstruction$1(x,"arbitrum",e.hyperCoreParams.initiateTokenContract,T.toString(),BigInt(0));n.push(sandwichInstructionInCpiProxy(Y,s.skipProxyMayanInstructions)),p.push(...G)}}const $=await getAddressLookupTableAccounts$1(d.concat(l),u);if(i=$.slice(0,d.length),y.length>0){const D=$.slice(d.length);b={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:D},createTmpTokenAccountIxs:m,tmpTokenAccount:f}}return{instructions:n,signers:p,lookupTables:i,swapMessageV0Params:b}}async function createMonoChainFromSolanaInstructions(e,t,a,r,u,s={}){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(a.startsWith("0x"))throw new Error("Destination address should not be EVM address");try{new web3.PublicKey(a)}catch{throw new Error("Invalid destination address: "+a)}let o=[],n=[],p=[];const i=new web3.PublicKey(t),d=new web3.PublicKey(a),l=e.toToken.contract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.toToken.contract),y=getAssociatedTokenAddress$1(l,d,!0,e.toToken.standard==="spl2022"?new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID):new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)),m=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),f=await getSwapSolana$1({userWallet:t,destinationWallet:a,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,middleToken:e.toToken.contract,amountIn64:e.effectiveAmountIn64,expectedAmountOut64:String(m),depositMode:"MONO_CHAIN",referrerAddress:r,referrerBps:e.referrerBps}),b=decentralizeClientSwapInstructions$1(f);return validateJupSwap$1(b,y,i,d,i.equals(d)),validateJupSwapInstructionData(b.swapInstruction,e),o.push(...b.computeBudgetInstructions),b.setupInstructions&&o.push(...b.setupInstructions.map(T=>sandwichInstructionInCpiProxy(T))),o.push(sandwichInstructionInCpiProxy(b.swapInstruction,s?.skipProxyMayanInstructions)),b.cleanupInstruction&&o.push(sandwichInstructionInCpiProxy(b.cleanupInstruction)),p.push(...b.addressLookupTableAddresses),p.push(addresses_default$1.LOOKUP_TABLE),n=await getAddressLookupTableAccounts$1(p,u),{instructions:o,signers:[],lookupTables:n,swapMessageV0Params:null}}var STATE_SIZE$1=420,SwapLayout$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.u8("stateNonce"),web3.LayoutExports.blob(8,"amount"),web3.LayoutExports.blob(8,"minAmountOut"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(8,"feeSwap"),web3.LayoutExports.blob(8,"feeReturn"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"destinationAddress"),web3.LayoutExports.u8("unwrapRedeem"),web3.LayoutExports.u8("unwrapRefund"),web3.LayoutExports.u8("mayanFeeNonce"),web3.LayoutExports.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions$1(e,t,a,r,u,s={}){const o=getQuoteSuitableReferrerAddress$1(e,r);if(e.fromChain==="hypercore")throw new Error("HyperCore as source chain is not supported in Solana");if(e.toChain==="hypercore")return createHyperCoreDepositFromSolanaInstructions(e,t,a,o,u,s);if(e.type==="MCTP")return createMctpFromSolanaInstructions$1(e,t,a,o,u,s);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions$1(e,t,a,o,u,s);if(e.type==="MONO_CHAIN")return createMonoChainFromSolanaInstructions(e,t,a,o,u,s);let n=[];const p=u??new web3.Connection("https://rpc.ankr.com/solana"),i=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),d=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),l=new web3.PublicKey(t),y=new web3.PublicKey(addresses_default$1.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let m;o?m=new web3.PublicKey(o):m=web3.SystemProgram.programId;const[f,b]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAYANFEE")],i),[T,h]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("REFERRERFEE"),m.toBuffer()],i),w=web3.Keypair.generate(),g=web3.Keypair.generate(),[A,I]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("V2STATE"),web3.Buffer$1.from(w.publicKey.toBytes()),web3.Buffer$1.from(g.publicKey.toBytes())],i),M=new web3.PublicKey(e.fromToken.mint),x=new web3.PublicKey(e.toToken.mint),F=getAssociatedTokenAddress$1(M,l),$=getAssociatedTokenAddress$1(M,A,!0),[[D,S],E,N]=await Promise.all([p.getMultipleAccountsInfo([F,$],"finalized"),p.getMinimumBalanceForRentExemption(STATE_SIZE$1),decideRelayer$1()]);(!D||D.data.length===0)&&n.push(createAssociatedTokenAccountInstruction$1(l,F,l,M)),(!S||S.data.length===0)&&n.push(createAssociatedTokenAccountInstruction$1(l,$,A,M)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:F,lamports:BigInt(e.effectiveAmountIn64)})),n.push(createSyncNativeInstruction$1(F)));const W=BigInt(e.effectiveAmountIn64),L=web3.Keypair.generate();n.push(createApproveInstruction$1(F,L.publicKey,l,W)),n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:L.publicKey,lamports:E}));const Y=[{pubkey:L.publicKey,isWritable:!1,isSigner:!0},{pubkey:w.publicKey,isWritable:!1,isSigner:!0},{pubkey:g.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:F,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:x,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:L.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],G=getWormholeChainIdByName$1(e.toChain);if(G===1){const R=await p.getAccountInfo(new web3.PublicKey(a));if(R&&R.owner&&R.owner.equals(d))throw new Error("Destination address is not about token account. It should be a owner address")}const z=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(a,G))),j=getAmountOfFractionalAmount$1(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount$1(e.swapRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount$1(e.redeemRelayerFee,e.mintDecimals.to),U=getAmountOfFractionalAmount$1(e.refundRelayerFee,e.mintDecimals.from),X=getAmountOfFractionalAmount$1(e.gasDrop,getGasDecimalsInSolana$1(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,c=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const C=BigInt(e.deadline64),_=web3.Buffer$1.alloc(SwapLayout$1.span),P={instruction:101,stateNonce:I,amount:getSafeU64Blob$1(W),minAmountOut:getSafeU64Blob$1(j),deadline:getSafeU64Blob$1(C),feeSwap:getSafeU64Blob$1(Z),feeReturn:getSafeU64Blob$1(Q),feeCancel:getSafeU64Blob$1(U),gasDrop:getSafeU64Blob$1(X),destinationChain:G,destinationAddress:z,unwrapRedeem:J?1:0,unwrapRefund:c?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout$1.encode(P,_);const k=new web3.TransactionInstruction({keys:Y,data:_,programId:i});return n.push(k),{instructions:n,signers:[L,w,g],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams$1(e,t,a,r,u){const s=getWormholeChainIdById$1(Number(u)),o=getWormholeChainIdByName$1(e.fromChain),n=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${o} !== ${s}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==n)throw new Error(`Destination chain ID mismatch: ${n} != ${e.toToken.wChainId}`);const p=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const i=BigInt(e.deadline64),d=e.swiftInputContract,l=BigInt(e.effectiveAmountIn64);let y;r?y=nativeAddressToHexString$1(r,n):y=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const m=nativeAddressToHexString$1(web3.Keypair.generate().publicKey.toString(),1),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1):nativeAddressToHexString$1(e.toToken.contract,n),b=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),T=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),h=nativeAddressToHexString$1(a,n),w={trader:nativeAddressToHexString$1(t,o),tokenOut:f,minAmountOut:b,gasDrop:T,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:i,destAddr:h,destChainId:n,referrerAddr:y,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:m};return{contractAddress:p,tokenIn:d,amountIn:l,order:w}}function getSwiftFromEvmTxPayload$1(e,t,a,r,u,s){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 o=ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{tokenIn:p,amountIn:i,order:d,contractAddress:l}=getEvmSwiftParams$1(e,t,a,r,u);let y;const m=new contract.Contract(l,MayanSwiftArtifact_default$1.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?y=m.interface.encodeFunctionData("createOrderWithEth",[d]):y=m.interface.encodeFunctionData("createOrderWithToken",[p,i,d]);let f,b,T;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="forwardEth",b=[l,y],T=contract.toBeHex(i)):(f="forwardERC20",b=[p,i,o,l,y],T=contract.toBeHex(0));else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[i,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(i)):(f="swapAndForwardERC20",b=[A,i,o,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(0))}return{data:n.interface.encodeFunctionData(f,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:T,chainId:u,_forwarder:{method:f,params:b}}}var ShuttleArtifact_default$1={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:[]}]},shuttleConstants$1={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 writeBigIntTo16BytesBuffer$1(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 a=web3.Buffer$1.alloc(16);for(let r=15;r>=0;r--)a[r]=Number(e&0xFFn),e>>=8n;return a}function getShuttleParams$1(e,t,a){const{shuttleParams:r}=e;if(!r)throw new Error("Swap layer params are missing in quote response");const u=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);let n=[];n.push(shuttleConstants$1.FAST_MODE_FLAG);const p=web3.Buffer$1.alloc(8);p.writeBigUInt64BE(BigInt(r.maxLLFee));const i=p.subarray(2);n.push(...i);const d=web3.Buffer$1.alloc(4);d.writeUInt32BE(r.fastTransferDeadline),n.push(...d),n.push(shuttleConstants$1.RELAY_REDEEM_MODE);const l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(6,getGasDecimal$1(e.toChain))),y=web3.Buffer$1.alloc(8);y.writeBigUInt64BE(l);const m=y.subarray(4);n.push(...m);const f=web3.Buffer$1.alloc(8);f.writeBigUInt64BE(BigInt(r.maxRelayingFee));const b=f.subarray(2);n.push(...b),n.push(shuttleConstants$1.EXACT_IN_FLAG),n.push(shuttleConstants$1.USDC_INPUT_TOKEN_TYPE);const T=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){n.push(...Array(8).fill(0));const w=web3.Buffer$1.alloc(8);w.writeBigUInt64BE(T),n.push(...w)}else n.push(...Array(16).fill(0));if(n.push(shuttleConstants$1.PRE_APPROVED_ACQUIRE_MODE),r.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)n.push(shuttleConstants$1.OUTPUT_NATIVE_MODE);else{n.push(shuttleConstants$1.OUTPUT_OTHER_MODE);const I=web3.Buffer$1.from(nativeAddressToHexString$1(e.toToken.contract,o).slice(2),"hex");n.push(...I)}const w=web3.Buffer$1.alloc(4);w.writeUInt32BE(Number(BigInt(e.deadline64))),n.push(...w);const g=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){n.push(...Array(8).fill(0));const I=web3.Buffer$1.alloc(8);I.writeBigUInt64BE(g),n.push(...I)}else{const I=writeBigIntTo16BytesBuffer$1(g);n.push(...I)}const A=web3.Buffer$1.from(r.path.slice(2),"hex");n.push(...A)}else n.push(shuttleConstants$1.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString$1(t,o),destChainId:o,serializedParams:`0x${web3.Buffer$1.from(n).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:T,bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain))}}function getShuttleFromEvmTxPayload$1(e,t,a,r){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const u=ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{destAddr:o,destChainId:n,serializedParams:p,contractAddress:i,amountIn:d,bridgeFee:l}=getShuttleParams$1(e,t,a);let y;y=new contract.Contract(i,ShuttleArtifact_default$1.abi).interface.encodeFunctionData("initiate",[o,d,n,p]);let f,b,T;if(e.fromToken.contract===e.shuttleInputContract)f="forwardERC20",b=[e.shuttleInputContract,d,u,i,y],T=contract.toBeHex(l);else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[d,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(d)):(f="swapAndForwardERC20",b=[A,d,u,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(l))}return{data:s.interface.encodeFunctionData(f,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:T,chainId:a,_forwarder:{method:f,params:b}}}var MayanFastMctpArtifact_default$1={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 getEvmFastMctpBridgeParams$1(e,t,a,r,u){const s=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain),n=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);const p=nativeAddressToHexString$1(t,n),i=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),d=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),l=BigInt(e.circleMaxFee64),y=BigInt(e.effectiveAmountIn64),m=getCCTPDomain$1(e.toChain);let f;if(a?f=nativeAddressToHexString$1(a,n):f=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:y,redeemFee:i,gasDrop:d,destAddr:p,destDomain:m,referrerAddr:f,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:l,contractAddress:b}}function getEvmFastMctpBridgeTxPayload$1(e,t,a,r,u){const s=getEvmFastMctpBridgeParams$1(e,t,a,r),{contractAddress:o,tokenIn:n,amountIn:p,destAddr:i,redeemFee:d,gasDrop:l,circleMaxFee:y,referrerAddr:m,referrerBps:f,destDomain:b,customPayload:T,minFinalityThreshold:h,payloadType:w}=s,g=new contract.Contract(o,MayanFastMctpArtifact_default$1.abi);let A,I;return A=g.interface.encodeFunctionData("bridge",[n,p,d,y,l,i,b,m,f,w,h,T]),I=contract.toBeHex(0),{to:o,data:A,value:I,_params:s}}function getEvmFastMctpCreateOrderParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(r)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.fastMctpMayanContract,p=nativeAddressToHexString$1(t,o);let i;a?i=nativeAddressToHexString$1(a,o):i=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const d=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=BigInt(e.refundRelayerFee64),y=BigInt(e.circleMaxFee64),m=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),f=getCCTPDomain$1(e.toChain),b=BigInt(e.effectiveAmountIn64),T=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),w=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:y,destDomain:f,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER$1,destAddr:p,tokenOut:w,amountOutMin:T,gasDrop:m,redeemFee:d,refundFee:l,deadline:h,referrerAddr:i,referrerBps:e.referrerBps||0},contractAddress:n}}function getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r){const u=getEvmFastMctpCreateOrderParams$1(e,t,a,r),{contractAddress:s,orderPayload:o,tokenIn:n,amountIn:p,circleMaxFee:i,destDomain:d,minFinalityThreshold:l}=u,m=new contract.Contract(s,MayanFastMctpArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[n,p,i,d,l,o]),f=contract.toBeHex(0);return{to:s,data:m,value:f,_params:u}}function getFastMctpFromEvmTxPayload$1(e,t,a,r,u,s){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 o=u||ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const p=getEvmFastMctpBridgeTxPayload$1(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const{minMiddleAmount:p,evmSwapRouterAddress:i,evmSwapRouterCalldata:d}=e;if(!p||!i||!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 l=getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r),y=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}else{const l=getEvmFastMctpBridgeTxPayload$1(e,t,a,r),y=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}}}var HCDepositInitiatorArtifact_default={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 getUsdcDepositInitiatorMctpTxPayload(e,t,a,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 contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),s=web3.Buffer$1.from(hexToUint8Array$1(r));if(s.length!==65)throw new Error("Invalid USDC permit signature length");const o="0x"+s.subarray(0,32).toString("hex"),n="0x"+s.subarray(32,64).toString("hex"),p=s[64];let i,d;return i=u.interface.encodeFunctionData("deposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:a,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:o,s:n,v:p}}}]),d=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:i,value:d,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getUsdcDepositInitiatorFastMctpTxPayload(e,t,a,r,u){const s=getWormholeChainIdByName$1("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 o=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),n=web3.Buffer$1.from(hexToUint8Array$1(u));if(n.length!==65)throw new Error("Invalid USDC permit signature length");const p="0x"+n.subarray(0,32).toString("hex"),i="0x"+n.subarray(32,64).toString("hex"),d=n[64];let l;r?l=nativeAddressToHexString$1(r,s):l=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));let y,m;return y=o.interface.encodeFunctionData("fastDeposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,BigInt(e.circleMaxFee64),getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),l,e.referrerBps,Number(e.fastMctpMinFinality),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:a,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:p,s:i,v:d}}}]),m=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:y,value:m,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getHyperCoreDepositFromEvmTxPayload(e,t,a,r,u,s,o,n={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP"&&e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!n?.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 p=getWormholeChainIdById$1(Number(u)),i=getWormholeChainIdByName$1(e.fromChain);if(i!==p)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${i} !== ${p}`);const d=s||ZeroPermit$1,l=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);let y;if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");if(e.type==="MCTP")y=getUsdcDepositInitiatorMctpTxPayload(e,t,a,n.usdcPermitSignature);else if(e.type==="FAST_MCTP")y=getUsdcDepositInitiatorFastMctpTxPayload(e,t,a,r,n.usdcPermitSignature);else throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);if(e.fromToken.contract.toLowerCase()===e.hyperCoreParams.initiateTokenContract.toLowerCase()){const m="forwardERC20",f=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:u,_forwarder:{method:m,params:f}}}else{const{evmSwapRouterAddress:m,evmSwapRouterCalldata:f}=e;if(!e.minMiddleAmount||!m||!f)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");const b=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const T="swapAndForwardEth",h=[BigInt(e.effectiveAmountIn64),m,f,e.hyperCoreParams.initiateTokenContract,b,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(BigInt(e.effectiveAmountIn64)),chainId:u,_forwarder:{method:T,params:h}}}else{const T="swapAndForwardERC20",h=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,m,f,e.hyperCoreParams.initiateTokenContract,b,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:u,_forwarder:{method:T,params:h}}}}}var MayanMonoChainArtifact_default={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 getEvmMonoChainTxPayload(e,t,a){const r=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),u=new contract.Contract(e.monoChainMayanContract,MayanMonoChainArtifact_default.abi),s=a&&e.referrerBps||0;let o,n;return e.toToken.contract===providerJsonrpc.ZeroAddress?o=u.interface.encodeFunctionData("transferEth",[t,a||providerJsonrpc.ZeroAddress,s]):o=u.interface.encodeFunctionData("transferToken",[e.toToken.contract,r,t,a||providerJsonrpc.ZeroAddress,s]),e.fromToken.contract===providerJsonrpc.ZeroAddress?n=contract.toBeHex(e.effectiveAmountIn64):n=contract.toBeHex(0),{to:e.monoChainMayanContract,data:o,value:n,_params:{amountIn:BigInt(e.effectiveAmountIn64),tokenIn:e.fromToken.contract}}}function getMonoChainFromEvmTxPayload(e,t,a,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 s=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);r=Number(r);const n=u||ZeroPermit$1,p=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{evmSwapRouterAddress:i,evmSwapRouterCalldata:d}=e;if(!i||!d)throw new Error("Mono chain swap requires router address and calldata");const l=getEvmMonoChainTxPayload(e,t,a),y=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.toToken.contract,y,e.monoChainMayanContract,l.data];return{data:p.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,n,i,d,e.toToken.contract,y,e.monoChainMayanContract,l.data];return{data:p.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}function getEvmSwapParams$1(e,t,a,r,u,s){const o=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAIN")],o),p=getAssociatedTokenAddress$1(new web3.PublicKey(e.fromToken.mint),n,!0),i=BigInt(e.effectiveAmountIn64),d=nativeAddressToHexString$1(p.toString(),1),l=nativeAddressToHexString$1(addresses_default$1.AUCTION_PROGRAM_ID,1);let y;a?y=nativeAddressToHexString$1(a,1):y=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const m=getWormholeChainIdById$1(Number(u)),f=getWormholeChainIdByName$1(e.fromChain),b=getWormholeChainIdByName$1(e.toChain);if(f!==m)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${f} !== ${m}`);const T=e.whMayanContract,h={mayanAddr:d,mayanChainId:1,destAddr:nativeAddressToHexString$1(t,b),destChainId:b,auctionAddr:l,referrer:y,refundAddr:nativeAddressToHexString$1(r,m)},w=e.toToken.contract===providerJsonrpc.ZeroAddress,g={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),unwrap:w,customPayload:"0x"},A={swapFee:getAmountOfFractionalAmount$1(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount$1(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},I=nativeAddressToHexString$1(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),M=getAmountOfFractionalAmount$1(e.bridgeFee,18);return{amountIn:i,tokenIn:e.fromToken.contract,tokenOut:I,tokenOutWChainId:e.toToken.realOriginChainId,criteria:g,recipient:h,relayerFees:A,contractAddress:T,bridgeFee:M}}function getSwapFromEvmTxPayload$1(e,t,a,r,u,s,o,n,p){const i=getWormholeChainIdById$1(Number(s)),d=getWormholeChainIdByName$1(e.fromChain);if(d!==i)throw new Error(`Signer chain id(${Number(s)}) and quote from chain are not same! ${d} !== ${i}`);const l=getQuoteSuitableReferrerAddress$1(e,r);if(e.toChain==="hypercore")return getHyperCoreDepositFromEvmTxPayload(e,t,a,l,s,n,o,p);if(e.type==="MCTP")return getMctpFromEvmTxPayload$1(e,a,l,s,n);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload$1(e,t,a,l,s);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload$1(e,a,s);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload$1(e,a,l,s,n);if(e.type==="MONO_CHAIN")return getMonoChainFromEvmTxPayload(e,a,l,s,n);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:y,recipient:m,tokenOut:f,tokenOutWChainId:b,criteria:T,tokenIn:h,amountIn:w,contractAddress:g,bridgeFee:A}=getEvmSwapParams$1(e,a,l,u,s),I=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),M=new contract.Contract(g,MayanSwapArtifact_default$1.abi);let x,F,$;const D=ZeroPermit$1;if(h===providerJsonrpc.ZeroAddress){const E=M.interface.encodeFunctionData("wrapAndSwapETH",[y,m,f,b,T]);x="forwardEth",F=[g,E],$=contract.toBeHex(w)}else{const E=M.interface.encodeFunctionData("swap",[y,m,f,b,T,h,w]);x="forwardERC20",F=[h,w,D,g,E],$=contract.toBeHex(A)}const S=I.interface.encodeFunctionData(x,F);return{to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,data:S,value:$,chainId:s,_forwarder:{method:x,params:F}}}async function assertArgumentIsImmutable$1(e,t){let a;try{a=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(a){if(a[e.argumentIndex]!=="Pure"&&a[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 fetchAllCoins$1(e,t){let a=[],r=BigInt(0),u;do{const s=await t.getCoins({...e,owner:e.walletAddress,cursor:u}),o=s.data.filter(n=>BigInt(n.balance)>BigInt(0));if(a=[...a,...o],o.forEach(n=>{r+=BigInt(n.balance)}),s.data.length===0||!s.hasNextPage||!s.nextCursor||r>=e.coinAmount)return{coins:a.sort((n,p)=>Number(BigInt(n.coinObjectId)-BigInt(p.coinObjectId))),sum:r};u=s.nextCursor}while(!0)}async function fetchMayanSuiPackageId$1(e,t){let a;try{a=await t.getObject({id:e,options:{showContent:!0}})}catch(r){throw new Error(`Failed to fetch Mayan Sui package ID:
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const browserPonyfill=require("./browser-ponyfill-VhIu9z_I.js"),web3=require("./web3-BKaP497Y.js"),platform=require("./platform-Bkbg7A9d.js"),providerJsonrpc=require("./provider-jsonrpc-DHzam3ud.js"),contract=require("./contract-CTycrpaK.js"),units=require("./units-DtldPRXy.js"),index=require("./index-D61fXWwH.js"),unsignedTransaction=require("./unsignedTransaction-DL3WyIkF.js"),transfer=require("./transfer-BinEH6ml.js"),unsignedTransaction$1=require("./unsignedTransaction-5HCmv6m2.js"),platform$1=require("./platform-qdbxkhTI.js"),unsignedTransaction$2=require("./unsignedTransaction-Bv76DnOj.js"),mint=require("./mint-B4t2SvV6.js");var sha3={exports:{}},hasRequiredSha3;function requireSha3(){return hasRequiredSha3||(hasRequiredSha3=1,(function(e){(function(){var t="input is invalid type",a="finalize already called",r=typeof window=="object",u=r?window:{};u.JS_SHA3_NO_WINDOW&&(r=!1);var s=!r&&typeof self=="object",o=!u.JS_SHA3_NO_NODE_JS&&typeof web3.process$1=="object"&&web3.process$1.versions&&web3.process$1.versions.node;o?u=web3.commonjsGlobal:s&&(u=self);var n=!u.JS_SHA3_NO_COMMON_JS&&!0&&e.exports,p=!u.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",i="0123456789abcdef".split(""),d=[31,7936,2031616,520093696],l=[4,1024,262144,67108864],y=[1,256,65536,16777216],m=[6,1536,393216,100663296],f=[0,8,16,24],b=[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],T=[224,256,384,512],h=[128,256],w=["hex","buffer","arrayBuffer","array","digest"],g={128:168,256:136};(u.JS_SHA3_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(c){return Object.prototype.toString.call(c)==="[object Array]"}),p&&(u.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(c){return typeof c=="object"&&c.buffer&&c.buffer.constructor===ArrayBuffer});for(var A=function(c,C,_){return function(P){return new U(c,C,c).update(P)[_]()}},I=function(c,C,_){return function(P,k){return new U(c,C,k).update(P)[_]()}},M=function(c,C,_){return function(P,k,R,O){return W["cshake"+c].update(P,k,R,O)[_]()}},x=function(c,C,_){return function(P,k,R,O){return W["kmac"+c].update(P,k,R,O)[_]()}},F=function(c,C,_,P){for(var k=0;k<w.length;++k){var R=w[k];c[R]=C(_,P,R)}return c},$=function(c,C){var _=A(c,C,"hex");return _.create=function(){return new U(c,C,c)},_.update=function(P){return _.create().update(P)},F(_,A,c,C)},D=function(c,C){var _=I(c,C,"hex");return _.create=function(P){return new U(c,C,P)},_.update=function(P,k){return _.create(k).update(P)},F(_,I,c,C)},S=function(c,C){var _=g[c],P=M(c,C,"hex");return P.create=function(k,R,O){return!R&&!O?W["shake"+c].create(k):new U(c,C,k).bytepad([R,O],_)},P.update=function(k,R,O,v){return P.create(R,O,v).update(k)},F(P,M,c,C)},E=function(c,C){var _=g[c],P=x(c,C,"hex");return P.create=function(k,R,O){return new X(c,C,R).bytepad(["KMAC",O],_).bytepad([k],_)},P.update=function(k,R,O,v){return P.create(k,O,v).update(R)},F(P,x,c,C)},N=[{name:"keccak",padding:y,bits:T,createMethod:$},{name:"sha3",padding:m,bits:T,createMethod:$},{name:"shake",padding:d,bits:h,createMethod:D},{name:"cshake",padding:l,bits:h,createMethod:S},{name:"kmac",padding:l,bits:h,createMethod:E}],W={},L=[],Y=0;Y<N.length;++Y)for(var G=N[Y],z=G.bits,j=0;j<z.length;++j){var Z=G.name+"_"+z[j];if(L.push(Z),W[Z]=G.createMethod(z[j],G.padding),G.name!=="sha3"){var Q=G.name+z[j];L.push(Q),W[Q]=W[Z]}}function U(c,C,_){this.blocks=[],this.s=[],this.padding=C,this.outputBits=_,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(c<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=_>>5,this.extraBytes=(_&31)>>3;for(var P=0;P<50;++P)this.s[P]=0}U.prototype.update=function(c){if(this.finalized)throw new Error(a);var C,_=typeof c;if(_!=="string"){if(_==="object"){if(c===null)throw new Error(t);if(p&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!p||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);C=!0}for(var P=this.blocks,k=this.byteCount,R=c.length,O=this.blockCount,v=0,V=this.s,B,H;v<R;){if(this.reset)for(this.reset=!1,P[0]=this.block,B=1;B<O+1;++B)P[B]=0;if(C)for(B=this.start;v<R&&B<k;++v)P[B>>2]|=c[v]<<f[B++&3];else for(B=this.start;v<R&&B<k;++v)H=c.charCodeAt(v),H<128?P[B>>2]|=H<<f[B++&3]:H<2048?(P[B>>2]|=(192|H>>6)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]):H<55296||H>=57344?(P[B>>2]|=(224|H>>12)<<f[B++&3],P[B>>2]|=(128|H>>6&63)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]):(H=65536+((H&1023)<<10|c.charCodeAt(++v)&1023),P[B>>2]|=(240|H>>18)<<f[B++&3],P[B>>2]|=(128|H>>12&63)<<f[B++&3],P[B>>2]|=(128|H>>6&63)<<f[B++&3],P[B>>2]|=(128|H&63)<<f[B++&3]);if(this.lastByteIndex=B,B>=k){for(this.start=B-k,this.block=P[O],B=0;B<O;++B)V[B]^=P[B];J(V),this.reset=!0}else this.start=B}return this},U.prototype.encode=function(c,C){var _=c&255,P=1,k=[_];for(c=c>>8,_=c&255;_>0;)k.unshift(_),c=c>>8,_=c&255,++P;return C?k.push(P):k.unshift(P),this.update(k),k.length},U.prototype.encodeString=function(c){var C,_=typeof c;if(_!=="string"){if(_==="object"){if(c===null)throw new Error(t);if(p&&c.constructor===ArrayBuffer)c=new Uint8Array(c);else if(!Array.isArray(c)&&(!p||!ArrayBuffer.isView(c)))throw new Error(t)}else throw new Error(t);C=!0}var P=0,k=c.length;if(C)P=k;else for(var R=0;R<c.length;++R){var O=c.charCodeAt(R);O<128?P+=1:O<2048?P+=2:O<55296||O>=57344?P+=3:(O=65536+((O&1023)<<10|c.charCodeAt(++R)&1023),P+=4)}return P+=this.encode(P*8),this.update(c),P},U.prototype.bytepad=function(c,C){for(var _=this.encode(C),P=0;P<c.length;++P)_+=this.encodeString(c[P]);var k=C-_%C,R=[];return R.length=k,this.update(R),this},U.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var c=this.blocks,C=this.lastByteIndex,_=this.blockCount,P=this.s;if(c[C>>2]|=this.padding[C&3],this.lastByteIndex===this.byteCount)for(c[0]=c[_],C=1;C<_+1;++C)c[C]=0;for(c[_-1]|=2147483648,C=0;C<_;++C)P[C]^=c[C];J(P)}},U.prototype.toString=U.prototype.hex=function(){this.finalize();for(var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O="",v;R<_;){for(k=0;k<c&&R<_;++k,++R)v=C[k],O+=i[v>>4&15]+i[v&15]+i[v>>12&15]+i[v>>8&15]+i[v>>20&15]+i[v>>16&15]+i[v>>28&15]+i[v>>24&15];R%c===0&&(J(C),k=0)}return P&&(v=C[k],O+=i[v>>4&15]+i[v&15],P>1&&(O+=i[v>>12&15]+i[v>>8&15]),P>2&&(O+=i[v>>20&15]+i[v>>16&15])),O},U.prototype.arrayBuffer=function(){this.finalize();var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O=this.outputBits>>3,v;P?v=new ArrayBuffer(_+1<<2):v=new ArrayBuffer(O);for(var V=new Uint32Array(v);R<_;){for(k=0;k<c&&R<_;++k,++R)V[R]=C[k];R%c===0&&J(C)}return P&&(V[k]=C[k],v=v.slice(0,O)),v},U.prototype.buffer=U.prototype.arrayBuffer,U.prototype.digest=U.prototype.array=function(){this.finalize();for(var c=this.blockCount,C=this.s,_=this.outputBlocks,P=this.extraBytes,k=0,R=0,O=[],v,V;R<_;){for(k=0;k<c&&R<_;++k,++R)v=R<<2,V=C[k],O[v]=V&255,O[v+1]=V>>8&255,O[v+2]=V>>16&255,O[v+3]=V>>24&255;R%c===0&&J(C)}return P&&(v=R<<2,V=C[k],O[v]=V&255,P>1&&(O[v+1]=V>>8&255),P>2&&(O[v+2]=V>>16&255)),O};function X(c,C,_){U.call(this,c,C,_)}X.prototype=new U,X.prototype.finalize=function(){return this.encode(this.outputBits,!0),U.prototype.finalize.call(this)};var J=function(c){var C,_,P,k,R,O,v,V,B,H,q,ee,te,ne,ae,re,ie,se,oe,ue,pe,ce,de,le,ye,me,fe,be,Te,we,he,ge,Ae,Ie,Ce,_e,Se,Me,Pe,Ee,ke,Re,xe,Fe,ve,Oe,Be,De,$e,Ne,We,Le,Ke,Ue,He,Ge,Ve,Ye,je,Je,ze,Ze,Xe;for(P=0;P<48;P+=2)k=c[0]^c[10]^c[20]^c[30]^c[40],R=c[1]^c[11]^c[21]^c[31]^c[41],O=c[2]^c[12]^c[22]^c[32]^c[42],v=c[3]^c[13]^c[23]^c[33]^c[43],V=c[4]^c[14]^c[24]^c[34]^c[44],B=c[5]^c[15]^c[25]^c[35]^c[45],H=c[6]^c[16]^c[26]^c[36]^c[46],q=c[7]^c[17]^c[27]^c[37]^c[47],ee=c[8]^c[18]^c[28]^c[38]^c[48],te=c[9]^c[19]^c[29]^c[39]^c[49],C=ee^(O<<1|v>>>31),_=te^(v<<1|O>>>31),c[0]^=C,c[1]^=_,c[10]^=C,c[11]^=_,c[20]^=C,c[21]^=_,c[30]^=C,c[31]^=_,c[40]^=C,c[41]^=_,C=k^(V<<1|B>>>31),_=R^(B<<1|V>>>31),c[2]^=C,c[3]^=_,c[12]^=C,c[13]^=_,c[22]^=C,c[23]^=_,c[32]^=C,c[33]^=_,c[42]^=C,c[43]^=_,C=O^(H<<1|q>>>31),_=v^(q<<1|H>>>31),c[4]^=C,c[5]^=_,c[14]^=C,c[15]^=_,c[24]^=C,c[25]^=_,c[34]^=C,c[35]^=_,c[44]^=C,c[45]^=_,C=V^(ee<<1|te>>>31),_=B^(te<<1|ee>>>31),c[6]^=C,c[7]^=_,c[16]^=C,c[17]^=_,c[26]^=C,c[27]^=_,c[36]^=C,c[37]^=_,c[46]^=C,c[47]^=_,C=H^(k<<1|R>>>31),_=q^(R<<1|k>>>31),c[8]^=C,c[9]^=_,c[18]^=C,c[19]^=_,c[28]^=C,c[29]^=_,c[38]^=C,c[39]^=_,c[48]^=C,c[49]^=_,ne=c[0],ae=c[1],Oe=c[11]<<4|c[10]>>>28,Be=c[10]<<4|c[11]>>>28,be=c[20]<<3|c[21]>>>29,Te=c[21]<<3|c[20]>>>29,Je=c[31]<<9|c[30]>>>23,ze=c[30]<<9|c[31]>>>23,Re=c[40]<<18|c[41]>>>14,xe=c[41]<<18|c[40]>>>14,Ie=c[2]<<1|c[3]>>>31,Ce=c[3]<<1|c[2]>>>31,re=c[13]<<12|c[12]>>>20,ie=c[12]<<12|c[13]>>>20,De=c[22]<<10|c[23]>>>22,$e=c[23]<<10|c[22]>>>22,we=c[33]<<13|c[32]>>>19,he=c[32]<<13|c[33]>>>19,Ze=c[42]<<2|c[43]>>>30,Xe=c[43]<<2|c[42]>>>30,Ue=c[5]<<30|c[4]>>>2,He=c[4]<<30|c[5]>>>2,_e=c[14]<<6|c[15]>>>26,Se=c[15]<<6|c[14]>>>26,se=c[25]<<11|c[24]>>>21,oe=c[24]<<11|c[25]>>>21,Ne=c[34]<<15|c[35]>>>17,We=c[35]<<15|c[34]>>>17,ge=c[45]<<29|c[44]>>>3,Ae=c[44]<<29|c[45]>>>3,le=c[6]<<28|c[7]>>>4,ye=c[7]<<28|c[6]>>>4,Ge=c[17]<<23|c[16]>>>9,Ve=c[16]<<23|c[17]>>>9,Me=c[26]<<25|c[27]>>>7,Pe=c[27]<<25|c[26]>>>7,ue=c[36]<<21|c[37]>>>11,pe=c[37]<<21|c[36]>>>11,Le=c[47]<<24|c[46]>>>8,Ke=c[46]<<24|c[47]>>>8,Fe=c[8]<<27|c[9]>>>5,ve=c[9]<<27|c[8]>>>5,me=c[18]<<20|c[19]>>>12,fe=c[19]<<20|c[18]>>>12,Ye=c[29]<<7|c[28]>>>25,je=c[28]<<7|c[29]>>>25,Ee=c[38]<<8|c[39]>>>24,ke=c[39]<<8|c[38]>>>24,ce=c[48]<<14|c[49]>>>18,de=c[49]<<14|c[48]>>>18,c[0]=ne^~re&se,c[1]=ae^~ie&oe,c[10]=le^~me&be,c[11]=ye^~fe&Te,c[20]=Ie^~_e&Me,c[21]=Ce^~Se&Pe,c[30]=Fe^~Oe&De,c[31]=ve^~Be&$e,c[40]=Ue^~Ge&Ye,c[41]=He^~Ve&je,c[2]=re^~se&ue,c[3]=ie^~oe&pe,c[12]=me^~be&we,c[13]=fe^~Te&he,c[22]=_e^~Me&Ee,c[23]=Se^~Pe&ke,c[32]=Oe^~De&Ne,c[33]=Be^~$e&We,c[42]=Ge^~Ye&Je,c[43]=Ve^~je&ze,c[4]=se^~ue&ce,c[5]=oe^~pe&de,c[14]=be^~we&ge,c[15]=Te^~he&Ae,c[24]=Me^~Ee&Re,c[25]=Pe^~ke&xe,c[34]=De^~Ne&Le,c[35]=$e^~We&Ke,c[44]=Ye^~Je&Ze,c[45]=je^~ze&Xe,c[6]=ue^~ce&ne,c[7]=pe^~de&ae,c[16]=we^~ge&le,c[17]=he^~Ae&ye,c[26]=Ee^~Re&Ie,c[27]=ke^~xe&Ce,c[36]=Ne^~Le&Fe,c[37]=We^~Ke&ve,c[46]=Je^~Ze&Ue,c[47]=ze^~Xe&He,c[8]=ce^~ne&re,c[9]=de^~ae&ie,c[18]=ge^~le&me,c[19]=Ae^~ye&fe,c[28]=Re^~Ie&_e,c[29]=xe^~Ce&Se,c[38]=Le^~Fe&Oe,c[39]=Ke^~ve&Be,c[48]=Ze^~Ue&Ge,c[49]=Xe^~He&Ve,c[0]^=b[P],c[1]^=b[P+1]};if(n)e.exports=W;else for(Y=0;Y<L.length;++Y)u[L[Y]]=W[L[Y]]})()})(sha3)),sha3.exports}var sha3Exports=requireSha3(),sha256={exports:{}},hasRequiredSha256;function requireSha256(){return hasRequiredSha256||(hasRequiredSha256=1,(function(module){(function(){var ERROR="input is invalid type",WINDOW=typeof window=="object",root=WINDOW?window:{};root.JS_SHA256_NO_WINDOW&&(WINDOW=!1);var WEB_WORKER=!WINDOW&&typeof self=="object",NODE_JS=!root.JS_SHA256_NO_NODE_JS&&typeof web3.process$1=="object"&&web3.process$1.versions&&web3.process$1.versions.node;NODE_JS?root=web3.commonjsGlobal:WEB_WORKER&&(root=self);var COMMON_JS=!root.JS_SHA256_NO_COMMON_JS&&!0&&module.exports,ARRAY_BUFFER=!root.JS_SHA256_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",HEX_CHARS="0123456789abcdef".split(""),EXTRA=[-2147483648,8388608,32768,128],SHIFT=[24,16,8,0],K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],OUTPUT_TYPES=["hex","array","digest","arrayBuffer"],blocks=[];(root.JS_SHA256_NO_NODE_JS||!Array.isArray)&&(Array.isArray=function(e){return Object.prototype.toString.call(e)==="[object Array]"}),ARRAY_BUFFER&&(root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)&&(ArrayBuffer.isView=function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer});var createOutputMethod=function(e,t){return function(a){return new Sha256(t,!0).update(a)[e]()}},createMethod=function(e){var t=createOutputMethod("hex",e);NODE_JS&&(t=nodeWrap(t,e)),t.create=function(){return new Sha256(e)},t.update=function(u){return t.create().update(u)};for(var a=0;a<OUTPUT_TYPES.length;++a){var r=OUTPUT_TYPES[a];t[r]=createOutputMethod(r,e)}return t},nodeWrap=function(method,is224){var crypto=eval("require('crypto')"),Buffer=eval("require('buffer').Buffer"),algorithm=is224?"sha224":"sha256",nodeMethod=function(e){if(typeof e=="string")return crypto.createHash(algorithm).update(e,"utf8").digest("hex");if(e==null)throw new Error(ERROR);return e.constructor===ArrayBuffer&&(e=new Uint8Array(e)),Array.isArray(e)||ArrayBuffer.isView(e)||e.constructor===Buffer?crypto.createHash(algorithm).update(new Buffer(e)).digest("hex"):method(e)};return nodeMethod},createHmacOutputMethod=function(e,t){return function(a,r){return new HmacSha256(a,t,!0).update(r)[e]()}},createHmacMethod=function(e){var t=createHmacOutputMethod("hex",e);t.create=function(u){return new HmacSha256(u,e)},t.update=function(u,s){return t.create(u).update(s)};for(var a=0;a<OUTPUT_TYPES.length;++a){var r=OUTPUT_TYPES[a];t[r]=createHmacOutputMethod(r,e)}return t};function Sha256(e,t){t?(blocks[0]=blocks[16]=blocks[1]=blocks[2]=blocks[3]=blocks[4]=blocks[5]=blocks[6]=blocks[7]=blocks[8]=blocks[9]=blocks[10]=blocks[11]=blocks[12]=blocks[13]=blocks[14]=blocks[15]=0,this.blocks=blocks):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],e?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=e}Sha256.prototype.update=function(e){if(!this.finalized){var t,a=typeof e;if(a!=="string"){if(a==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);t=!0}for(var r,u=0,s,o=e.length,n=this.blocks;u<o;){if(this.hashed&&(this.hashed=!1,n[0]=this.block,n[16]=n[1]=n[2]=n[3]=n[4]=n[5]=n[6]=n[7]=n[8]=n[9]=n[10]=n[11]=n[12]=n[13]=n[14]=n[15]=0),t)for(s=this.start;u<o&&s<64;++u)n[s>>2]|=e[u]<<SHIFT[s++&3];else for(s=this.start;u<o&&s<64;++u)r=e.charCodeAt(u),r<128?n[s>>2]|=r<<SHIFT[s++&3]:r<2048?(n[s>>2]|=(192|r>>6)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]):r<55296||r>=57344?(n[s>>2]|=(224|r>>12)<<SHIFT[s++&3],n[s>>2]|=(128|r>>6&63)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]):(r=65536+((r&1023)<<10|e.charCodeAt(++u)&1023),n[s>>2]|=(240|r>>18)<<SHIFT[s++&3],n[s>>2]|=(128|r>>12&63)<<SHIFT[s++&3],n[s>>2]|=(128|r>>6&63)<<SHIFT[s++&3],n[s>>2]|=(128|r&63)<<SHIFT[s++&3]);this.lastByteIndex=s,this.bytes+=s-this.start,s>=64?(this.block=n[16],this.start=s-64,this.hash(),this.hashed=!0):this.start=s}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}},Sha256.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,t=this.lastByteIndex;e[16]=this.block,e[t>>2]|=EXTRA[t&3],this.block=e[16],t>=56&&(this.hashed||this.hash(),e[0]=this.block,e[16]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=e[9]=e[10]=e[11]=e[12]=e[13]=e[14]=e[15]=0),e[14]=this.hBytes<<3|this.bytes>>>29,e[15]=this.bytes<<3,this.hash()}},Sha256.prototype.hash=function(){var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=this.blocks,i,d,l,y,m,f,b,T,h,w,g;for(i=16;i<64;++i)m=p[i-15],d=(m>>>7|m<<25)^(m>>>18|m<<14)^m>>>3,m=p[i-2],l=(m>>>17|m<<15)^(m>>>19|m<<13)^m>>>10,p[i]=p[i-16]+d+p[i-7]+l<<0;for(g=t&a,i=0;i<64;i+=4)this.first?(this.is224?(T=300032,m=p[0]-1413257819,n=m-150054599<<0,r=m+24177077<<0):(T=704751109,m=p[0]-210244248,n=m-1521486534<<0,r=m+143694565<<0),this.first=!1):(d=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),l=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),T=e&t,y=T^e&a^g,b=u&s^~u&o,m=n+l+b+K[i]+p[i],f=d+y,n=r+m<<0,r=m+f<<0),d=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),l=(n>>>6|n<<26)^(n>>>11|n<<21)^(n>>>25|n<<7),h=r&e,y=h^r&t^T,b=n&u^~n&s,m=o+l+b+K[i+1]+p[i+1],f=d+y,o=a+m<<0,a=m+f<<0,d=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),l=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),w=a&r,y=w^a&e^h,b=o&n^~o&u,m=s+l+b+K[i+2]+p[i+2],f=d+y,s=t+m<<0,t=m+f<<0,d=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),l=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),g=t&a,y=g^t&r^w,b=s&o^~s&n,m=u+l+b+K[i+3]+p[i+3],f=d+y,u=e+m<<0,e=m+f<<0;this.h0=this.h0+e<<0,this.h1=this.h1+t<<0,this.h2=this.h2+a<<0,this.h3=this.h3+r<<0,this.h4=this.h4+u<<0,this.h5=this.h5+s<<0,this.h6=this.h6+o<<0,this.h7=this.h7+n<<0},Sha256.prototype.hex=function(){this.finalize();var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=HEX_CHARS[e>>28&15]+HEX_CHARS[e>>24&15]+HEX_CHARS[e>>20&15]+HEX_CHARS[e>>16&15]+HEX_CHARS[e>>12&15]+HEX_CHARS[e>>8&15]+HEX_CHARS[e>>4&15]+HEX_CHARS[e&15]+HEX_CHARS[t>>28&15]+HEX_CHARS[t>>24&15]+HEX_CHARS[t>>20&15]+HEX_CHARS[t>>16&15]+HEX_CHARS[t>>12&15]+HEX_CHARS[t>>8&15]+HEX_CHARS[t>>4&15]+HEX_CHARS[t&15]+HEX_CHARS[a>>28&15]+HEX_CHARS[a>>24&15]+HEX_CHARS[a>>20&15]+HEX_CHARS[a>>16&15]+HEX_CHARS[a>>12&15]+HEX_CHARS[a>>8&15]+HEX_CHARS[a>>4&15]+HEX_CHARS[a&15]+HEX_CHARS[r>>28&15]+HEX_CHARS[r>>24&15]+HEX_CHARS[r>>20&15]+HEX_CHARS[r>>16&15]+HEX_CHARS[r>>12&15]+HEX_CHARS[r>>8&15]+HEX_CHARS[r>>4&15]+HEX_CHARS[r&15]+HEX_CHARS[u>>28&15]+HEX_CHARS[u>>24&15]+HEX_CHARS[u>>20&15]+HEX_CHARS[u>>16&15]+HEX_CHARS[u>>12&15]+HEX_CHARS[u>>8&15]+HEX_CHARS[u>>4&15]+HEX_CHARS[u&15]+HEX_CHARS[s>>28&15]+HEX_CHARS[s>>24&15]+HEX_CHARS[s>>20&15]+HEX_CHARS[s>>16&15]+HEX_CHARS[s>>12&15]+HEX_CHARS[s>>8&15]+HEX_CHARS[s>>4&15]+HEX_CHARS[s&15]+HEX_CHARS[o>>28&15]+HEX_CHARS[o>>24&15]+HEX_CHARS[o>>20&15]+HEX_CHARS[o>>16&15]+HEX_CHARS[o>>12&15]+HEX_CHARS[o>>8&15]+HEX_CHARS[o>>4&15]+HEX_CHARS[o&15];return this.is224||(p+=HEX_CHARS[n>>28&15]+HEX_CHARS[n>>24&15]+HEX_CHARS[n>>20&15]+HEX_CHARS[n>>16&15]+HEX_CHARS[n>>12&15]+HEX_CHARS[n>>8&15]+HEX_CHARS[n>>4&15]+HEX_CHARS[n&15]),p},Sha256.prototype.toString=Sha256.prototype.hex,Sha256.prototype.digest=function(){this.finalize();var e=this.h0,t=this.h1,a=this.h2,r=this.h3,u=this.h4,s=this.h5,o=this.h6,n=this.h7,p=[e>>24&255,e>>16&255,e>>8&255,e&255,t>>24&255,t>>16&255,t>>8&255,t&255,a>>24&255,a>>16&255,a>>8&255,a&255,r>>24&255,r>>16&255,r>>8&255,r&255,u>>24&255,u>>16&255,u>>8&255,u&255,s>>24&255,s>>16&255,s>>8&255,s&255,o>>24&255,o>>16&255,o>>8&255,o&255];return this.is224||p.push(n>>24&255,n>>16&255,n>>8&255,n&255),p},Sha256.prototype.array=Sha256.prototype.digest,Sha256.prototype.arrayBuffer=function(){this.finalize();var e=new ArrayBuffer(this.is224?28:32),t=new DataView(e);return t.setUint32(0,this.h0),t.setUint32(4,this.h1),t.setUint32(8,this.h2),t.setUint32(12,this.h3),t.setUint32(16,this.h4),t.setUint32(20,this.h5),t.setUint32(24,this.h6),this.is224||t.setUint32(28,this.h7),e};function HmacSha256(e,t,a){var r,u=typeof e;if(u==="string"){var s=[],o=e.length,n=0,p;for(r=0;r<o;++r)p=e.charCodeAt(r),p<128?s[n++]=p:p<2048?(s[n++]=192|p>>6,s[n++]=128|p&63):p<55296||p>=57344?(s[n++]=224|p>>12,s[n++]=128|p>>6&63,s[n++]=128|p&63):(p=65536+((p&1023)<<10|e.charCodeAt(++r)&1023),s[n++]=240|p>>18,s[n++]=128|p>>12&63,s[n++]=128|p>>6&63,s[n++]=128|p&63);e=s}else if(u==="object"){if(e===null)throw new Error(ERROR);if(ARRAY_BUFFER&&e.constructor===ArrayBuffer)e=new Uint8Array(e);else if(!Array.isArray(e)&&(!ARRAY_BUFFER||!ArrayBuffer.isView(e)))throw new Error(ERROR)}else throw new Error(ERROR);e.length>64&&(e=new Sha256(t,!0).update(e).array());var i=[],d=[];for(r=0;r<64;++r){var l=e[r]||0;i[r]=92^l,d[r]=54^l}Sha256.call(this,t,a),this.update(d),this.oKeyPad=i,this.inner=!0,this.sharedMemory=a}HmacSha256.prototype=new Sha256,HmacSha256.prototype.finalize=function(){if(Sha256.prototype.finalize.call(this),this.inner){this.inner=!1;var e=this.array();Sha256.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(e),Sha256.prototype.finalize.call(this)}};var exports=createMethod();exports.sha256=exports,exports.sha224=createMethod(!0),exports.sha256.hmac=createHmacMethod(),exports.sha224.hmac=createHmacMethod(!0),COMMON_JS?module.exports=exports:(root.sha256=exports.sha256,root.sha224=exports.sha224)})()})(sha256)),sha256.exports}var sha256Exports=requireSha256();function base$1(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let i=0;i<t.length;i++)t[i]=255;for(let i=0;i<e.length;i++){const d=e.charAt(i),l=d.charCodeAt(0);if(t[l]!==255)throw new TypeError(d+" is ambiguous");t[l]=i}const a=e.length,r=e.charAt(0),u=Math.log(a)/Math.log(256),s=Math.log(256)/Math.log(a);function o(i){if(i instanceof Uint8Array||(ArrayBuffer.isView(i)?i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength):Array.isArray(i)&&(i=Uint8Array.from(i))),!(i instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(i.length===0)return"";let d=0,l=0,y=0;const m=i.length;for(;y!==m&&i[y]===0;)y++,d++;const f=(m-y)*s+1>>>0,b=new Uint8Array(f);for(;y!==m;){let w=i[y],g=0;for(let A=f-1;(w!==0||g<l)&&A!==-1;A--,g++)w+=256*b[A]>>>0,b[A]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");l=g,y++}let T=f-l;for(;T!==f&&b[T]===0;)T++;let h=r.repeat(d);for(;T<f;++T)h+=e.charAt(b[T]);return h}function n(i){if(typeof i!="string")throw new TypeError("Expected String");if(i.length===0)return new Uint8Array;let d=0,l=0,y=0;for(;i[d]===r;)l++,d++;const m=(i.length-d)*u+1>>>0,f=new Uint8Array(m);for(;d<i.length;){const w=i.charCodeAt(d);if(w>255)return;let g=t[w];if(g===255)return;let A=0;for(let I=m-1;(g!==0||A<y)&&I!==-1;I--,A++)g+=a*f[I]>>>0,f[I]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");y=A,d++}let b=m-y;for(;b!==m&&f[b]===0;)b++;const T=new Uint8Array(l+(m-b));let h=l;for(;b!==m;)T[h++]=f[b++];return T}function p(i){const d=n(i);if(d)return d;throw new Error("Non-base"+a+" character")}return{encode:o,decodeUnsafe:n,decode:p}}var ALPHABET$1="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base$1(ALPHABET$1);var addresses_default$1={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",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:"6u55Hqo1AsGMuJQ31VgNBfVhnpeszxXC4b6KzFaRU2JM"},sha3_2562=sha3Exports.sha3_256,isValidAptosType=e=>/^(0x)?[0-9a-fA-F]+::\w+::\w+$/.test(e);function nativeAddressToHexString$1(e,t){if(t===1)return web3.zeroPadValue(new web3.PublicKey(e).toBytes(),32);if(t===chains$1.ethereum||t===chains$1.bsc||t===chains$1.polygon||t===chains$1.avalanche||t===chains$1.arbitrum||t===chains$1.optimism||t===chains$1.base||t===chains$1.unichain||t===chains$1.linea||t===chains$1.sonic||t===chains$1.hyperevm)return web3.zeroPadValue(e,32);if(t===chains$1.aptos&&isValidAptosType(e))return`0x${sha3_2562(e)}`;if(t===chains$1.sui){let a=e.startsWith("0x")?e.substring(2):e;if(web3.Buffer$1.from(a,"hex").length!==32)throw new Error("Invalid sui address: "+e);return web3.zeroPadValue(e,32)}else throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array$1(e){return new Uint8Array(web3.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress$1(e,t,a=!1,r=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),u=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!a&&!web3.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[s]=web3.PublicKey.findProgramAddressSync([t.toBuffer(),r.toBuffer(),e.toBuffer()],u);return s}function isValidNumericInput(e){return(typeof e=="string"||typeof e=="number")&&e!==""&&e!==null&&!isNaN(Number(e))&&Number.isFinite(Number(e))}function getAmountOfFractionalAmount$1(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(!isValidNumericInput(t))throw new Error("getAmountOfFractionalAmount: decimals is not a number");const a=Math.min(8,Number(t)),r=Number(e).toFixed(a+1),u=new RegExp(`^-?\\d+(?:\\.\\d{0,${a}})?`),s=r.match(u);if(!s)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=s[0];return units.parseUnits(o,Number(t))}function getDisplayAmount(e,t){return Number(units.formatUnits(e,t))}var chains$1={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 getWormholeChainIdByName$1(e){return chains$1[e]}var evmChainIdMap$1={1:2,56:4,137:5,43114:6,42161:23,10:24,8453:30,130:44,59144:38,146:52,999:47};function getWormholeChainIdById$1(e){return evmChainIdMap$1[e]}var sdkVersion$1=[11,0,1];function getSdkVersion$1(){return sdkVersion$1.join("_")}function getGasDecimal$1(e){return e==="solana"?9:18}function getGasDecimalsInSolana$1(e){return e==="solana"?9:8}var MAX_U64$1=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob$1(e){if(e<BigInt(0)||e>MAX_U64$1)throw new Error(`Invalid u64: ${e}`);const t=web3.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit$1={value:BigInt(0),deadline:0,v:0,r:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress$1(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 MCTP_PAYLOAD_TYPE_DEFAULT$1=1,MCTP_PAYLOAD_TYPE_CUSTOM_PAYLOAD=2,MCTP_INIT_ORDER_PAYLOAD_ID$1=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1=1,FAST_MCTP_PAYLOAD_TYPE_ORDER$1=3;function getHyperCoreUSDCDepositCustomPayload(e,t,a){const r=web3.Buffer$1.alloc(109),u=web3.Buffer$1.from(hexToUint8Array$1(t));if(u.length!==20)throw new Error("Invalid destination address length, expected 20 bytes");const s=web3.Buffer$1.from(hexToUint8Array$1(a));if(s.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(s,44),r}function toQueryString$1(e){return Object.entries(e).filter(([t,a])=>a!=null&&!Array.isArray(a)).map(([t,a])=>`${encodeURIComponent(t)}=${encodeURIComponent(a)}`).join("&")}async function check5xxError$1(e){if(e.status.toString().startsWith("5")){let t;try{const a=await e.json();(a?.code||a?.statusCode)&&(a?.message||a?.msg)&&(t={code:a?.code||a?.statusCode,message:a?.message||a?.msg})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl$1(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:a,referrerBps:r}=e;let u=e.slippageBps;const o={...{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:addresses_default$1.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default$1.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(a)?a:void 0,sdkVersion:getSdkVersion$1()},n=`${addresses_default$1.PRICE_URL}/quote?`,p=toQueryString$1(o);return n+p}async function getSuggestedRelayer$1(){const e=await browserPonyfill.o(`${addresses_default$1.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default$1.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError$1(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana$1(e){const t=toQueryString$1({...e,sdkVersion:getSdkVersion$1()}),a=await browserPonyfill.o(`${addresses_default$1.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError$1(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}async function getSwapSui$1(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion$1()}),a=`${addresses_default$1.PRICE_URL}/get-swap/sui`,r=await browserPonyfill.o(a,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError$1(r);const u=await r.json();if(r.status!==200&&r.status!==201)throw u;return u}var MayanSwapArtifact_default$1={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"}]},MayanForwarderArtifact_default$1={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"}]},MayanCircleArtifact_default$1={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"}]},CCTP_TOKEN_DECIMALS$1=6;function getCCTPDomain$1(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;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs$1(e,t){const a=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),r=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("message_transmitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("sender_authority")],r),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("local_token"),e.toBytes()],r),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_messenger")],r),[p]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_minter")],r),i=getCCTPDomain$1(t),[d]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("remote_token_messenger"),web3.Buffer$1.from(i.toString())],r),[l]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],a),[y]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],r);return{messageTransmitter:u,senderAuthority:s,remoteTokenMessengerKey:d,tokenMessenger:n,tokenMinter:p,eventAuthToken:y,eventAuthCore:l,localToken:o}}function getEvmMctpBridgeParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);const n=e.cheaperChain===e.fromChain,p=nativeAddressToHexString$1(t,o),i=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),d=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),l=BigInt(e.effectiveAmountIn64),y=getCCTPDomain$1(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const m=e.mctpMayanContract;if(e.toChain==="solana"&&n)throw new Error("Cannot lock fee for transfer to solana");let f=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));return n&&(f=BigInt(0)),{lockFee:n,tokenIn:e.mctpInputContract,amountIn:l,redeemFee:i,gasDrop:d,destAddr:p,destDomain:y,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",bridgeFee:f,contractAddress:m}}function getEvmMctpBridgeTxPayload$1(e,t,a,r){const u=getEvmMctpBridgeParams$1(e,t,a),{contractAddress:s,tokenIn:o,amountIn:n,destAddr:p,lockFee:i,redeemFee:d,gasDrop:l,destDomain:y,customPayload:m,payloadType:f,bridgeFee:b}=u,T=new contract.Contract(s,MayanCircleArtifact_default$1.abi);let h,w;return i?h=T.interface.encodeFunctionData("bridgeWithLockedFee",[o,n,l,d,y,p]):h=T.interface.encodeFunctionData("bridgeWithFee",[o,n,d,l,p,y,f,m]),w=contract.toBeHex(b),{to:s,data:h,value:w,_params:u}}function getEvmMctpCreateOrderParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(r)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.mctpMayanContract,p=nativeAddressToHexString$1(t,o);let i;a?i=nativeAddressToHexString$1(a,o):i=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const d=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8));let y=BigInt(e.effectiveAmountIn64);const m=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),f=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:y,gasDrop:l,destAddr:p,destChain:o,tokenOut:b,minAmountOut:m,deadline:f,redeemFee:d,referrerAddr:i,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain)),contractAddress:n}}function getEvmMctpCreateOrderTxPayload$1(e,t,a,r){const u=getEvmMctpCreateOrderParams$1(e,t,a,r),{contractAddress:s,params:o,bridgeFee:n}=u,i=new contract.Contract(s,MayanCircleArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[o]),d=contract.toBeHex(n);return{to:s,data:i,value:d,_params:u}}function getMctpFromEvmTxPayload$1(e,t,a,r,u,s){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 o=u||ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),p=getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain));let i=contract.toBeHex(p);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const d=getEvmMctpCreateOrderTxPayload$1(e,t,a,r),l="forwardERC20",y=[e.fromToken.contract,d._params.params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const d=getEvmMctpBridgeTxPayload$1(e,t,r),l="forwardERC20",y=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:l,evmSwapRouterCalldata:y}=e;if(!d||!l||!y)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 m=getEvmMctpCreateOrderTxPayload$1(e,t,a,r),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}else{const m=getEvmMctpBridgeTxPayload$1(e,t,r),f=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}}}var MayanSwiftArtifact_default$1={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 decodeInstructionArgs(e,t){const a=t.subarray(0,8),r=e.instructions.find(n=>web3.Buffer$1.from(n.discriminator).toString("hex").toLowerCase()===web3.Buffer$1.from(a).toString("hex").toLowerCase());if(!r)throw new Error(`Instruction ${web3.Buffer$1.from(a).toString("hex")} not in IDL`);const u=r.args||[],s={};let o=8;for(const n of u){const[p,i]=decodeType(n.type,t,o,e);s[n.name]=p,o=i}return s}function decodeType(e,t,a,r){if(typeof e=="string")switch(e){case"u8":return[t.readUInt8(a),a+1];case"u16":return[t.readUInt16LE(a),a+2];case"u32":return[t.readUInt32LE(a),a+4];case"u64":return[t.readBigUInt64LE(a),a+8];case"bool":return[t.readUInt8(a)!==0,a+1];case"pubkey":{const u=t.subarray(a,a+32);return[new web3.PublicKey(u),a+32]}default:throw new Error(`Unknown primitive: ${e}`)}if("array"in e){const[u,s]=e.array,o=[];let n=a;for(let p=0;p<s;p++){const[i,d]=decodeType(u,t,n,r);o.push(i),n=d}return[o,n]}if("defined"in e){const u=r.types?.find(s=>s.name===e.defined.name);if(!u)throw new Error(`Type ${e.defined} not found`);if(u.type.kind==="struct"){const s={};let o=a;for(const n of u.type.fields){const[p,i]=decodeType(n.type,t,o,r);s[n.name]=p,o=i}return[s,o]}else{const s=t.readUInt8(a),o=u.type.variants[s];if(!o)throw new Error(`Invalid enum index ${s}`);let n=a+1;const p={variant:o.name};if(o.fields&&o.fields.length){const i=[];for(const d of o.fields){const[l,y]=decodeType(d.type,t,n,r);i.push(l),n=y}p.fields=i}return[p,n]}}if("option"in e)return t.readUInt8(a)===0?[null,a+1]:decodeType(e.option,t,a+1,r);if("vec"in e){const u=t.readUInt32LE(a);let s=a+4;const o=[];for(let n=0;n<u;n++){const[p,i]=decodeType(e.vec,t,s,r);o.push(p),s=i}return[o,s]}throw new Error(`Unsupported type shape: ${JSON.stringify(e)}`)}function decodeJupiterV6InsArgs(e){return decodeInstructionArgs(jupV6Idl,web3.Buffer$1.from(e))}var jupV6Idl={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 createAssociatedTokenAccountInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),s=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new web3.TransactionInstruction({keys:o,programId:s,data:web3.Buffer$1.from([1])})}var TOKEN_ACCOUNT_LEN$1=165;async function createInitializeRandomTokenAccountInstructions$1(e,t,a,r,u,s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const o=[],n=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN$1);return o.push(web3.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:u.publicKey,lamports:n,space:TOKEN_ACCOUNT_LEN$1,programId:s})),o.push(new web3.TransactionInstruction({keys:[{pubkey:u.publicKey,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:s,data:web3.Buffer$1.from([1])})),o}var ApproveInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createApproveInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(ApproveInstructionData$1.span);return ApproveInstructionData$1.encode({instruction:4,amount:getSafeU64Blob$1(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var SyncNativeInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);function createSyncNativeInstruction$1(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],a=web3.Buffer$1.alloc(SyncNativeInstructionData$1.span);return SyncNativeInstructionData$1.encode({instruction:17},a),new web3.TransactionInstruction({keys:t,programId:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),data:a})}web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);var SplTransferInstructionData$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createSplTransferInstruction$1(e,t,a,r,u=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(SplTransferInstructionData$1.span);return SplTransferInstructionData$1.encode({instruction:3,amount:getSafeU64Blob$1(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var solMint$1=new web3.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo$1(e){return new web3.TransactionInstruction({programId:new web3.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new web3.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:web3.Buffer$1.from(e.data,"base64")})}async function getAddressLookupTableAccounts$1(e,t){return(await t.getMultipleAccountsInfo(e.map(r=>new web3.PublicKey(r)))).reduce((r,u,s)=>{const o=e[s];if(u){const n=new web3.AddressLookupTableAccount({key:new web3.PublicKey(o),state:web3.AddressLookupTableAccount.deserialize(u.data)});r.push(n)}return r},new Array)}function decentralizeClientSwapInstructions$1(e,t){const a=deserializeInstructionInfo$1(e.swapInstruction),r=e.cleanupInstruction?deserializeInstructionInfo$1(e.cleanupInstruction):null,u=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo$1):[],s=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo$1):[];return{swapInstruction:a,cleanupInstruction:r,computeBudgetInstructions:u,setupInstructions:s,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData$1(e){let t=`global:${e}`;return web3.Buffer$1.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer$1(){let e;try{const t=await getSuggestedRelayer$1();e=new web3.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=web3.SystemProgram.programId}return e}function validateJupCleanupInstruction$1(e,t){if(e){if(!e.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!e.programId.equals(new web3.PublicKey(addresses_default$1.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 validateJupSetupInstructions$1(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(a=>{if(!a.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))&&!a.programId.equals(web3.SystemProgram.programId)&&!a.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID))&&!a.programId.equals(new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(a.programId.equals(new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(a.data).length===1){if(Uint8Array.from(a.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(a.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(a.programId.equals(web3.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const r=getAssociatedTokenAddress$1(solMint$1,t,!0);if(a.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!a.keys[1].pubkey.equals(r))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(a.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction$1(e,t,a=!1){const r=new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4");if(!e.programId.equals(r))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData$1("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")===getAnchorInstructionData$1("route").toString("hex")){if(a){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 validateJupSwapInstructionData(e,t){const a=decodeJupiterV6InsArgs(Uint8Array.from(e.data));if(a.in_amount>BigInt(t.effectiveAmountIn64))throw new Error("Invalid swap instruction:: amount in");const r=getAmountOfFractionalAmount$1(t.minAmountOut,t.toToken.decimals);if(a.quoted_out_amount-a.quoted_out_amount*BigInt(a.slippage_bps)/10000n<r)throw new Error("Invalid swap instruction:: quote expired");if(a.platform_fee_bps!==t.referrerBps)throw new Error("Invalid swap instruction:: platform fee")}function validateJupComputeBudgetInstructions$1(e){e.forEach(t=>{if(!t.programId.equals(web3.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 validateJupSwap$1(e,t,a,r,u=!1){validateJupComputeBudgetInstructions$1(e.computeBudgetInstructions),validateJupSetupInstructions$1(e.setupInstructions,a),validateJupSwapInstruction$1(e.swapInstruction,t,u),validateJupCleanupInstruction$1(e.cleanupInstruction,r)}function createTransferAllAndCloseInstruction$1(e,t,a,r,u,s=new web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new web3.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}],programId:new web3.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData$1("transfer_all_and_close")})}function createPayloadWriterCreateInstruction(e,t,a,r){const u=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1}],s=14+a.length,o=web3.Buffer$1.alloc(s);return o.set(getAnchorInstructionData$1("create_simple"),0),o.writeUint16LE(r,8),o.writeUint32LE(a.length,10),o.set(a,14),new web3.TransactionInstruction({keys:u,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:o})}function createPayloadWriterCloseInstruction(e,t,a){const r=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0}],s=web3.Buffer$1.alloc(10);return s.set(getAnchorInstructionData$1("close"),0),s.writeUint16LE(a,8),new web3.TransactionInstruction({keys:r,programId:new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID),data:s})}function sandwichInstructionInCpiProxy(e,t=!1){if(t)return e;const a=new web3.PublicKey(addresses_default$1.CPI_PROXY_PROGRAM_ID),r=web3.Buffer$1.alloc(4);r.writeUint32LE(e.data.length,0);const u=web3.Buffer$1.concat([getAnchorInstructionData$1("foreign_program_invoker"),r,e.data]),s=[{pubkey:e.programId,isSigner:!1,isWritable:!1},{pubkey:e.programId,isSigner:!1,isWritable:!1}].concat(e.keys.map(o=>({pubkey:o.pubkey,isSigner:o.isSigner,isWritable:o.isWritable})));return new web3.TransactionInstruction({keys:s,programId:a,data:u})}function getWormholePDAs$1(e){const t=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),a=new web3.PublicKey(e),[r]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Bridge")],t),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("emitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Sequence"),u.toBuffer()],t),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("fee_collector")],t);return{bridgeConfig:r,sequenceKey:s,feeCollector:o,emitter:u}}var MCTPBridgeWithFeeLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction$1(e,t,a,r,u){const s=new web3.PublicKey(addresses_default$1.WORMHOLE_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),d=new web3.PublicKey(r),l=new web3.PublicKey(a),y=getAssociatedTokenAddress$1(l,e,!0);let m;u&&u>BigInt(0)?m=getAssociatedTokenAddress$1(l,d,!1):m=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const f=getCCTPBridgePDAs$1(l,t),b=getWormholePDAs$1(addresses_default$1.MCTP_PROGRAM_ID),T=web3.Keypair.generate(),h=web3.Keypair.generate(),w=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!0},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],g=web3.Buffer$1.alloc(MCTPBridgeWithFeeLayout$1.span);return MCTPBridgeWithFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_with_fee")},g),{instruction:new web3.TransactionInstruction({keys:w,data:g,programId:i}),signers:[T,h]}}var MctpBridgeLockFeeLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction$1(e,t,a,r,u){const s=[null,null],o=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.ASSOCIATED_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),i=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),d=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),l=new web3.PublicKey(r),y=new web3.PublicKey(a),m=getAssociatedTokenAddress$1(y,e,!0),f=getCCTPBridgePDAs$1(y,t),b=web3.Keypair.generate(),[T]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("LOCKED_FEE"),y.toBuffer(),b.publicKey.toBytes()],d);let h;u&&u>BigInt(0)?h=getAssociatedTokenAddress$1(y,l,!1):h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const w=getAssociatedTokenAddress$1(y,T,!0);s[0]=createAssociatedTokenAccountInstruction$1(l,w,T,y);const g=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:w,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=web3.Buffer$1.alloc(MctpBridgeLockFeeLayout$1.span);MctpBridgeLockFeeLayout$1.encode({instruction:getAnchorInstructionData$1("bridge_locked_fee")},A);const I=new web3.TransactionInstruction({keys:g,data:A,programId:d});return s[1]=I,{instructions:s,signer:b}}var MctpInitSwapLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpInitSwapInstruction$1(e,t,a,r,u){const s=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),o=new web3.PublicKey(addresses_default$1.CCTP_CORE_PROGRAM_ID),n=new web3.PublicKey(addresses_default$1.CCTP_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),i=new web3.PublicKey(r),d=new web3.PublicKey(a),l=getAssociatedTokenAddress$1(d,e,!0),y=getCCTPBridgePDAs$1(d,t),m=web3.Keypair.generate(),[f]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],p);let b;u&&u>BigInt(0)?b=getAssociatedTokenAddress$1(d,i,!1):b=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID);const T=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:y.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:y.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:y.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:y.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:y.localToken,isWritable:!0,isSigner:!1},{pubkey:y.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:y.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:m.publicKey,isWritable:!0,isSigner:!0},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=web3.Buffer$1.alloc(MctpInitSwapLayout$1.span);return MctpInitSwapLayout$1.encode({instruction:getAnchorInstructionData$1("create_order")},h),{instruction:new web3.TransactionInstruction({keys:T,data:h,programId:p}),signer:m}}var MctpBridgeLedgerLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode")]);function createMctpBridgeLedgerInstruction$1(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress$1(a,e.ledger,!0),u=getWormholeChainIdByName$1(e.toChain),s=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,u))),o=getSafeU64Blob$1(e.amountInMin64),n=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),p=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),i=getSafeU64Blob$1(e.feeSolana),d=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),l=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(d),isWritable:!1,isSigner:!1}],y=web3.Buffer$1.alloc(MctpBridgeLedgerLayout$1.span);return MctpBridgeLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_bridge_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},y),new web3.TransactionInstruction({keys:l,data:y,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef")]);function createMctpSwapLedgerInstruction$1(e){const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress$1(a,e.ledger,!0),u=getWormholeChainIdByName$1(e.toChain),s=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,u))),o=getSafeU64Blob$1(e.amountInMin64),n=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8))),p=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.feeRedeem,CCTP_TOKEN_DECIMALS$1)),i=getSafeU64Blob$1(e.feeSolana),d=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.tokenOut,u))),l=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),y=getSafeU64Blob$1(getAmountOfFractionalAmount$1(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),m=getSafeU64Blob$1(e.deadline),f=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=web3.Buffer$1.alloc(MctpSwapLedgerLayout$1.span);return MctpSwapLedgerLayout$1.encode({instruction:getAnchorInstructionData$1("init_order_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:d,refAddress:l,amountOutMin:y,deadline:m,feeRateRef:e.feeRateRef},b),new web3.TransactionInstruction({keys:f,data:b,programId:new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions$1(e,t,a,r,u,s={}){const o=s?.forceSkipCctpInstructions||!1,n=s?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let p=[],i=[],d=[],l=[],y=[],m=[],f=[];const b=web3.Keypair.generate();let T=null;p.push(addresses_default$1.LOOKUP_TABLE);const h=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),w=new web3.PublicKey(t),g=web3.Keypair.generate(),A=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const I=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[M]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from(I),w.toBytes(),g.publicKey.toBytes()],h),x=getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),M,!0),F=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const S=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(w,x,M,new web3.PublicKey(e.mctpInputContract)))),i.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(new web3.PublicKey(e.mctpInputContract),w,n),x,w,BigInt(e.effectiveAmountIn64)))),e.hasAuction){if(i.push(sandwichInstructionInCpiProxy(createMctpSwapLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps}),s.skipProxyMayanInstructions)),!o){const{instruction:E,signer:N}=createMctpInitSwapInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E,s.skipProxyMayanInstructions)),d.push(N)}}else if(i.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:F,referrerAddress:r}),s.skipProxyMayanInstructions)),!o)if(F==="WITH_FEE"){const{instruction:E,signers:N}=createMctpBridgeWithFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E,s.skipProxyMayanInstructions)),d.push(...N)}else{const{instructions:E,signer:N}=createMctpBridgeLockFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,S);i.push(sandwichInstructionInCpiProxy(E[0])),i.push(sandwichInstructionInCpiProxy(E[1],s.skipProxyMayanInstructions)),d.push(N)}}else{const S=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:M.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":F,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?b.publicKey.toString():null}),E=decentralizeClientSwapInstructions$1(S);s?.separateSwapTx&&S.maxAccountsFilled?(validateJupSwap$1(E,b.publicKey,w),f=await createInitializeRandomTokenAccountInstructions$1(u,w,new web3.PublicKey(e.mctpInputContract),w,b),m.push(...E.computeBudgetInstructions),E.setupInstructions&&m.push(...E.setupInstructions),m.push(E.swapInstruction),E.cleanupInstruction&&m.push(E.cleanupInstruction),y.push(...E.addressLookupTableAddresses),i.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(w,x,M,new web3.PublicKey(e.mctpInputContract)))),i.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(w,new web3.PublicKey(e.mctpInputContract),b.publicKey,x,w)))):(validateJupSwap$1(E,x,w),i.push(...E.computeBudgetInstructions),E.setupInstructions&&i.push(...E.setupInstructions.map(W=>sandwichInstructionInCpiProxy(W))),i.push(sandwichInstructionInCpiProxy(E.swapInstruction)),E.cleanupInstruction&&i.push(sandwichInstructionInCpiProxy(E.cleanupInstruction)),p.push(...E.addressLookupTableAddresses));const N=m.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(i.push(sandwichInstructionInCpiProxy(createMctpSwapLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps}),s.skipProxyMayanInstructions)),m.length>0){const{instruction:W,signer:L}=createMctpInitSwapInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W,s.skipProxyMayanInstructions)),d.push(L)}}else if(i.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),mode:F,referrerAddress:r}),s.skipProxyMayanInstructions)),m.length>0)if(F==="WITH_FEE"){const{instruction:W,signers:L}=createMctpBridgeWithFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W,s.skipProxyMayanInstructions)),d.push(...L)}else{const{instructions:W,signer:L}=createMctpBridgeLockFeeInstruction$1(M,e.toChain,e.mctpInputContract,t,N);i.push(sandwichInstructionInCpiProxy(W[0])),i.push(sandwichInstructionInCpiProxy(W[1],s.skipProxyMayanInstructions)),d.push(L)}}const D=await getAddressLookupTableAccounts$1(p.concat(y),u);if(l=D.slice(0,p.length),m.length>0){const S=D.slice(p.length);T={messageV0:{payerKey:w,instructions:m,addressLookupTableAccounts:S},createTmpTokenAccountIxs:f,tmpTokenAccount:b}}return{instructions:i,signers:d,lookupTables:l,swapMessageV0Params:T}}function createSwiftOrderHash$1(e,t,a,r,u){const o=web3.Buffer$1.alloc(239);let n=0;const p=getWormholeChainIdByName$1(e.fromChain),i=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(t,p)));o.set(i,0),n+=32,o.writeUInt16BE(p,n),n+=2;const d=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.swiftInputContract,p),l=web3.Buffer$1.from(hexToUint8Array$1(d));o.set(l,n),n+=32;const y=getWormholeChainIdByName$1(e.toChain),m=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(a,y)));o.set(m,n),n+=32,o.writeUInt16BE(y,n),n+=2;const f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,y),b=web3.Buffer$1.from(hexToUint8Array$1(f));o.set(b,n),n+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(e.toToken.decimals,8)),n),n+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),n),n+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.deadline64),n),n+=8;const T=r?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(r,y))):web3.SystemProgram.programId.toBuffer();o.set(T,n),n+=32,o.writeUInt8(e.referrerBps,n),n+=1;const h=e.protocolBps;o.writeUInt8(h,n),n+=1,o.writeUInt8(e.swiftAuctionMode,n),n+=1;const w=web3.Buffer$1.from(hexToUint8Array$1(u));if(o.set(w,n),n+=32,n!==239)throw new Error(`Invalid order data size: ${n}`);const g=web3.keccak256(o);return web3.Buffer$1.from(hexToUint8Array$1(g))}var InitSwiftLayout$1=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.u8("nativeInput"),web3.LayoutExports.blob(8,"feeSubmit"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"feeRefund"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef"),web3.LayoutExports.u8("feeRateMayan"),web3.LayoutExports.u8("auctionMode"),web3.LayoutExports.blob(32,"randomKey")]);function createSwiftInitInstruction$1(e){const{quote:t}=e,a=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(t.swiftInputContract),r=getWormholeChainIdByName$1(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:a,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],s=web3.Buffer$1.alloc(InitSwiftLayout$1.span),o=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),n=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount$1(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout$1.encode({instruction:getAnchorInstructionData$1("init_order"),amountInMin:getSafeU64Blob$1(n),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob$1(BigInt(t.submitRelayerFee64)),destAddress:web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(e.destinationAddress,r))),destinationChain:r,tokenOut:web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(t.toToken.contract,r))),amountOutMin:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob$1(getAmountOfFractionalAmount$1(t.gasDrop,Math.min(getGasDecimal$1(t.toChain),8))),feeCancel:getSafeU64Blob$1(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob$1(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob$1(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},s),new web3.TransactionInstruction({keys:u,data:s,programId:new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions$1(e,t,a,r,u,s={}){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 o=s.allowSwapperOffCurve||!1;let n=[],p=[],i=[];i.push(addresses_default$1.LOOKUP_TABLE);let d=[],l=[],y=[];const m=web3.Keypair.generate();let f=null;const b=new web3.PublicKey(addresses_default$1.SWIFT_PROGRAM_ID),T=new web3.PublicKey(t),h=web3.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const w=BigInt(e.deadline64),g=createSwiftOrderHash$1(e,t,a,r,h.publicKey.toBuffer().toString("hex")),[A]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("STATE_SOURCE"),g],b),I=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.swiftInputContract),M=getAssociatedTokenAddress$1(I,A,!0),x=e.gasless?new web3.PublicKey(e.relayer):T,F=getAssociatedTokenAddress$1(I,x,!1);if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(x,M,A,I))),e.swiftInputContract===providerJsonrpc.ZeroAddress?n.push(sandwichInstructionInCpiProxy(web3.SystemProgram.transfer({fromPubkey:T,toPubkey:M,lamports:BigInt(e.effectiveAmountIn64)})),sandwichInstructionInCpiProxy(createSyncNativeInstruction$1(M))):n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(I,T,o),M,T,BigInt(e.effectiveAmountIn64))));else{const D=await getSwapSolana$1({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${g.toString("hex")}`,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?m.publicKey.toString():null}),S=decentralizeClientSwapInstructions$1(D);s?.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap$1(S,m.publicKey,T),y=await createInitializeRandomTokenAccountInstructions$1(u,x,I,T,m),l.push(...S.computeBudgetInstructions),S.setupInstructions&&l.push(...S.setupInstructions),l.push(S.swapInstruction),S.cleanupInstruction&&l.push(S.cleanupInstruction),d.push(...S.addressLookupTableAddresses),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(x,M,A,I))),n.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(T,I,m.publicKey,M,x)))):(validateJupSwap$1(S,M,T),n.push(...S.computeBudgetInstructions),S.setupInstructions&&n.push(...S.setupInstructions.map(E=>sandwichInstructionInCpiProxy(E))),n.push(sandwichInstructionInCpiProxy(S.swapInstruction)),S.cleanupInstruction&&n.push(sandwichInstructionInCpiProxy(S.cleanupInstruction)),i.push(...S.addressLookupTableAddresses))}n.push(sandwichInstructionInCpiProxy(createSwiftInitInstruction$1({quote:e,state:A,trader:T,stateAccount:M,randomKey:h.publicKey,relayerAccount:F,relayer:x,destinationAddress:a,deadline:w,referrerAddress:r}),s.skipProxyMayanInstructions));const $=await getAddressLookupTableAccounts$1(i.concat(d),u);if(p=$.slice(0,i.length),l.length>0){const D=$.slice(i.length);f={messageV0:{payerKey:x,instructions:l,addressLookupTableAccounts:D},createTmpTokenAccountIxs:y,tmpTokenAccount:m}}return{instructions:n,signers:[],lookupTables:p,swapMessageV0Params:f}}async function createHyperCoreDepositFromSolanaInstructions(e,t,a,r,u,s={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!s?.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 o=s.allowSwapperOffCurve||!1;let n=[],p=[],i=[],d=[];d.push(addresses_default$1.LOOKUP_TABLE);let l=[],y=[],m=[];const f=web3.Keypair.generate();let b=null;const T=new web3.PublicKey(t),h=new web3.PublicKey(e.hyperCoreParams.initiateTokenContract),w=Math.floor(Math.random()*65e3),[g]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("PAYLOAD"),T.toBuffer(),(()=>{const D=web3.Buffer$1.alloc(2);return D.writeUInt16LE(w,0),D})()],new web3.PublicKey(addresses_default$1.PAYLOAD_WRITER_PROGRAM_ID)),A=getHyperCoreUSDCDepositCustomPayload(e,a,s.usdcPermitSignature),I=web3.Keypair.generate(),M=new web3.PublicKey(addresses_default$1.MCTP_PROGRAM_ID),[x]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("LEDGER_BRIDGE"),T.toBytes(),I.publicKey.toBytes()],M),F=getAssociatedTokenAddress$1(h,x,!0);if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract){e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,F,x,h))),n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(getAssociatedTokenAddress$1(h,T,o),F,T,BigInt(e.hyperCoreParams.bridgeAmountUSDC64)))),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCreateInstruction(T,g,A,w))),n.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:x,randomKey:I.publicKey,swapperAddress:T.toString(),mintAddress:h.toString(),mode:"WITH_FEE",feeSolana:BigInt(0),amountInMin64:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),customPayload:g,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}),s.skipProxyMayanInstructions));const{instruction:D,signers:S}=createMctpBridgeWithFeeInstruction$1(x,"arbitrum",e.hyperCoreParams.initiateTokenContract,T.toString(),BigInt(0));n.push(sandwichInstructionInCpiProxy(D,s.skipProxyMayanInstructions)),p.push(...S),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCloseInstruction(T,g,w)))}else{const D=await getSwapSolana$1({minMiddleAmount:e.minMiddleAmount,middleToken:e.hyperCoreParams.initiateTokenContract,userWallet:T.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:"HC_USDC",fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:f.publicKey.toString()}),S=decentralizeClientSwapInstructions$1(D);if(s?.separateSwapTx&&D.maxAccountsFilled)validateJupSwap$1(S,f.publicKey,T),m=await createInitializeRandomTokenAccountInstructions$1(u,T,h,T,f),y.push(...S.computeBudgetInstructions),S.setupInstructions&&y.push(...S.setupInstructions),y.push(S.swapInstruction),S.cleanupInstruction&&y.push(S.cleanupInstruction),l.push(...S.addressLookupTableAddresses);else{validateJupSwap$1(S,f.publicKey,T),n.push(...S.computeBudgetInstructions);const Y=await createInitializeRandomTokenAccountInstructions$1(u,T,h,T,f);n.push(...Y.map(G=>sandwichInstructionInCpiProxy(G))),p.push(f),S.setupInstructions&&n.push(...S.setupInstructions.map(G=>sandwichInstructionInCpiProxy(G))),n.push(sandwichInstructionInCpiProxy(S.swapInstruction)),S.cleanupInstruction&&n.push(sandwichInstructionInCpiProxy(S.cleanupInstruction)),d.push(...S.addressLookupTableAddresses)}const E=y.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);let N=BigInt(e.hyperCoreParams.bridgeAmountUSDC64);y.length>0&&(N=N-BigInt(e.solanaRelayerFee64)),n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,F,x,new web3.PublicKey(e.mctpInputContract)))),n.push(sandwichInstructionInCpiProxy(createSplTransferInstruction$1(f.publicKey,F,T,N)));const W=getAssociatedTokenAddress$1(h,T,o),L=await u.getAccountInfo(W);if((!L||!L.data)&&n.push(sandwichInstructionInCpiProxy(createAssociatedTokenAccountInstruction$1(T,W,T,h))),n.push(sandwichInstructionInCpiProxy(createTransferAllAndCloseInstruction$1(T,h,f.publicKey,W,T))),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCreateInstruction(T,g,A,w))),n.push(sandwichInstructionInCpiProxy(createMctpBridgeLedgerInstruction$1({ledger:x,swapperAddress:T.toString(),mintAddress:h.toString(),randomKey:I.publicKey,mode:"WITH_FEE",feeSolana:E,amountInMin64:N,customPayload:g,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,referrerAddress:r,feeRedeem:0,gasDrop:e.hyperCoreParams.failureGasDrop,toChain:"arbitrum"}),s.skipProxyMayanInstructions)),n.push(sandwichInstructionInCpiProxy(createPayloadWriterCloseInstruction(T,g,w))),y.length>0){const{instruction:Y,signers:G}=createMctpBridgeWithFeeInstruction$1(x,"arbitrum",e.hyperCoreParams.initiateTokenContract,T.toString(),BigInt(0));n.push(sandwichInstructionInCpiProxy(Y,s.skipProxyMayanInstructions)),p.push(...G)}}const $=await getAddressLookupTableAccounts$1(d.concat(l),u);if(i=$.slice(0,d.length),y.length>0){const D=$.slice(d.length);b={messageV0:{payerKey:T,instructions:y,addressLookupTableAccounts:D},createTmpTokenAccountIxs:m,tmpTokenAccount:f}}return{instructions:n,signers:p,lookupTables:i,swapMessageV0Params:b}}async function createMonoChainFromSolanaInstructions(e,t,a,r,u,s={}){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(a.startsWith("0x"))throw new Error("Destination address should not be EVM address");try{new web3.PublicKey(a)}catch{throw new Error("Invalid destination address: "+a)}let o=[],n=[],p=[];const i=new web3.PublicKey(t),d=new web3.PublicKey(a),l=e.toToken.contract===providerJsonrpc.ZeroAddress?solMint$1:new web3.PublicKey(e.toToken.contract),y=getAssociatedTokenAddress$1(l,d,!0,e.toToken.standard==="spl2022"?new web3.PublicKey(addresses_default$1.TOKEN_2022_PROGRAM_ID):new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID)),m=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),f=await getSwapSolana$1({userWallet:t,destinationWallet:a,slippageBps:e.slippageBps,fromToken:e.fromToken.contract,middleToken:e.toToken.contract,amountIn64:e.effectiveAmountIn64,expectedAmountOut64:String(m),depositMode:"MONO_CHAIN",referrerAddress:r,referrerBps:e.referrerBps}),b=decentralizeClientSwapInstructions$1(f);return validateJupSwap$1(b,y,i,d,i.equals(d)),validateJupSwapInstructionData(b.swapInstruction,e),o.push(...b.computeBudgetInstructions),b.setupInstructions&&o.push(...b.setupInstructions.map(T=>sandwichInstructionInCpiProxy(T))),o.push(sandwichInstructionInCpiProxy(b.swapInstruction,s?.skipProxyMayanInstructions)),b.cleanupInstruction&&o.push(sandwichInstructionInCpiProxy(b.cleanupInstruction)),p.push(...b.addressLookupTableAddresses),p.push(addresses_default$1.LOOKUP_TABLE),n=await getAddressLookupTableAccounts$1(p,u),{instructions:o,signers:[],lookupTables:n,swapMessageV0Params:null}}var STATE_SIZE$1=420,SwapLayout$1=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.u8("stateNonce"),web3.LayoutExports.blob(8,"amount"),web3.LayoutExports.blob(8,"minAmountOut"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(8,"feeSwap"),web3.LayoutExports.blob(8,"feeReturn"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"destinationAddress"),web3.LayoutExports.u8("unwrapRedeem"),web3.LayoutExports.u8("unwrapRefund"),web3.LayoutExports.u8("mayanFeeNonce"),web3.LayoutExports.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions$1(e,t,a,r,u,s={}){const o=getQuoteSuitableReferrerAddress$1(e,r);if(e.fromChain==="hypercore")throw new Error("HyperCore as source chain is not supported in Solana");if(e.toChain==="hypercore")return createHyperCoreDepositFromSolanaInstructions(e,t,a,o,u,s);if(e.type==="MCTP")return createMctpFromSolanaInstructions$1(e,t,a,o,u,s);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions$1(e,t,a,o,u,s);if(e.type==="MONO_CHAIN")return createMonoChainFromSolanaInstructions(e,t,a,o,u,s);let n=[];const p=u??new web3.Connection("https://rpc.ankr.com/solana"),i=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),d=new web3.PublicKey(addresses_default$1.TOKEN_PROGRAM_ID),l=new web3.PublicKey(t),y=new web3.PublicKey(addresses_default$1.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let m;o?m=new web3.PublicKey(o):m=web3.SystemProgram.programId;const[f,b]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAYANFEE")],i),[T,h]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("REFERRERFEE"),m.toBuffer()],i),w=web3.Keypair.generate(),g=web3.Keypair.generate(),[A,I]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("V2STATE"),web3.Buffer$1.from(w.publicKey.toBytes()),web3.Buffer$1.from(g.publicKey.toBytes())],i),M=new web3.PublicKey(e.fromToken.mint),x=new web3.PublicKey(e.toToken.mint),F=getAssociatedTokenAddress$1(M,l),$=getAssociatedTokenAddress$1(M,A,!0),[[D,S],E,N]=await Promise.all([p.getMultipleAccountsInfo([F,$],"finalized"),p.getMinimumBalanceForRentExemption(STATE_SIZE$1),decideRelayer$1()]);(!D||D.data.length===0)&&n.push(createAssociatedTokenAccountInstruction$1(l,F,l,M)),(!S||S.data.length===0)&&n.push(createAssociatedTokenAccountInstruction$1(l,$,A,M)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:F,lamports:BigInt(e.effectiveAmountIn64)})),n.push(createSyncNativeInstruction$1(F)));const W=BigInt(e.effectiveAmountIn64),L=web3.Keypair.generate();n.push(createApproveInstruction$1(F,L.publicKey,l,W)),n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:L.publicKey,lamports:E}));const Y=[{pubkey:L.publicKey,isWritable:!1,isSigner:!0},{pubkey:w.publicKey,isWritable:!1,isSigner:!0},{pubkey:g.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:F,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:x,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:L.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],G=getWormholeChainIdByName$1(e.toChain);if(G===1){const R=await p.getAccountInfo(new web3.PublicKey(a));if(R&&R.owner&&R.owner.equals(d))throw new Error("Destination address is not about token account. It should be a owner address")}const z=web3.Buffer$1.from(hexToUint8Array$1(nativeAddressToHexString$1(a,G))),j=getAmountOfFractionalAmount$1(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount$1(e.swapRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount$1(e.redeemRelayerFee,e.mintDecimals.to),U=getAmountOfFractionalAmount$1(e.refundRelayerFee,e.mintDecimals.from),X=getAmountOfFractionalAmount$1(e.gasDrop,getGasDecimalsInSolana$1(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,c=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const C=BigInt(e.deadline64),_=web3.Buffer$1.alloc(SwapLayout$1.span),P={instruction:101,stateNonce:I,amount:getSafeU64Blob$1(W),minAmountOut:getSafeU64Blob$1(j),deadline:getSafeU64Blob$1(C),feeSwap:getSafeU64Blob$1(Z),feeReturn:getSafeU64Blob$1(Q),feeCancel:getSafeU64Blob$1(U),gasDrop:getSafeU64Blob$1(X),destinationChain:G,destinationAddress:z,unwrapRedeem:J?1:0,unwrapRefund:c?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout$1.encode(P,_);const k=new web3.TransactionInstruction({keys:Y,data:_,programId:i});return n.push(k),{instructions:n,signers:[L,w,g],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams$1(e,t,a,r,u){const s=getWormholeChainIdById$1(Number(u)),o=getWormholeChainIdByName$1(e.fromChain),n=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${o} !== ${s}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==n)throw new Error(`Destination chain ID mismatch: ${n} != ${e.toToken.wChainId}`);const p=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const i=BigInt(e.deadline64),d=e.swiftInputContract,l=BigInt(e.effectiveAmountIn64);let y;r?y=nativeAddressToHexString$1(r,n):y=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const m=nativeAddressToHexString$1(web3.Keypair.generate().publicKey.toString(),1),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1):nativeAddressToHexString$1(e.toToken.contract,n),b=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),T=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),h=nativeAddressToHexString$1(a,n),w={trader:nativeAddressToHexString$1(t,o),tokenOut:f,minAmountOut:b,gasDrop:T,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:i,destAddr:h,destChainId:n,referrerAddr:y,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:m};return{contractAddress:p,tokenIn:d,amountIn:l,order:w}}function getSwiftFromEvmTxPayload$1(e,t,a,r,u,s){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 o=ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{tokenIn:p,amountIn:i,order:d,contractAddress:l}=getEvmSwiftParams$1(e,t,a,r,u);let y;const m=new contract.Contract(l,MayanSwiftArtifact_default$1.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?y=m.interface.encodeFunctionData("createOrderWithEth",[d]):y=m.interface.encodeFunctionData("createOrderWithToken",[p,i,d]);let f,b,T;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="forwardEth",b=[l,y],T=contract.toBeHex(i)):(f="forwardERC20",b=[p,i,o,l,y],T=contract.toBeHex(0));else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[i,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(i)):(f="swapAndForwardERC20",b=[A,i,o,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(0))}return{data:n.interface.encodeFunctionData(f,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:T,chainId:u,_forwarder:{method:f,params:b}}}var ShuttleArtifact_default$1={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:[]}]},shuttleConstants$1={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 writeBigIntTo16BytesBuffer$1(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 a=web3.Buffer$1.alloc(16);for(let r=15;r>=0;r--)a[r]=Number(e&0xFFn),e>>=8n;return a}function getShuttleParams$1(e,t,a){const{shuttleParams:r}=e;if(!r)throw new Error("Swap layer params are missing in quote response");const u=getWormholeChainIdById$1(Number(a)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);let n=[];n.push(shuttleConstants$1.FAST_MODE_FLAG);const p=web3.Buffer$1.alloc(8);p.writeBigUInt64BE(BigInt(r.maxLLFee));const i=p.subarray(2);n.push(...i);const d=web3.Buffer$1.alloc(4);d.writeUInt32BE(r.fastTransferDeadline),n.push(...d),n.push(shuttleConstants$1.RELAY_REDEEM_MODE);const l=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(6,getGasDecimal$1(e.toChain))),y=web3.Buffer$1.alloc(8);y.writeBigUInt64BE(l);const m=y.subarray(4);n.push(...m);const f=web3.Buffer$1.alloc(8);f.writeBigUInt64BE(BigInt(r.maxRelayingFee));const b=f.subarray(2);n.push(...b),n.push(shuttleConstants$1.EXACT_IN_FLAG),n.push(shuttleConstants$1.USDC_INPUT_TOKEN_TYPE);const T=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){n.push(...Array(8).fill(0));const w=web3.Buffer$1.alloc(8);w.writeBigUInt64BE(T),n.push(...w)}else n.push(...Array(16).fill(0));if(n.push(shuttleConstants$1.PRE_APPROVED_ACQUIRE_MODE),r.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)n.push(shuttleConstants$1.OUTPUT_NATIVE_MODE);else{n.push(shuttleConstants$1.OUTPUT_OTHER_MODE);const I=web3.Buffer$1.from(nativeAddressToHexString$1(e.toToken.contract,o).slice(2),"hex");n.push(...I)}const w=web3.Buffer$1.alloc(4);w.writeUInt32BE(Number(BigInt(e.deadline64))),n.push(...w);const g=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){n.push(...Array(8).fill(0));const I=web3.Buffer$1.alloc(8);I.writeBigUInt64BE(g),n.push(...I)}else{const I=writeBigIntTo16BytesBuffer$1(g);n.push(...I)}const A=web3.Buffer$1.from(r.path.slice(2),"hex");n.push(...A)}else n.push(shuttleConstants$1.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString$1(t,o),destChainId:o,serializedParams:`0x${web3.Buffer$1.from(n).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:T,bridgeFee:getAmountOfFractionalAmount$1(e.bridgeFee,getGasDecimal$1(e.fromChain))}}function getShuttleFromEvmTxPayload$1(e,t,a,r){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const u=ZeroPermit$1,s=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{destAddr:o,destChainId:n,serializedParams:p,contractAddress:i,amountIn:d,bridgeFee:l}=getShuttleParams$1(e,t,a);let y;y=new contract.Contract(i,ShuttleArtifact_default$1.abi).interface.encodeFunctionData("initiate",[o,d,n,p]);let f,b,T;if(e.fromToken.contract===e.shuttleInputContract)f="forwardERC20",b=[e.shuttleInputContract,d,u,i,y],T=contract.toBeHex(l);else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount$1(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[d,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(d)):(f="swapAndForwardERC20",b=[A,d,u,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(l))}return{data:s.interface.encodeFunctionData(f,b),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:T,chainId:a,_forwarder:{method:f,params:b}}}var MayanFastMctpArtifact_default$1={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 getEvmFastMctpBridgeParams$1(e,t,a,r,u){const s=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain),n=getWormholeChainIdByName$1(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);const p=nativeAddressToHexString$1(t,n),i=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),d=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),l=BigInt(e.circleMaxFee64),y=BigInt(e.effectiveAmountIn64),m=getCCTPDomain$1(e.toChain);let f;if(a?f=nativeAddressToHexString$1(a,n):f=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:y,redeemFee:i,gasDrop:d,destAddr:p,destDomain:m,referrerAddr:f,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT$1,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:l,contractAddress:b}}function getEvmFastMctpBridgeTxPayload$1(e,t,a,r,u){const s=getEvmFastMctpBridgeParams$1(e,t,a,r),{contractAddress:o,tokenIn:n,amountIn:p,destAddr:i,redeemFee:d,gasDrop:l,circleMaxFee:y,referrerAddr:m,referrerBps:f,destDomain:b,customPayload:T,minFinalityThreshold:h,payloadType:w}=s,g=new contract.Contract(o,MayanFastMctpArtifact_default$1.abi);let A,I;return A=g.interface.encodeFunctionData("bridge",[n,p,d,y,l,i,b,m,f,w,h,T]),I=contract.toBeHex(0),{to:o,data:A,value:I,_params:s}}function getEvmFastMctpCreateOrderParams$1(e,t,a,r){const u=getWormholeChainIdById$1(Number(r)),s=getWormholeChainIdByName$1(e.fromChain),o=getWormholeChainIdByName$1(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.fastMctpMayanContract,p=nativeAddressToHexString$1(t,o);let i;a?i=nativeAddressToHexString$1(a,o):i=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const d=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),l=BigInt(e.refundRelayerFee64),y=BigInt(e.circleMaxFee64),m=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),f=getCCTPDomain$1(e.toChain),b=BigInt(e.effectiveAmountIn64),T=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),w=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:y,destDomain:f,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER$1,destAddr:p,tokenOut:w,amountOutMin:T,gasDrop:m,redeemFee:d,refundFee:l,deadline:h,referrerAddr:i,referrerBps:e.referrerBps||0},contractAddress:n}}function getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r){const u=getEvmFastMctpCreateOrderParams$1(e,t,a,r),{contractAddress:s,orderPayload:o,tokenIn:n,amountIn:p,circleMaxFee:i,destDomain:d,minFinalityThreshold:l}=u,m=new contract.Contract(s,MayanFastMctpArtifact_default$1.abi).interface.encodeFunctionData("createOrder",[n,p,i,d,l,o]),f=contract.toBeHex(0);return{to:s,data:m,value:f,_params:u}}function getFastMctpFromEvmTxPayload$1(e,t,a,r,u,s){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 o=u||ZeroPermit$1,n=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const p=getEvmFastMctpBridgeTxPayload$1(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const{minMiddleAmount:p,evmSwapRouterAddress:i,evmSwapRouterCalldata:d}=e;if(!p||!i||!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 l=getEvmFastMctpCreateOrderTxPayload$1(e,t,a,r),y=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}else{const l=getEvmFastMctpBridgeTxPayload$1(e,t,a,r),y=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}}}var HCDepositInitiatorArtifact_default={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 getUsdcDepositInitiatorMctpTxPayload(e,t,a,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 contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),s=web3.Buffer$1.from(hexToUint8Array$1(r));if(s.length!==65)throw new Error("Invalid USDC permit signature length");const o="0x"+s.subarray(0,32).toString("hex"),n="0x"+s.subarray(32,64).toString("hex"),p=s[64];let i,d;return i=u.interface.encodeFunctionData("deposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:a,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:o,s:n,v:p}}}]),d=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:i,value:d,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getUsdcDepositInitiatorFastMctpTxPayload(e,t,a,r,u){const s=getWormholeChainIdByName$1("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 o=new contract.Contract(e.hyperCoreParams.initiateContractAddress,HCDepositInitiatorArtifact_default.abi),n=web3.Buffer$1.from(hexToUint8Array$1(u));if(n.length!==65)throw new Error("Invalid USDC permit signature length");const p="0x"+n.subarray(0,32).toString("hex"),i="0x"+n.subarray(32,64).toString("hex"),d=n[64];let l;r?l=nativeAddressToHexString$1(r,s):l=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));let y,m;return y=o.interface.encodeFunctionData("fastDeposit",[e.hyperCoreParams.initiateTokenContract,BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,BigInt(e.circleMaxFee64),getAmountOfFractionalAmount$1(e.hyperCoreParams.failureGasDrop,Math.min(getGasDecimal$1("arbitrum"),8)),l,e.referrerBps,Number(e.fastMctpMinFinality),BigInt(e.hyperCoreParams.bridgeAmountUSDC64),{relayerFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),permit:{user:a,usd:BigInt(e.hyperCoreParams.depositAmountUSDC64),deadline:BigInt(e.deadline64),signature:{r:p,s:i,v:d}}}]),m=contract.toBeHex(0),{to:e.hyperCoreParams.initiateContractAddress,data:y,value:m,_params:{amountIn:BigInt(e.hyperCoreParams.bridgeAmountUSDC64),contractAddress:e.hyperCoreParams.initiateContractAddress}}}function getHyperCoreDepositFromEvmTxPayload(e,t,a,r,u,s,o,n={}){if(e.toToken.contract.toLowerCase()!==addresses_default$1.ARBITRUM_USDC_CONTRACT.toLowerCase()||e.type!=="MCTP"&&e.type!=="FAST_MCTP")throw new Error("Unsupported quote type for USDC deposit: "+e.type);if(!n?.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 p=getWormholeChainIdById$1(Number(u)),i=getWormholeChainIdByName$1(e.fromChain);if(i!==p)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${i} !== ${p}`);const d=s||ZeroPermit$1,l=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi);let y;if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");if(e.type==="MCTP")y=getUsdcDepositInitiatorMctpTxPayload(e,t,a,n.usdcPermitSignature);else if(e.type==="FAST_MCTP")y=getUsdcDepositInitiatorFastMctpTxPayload(e,t,a,r,n.usdcPermitSignature);else throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);if(e.fromToken.contract.toLowerCase()===e.hyperCoreParams.initiateTokenContract.toLowerCase()){const m="forwardERC20",f=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:u,_forwarder:{method:m,params:f}}}else{const{evmSwapRouterAddress:m,evmSwapRouterCalldata:f}=e;if(!e.minMiddleAmount||!m||!f)throw new Error("Fast Mctp swap requires middle amount, router address and calldata");const b=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const T="swapAndForwardEth",h=[BigInt(e.effectiveAmountIn64),m,f,e.hyperCoreParams.initiateTokenContract,b,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(BigInt(e.effectiveAmountIn64)),chainId:u,_forwarder:{method:T,params:h}}}else{const T="swapAndForwardERC20",h=[e.fromToken.contract,BigInt(e.effectiveAmountIn64),d,m,f,e.hyperCoreParams.initiateTokenContract,b,y._params.contractAddress,y.data];return{data:l.interface.encodeFunctionData(T,h),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:u,_forwarder:{method:T,params:h}}}}}var MayanMonoChainArtifact_default={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 getEvmMonoChainTxPayload(e,t,a){const r=getAmountOfFractionalAmount$1(e.expectedAmountOut,e.toToken.decimals),u=new contract.Contract(e.monoChainMayanContract,MayanMonoChainArtifact_default.abi),s=a&&e.referrerBps||0;let o,n;return e.toToken.contract===providerJsonrpc.ZeroAddress?o=u.interface.encodeFunctionData("transferEth",[t,a||providerJsonrpc.ZeroAddress,s]):o=u.interface.encodeFunctionData("transferToken",[e.toToken.contract,r,t,a||providerJsonrpc.ZeroAddress,s]),e.fromToken.contract===providerJsonrpc.ZeroAddress?n=contract.toBeHex(e.effectiveAmountIn64):n=contract.toBeHex(0),{to:e.monoChainMayanContract,data:o,value:n,_params:{amountIn:BigInt(e.effectiveAmountIn64),tokenIn:e.fromToken.contract}}}function getMonoChainFromEvmTxPayload(e,t,a,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 s=getWormholeChainIdById$1(Number(r)),o=getWormholeChainIdByName$1(e.fromChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);r=Number(r);const n=u||ZeroPermit$1,p=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),{evmSwapRouterAddress:i,evmSwapRouterCalldata:d}=e;if(!i||!d)throw new Error("Mono chain swap requires router address and calldata");const l=getEvmMonoChainTxPayload(e,t,a),y=getAmountOfFractionalAmount$1(e.minAmountOut,e.toToken.decimals);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.toToken.contract,y,e.monoChainMayanContract,l.data];return{data:p.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,n,i,d,e.toToken.contract,y,e.monoChainMayanContract,l.data];return{data:p.interface.encodeFunctionData(m,f),to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}function getEvmSwapParams$1(e,t,a,r,u,s){const o=new web3.PublicKey(addresses_default$1.MAYAN_PROGRAM_ID),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAIN")],o),p=getAssociatedTokenAddress$1(new web3.PublicKey(e.fromToken.mint),n,!0),i=BigInt(e.effectiveAmountIn64),d=nativeAddressToHexString$1(p.toString(),1),l=nativeAddressToHexString$1(addresses_default$1.AUCTION_PROGRAM_ID,1);let y;a?y=nativeAddressToHexString$1(a,1):y=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),1);const m=getWormholeChainIdById$1(Number(u)),f=getWormholeChainIdByName$1(e.fromChain),b=getWormholeChainIdByName$1(e.toChain);if(f!==m)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${f} !== ${m}`);const T=e.whMayanContract,h={mayanAddr:d,mayanChainId:1,destAddr:nativeAddressToHexString$1(t,b),destChainId:b,auctionAddr:l,referrer:y,refundAddr:nativeAddressToHexString$1(r,m)},w=e.toToken.contract===providerJsonrpc.ZeroAddress,g={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount$1(e.gasDrop,Math.min(8,getGasDecimal$1(e.toChain))),unwrap:w,customPayload:"0x"},A={swapFee:getAmountOfFractionalAmount$1(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount$1(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount$1(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},I=nativeAddressToHexString$1(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),M=getAmountOfFractionalAmount$1(e.bridgeFee,18);return{amountIn:i,tokenIn:e.fromToken.contract,tokenOut:I,tokenOutWChainId:e.toToken.realOriginChainId,criteria:g,recipient:h,relayerFees:A,contractAddress:T,bridgeFee:M}}function getSwapFromEvmTxPayload$1(e,t,a,r,u,s,o,n,p){const i=getWormholeChainIdById$1(Number(s)),d=getWormholeChainIdByName$1(e.fromChain);if(d!==i)throw new Error(`Signer chain id(${Number(s)}) and quote from chain are not same! ${d} !== ${i}`);const l=getQuoteSuitableReferrerAddress$1(e,r);if(e.toChain==="hypercore")return getHyperCoreDepositFromEvmTxPayload(e,t,a,l,s,n,o,p);if(e.type==="MCTP")return getMctpFromEvmTxPayload$1(e,a,l,s,n);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload$1(e,t,a,l,s);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload$1(e,a,s);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload$1(e,a,l,s,n);if(e.type==="MONO_CHAIN")return getMonoChainFromEvmTxPayload(e,a,l,s,n);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:y,recipient:m,tokenOut:f,tokenOutWChainId:b,criteria:T,tokenIn:h,amountIn:w,contractAddress:g,bridgeFee:A}=getEvmSwapParams$1(e,a,l,u,s),I=new contract.Contract(addresses_default$1.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default$1.abi),M=new contract.Contract(g,MayanSwapArtifact_default$1.abi);let x,F,$;const D=ZeroPermit$1;if(h===providerJsonrpc.ZeroAddress){const E=M.interface.encodeFunctionData("wrapAndSwapETH",[y,m,f,b,T]);x="forwardEth",F=[g,E],$=contract.toBeHex(w)}else{const E=M.interface.encodeFunctionData("swap",[y,m,f,b,T,h,w]);x="forwardERC20",F=[h,w,D,g,E],$=contract.toBeHex(A)}const S=I.interface.encodeFunctionData(x,F);return{to:addresses_default$1.MAYAN_FORWARDER_CONTRACT,data:S,value:$,chainId:s,_forwarder:{method:x,params:F}}}async function assertArgumentIsImmutable$1(e,t){let a;try{a=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(a){if(a[e.argumentIndex]!=="Pure"&&a[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 fetchAllCoins$1(e,t){let a=[],r=BigInt(0),u;do{const s=await t.getCoins({...e,owner:e.walletAddress,cursor:u}),o=s.data.filter(n=>BigInt(n.balance)>BigInt(0));if(a=[...a,...o],o.forEach(n=>{r+=BigInt(n.balance)}),s.data.length===0||!s.hasNextPage||!s.nextCursor||r>=e.coinAmount)return{coins:a.sort((n,p)=>Number(BigInt(n.coinObjectId)-BigInt(p.coinObjectId))),sum:r};u=s.nextCursor}while(!0)}async function fetchMayanSuiPackageId$1(e,t){let a;try{a=await t.getObject({id:e,options:{showContent:!0}})}catch(r){throw new Error(`Failed to fetch Mayan Sui package ID:
2
2
 
3
3
  ${r}`)}if(a.data?.content?.fields?.latest_package_id)return a.data.content.fields.latest_package_id;throw new Error("latest_package_id not found in Mayan Sui state object")}async function resolveInputCoin$1(e,t,a,r,u,s){let o;if(s?.result)o=s.result;else if(s?.objectId)o=u.object(s.objectId);else{const{coins:n,sum:p}=await fetchAllCoins$1({walletAddress:t,coinType:a,coinAmount:e},r);if(p<e)throw new Error(`Insufficient funds to create Coin ${a} with amount ${e}`);n.length>1&&u.mergeCoins(n[0].coinObjectId,n.slice(1).map(d=>d.coinObjectId));const[i]=u.splitCoins(n[0].coinObjectId,[e]);o=i}return o}async function createMctpFromSuiMoveCalls$1(e,t,a,r,u,s,o){const[n,p]=await Promise.all([fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_STATE,s),e.hasAuction?fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE,s):null]),i=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);let d,l,y;if(e.fromToken.contract===e.mctpInputContract)d=o?.builtTransaction??new platform.Transaction,l=await resolveInputCoin$1(i,t,e.mctpInputContract,s,d,o?.inputCoin);else{const{tx:b,outCoin:T,whFeeCoin:h}=await getSwapSui$1({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.mctpInputContract,userWallet:t,withWhFee:e.hasAuction||e.cheaperChain!=="sui",referrerAddress:r,inputCoin:o?.inputCoin,transaction:o?.builtTransaction?await o.builtTransaction.toJSON():void 0});d=platform.Transaction.from(b),l=T,y=h?{result:h}:null}e.hasAuction?await addInitOrderMoveCalls$1(e,t,a,r,n,p,s,{inputCoin:{result:l},whFeeCoin:y,builtTransaction:d}):e.cheaperChain==="sui"?await addBridgeLockedFeeMoveCalls$1(e,t,a,n,s,{inputCoin:{result:l},builtTransaction:d}):await addBridgeWithFeeMoveCalls$1(e,t,a,n,u,s,{inputCoin:{result:l},whFeeCoin:y,builtTransaction:d});const m=BigInt(e.effectiveAmountIn64),f=Uint8Array.from([]);d.moveCall({package:n,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[d.pure.u64(m),d.object(e.fromToken.verifiedAddress),d.pure.vector("u8",f)]});try{let b;r?b=nativeAddressToHexString$1(r,getWormholeChainIdByName$1(e.toChain)):b=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),d.moveCall({package:addresses_default$1.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[d.pure.address(b),d.pure.u8(e.referrerBps||0)]})}catch(b){console.error("Failed to log referrer",b)}return d}async function addBridgeWithFeeMoveCalls$1(e,t,a,r,u,s,o){return addBridgeWithFeeMoveCalls2({swapperAddress:t,destinationAddress:a,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:s,options:o})}async function addBridgeLockedFeeMoveCalls$1(e,t,a,r,u,s){const o=getWormholeChainIdByName$1(e.toChain),n=s?.builtTransaction??new platform.Transaction,p=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),i=await resolveInputCoin$1(p,t,e.mctpInputContract,u,n,s?.inputCoin),d=nativeAddressToHexString$1(a,o),l=getCCTPDomain$1(e.toChain),y=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),m=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),[f]=n.moveCall({package:r,module:"bridge_locked_fee",function:"prepare_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[i,n.pure.u64(p),n.pure.address(d),n.pure.u32(l),n.pure.u64(y),n.pure.u64(m)]}),[b,T]=n.moveCall({package:r,module:"bridge_locked_fee",function:"bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[n.object(addresses_default$1.SUI_MCTP_STATE),n.object(addresses_default$1.SUI_CCTP_CORE_STATE),n.object(e.mctpVerifiedInputAddress),f]}),[h,w]=n.moveCall({package:addresses_default$1.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:[T,n.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),n.object(addresses_default$1.SUI_CCTP_CORE_STATE),n.object("0x403"),n.object(e.mctpInputTreasury)]});return n.moveCall({package:r,module:"bridge_locked_fee",function:"store_bridge_locked_fee",typeArguments:[e.mctpInputContract],arguments:[n.object(addresses_default$1.SUI_MCTP_STATE),n.object(e.mctpVerifiedInputAddress),b,w]}),n}async function addInitOrderMoveCalls$1(e,t,a,r,u,s,o,n){const p=getWormholeChainIdByName$1(e.toChain),i=n?.builtTransaction??new platform.Transaction,d=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),[l]=await Promise.all([resolveInputCoin$1(d,t,e.mctpInputContract,o,i,n?.inputCoin),assertArgumentIsImmutable$1({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",argumentIndex:3},o)]),y=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")):nativeAddressToHexString$1(e.toToken.contract,e.toToken.wChainId),m=getAmountOfFractionalAmount$1(e.minAmountOut,Math.min(8,e.toToken.decimals)),f=nativeAddressToHexString$1(a,p),b=getCCTPDomain$1(e.toChain),T=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),h=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),w=BigInt(e.deadline64);let g;r?g=nativeAddressToHexString$1(r,p):g=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana"));const A=[i.object(e.mctpVerifiedInputAddress),i.pure.u8(MCTP_INIT_ORDER_PAYLOAD_ID$1),i.pure.address(t),l,i.pure.address(f),i.pure.u16(p),i.pure.address(y),i.pure.u64(m),i.pure.u64(T),i.pure.u64(h),i.pure.u64(w),i.pure.address(g),i.pure.u8(e.referrerBps)],[I]=i.moveCall({package:s,module:"calculate_mctp_fee",function:"prepare_calc_mctp_fee",typeArguments:[e.mctpInputContract],arguments:A}),[M]=i.moveCall({package:s,module:"calculate_mctp_fee",function:"calculate_mctp_fee",arguments:[i.object(addresses_default$1.SUI_MCTP_FEE_MANAGER_STATE),I]}),[x]=i.moveCall({package:u,module:"init_order",function:"prepare_initialize_order",typeArguments:[e.mctpInputContract],arguments:[...A.slice(1),i.pure.u32(b),i.pure.u64(d)]}),[F,$]=i.moveCall({package:u,module:"init_order",function:"initialize_order",typeArguments:[e.mctpInputContract],arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object(e.mctpVerifiedInputAddress),x,M]}),[D,S]=i.moveCall({package:addresses_default$1.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:[$,i.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),i.object(addresses_default$1.SUI_CCTP_CORE_STATE),i.object("0x403"),i.object(e.mctpInputTreasury)]}),[E]=i.moveCall({package:u,module:"init_order",function:"publish_init_order",arguments:[i.object(addresses_default$1.SUI_MCTP_STATE),F,S]});return await addPublishWormholeMessage$1(i,E,o,BigInt(e.bridgeFee),t,n?.whFeeCoin),i}async function addPublishWormholeMessage$1(e,t,a,r,u,s){let o;if(s?.result)o=s.result;else if(s?.objectId)o=e.object(s.objectId);else if(r>BigInt(0)){const{coins:n,sum:p}=await fetchAllCoins$1({walletAddress:u,coinType:platform.SUI_TYPE_ARG,coinAmount:r},a);if(p<r)throw new Error("Insufficient funds to pay Wormhole message fee");n.length>1&&e.mergeCoins(n[0].coinObjectId,n.slice(1).map(d=>d.coinObjectId));const[i]=e.splitCoins(n[0].coinObjectId,[r]);o=i}else{const[n]=e.splitCoins(e.gas,[e.pure.u64(0)]);o=n}return e.moveCall({package:addresses_default$1.SUI_WORMHOLE_PACKAGE_ID,module:"publish_message",function:"publish_message",arguments:[e.object(addresses_default$1.SUI_WORMHOLE_STATE),o,t,e.object(platform.SUI_CLOCK_OBJECT_ID)]}),e}async function addBridgeWithFeeMoveCalls2(e){const{swapperAddress:t,destinationAddress:a,mctpPackageId:r,payload:u,suiClient:s,options:o}=e,n=getWormholeChainIdByName$1(e.toChain),p=o?.builtTransaction??new platform.Transaction,i=getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1),d=await resolveInputCoin$1(i,t,e.mctpInputContract,s,p,o?.inputCoin),l=u?MCTP_PAYLOAD_TYPE_CUSTOM_PAYLOAD:MCTP_PAYLOAD_TYPE_DEFAULT$1,y=nativeAddressToHexString$1(a,n),m=getCCTPDomain$1(e.toChain),f=getAmountOfFractionalAmount$1(e.gasDrop,Math.min(getGasDecimal$1(e.toChain),8)),b=getAmountOfFractionalAmount$1(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS$1),T=u?Uint8Array.from(u):Uint8Array.from([]),[h]=p.moveCall({package:r,module:"bridge_with_fee",function:"prepare_bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.pure.u8(l),d,p.pure.u64(i),p.pure.address(y),p.pure.u32(m),p.pure.u64(f),p.pure.u64(b),p.pure.vector("u8",T)]}),[w,g]=p.moveCall({package:r,module:"bridge_with_fee",function:"bridge_with_fee",typeArguments:[e.mctpInputContract],arguments:[p.object(addresses_default$1.SUI_MCTP_STATE),p.object(addresses_default$1.SUI_CCTP_CORE_STATE),p.object(e.mctpVerifiedInputAddress),h]}),[A,I]=p.moveCall({package:addresses_default$1.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:[g,p.object(addresses_default$1.SUI_CCTP_TOKEN_STATE),p.object(addresses_default$1.SUI_CCTP_CORE_STATE),p.object("0x403"),p.object(e.mctpInputTreasury)]}),[M]=p.moveCall({package:r,module:"bridge_with_fee",function:"publish_bridge_with_fee",arguments:[p.object(addresses_default$1.SUI_MCTP_STATE),w,I]});return await addPublishWormholeMessage$1(p,M,s,BigInt(e.bridgeFee),t,o?.whFeeCoin),p}async function createHyperCoreDepositFromSuiMoveCalls(e,t,a,r,u,s){if(e.toToken.contract.toLowerCase()!==addresses_default$1.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(!s?.usdcPermitSignature)throw new Error("USDC permit signature is required for this quote");if(!Number(e.deadline64))throw new Error("HyperCore deposit requires timeout");const[o]=await Promise.all([fetchMayanSuiPackageId$1(addresses_default$1.SUI_MCTP_STATE,u)]);getAmountOfFractionalAmount$1(e.minMiddleAmount,CCTP_TOKEN_DECIMALS$1);let n,p,i;if(e.fromToken.contract===e.hyperCoreParams.initiateTokenContract)n=s?.builtTransaction??new platform.Transaction,p=await resolveInputCoin$1(BigInt(e.hyperCoreParams.bridgeAmountUSDC64),t,e.mctpInputContract,u,n,s?.inputCoin);else{const{tx:m,outCoin:f,whFeeCoin:b}=await getSwapSui$1({amountIn64:e.effectiveAmountIn64,inputCoinType:e.fromToken.contract,middleCoinType:e.hyperCoreParams.initiateTokenContract,userWallet:t,withWhFee:!0,referrerAddress:r,inputCoin:s?.inputCoin,transaction:s?.builtTransaction?await s.builtTransaction.toJSON():void 0});n=platform.Transaction.from(m);const[T]=n.splitCoins(f,[BigInt(e.hyperCoreParams.bridgeAmountUSDC64)]);n.transferObjects([f],n.pure.address(t)),p=T,i=b?{result:b}:null}const d=getHyperCoreUSDCDepositCustomPayload(e,a,s.usdcPermitSignature);await addBridgeWithFeeMoveCalls2({swapperAddress:t,destinationAddress:addresses_default$1.HC_ARBITRUM_DEPOSIT_PROCESSOR,mctpPackageId:o,toChain:"arbitrum",minMiddleAmount:getDisplayAmount(e.hyperCoreParams.bridgeAmountUSDC64,CCTP_TOKEN_DECIMALS$1),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:p},whFeeCoin:i,builtTransaction:n}});const l=BigInt(e.effectiveAmountIn64),y=Uint8Array.from(d);n.moveCall({package:o,module:"init_order",function:"log_initialize_mctp",typeArguments:[e.fromToken.contract],arguments:[n.pure.u64(l),n.object(e.fromToken.verifiedAddress),n.pure.vector("u8",y)]});try{let m;r?m=nativeAddressToHexString$1(r,getWormholeChainIdByName$1(e.toChain)):m=nativeAddressToHexString$1(web3.SystemProgram.programId.toString(),getWormholeChainIdByName$1("solana")),n.moveCall({package:addresses_default$1.SUI_LOGGER_PACKAGE_ID,module:"referrer_logger",function:"log_referrer",arguments:[n.pure.address(m),n.pure.u8(e.referrerBps||0)]})}catch(m){console.error("Failed to log referrer",m)}return n}async function createSwapFromSuiMoveCalls$1(e,t,a,r,u,s,o){const n=getQuoteSuitableReferrerAddress$1(e,r);if(e.toChain==="hypercore"){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(e.type!=="MCTP")throw new Error("Unsupported quote type for HyperCore deposit: "+e.type);return createHyperCoreDepositFromSuiMoveCalls(e,t,a,n,s,o)}if(e.type==="MCTP")return createMctpFromSuiMoveCalls$1(e,t,a,n,u,s,o);throw new Error("Unsupported quote type from Sui chain")}function base(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let i=0;i<t.length;i++)t[i]=255;for(let i=0;i<e.length;i++){const d=e.charAt(i),l=d.charCodeAt(0);if(t[l]!==255)throw new TypeError(d+" is ambiguous");t[l]=i}const a=e.length,r=e.charAt(0),u=Math.log(a)/Math.log(256),s=Math.log(256)/Math.log(a);function o(i){if(i instanceof Uint8Array||(ArrayBuffer.isView(i)?i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength):Array.isArray(i)&&(i=Uint8Array.from(i))),!(i instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(i.length===0)return"";let d=0,l=0,y=0;const m=i.length;for(;y!==m&&i[y]===0;)y++,d++;const f=(m-y)*s+1>>>0,b=new Uint8Array(f);for(;y!==m;){let w=i[y],g=0;for(let A=f-1;(w!==0||g<l)&&A!==-1;A--,g++)w+=256*b[A]>>>0,b[A]=w%a>>>0,w=w/a>>>0;if(w!==0)throw new Error("Non-zero carry");l=g,y++}let T=f-l;for(;T!==f&&b[T]===0;)T++;let h=r.repeat(d);for(;T<f;++T)h+=e.charAt(b[T]);return h}function n(i){if(typeof i!="string")throw new TypeError("Expected String");if(i.length===0)return new Uint8Array;let d=0,l=0,y=0;for(;i[d]===r;)l++,d++;const m=(i.length-d)*u+1>>>0,f=new Uint8Array(m);for(;d<i.length;){const w=i.charCodeAt(d);if(w>255)return;let g=t[w];if(g===255)return;let A=0;for(let I=m-1;(g!==0||A<y)&&I!==-1;I--,A++)g+=a*f[I]>>>0,f[I]=g%256>>>0,g=g/256>>>0;if(g!==0)throw new Error("Non-zero carry");y=A,d++}let b=m-y;for(;b!==m&&f[b]===0;)b++;const T=new Uint8Array(l+(m-b));let h=l;for(;b!==m;)T[h++]=f[b++];return T}function p(i){const d=n(i);if(d)return d;throw new Error("Non-base"+a+" character")}return{encode:o,decodeUnsafe:n,decode:p}}var ALPHABET="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";base(ALPHABET);var addresses_default={MAYAN_FORWARDER_CONTRACT:"0x076baB2Bf1aa0a06F47BD32245527f6D84d62Fd1",MAYAN_PROGRAM_ID:"FC4eXxkyrMPTjiYUpp4EAnkmwMbQyZ6NDCh1kfLn6vsf",AUCTION_PROGRAM_ID:"8QJmxZcEzwuYmCPy6XqgN2sHcYCcFq6AEfBMJZZuLo5a",MCTP_PROGRAM_ID:"dkpZqrxHFrhziEMQ931GLtfy11nFkCsfMftH9u6QwBU",SWIFT_PROGRAM_ID:"92peaC8g5ANAxpK2aCfLTC12JgPncRKCGULQNB2DMvRH",FEE_MANAGER_PROGRAM_ID:"EyQnmCoLDaFDuNdGYJuYNjFPorohwPuvUzhewg9nGej1",WORMHOLE_PROGRAM_ID:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",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:"8fVCtaFqfEAtGtqcoVyawy1Mytj461T4Ti4YjHZqfF47",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://testnet-explorer-api.mayan.finance/v3",PRICE_URL:"https://testnet-price-api.mayan.finance/v3",RELAYER_URL:"https://testnet-relayer-api.mayan.finance/v3"};function nativeAddressToHexString(e,t){if(t===1)return web3.zeroPadValue(new web3.PublicKey(e).toBytes(),32);if(t===chains.ethereum||t===chains.base||t===chains.monad)return web3.zeroPadValue(e,32);throw console.log(`Unsupported chain id: ${t}`,e),new Error("Unsupported token chain")}function hexToUint8Array(e){return new Uint8Array(web3.Buffer$1.from(e.startsWith("0x")?e.substring(2):e,"hex"))}function getAssociatedTokenAddress(e,t,a=!1,r=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),u=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){if(!a&&!web3.PublicKey.isOnCurve(t.toBuffer()))throw new Error("TokenOwnerOffCurveError");const[s]=web3.PublicKey.findProgramAddressSync([t.toBuffer(),r.toBuffer(),e.toBuffer()],u);return s}function getAmountOfFractionalAmount(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");const a=Math.min(8,Number(t)),r=Number(e).toFixed(a+1),u=new RegExp(`^-?\\d+(?:\\.\\d{0,${a}})?`),s=r.match(u);if(!s)throw new Error("getAmountOfFractionalAmount: fixedAmount is null");const o=s[0];return units.parseUnits(o,Number(t))}var chains={solana:1,ethereum:10002,base:10004,monad:48,sui:21};function getWormholeChainIdByName(e){return chains[e]}var evmChainIdMap={11155111:10002,84532:10004,10143:48};function getWormholeChainIdById(e){return evmChainIdMap[e]}var sdkVersion=[10,5,0];function getSdkVersion(){return sdkVersion.join("_")}function getGasDecimal(e){return e==="solana"?9:18}function getGasDecimalsInSolana(e){return e==="solana"?9:8}var MAX_U64=BigInt(2)**BigInt(64)-BigInt(1);function getSafeU64Blob(e){if(e<BigInt(0)||e>MAX_U64)throw new Error(`Invalid u64: ${e}`);const t=web3.Buffer$1.alloc(8);return t.writeBigUInt64LE(e),t}var ZeroPermit={value:BigInt(0),deadline:0,v:0,r:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`,s:`0x${web3.SystemProgram.programId.toBuffer().toString("hex")}`};function getQuoteSuitableReferrerAddress(e,t){return null}var MCTP_PAYLOAD_TYPE_DEFAULT=1,MCTP_INIT_ORDER_PAYLOAD_ID=1,FAST_MCTP_PAYLOAD_TYPE_DEFAULT=1,FAST_MCTP_PAYLOAD_TYPE_ORDER=3;function toQueryString(e){return Object.entries(e).filter(([t,a])=>a!=null&&!Array.isArray(a)).map(([t,a])=>`${encodeURIComponent(t)}=${encodeURIComponent(a)}`).join("&")}async function check5xxError(e){if(e.status.toString().startsWith("5")){let t;try{const a=await e.json();(a?.code||a?.statusCode)&&(a?.message||a?.msg)&&(t={code:a?.code||a?.statusCode,message:a?.message||a?.msg})}catch{t=new Error("Internal server error")}throw t}}function generateFetchQuoteUrl(e,t={wormhole:!0,swift:!0,mctp:!0,shuttle:!0,gasless:!1,onlyDirect:!1,fastMctp:!0}){const{gasDrop:a,referrerBps:r}=e;let u=e.slippageBps;u!=="auto"&&!Number.isFinite(u)&&(u=e.slippage*100);const o={...{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},solanaProgram:addresses_default.MAYAN_PROGRAM_ID,forwarderAddress:addresses_default.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(a)?a:void 0,sdkVersion:getSdkVersion()},n=`${addresses_default.PRICE_URL}/quote?`,p=toQueryString(o);return n+p}async function getSuggestedRelayer(){const e=await browserPonyfill.o(`${addresses_default.RELAYER_URL}/active-relayers?solanaProgram=${addresses_default.MAYAN_PROGRAM_ID}`,{method:"GET",redirect:"follow"});await check5xxError(e);const t=await e.json();if(e.status!==200&&e.status!==201)throw t;return t.suggested}async function getSwapSolana(e){const t=toQueryString({...e,sdkVersion:getSdkVersion()}),a=await browserPonyfill.o(`${addresses_default.PRICE_URL}/get-swap/solana?${t}`,{method:"GET",redirect:"follow"});await check5xxError(a);const r=await a.json();if(a.status!==200&&a.status!==201)throw r;return r}async function getSwapSui(e){const t=JSON.stringify({...e,sdkVersion:getSdkVersion()}),a=`${addresses_default.PRICE_URL}/get-swap/sui`,r=await browserPonyfill.o(a,{method:"POST",redirect:"follow",body:t,headers:{"Content-Type":"application/json"}});await check5xxError(r);const u=await r.json();if(r.status!==200&&r.status!==201)throw u;return u}var MayanSwapArtifact_default={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"}]},MayanForwarderArtifact_default={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"}]},MayanCircleArtifact_default={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"}]},CCTP_TOKEN_DECIMALS=6;function getCCTPDomain(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;default:throw new Error("unsupported chain for cctp")}}function getCCTPBridgePDAs(e,t){const a=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),r=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("message_transmitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("sender_authority")],r),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("local_token"),e.toBytes()],r),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_messenger")],r),[p]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("token_minter")],r),i=getCCTPDomain(t),[d]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("remote_token_messenger"),web3.Buffer$1.from(i.toString())],r),[l]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],a),[y]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("__event_authority")],r);return{messageTransmitter:u,senderAuthority:s,remoteTokenMessengerKey:d,tokenMessenger:n,tokenMinter:p,eventAuthToken:y,eventAuthCore:l,localToken:o}}function getEvmMctpBridgeParams(e,t,a,r){const u=getWormholeChainIdById(Number(a)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);const n=e.cheaperChain===e.fromChain,p=nativeAddressToHexString(t,o),i=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),l=BigInt(e.effectiveAmountIn64),y=getCCTPDomain(e.toChain);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const m=e.mctpMayanContract;if(e.toChain==="solana"&&n)throw new Error("Cannot lock fee for transfer to solana");let f=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));return n&&(f=BigInt(0)),{lockFee:n,tokenIn:e.mctpInputContract,amountIn:l,redeemFee:i,gasDrop:d,destAddr:p,destDomain:y,payloadType:MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",bridgeFee:f,contractAddress:m}}function getEvmMctpBridgeTxPayload(e,t,a,r){const u=getEvmMctpBridgeParams(e,t,a),{contractAddress:s,tokenIn:o,amountIn:n,destAddr:p,lockFee:i,redeemFee:d,gasDrop:l,destDomain:y,customPayload:m,payloadType:f,bridgeFee:b}=u,T=new contract.Contract(s,MayanCircleArtifact_default.abi);let h,w;return i?h=T.interface.encodeFunctionData("bridgeWithLockedFee",[o,n,l,d,y,p]):h=T.interface.encodeFunctionData("bridgeWithFee",[o,n,d,l,p,y,f,m]),w=contract.toBeHex(b),{to:s,data:h,value:w,_params:u}}function getEvmMctpCreateOrderParams(e,t,a,r){const u=getWormholeChainIdById(Number(r)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.mctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.mctpMayanContract,p=nativeAddressToHexString(t,o);let i;a?i=nativeAddressToHexString(a,o):i=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const d=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),l=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8));let y=BigInt(e.effectiveAmountIn64);const m=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),f=BigInt(e.deadline64),b=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{params:{tokenIn:e.mctpInputContract,amountIn:y,gasDrop:l,destAddr:p,destChain:o,tokenOut:b,minAmountOut:m,deadline:f,redeemFee:d,referrerAddr:i,referrerBps:e.referrerBps||0},bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain)),contractAddress:n}}function getEvmMctpCreateOrderTxPayload(e,t,a,r){const u=getEvmMctpCreateOrderParams(e,t,a,r),{contractAddress:s,params:o,bridgeFee:n}=u,i=new contract.Contract(s,MayanCircleArtifact_default.abi).interface.encodeFunctionData("createOrder",[o]),d=contract.toBeHex(n);return{to:s,data:i,value:d,_params:u}}function getMctpFromEvmTxPayload(e,t,a,r,u,s){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 o=u||ZeroPermit,n=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),p=getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain));let i=contract.toBeHex(p);if(e.fromToken.contract===e.mctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("MCTP order requires timeout");const d=getEvmMctpCreateOrderTxPayload(e,t,a,r),l="forwardERC20",y=[e.fromToken.contract,d._params.params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const d=getEvmMctpBridgeTxPayload(e,t,r),l="forwardERC20",y=[e.fromToken.contract,d._params.amountIn,o,d._params.contractAddress,d.data];return{data:n.interface.encodeFunctionData(l,y),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:l,params:y}}}else{const{minMiddleAmount:d,evmSwapRouterAddress:l,evmSwapRouterCalldata:y}=e;if(!d||!l||!y)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 m=getEvmMctpCreateOrderTxPayload(e,t,a,r),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}else{const m=getEvmMctpBridgeTxPayload(e,t,r),f=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){let b=m._params.amountIn;if(b<=p)throw new Error("Amount in is less than bridge fee");p!==BigInt(0)&&(b-=p),i=contract.toBeHex(m._params.amountIn);const T="swapAndForwardEth",h=[b,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(T,h),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:T,params:h}}}else{const b="swapAndForwardERC20",T=[e.fromToken.contract,m._params.amountIn,o,l,y,e.mctpInputContract,f,m._params.contractAddress,m.data];return{data:n.interface.encodeFunctionData(b,T),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(i),chainId:r,_forwarder:{method:b,params:T}}}}}}var MayanSwiftArtifact_default={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 createAssociatedTokenAccountInstruction(e,t,a,r,u=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),s=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID)){const o=[{pubkey:e,isSigner:!0,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!1,isWritable:!1},{pubkey:web3.SystemProgram.programId,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isSigner:!1,isWritable:!1}];return new web3.TransactionInstruction({keys:o,programId:s,data:web3.Buffer$1.alloc(0)})}var TOKEN_ACCOUNT_LEN=165;async function createInitializeRandomTokenAccountInstructions(e,t,a,r,u,s=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const o=[],n=await e.getMinimumBalanceForRentExemption(TOKEN_ACCOUNT_LEN);return o.push(web3.SystemProgram.createAccount({fromPubkey:t,newAccountPubkey:u.publicKey,lamports:n,space:TOKEN_ACCOUNT_LEN,programId:s})),o.push(new web3.TransactionInstruction({keys:[{pubkey:u.publicKey,isWritable:!0,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1}],programId:s,data:web3.Buffer$1.from([1])})),o}var ApproveInstructionData=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createApproveInstruction(e,t,a,r,u=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(ApproveInstructionData.span);return ApproveInstructionData.encode({instruction:4,amount:getSafeU64Blob(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var SyncNativeInstructionData=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);function createSyncNativeInstruction(e){const t=[{pubkey:e,isSigner:!1,isWritable:!0}],a=web3.Buffer$1.alloc(SyncNativeInstructionData.span);return SyncNativeInstructionData.encode({instruction:17},a),new web3.TransactionInstruction({keys:t,programId:new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),data:a})}web3.LayoutExports.struct([web3.LayoutExports.u8("instruction")]);var SplTransferInstructionData=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.blob(8,"amount")]);function createSplTransferInstruction(e,t,a,r,u=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID)){const s=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:a,isSigner:!0,isWritable:!1}],o=web3.Buffer$1.alloc(SplTransferInstructionData.span);return SplTransferInstructionData.encode({instruction:3,amount:getSafeU64Blob(r)},o),new web3.TransactionInstruction({keys:s,programId:u,data:o})}var solMint=new web3.PublicKey("So11111111111111111111111111111111111111112");function deserializeInstructionInfo(e){return new web3.TransactionInstruction({programId:new web3.PublicKey(e.programId),keys:e.accounts.map(t=>({pubkey:new web3.PublicKey(t.pubkey),isSigner:t.isSigner,isWritable:t.isWritable})),data:web3.Buffer$1.from(e.data,"base64")})}async function getAddressLookupTableAccounts(e,t){return(await t.getMultipleAccountsInfo(e.map(r=>new web3.PublicKey(r)))).reduce((r,u,s)=>{const o=e[s];if(u){const n=new web3.AddressLookupTableAccount({key:new web3.PublicKey(o),state:web3.AddressLookupTableAccount.deserialize(u.data)});r.push(n)}return r},new Array)}function decentralizeClientSwapInstructions(e,t){const a=deserializeInstructionInfo(e.swapInstruction),r=e.cleanupInstruction?deserializeInstructionInfo(e.cleanupInstruction):null,u=e.computeBudgetInstructions?e.computeBudgetInstructions.map(deserializeInstructionInfo):[],s=e.setupInstructions?e.setupInstructions.map(deserializeInstructionInfo):[];return{swapInstruction:a,cleanupInstruction:r,computeBudgetInstructions:u,setupInstructions:s,addressLookupTableAddresses:e.addressLookupTableAddresses}}function getAnchorInstructionData(e){let t=`global:${e}`;return web3.Buffer$1.from(sha256Exports.sha256.digest(t)).subarray(0,8)}async function decideRelayer(){let e;try{const t=await getSuggestedRelayer();e=new web3.PublicKey(t)}catch{console.log("Relayer not found, using system program"),e=web3.SystemProgram.programId}return e}function validateJupCleanupInstruction(e){if(e){if(!e.programId.equals(new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!e.programId.equals(new web3.PublicKey(addresses_default.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")}}function validateJupSetupInstructions(e,t){if(!(e.length<1)){if(e.length>6)throw new Error("Invalid setup instruction:: too many instructions");e.forEach(a=>{if(!a.programId.equals(new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))&&!a.programId.equals(web3.SystemProgram.programId)&&!a.programId.equals(new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID))&&!a.programId.equals(new web3.PublicKey(addresses_default.TOKEN_2022_PROGRAM_ID)))throw new Error("Invalid setup instruction:: programId");if(a.programId.equals(new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID))){if(Uint8Array.from(a.data).length===1){if(Uint8Array.from(a.data)[0]!==1)throw new Error("Invalid setup instruction:: data")}else if(Uint8Array.from(a.data).length!==0)throw new Error("Invalid setup instruction:: data")}else if(a.programId.equals(web3.SystemProgram.programId)){if(!t)throw new Error("Invalid setup instruction:: unknown transfer");const r=getAssociatedTokenAddress(solMint,t,!0);if(a.data.readUint32LE()!==2)throw new Error("Invalid setup instruction:: invalid system program instruction");if(!a.keys[1].pubkey.equals(r))throw new Error("Invalid setup instruction:: invalid wrap transfer dest")}else if(a.data.toString("base64")!=="EQ==")throw new Error("Invalid setup instruction:: invalid token program instruction")})}}function validateJupSwapInstruction(e,t){if(!e.programId.equals(new web3.PublicKey("JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4")))throw new Error("Invalid swap instruction:: programId");if(e.data.subarray(0,8).toString("hex")===getAnchorInstructionData("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")===getAnchorInstructionData("route").toString("hex")){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 validateJupComputeBudgetInstructions(e){e.forEach(t=>{if(!t.programId.equals(web3.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 validateJupSwap(e,t,a){validateJupComputeBudgetInstructions(e.computeBudgetInstructions),validateJupSetupInstructions(e.setupInstructions,a),validateJupSwapInstruction(e.swapInstruction,t),validateJupCleanupInstruction(e.cleanupInstruction)}function createTransferAllAndCloseInstruction(e,t,a,r,u,s=new web3.PublicKey("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")){return new web3.TransactionInstruction({keys:[{pubkey:e,isSigner:!0,isWritable:!1},{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:t,isSigner:!1,isWritable:!1},{pubkey:u,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!1}],programId:new web3.PublicKey("B96dV3Luxzo6SokJx3xt8i5y8Mb7HRR6Eec8hCjJDT69"),data:getAnchorInstructionData("transfer_all_and_close")})}function getWormholePDAs(e){const t=new web3.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),a=new web3.PublicKey(e),[r]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Bridge")],t),[u]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("emitter")],a),[s]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("Sequence"),u.toBuffer()],t),[o]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("fee_collector")],t);return{bridgeConfig:r,sequenceKey:s,feeCollector:o,emitter:u}}var MCTPBridgeWithFeeLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeWithFeeInstruction(e,t,a,r,u){const s=new web3.PublicKey(addresses_default.WORMHOLE_PROGRAM_ID),o=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),p=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),i=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),d=new web3.PublicKey(r),l=new web3.PublicKey(a),y=getAssociatedTokenAddress(l,e,!0);let m;u&&u>BigInt(0)?m=getAssociatedTokenAddress(l,d,!1):m=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const f=getCCTPBridgePDAs(l,t),b=getWormholePDAs(addresses_default.MCTP_PROGRAM_ID),T=web3.Keypair.generate(),h=web3.Keypair.generate(),w=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!0},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:T.publicKey,isWritable:!0,isSigner:!0},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:b.emitter,isWritable:!1,isSigner:!1},{pubkey:b.bridgeConfig,isWritable:!0,isSigner:!1},{pubkey:b.sequenceKey,isWritable:!0,isSigner:!1},{pubkey:b.feeCollector,isWritable:!0,isSigner:!1},{pubkey:h.publicKey,isWritable:!0,isSigner:!0},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],g=web3.Buffer$1.alloc(MCTPBridgeWithFeeLayout.span);return MCTPBridgeWithFeeLayout.encode({instruction:getAnchorInstructionData("bridge_with_fee")},g),{instruction:new web3.TransactionInstruction({keys:w,data:g,programId:i}),signers:[T,h]}}var MctpBridgeLockFeeLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpBridgeLockFeeInstruction(e,t,a,r,u){const s=[],o=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),n=new web3.PublicKey(addresses_default.ASSOCIATED_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),i=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),d=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),l=new web3.PublicKey(r),y=new web3.PublicKey(a),m=getAssociatedTokenAddress(y,e,!0),f=getCCTPBridgePDAs(y,t),b=web3.Keypair.generate(),[T]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("LOCKED_FEE"),y.toBuffer(),b.publicKey.toBytes()],d);let h;u&&u>BigInt(0)?h=getAssociatedTokenAddress(y,l,!1):h=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const w=getAssociatedTokenAddress(y,T,!0);s.push(createAssociatedTokenAccountInstruction(l,w,T,y));const g=[{pubkey:e,isWritable:!0,isSigner:!1},{pubkey:m,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!0},{pubkey:h,isWritable:!0,isSigner:!1},{pubkey:T,isWritable:!0,isSigner:!1},{pubkey:w,isWritable:!0,isSigner:!1},{pubkey:y,isWritable:!0,isSigner:!1},{pubkey:f.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:f.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:f.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:f.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:f.localToken,isWritable:!0,isSigner:!1},{pubkey:f.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:f.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:b.publicKey,isWritable:!0,isSigner:!0},{pubkey:i,isWritable:!1,isSigner:!1},{pubkey:p,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],A=web3.Buffer$1.alloc(MctpBridgeLockFeeLayout.span);MctpBridgeLockFeeLayout.encode({instruction:getAnchorInstructionData("bridge_locked_fee")},A);const I=new web3.TransactionInstruction({keys:g,data:A,programId:d});return s.push(I),{instructions:s,signer:b}}var MctpInitSwapLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction")]);function createMctpInitSwapInstruction(e,t,a,r,u){const s=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),o=new web3.PublicKey(addresses_default.CCTP_CORE_PROGRAM_ID),n=new web3.PublicKey(addresses_default.CCTP_TOKEN_PROGRAM_ID),p=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),i=new web3.PublicKey(r),d=new web3.PublicKey(a),l=getAssociatedTokenAddress(d,e,!0),y=getCCTPBridgePDAs(d,t),m=web3.Keypair.generate(),[f]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("ORDER_SOLANA_SOURCE"),e.toBuffer()],p);let b;u&&u>BigInt(0)?b=getAssociatedTokenAddress(d,i,!1):b=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID);const T=[{pubkey:e,isWritable:!1,isSigner:!1},{pubkey:l,isWritable:!0,isSigner:!1},{pubkey:i,isWritable:!0,isSigner:!0},{pubkey:b,isWritable:!0,isSigner:!1},{pubkey:d,isWritable:!0,isSigner:!1},{pubkey:f,isWritable:!0,isSigner:!1},{pubkey:y.senderAuthority,isWritable:!1,isSigner:!1},{pubkey:y.tokenMessenger,isWritable:!1,isSigner:!1},{pubkey:y.remoteTokenMessengerKey,isWritable:!1,isSigner:!1},{pubkey:y.tokenMinter,isWritable:!1,isSigner:!1},{pubkey:y.localToken,isWritable:!0,isSigner:!1},{pubkey:y.eventAuthToken,isWritable:!1,isSigner:!1},{pubkey:y.messageTransmitter,isWritable:!0,isSigner:!1},{pubkey:m.publicKey,isWritable:!0,isSigner:!0},{pubkey:n,isWritable:!1,isSigner:!1},{pubkey:o,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:s,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],h=web3.Buffer$1.alloc(MctpInitSwapLayout.span);return MctpInitSwapLayout.encode({instruction:getAnchorInstructionData("create_order")},h),{instruction:new web3.TransactionInstruction({keys:T,data:h,programId:p}),signer:m}}var MctpBridgeLedgerLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode")]);function createMctpBridgeLedgerInstruction(e){if(e.mode!=="WITH_FEE"&&e.mode!=="LOCK_FEE")throw new Error("Invalid mode: "+e.mode);const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress(a,e.ledger,!0),u=getWormholeChainIdByName(e.toChain),s=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,u))),o=getSafeU64Blob(e.amountInMin64),n=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),i=getSafeU64Blob(e.feeSolana),d=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),l=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:e.customPayload||new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(d),isWritable:!1,isSigner:!1}],y=web3.Buffer$1.alloc(MctpBridgeLedgerLayout.span);return MctpBridgeLedgerLayout.encode({instruction:getAnchorInstructionData("init_bridge_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:e.mode==="WITH_FEE"?1:2},y),new web3.TransactionInstruction({keys:l,data:y,programId:new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}var MctpSwapLedgerLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeRedeem"),web3.LayoutExports.blob(8,"feeSolana"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"keyRnd"),web3.LayoutExports.u8("mode"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef")]);function createMctpSwapLedgerInstruction(e){const t=new web3.PublicKey(e.swapperAddress),a=new web3.PublicKey(e.mintAddress),r=getAssociatedTokenAddress(a,e.ledger,!0),u=getWormholeChainIdByName(e.toChain),s=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,u))),o=getSafeU64Blob(e.amountInMin64),n=getSafeU64Blob(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8))),p=getSafeU64Blob(getAmountOfFractionalAmount(e.feeRedeem,CCTP_TOKEN_DECIMALS)),i=getSafeU64Blob(e.feeSolana),d=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.tokenOut,u))),l=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,u))):web3.SystemProgram.programId.toBuffer(),y=getSafeU64Blob(getAmountOfFractionalAmount(e.amountOutMin,Math.min(8,e.tokenOutDecimals))),m=getSafeU64Blob(e.deadline),f=[{pubkey:t,isWritable:!0,isSigner:!0},{pubkey:e.ledger,isWritable:!0,isSigner:!1},{pubkey:r,isWritable:!1,isSigner:!1},{pubkey:a,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],b=web3.Buffer$1.alloc(MctpSwapLedgerLayout.span);return MctpSwapLedgerLayout.encode({instruction:getAnchorInstructionData("init_order_ledger"),destAddress:s,amountInMin:o,gasDrop:n,feeRedeem:p,feeSolana:i,destinationChain:u,keyRnd:e.randomKey.toBuffer(),mode:3,tokenOut:d,refAddress:l,amountOutMin:y,deadline:m,feeRateRef:e.feeRateRef},b),new web3.TransactionInstruction({keys:f,data:b,programId:new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID)})}async function createMctpFromSolanaInstructions(e,t,a,r,u,s={}){const o=s?.forceSkipCctpInstructions||!1,n=s?.allowSwapperOffCurve||!1;if(e.toChain==="solana")throw new Error("Unsupported destination chain: "+e.toChain);let p=[],i=[],d=[],l=[],y=[],m=[],f=[];const b=web3.Keypair.generate();let T=null;p.push(addresses_default.LOOKUP_TABLE);const h=new web3.PublicKey(addresses_default.MCTP_PROGRAM_ID),w=new web3.PublicKey(t),g=web3.Keypair.generate(),A=e.deadline64?BigInt(e.deadline64):BigInt(0);if(e.hasAuction&&!Number(e.deadline64))throw new Error("Swap mode requires a timeout");const I=e.hasAuction?"LEDGER_ORDER":"LEDGER_BRIDGE",[M]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from(I),w.toBytes(),g.publicKey.toBytes()],h),x=getAssociatedTokenAddress(new web3.PublicKey(e.mctpInputContract),M,!0),F=e.cheaperChain==="solana"?"LOCK_FEE":"WITH_FEE",$=e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract;if(e.fromToken.contract===e.mctpInputContract){const S=BigInt(o?e.solanaRelayerFee64:0);if(e.suggestedPriorityFee>0&&i.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),i.push(createAssociatedTokenAccountInstruction(w,x,M,new web3.PublicKey(e.mctpInputContract))),i.push(createSplTransferInstruction(getAssociatedTokenAddress(new web3.PublicKey(e.mctpInputContract),w,n),x,w,BigInt(e.effectiveAmountIn64))),e.hasAuction){if(i.push(createMctpSwapLedgerInstruction({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),!o){const{instruction:E,signer:N}=createMctpInitSwapInstruction(M,e.toChain,e.mctpInputContract,t,S);i.push(E),d.push(N)}}else if(i.push(createMctpBridgeLedgerInstruction({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:S,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:BigInt(e.effectiveAmountIn64),mode:F,referrerAddress:r})),!o)if(F==="WITH_FEE"){const{instruction:E,signers:N}=createMctpBridgeWithFeeInstruction(M,e.toChain,e.mctpInputContract,t,S);i.push(E),d.push(...N)}else{const{instructions:E,signer:N}=createMctpBridgeLockFeeInstruction(M,e.toChain,e.mctpInputContract,t,S);i.push(...E),d.push(N)}}else{const S=await getSwapSolana({minMiddleAmount:e.minMiddleAmount,middleToken:e.mctpInputContract,userWallet:t,userLedger:M.toString(),slippageBps:e.slippageBps,fromToken:e.fromToken.contract,amountIn64:e.effectiveAmountIn64,depositMode:e.hasAuction?"SWAP":F,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?b.publicKey.toString():null}),E=decentralizeClientSwapInstructions(S);s?.separateSwapTx&&S.maxAccountsFilled?(validateJupSwap(E,b.publicKey,w),f=await createInitializeRandomTokenAccountInstructions(u,w,new web3.PublicKey(e.mctpInputContract),w,b),m.push(...E.computeBudgetInstructions),E.setupInstructions&&m.push(...E.setupInstructions),m.push(E.swapInstruction),E.cleanupInstruction&&m.push(E.cleanupInstruction),y.push(...E.addressLookupTableAddresses),i.push(createAssociatedTokenAccountInstruction(w,x,M,new web3.PublicKey(e.mctpInputContract))),i.push(createTransferAllAndCloseInstruction(w,new web3.PublicKey(e.mctpInputContract),b.publicKey,x,w))):(validateJupSwap(E,x,w),i.push(...E.computeBudgetInstructions),E.setupInstructions&&i.push(...E.setupInstructions),i.push(E.swapInstruction),E.cleanupInstruction&&i.push(E.cleanupInstruction),p.push(...E.addressLookupTableAddresses));const N=m.length>0?BigInt(0):BigInt(e.solanaRelayerFee64);if(e.hasAuction){if(i.push(createMctpSwapLedgerInstruction({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),tokenOut:$,tokenOutDecimals:e.toToken.decimals,referrerAddress:r,amountOutMin:e.minAmountOut,deadline:A,feeRateRef:e.referrerBps})),m.length>0){const{instruction:W,signer:L}=createMctpInitSwapInstruction(M,e.toChain,e.mctpInputContract,t,N);i.push(W),d.push(L)}}else if(i.push(createMctpBridgeLedgerInstruction({ledger:M,swapperAddress:t,mintAddress:e.mctpInputContract,randomKey:g.publicKey,toChain:e.toChain,destinationAddress:a,feeSolana:N,feeRedeem:e.redeemRelayerFee,gasDrop:e.gasDrop,amountInMin64:getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS),mode:F,referrerAddress:r})),m.length>0)if(F==="WITH_FEE"){const{instruction:W,signers:L}=createMctpBridgeWithFeeInstruction(M,e.toChain,e.mctpInputContract,t,N);i.push(W),d.push(...L)}else{const{instructions:W,signer:L}=createMctpBridgeLockFeeInstruction(M,e.toChain,e.mctpInputContract,t,N);i.push(...W),d.push(L)}}const D=await getAddressLookupTableAccounts(p.concat(y),u);if(l=D.slice(0,p.length),m.length>0){const S=D.slice(p.length);T={messageV0:{payerKey:w,instructions:m,addressLookupTableAccounts:S},createTmpTokenAccountIxs:f,tmpTokenAccount:b}}return{instructions:i,signers:d,lookupTables:l,swapMessageV0Params:T}}function createSwiftOrderHash(e,t,a,r,u){const o=web3.Buffer$1.alloc(239);let n=0;const p=getWormholeChainIdByName(e.fromChain),i=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t,p)));o.set(i,0),n+=32,o.writeUInt16BE(p,n),n+=2;const d=e.swiftInputContract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.swiftInputContract,p),l=web3.Buffer$1.from(hexToUint8Array(d));o.set(l,n),n+=32;const y=getWormholeChainIdByName(e.toChain),m=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(a,y)));o.set(m,n),n+=32,o.writeUInt16BE(y,n),n+=2;const f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toToken.contract,y),b=web3.Buffer$1.from(hexToUint8Array(f));o.set(b,n),n+=32,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.minAmountOut,Math.min(e.toToken.decimals,8)),n),n+=8,o.writeBigUInt64BE(getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),n),n+=8,o.writeBigUInt64BE(BigInt(e.cancelRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.refundRelayerFee64),n),n+=8,o.writeBigUInt64BE(BigInt(e.deadline64),n),n+=8;const T=r?web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(r,y))):web3.SystemProgram.programId.toBuffer();o.set(T,n),n+=32,o.writeUInt8(e.referrerBps,n),n+=1;const h=e.protocolBps;o.writeUInt8(h,n),n+=1,o.writeUInt8(e.swiftAuctionMode,n),n+=1;const w=web3.Buffer$1.from(hexToUint8Array(u));if(o.set(w,n),n+=32,n!==239)throw new Error(`Invalid order data size: ${n}`);const g=web3.keccak256(o);return web3.Buffer$1.from(hexToUint8Array(g))}var InitSwiftLayout=web3.LayoutExports.struct([web3.LayoutExports.blob(8,"instruction"),web3.LayoutExports.blob(8,"amountInMin"),web3.LayoutExports.u8("nativeInput"),web3.LayoutExports.blob(8,"feeSubmit"),web3.LayoutExports.blob(32,"destAddress"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"tokenOut"),web3.LayoutExports.blob(8,"amountOutMin"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"feeRefund"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(32,"refAddress"),web3.LayoutExports.u8("feeRateRef"),web3.LayoutExports.u8("feeRateMayan"),web3.LayoutExports.u8("auctionMode"),web3.LayoutExports.blob(32,"randomKey")]);function createSwiftInitInstruction(e){const{quote:t}=e,a=t.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new web3.PublicKey(t.swiftInputContract),r=getWormholeChainIdByName(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:a,isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.FEE_MANAGER_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],s=web3.Buffer$1.alloc(InitSwiftLayout.span),o=e.referrerAddress?web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.referrerAddress,r))):web3.SystemProgram.programId.toBuffer(),n=t.fromToken.contract===t.swiftInputContract?BigInt(t.effectiveAmountIn64):getAmountOfFractionalAmount(t.minMiddleAmount,t.swiftInputDecimals);return InitSwiftLayout.encode({instruction:getAnchorInstructionData("init_order"),amountInMin:getSafeU64Blob(n),nativeInput:t.swiftInputContract===providerJsonrpc.ZeroAddress?1:0,feeSubmit:getSafeU64Blob(BigInt(t.submitRelayerFee64)),destAddress:web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(e.destinationAddress,r))),destinationChain:r,tokenOut:web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(t.toToken.contract,r))),amountOutMin:getSafeU64Blob(getAmountOfFractionalAmount(t.minAmountOut,Math.min(t.toToken.decimals,8))),gasDrop:getSafeU64Blob(getAmountOfFractionalAmount(t.gasDrop,Math.min(getGasDecimal(t.toChain),8))),feeCancel:getSafeU64Blob(BigInt(t.cancelRelayerFee64)),feeRefund:getSafeU64Blob(BigInt(t.refundRelayerFee64)),deadline:getSafeU64Blob(e.deadline),refAddress:o,feeRateRef:t.referrerBps,feeRateMayan:t.protocolBps,auctionMode:t.swiftAuctionMode,randomKey:e.randomKey.toBuffer()},s),new web3.TransactionInstruction({keys:u,data:s,programId:new web3.PublicKey(addresses_default.SWIFT_PROGRAM_ID)})}async function createSwiftFromSolanaInstructions(e,t,a,r,u,s={}){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 o=s.allowSwapperOffCurve||!1;let n=[],p=[],i=[];i.push(addresses_default.LOOKUP_TABLE);let d=[],l=[],y=[];const m=web3.Keypair.generate();let f=null;const b=new web3.PublicKey(addresses_default.SWIFT_PROGRAM_ID),T=new web3.PublicKey(t),h=web3.Keypair.generate();if(!Number(e.deadline64))throw new Error("Swift mode requires a timeout");const w=BigInt(e.deadline64),g=createSwiftOrderHash(e,t,a,r,h.publicKey.toBuffer().toString("hex")),[A]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("STATE_SOURCE"),g],b),I=e.swiftInputContract===providerJsonrpc.ZeroAddress?solMint:new web3.PublicKey(e.swiftInputContract),M=getAssociatedTokenAddress(I,A,!0),x=e.gasless?new web3.PublicKey(e.relayer):T,F=BigInt(e.submitRelayerFee64)>0n?getAssociatedTokenAddress(I,x,!1):b;if(e.fromToken.contract===e.swiftInputContract)e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee})),n.push(createAssociatedTokenAccountInstruction(x,M,A,I)),e.swiftInputContract===providerJsonrpc.ZeroAddress?n.push(web3.SystemProgram.transfer({fromPubkey:T,toPubkey:M,lamports:BigInt(e.effectiveAmountIn64)}),createSyncNativeInstruction(M)):n.push(createSplTransferInstruction(getAssociatedTokenAddress(I,T,o),M,T,BigInt(e.effectiveAmountIn64)));else{const D=await getSwapSolana({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${g.toString("hex")}`,fillMaxAccounts:s?.separateSwapTx||!1,tpmTokenAccount:s?.separateSwapTx?m.publicKey.toString():null}),S=decentralizeClientSwapInstructions(D);s?.separateSwapTx&&D.maxAccountsFilled?(validateJupSwap(S,m.publicKey,T),y=await createInitializeRandomTokenAccountInstructions(u,x,I,T,m),l.push(...S.computeBudgetInstructions),S.setupInstructions&&l.push(...S.setupInstructions),l.push(S.swapInstruction),S.cleanupInstruction&&l.push(S.cleanupInstruction),d.push(...S.addressLookupTableAddresses),n.push(createAssociatedTokenAccountInstruction(x,M,A,I)),n.push(createTransferAllAndCloseInstruction(T,I,m.publicKey,M,x))):(n.push(...S.computeBudgetInstructions),S.setupInstructions&&n.push(...S.setupInstructions),n.push(S.swapInstruction),S.cleanupInstruction&&n.push(S.cleanupInstruction),i.push(...S.addressLookupTableAddresses))}n.push(createSwiftInitInstruction({quote:e,state:A,trader:T,stateAccount:M,randomKey:h.publicKey,relayerAccount:F,relayer:x,destinationAddress:a,deadline:w,referrerAddress:r}));const $=await getAddressLookupTableAccounts(i.concat(d),u);if(p=$.slice(0,i.length),l.length>0){const D=$.slice(i.length);f={messageV0:{payerKey:x,instructions:l,addressLookupTableAccounts:D},createTmpTokenAccountIxs:y,tmpTokenAccount:m}}return{instructions:n,signers:[],lookupTables:p,swapMessageV0Params:f}}var STATE_SIZE=420,SwapLayout=web3.LayoutExports.struct([web3.LayoutExports.u8("instruction"),web3.LayoutExports.u8("stateNonce"),web3.LayoutExports.blob(8,"amount"),web3.LayoutExports.blob(8,"minAmountOut"),web3.LayoutExports.blob(8,"deadline"),web3.LayoutExports.blob(8,"feeSwap"),web3.LayoutExports.blob(8,"feeReturn"),web3.LayoutExports.blob(8,"feeCancel"),web3.LayoutExports.blob(8,"gasDrop"),web3.LayoutExports.u16("destinationChain"),web3.LayoutExports.blob(32,"destinationAddress"),web3.LayoutExports.u8("unwrapRedeem"),web3.LayoutExports.u8("unwrapRefund"),web3.LayoutExports.u8("mayanFeeNonce"),web3.LayoutExports.u8("referrerFeeNonce")]);async function createSwapFromSolanaInstructions(e,t,a,r,u,s={}){const o=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return createMctpFromSolanaInstructions(e,t,a,o,u,s);if(e.type==="SWIFT")return createSwiftFromSolanaInstructions(e,t,a,o,u,s);let n=[];const p=u??new web3.Connection("https://rpc.ankr.com/solana"),i=new web3.PublicKey(addresses_default.MAYAN_PROGRAM_ID),d=new web3.PublicKey(addresses_default.TOKEN_PROGRAM_ID),l=new web3.PublicKey(t),y=new web3.PublicKey(addresses_default.AUCTION_PROGRAM_ID);e.suggestedPriorityFee>0&&n.push(web3.ComputeBudgetProgram.setComputeUnitPrice({microLamports:e.suggestedPriorityFee}));let m;o?m=new web3.PublicKey(o):m=web3.SystemProgram.programId;const[f,b]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAYANFEE")],i),[T,h]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("REFERRERFEE"),m.toBuffer()],i),w=web3.Keypair.generate(),g=web3.Keypair.generate(),[A,I]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("V2STATE"),web3.Buffer$1.from(w.publicKey.toBytes()),web3.Buffer$1.from(g.publicKey.toBytes())],i),M=new web3.PublicKey(e.fromToken.mint),x=new web3.PublicKey(e.toToken.mint),F=getAssociatedTokenAddress(M,l),$=getAssociatedTokenAddress(M,A,!0),[[D,S],E,N]=await Promise.all([p.getMultipleAccountsInfo([F,$],"finalized"),p.getMinimumBalanceForRentExemption(STATE_SIZE),decideRelayer()]);(!D||D.data.length===0)&&n.push(createAssociatedTokenAccountInstruction(l,F,l,M)),(!S||S.data.length===0)&&n.push(createAssociatedTokenAccountInstruction(l,$,A,M)),e.fromToken.contract===providerJsonrpc.ZeroAddress&&(n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:F,lamports:BigInt(e.effectiveAmountIn64)})),n.push(createSyncNativeInstruction(F)));const W=BigInt(e.effectiveAmountIn64),L=web3.Keypair.generate();n.push(createApproveInstruction(F,L.publicKey,l,W)),n.push(web3.SystemProgram.transfer({fromPubkey:l,toPubkey:L.publicKey,lamports:E}));const Y=[{pubkey:L.publicKey,isWritable:!1,isSigner:!0},{pubkey:w.publicKey,isWritable:!1,isSigner:!0},{pubkey:g.publicKey,isWritable:!1,isSigner:!0},{pubkey:A,isWritable:!0,isSigner:!1},{pubkey:F,isWritable:!0,isSigner:!1},{pubkey:l,isWritable:!1,isSigner:!1},{pubkey:$,isWritable:!0,isSigner:!1},{pubkey:M,isWritable:!1,isSigner:!1},{pubkey:x,isWritable:!1,isSigner:!1},{pubkey:y,isWritable:!1,isSigner:!1},{pubkey:m,isWritable:!1,isSigner:!1},{pubkey:f,isWritable:!1,isSigner:!1},{pubkey:T,isWritable:!1,isSigner:!1},{pubkey:L.publicKey,isWritable:!0,isSigner:!0},{pubkey:N,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_CLOCK_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:web3.SYSVAR_RENT_PUBKEY,isWritable:!1,isSigner:!1},{pubkey:d,isWritable:!1,isSigner:!1},{pubkey:web3.SystemProgram.programId,isWritable:!1,isSigner:!1}],G=getWormholeChainIdByName(e.toChain);if(G===1){const R=await p.getAccountInfo(new web3.PublicKey(a));if(R&&R.owner&&R.owner.equals(d))throw new Error("Destination address is not about token account. It should be a owner address")}const z=web3.Buffer$1.from(hexToUint8Array(nativeAddressToHexString(a,G))),j=getAmountOfFractionalAmount(e.minAmountOut,e.mintDecimals.to),Z=getAmountOfFractionalAmount(e.swapRelayerFee,e.mintDecimals.from),Q=getAmountOfFractionalAmount(e.redeemRelayerFee,e.mintDecimals.to),U=getAmountOfFractionalAmount(e.refundRelayerFee,e.mintDecimals.from),X=getAmountOfFractionalAmount(e.gasDrop,getGasDecimalsInSolana(e.toChain)),J=e.toToken.contract===providerJsonrpc.ZeroAddress,c=e.fromToken.contract===providerJsonrpc.ZeroAddress;if(!Number(e.deadline64))throw new Error("Deadline is not valid");const C=BigInt(e.deadline64),_=web3.Buffer$1.alloc(SwapLayout.span),P={instruction:101,stateNonce:I,amount:getSafeU64Blob(W),minAmountOut:getSafeU64Blob(j),deadline:getSafeU64Blob(C),feeSwap:getSafeU64Blob(Z),feeReturn:getSafeU64Blob(Q),feeCancel:getSafeU64Blob(U),gasDrop:getSafeU64Blob(X),destinationChain:G,destinationAddress:z,unwrapRedeem:J?1:0,unwrapRefund:c?1:0,mayanFeeNonce:b,referrerFeeNonce:h};SwapLayout.encode(P,_);const k=new web3.TransactionInstruction({keys:Y,data:_,programId:i});return n.push(k),{instructions:n,signers:[L,w,g],lookupTables:[],swapMessageV0Params:null}}function getEvmSwiftParams(e,t,a,r,u){const s=getWormholeChainIdById(Number(u)),o=getWormholeChainIdByName(e.fromChain),n=getWormholeChainIdByName(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${o} !== ${s}`);if(!e.swiftMayanContract)throw new Error("SWIFT contract address is missing");if(e.toToken.wChainId!==n)throw new Error(`Destination chain ID mismatch: ${n} != ${e.toToken.wChainId}`);const p=e.swiftMayanContract;if(!Number(e.deadline64))throw new Error("Swift order requires timeout");const i=BigInt(e.deadline64),d=e.swiftInputContract,l=BigInt(e.effectiveAmountIn64);let y;r?y=nativeAddressToHexString(r,n):y=nativeAddressToHexString(web3.SystemProgram.programId.toString(),1);const m=nativeAddressToHexString(web3.Keypair.generate().publicKey.toString(),1),f=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),1):nativeAddressToHexString(e.toToken.contract,n),b=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),T=getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),h=nativeAddressToHexString(a,n),w={trader:nativeAddressToHexString(t,o),tokenOut:f,minAmountOut:b,gasDrop:T,cancelFee:BigInt(e.cancelRelayerFee64),refundFee:BigInt(e.refundRelayerFee64),deadline:i,destAddr:h,destChainId:n,referrerAddr:y,referrerBps:e.referrerBps||0,auctionMode:e.swiftAuctionMode,random:m};return{contractAddress:p,tokenIn:d,amountIn:l,order:w}}function getSwiftFromEvmTxPayload(e,t,a,r,u,s){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 o=ZeroPermit,n=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{tokenIn:p,amountIn:i,order:d,contractAddress:l}=getEvmSwiftParams(e,t,a,r,u);let y;const m=new contract.Contract(l,MayanSwiftArtifact_default.abi);e.swiftInputContract===providerJsonrpc.ZeroAddress?y=m.interface.encodeFunctionData("createOrderWithEth",[d]):y=m.interface.encodeFunctionData("createOrderWithToken",[p,i,d]);let f,b,T;if(e.fromToken.contract===e.swiftInputContract)e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="forwardEth",b=[l,y],T=contract.toBeHex(i)):(f="forwardERC20",b=[p,i,o,l,y],T=contract.toBeHex(0));else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Swift swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount(e.minMiddleAmount,e.swiftInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[i,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(i)):(f="swapAndForwardERC20",b=[A,i,o,w,g,e.swiftInputContract,I,l,y],T=contract.toBeHex(0))}return{data:n.interface.encodeFunctionData(f,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:u,_forwarder:{method:f,params:b}}}var ShuttleArtifact_default={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:[]}]},shuttleConstants={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 writeBigIntTo16BytesBuffer(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 a=web3.Buffer$1.alloc(16);for(let r=15;r>=0;r--)a[r]=Number(e&0xFFn),e>>=8n;return a}function getShuttleParams(e,t,a){const{shuttleParams:r}=e;if(!r)throw new Error("Swap layer params are missing in quote response");const u=getWormholeChainIdById(Number(a)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(a)}) and quote from chain are not same! ${s} !== ${u}`);let n=[];n.push(shuttleConstants.FAST_MODE_FLAG);const p=web3.Buffer$1.alloc(8);p.writeBigUInt64BE(BigInt(r.maxLLFee));const i=p.subarray(2);n.push(...i);const d=web3.Buffer$1.alloc(4);d.writeUInt32BE(r.fastTransferDeadline),n.push(...d),n.push(shuttleConstants.RELAY_REDEEM_MODE);const l=getAmountOfFractionalAmount(e.gasDrop,Math.min(6,getGasDecimal(e.toChain))),y=web3.Buffer$1.alloc(8);y.writeBigUInt64BE(l);const m=y.subarray(4);n.push(...m);const f=web3.Buffer$1.alloc(8);f.writeBigUInt64BE(BigInt(r.maxRelayingFee));const b=f.subarray(2);n.push(...b),n.push(shuttleConstants.EXACT_IN_FLAG),n.push(shuttleConstants.USDC_INPUT_TOKEN_TYPE);const T=BigInt(e.effectiveAmountIn64);if(e.fromToken.contract===e.shuttleInputContract){n.push(...Array(8).fill(0));const w=web3.Buffer$1.alloc(8);w.writeBigUInt64BE(T),n.push(...w)}else n.push(...Array(16).fill(0));if(n.push(shuttleConstants.PRE_APPROVED_ACQUIRE_MODE),r.hasDestSwap){if(e.toToken.contract===providerJsonrpc.ZeroAddress)n.push(shuttleConstants.OUTPUT_NATIVE_MODE);else{n.push(shuttleConstants.OUTPUT_OTHER_MODE);const I=web3.Buffer$1.from(nativeAddressToHexString(e.toToken.contract,o).slice(2),"hex");n.push(...I)}const w=web3.Buffer$1.alloc(4);w.writeUInt32BE(Number(BigInt(e.deadline64))),n.push(...w);const g=getAmountOfFractionalAmount(e.minAmountOut,e.toToken.decimals);if(e.toChain==="solana"){n.push(...Array(8).fill(0));const I=web3.Buffer$1.alloc(8);I.writeBigUInt64BE(g),n.push(...I)}else{const I=writeBigIntTo16BytesBuffer(g);n.push(...I)}const A=web3.Buffer$1.from(r.path.slice(2),"hex");n.push(...A)}else n.push(shuttleConstants.OUTPUT_USDC_MODE);return{destAddr:nativeAddressToHexString(t,o),destChainId:o,serializedParams:`0x${web3.Buffer$1.from(n).toString("hex")}`,contractAddress:e.shuttleContract,amountIn:T,bridgeFee:getAmountOfFractionalAmount(e.bridgeFee,getGasDecimal(e.fromChain))}}function getShuttleFromEvmTxPayload(e,t,a,r){if(e.type!=="SHUTTLE")throw new Error("Quote type is not SHUTTLE");if(!Number.isFinite(Number(a)))throw new Error("Invalid signer chain id");a=Number(a);const u=ZeroPermit,s=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),{destAddr:o,destChainId:n,serializedParams:p,contractAddress:i,amountIn:d,bridgeFee:l}=getShuttleParams(e,t,a);let y;y=new contract.Contract(i,ShuttleArtifact_default.abi).interface.encodeFunctionData("initiate",[o,d,n,p]);let f,b,T;if(e.fromToken.contract===e.shuttleInputContract)f="forwardERC20",b=[e.shuttleInputContract,d,u,i,y],T=contract.toBeHex(l);else{const{evmSwapRouterAddress:w,evmSwapRouterCalldata:g}=e;if(!e.minMiddleAmount||!w||!g)throw new Error("Shuttle source chain swap requires middle amount, router address and calldata");const A=e.fromToken.contract,I=getAmountOfFractionalAmount(e.minMiddleAmount,e.shuttleInputDecimals);e.fromToken.contract===providerJsonrpc.ZeroAddress?(f="swapAndForwardEth",b=[d,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(d)):(f="swapAndForwardERC20",b=[A,d,u,w,g,e.shuttleInputContract,I,i,y],T=contract.toBeHex(l))}return{data:s.interface.encodeFunctionData(f,b),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:T,chainId:a,_forwarder:{method:f,params:b}}}var MayanFastMctpArtifact_default={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 getEvmFastMctpBridgeParams(e,t,a,r,u){const s=getWormholeChainIdById(Number(r)),o=getWormholeChainIdByName(e.fromChain),n=getWormholeChainIdByName(e.toChain);if(o!==s)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${o} !== ${s}`);const p=nativeAddressToHexString(t,n),i=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),d=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),l=BigInt(e.circleMaxFee64),y=BigInt(e.effectiveAmountIn64),m=getCCTPDomain(e.toChain);let f;if(a?f=nativeAddressToHexString(a,n):f=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")),!e.fastMctpMayanContract)throw new Error("FastMctp contract address is missing");const b=e.fastMctpMayanContract;return{tokenIn:e.fastMctpInputContract,amountIn:y,redeemFee:i,gasDrop:d,destAddr:p,destDomain:m,referrerAddr:f,referrerBps:e.referrerBps,payloadType:FAST_MCTP_PAYLOAD_TYPE_DEFAULT,customPayload:"0x",minFinalityThreshold:Number(e.fastMctpMinFinality),circleMaxFee:l,contractAddress:b}}function getEvmFastMctpBridgeTxPayload(e,t,a,r,u){const s=getEvmFastMctpBridgeParams(e,t,a,r),{contractAddress:o,tokenIn:n,amountIn:p,destAddr:i,redeemFee:d,gasDrop:l,circleMaxFee:y,referrerAddr:m,referrerBps:f,destDomain:b,customPayload:T,minFinalityThreshold:h,payloadType:w}=s,g=new contract.Contract(o,MayanFastMctpArtifact_default.abi);let A,I;return A=g.interface.encodeFunctionData("bridge",[n,p,d,y,l,i,b,m,f,w,h,T]),I=contract.toBeHex(0),{to:o,data:A,value:I,_params:s}}function getEvmFastMctpCreateOrderParams(e,t,a,r){const u=getWormholeChainIdById(Number(r)),s=getWormholeChainIdByName(e.fromChain),o=getWormholeChainIdByName(e.toChain);if(s!==u)throw new Error(`Signer chain id(${Number(r)}) and quote from chain are not same! ${s} !== ${u}`);if(!e.fastMctpMayanContract)throw new Error("MCTP contract address is missing");const n=e.fastMctpMayanContract,p=nativeAddressToHexString(t,o);let i;a?i=nativeAddressToHexString(a,o):i=nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana"));const d=getAmountOfFractionalAmount(e.redeemRelayerFee,CCTP_TOKEN_DECIMALS),l=BigInt(e.refundRelayerFee64),y=BigInt(e.circleMaxFee64),m=getAmountOfFractionalAmount(e.gasDrop,Math.min(getGasDecimal(e.toChain),8)),f=getCCTPDomain(e.toChain),b=BigInt(e.effectiveAmountIn64),T=getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),h=BigInt(e.deadline64),w=e.toToken.contract===providerJsonrpc.ZeroAddress?nativeAddressToHexString(web3.SystemProgram.programId.toString(),getWormholeChainIdByName("solana")):nativeAddressToHexString(e.toChain==="sui"?e.toToken.verifiedAddress:e.toToken.contract,e.toToken.wChainId);return{tokenIn:e.fastMctpInputContract,amountIn:b,circleMaxFee:y,destDomain:f,minFinalityThreshold:Number(e.fastMctpMinFinality),orderPayload:{payloadType:FAST_MCTP_PAYLOAD_TYPE_ORDER,destAddr:p,tokenOut:w,amountOutMin:T,gasDrop:m,redeemFee:d,refundFee:l,deadline:h,referrerAddr:i,referrerBps:e.referrerBps||0},contractAddress:n}}function getEvmFastMctpCreateOrderTxPayload(e,t,a,r){const u=getEvmFastMctpCreateOrderParams(e,t,a,r),{contractAddress:s,orderPayload:o,tokenIn:n,amountIn:p,circleMaxFee:i,destDomain:d,minFinalityThreshold:l}=u,m=new contract.Contract(s,MayanFastMctpArtifact_default.abi).interface.encodeFunctionData("createOrder",[n,p,i,d,l,o]),f=contract.toBeHex(0);return{to:s,data:m,value:f,_params:u}}function getFastMctpFromEvmTxPayload(e,t,a,r,u,s){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 o=u||ZeroPermit,n=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi);if(e.fromToken.contract===e.fastMctpInputContract)if(e.hasAuction){if(!Number(e.deadline64))throw new Error("Fast Mctp order requires timeout");const p=getEvmFastMctpCreateOrderTxPayload(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const p=getEvmFastMctpBridgeTxPayload(e,t,a,r),i="forwardERC20",d=[e.fromToken.contract,p._params.amountIn,o,p._params.contractAddress,p.data];return{data:n.interface.encodeFunctionData(i,d),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:i,params:d}}}else{const{minMiddleAmount:p,evmSwapRouterAddress:i,evmSwapRouterCalldata:d}=e;if(!p||!i||!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 l=getEvmFastMctpCreateOrderTxPayload(e,t,a,r),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}else{const l=getEvmFastMctpBridgeTxPayload(e,t,a,r),y=getAmountOfFractionalAmount(e.minMiddleAmount,CCTP_TOKEN_DECIMALS);if(e.fromToken.contract===providerJsonrpc.ZeroAddress){const m="swapAndForwardEth",f=[l._params.amountIn,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(l._params.amountIn),chainId:r,_forwarder:{method:m,params:f}}}else{const m="swapAndForwardERC20",f=[e.fromToken.contract,l._params.amountIn,o,i,d,e.fastMctpInputContract,y,l._params.contractAddress,l.data];return{data:n.interface.encodeFunctionData(m,f),to:addresses_default.MAYAN_FORWARDER_CONTRACT,value:contract.toBeHex(0),chainId:r,_forwarder:{method:m,params:f}}}}}}function getEvmSwapParams(e,t,a,r,u,s){const o=new web3.PublicKey(addresses_default.MAYAN_PROGRAM_ID),[n]=web3.PublicKey.findProgramAddressSync([web3.Buffer$1.from("MAIN")],o),p=getAssociatedTokenAddress(new web3.PublicKey(e.fromToken.mint),n,!0),i=BigInt(e.effectiveAmountIn64),d=nativeAddressToHexString(p.toString(),1),l=nativeAddressToHexString(addresses_default.AUCTION_PROGRAM_ID,1);let y;a?y=nativeAddressToHexString(a,1):y=nativeAddressToHexString(web3.SystemProgram.programId.toString(),1);const m=getWormholeChainIdById(Number(u)),f=getWormholeChainIdByName(e.fromChain),b=getWormholeChainIdByName(e.toChain);if(f!==m)throw new Error(`Signer chain id(${Number(u)}) and quote from chain are not same! ${f} !== ${m}`);const T=e.whMayanContract,h={mayanAddr:d,mayanChainId:1,destAddr:nativeAddressToHexString(t,b),destChainId:b,auctionAddr:l,referrer:y,refundAddr:nativeAddressToHexString(r,m)},w=e.toToken.contract===providerJsonrpc.ZeroAddress,g={transferDeadline:BigInt(e.deadline64),swapDeadline:BigInt(e.deadline64),amountOutMin:getAmountOfFractionalAmount(e.minAmountOut,Math.min(8,e.toToken.decimals)),gasDrop:getAmountOfFractionalAmount(e.gasDrop,Math.min(8,getGasDecimal(e.toChain))),unwrap:w,customPayload:"0x"},A={swapFee:getAmountOfFractionalAmount(e.swapRelayerFee,Math.min(8,e.fromToken.decimals)),redeemFee:getAmountOfFractionalAmount(e.redeemRelayerFee,Math.min(8,e.toToken.decimals)),refundFee:getAmountOfFractionalAmount(e.refundRelayerFee,Math.min(8,e.fromToken.decimals))},I=nativeAddressToHexString(e.toToken.realOriginContractAddress,e.toToken.realOriginChainId),M=getAmountOfFractionalAmount(e.bridgeFee,18);return{amountIn:i,tokenIn:e.fromToken.contract,tokenOut:I,tokenOutWChainId:e.toToken.realOriginChainId,criteria:g,recipient:h,relayerFees:A,contractAddress:T,bridgeFee:M}}function getSwapFromEvmTxPayload(e,t,a,r,u,s,o,n){const p=getWormholeChainIdById(Number(s)),i=getWormholeChainIdByName(e.fromChain);if(i!==p)throw new Error(`Signer chain id(${Number(s)}) and quote from chain are not same! ${i} !== ${p}`);const d=getQuoteSuitableReferrerAddress(e);if(e.type==="MCTP")return getMctpFromEvmTxPayload(e,a,d,s,n);if(e.type==="SWIFT")return getSwiftFromEvmTxPayload(e,t,a,d,s);if(e.type==="SHUTTLE")return getShuttleFromEvmTxPayload(e,a,s);if(e.type==="FAST_MCTP")return getFastMctpFromEvmTxPayload(e,a,d,s,n);if(e.type!="WH")throw new Error("Unsupported quote type");if(!Number(e.deadline64))throw new Error("WH mode requires a timeout");const{relayerFees:l,recipient:y,tokenOut:m,tokenOutWChainId:f,criteria:b,tokenIn:T,amountIn:h,contractAddress:w,bridgeFee:g}=getEvmSwapParams(e,a,d,u,s),A=new contract.Contract(addresses_default.MAYAN_FORWARDER_CONTRACT,MayanForwarderArtifact_default.abi),I=new contract.Contract(w,MayanSwapArtifact_default.abi);let M,x,F;const $=ZeroPermit;if(T===providerJsonrpc.ZeroAddress){const S=I.interface.encodeFunctionData("wrapAndSwapETH",[l,y,m,f,b]);M="forwardEth",x=[w,S],F=contract.toBeHex(h)}else{const S=I.interface.encodeFunctionData("swap",[l,y,m,f,b,T,h]);M="forwardERC20",x=[T,h,$,w,S],F=contract.toBeHex(g)}const D=A.interface.encodeFunctionData(M,x);return{to:addresses_default.MAYAN_FORWARDER_CONTRACT,data:D,value:F,chainId:s,_forwarder:{method:M,params:x}}}async function assertArgumentIsImmutable(e,t){let a;try{a=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(a){if(a[e.argumentIndex]!=="Pure"&&a[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 fetchAllCoins(e,t){let a=[],r=BigInt(0),u;do{const s=await t.getCoins({...e,owner:e.walletAddress,cursor:u}),o=s.data.filter(n=>BigInt(n.balance)>BigInt(0));if(a=[...a,...o],o.forEach(n=>{r+=BigInt(n.balance)}),s.data.length===0||!s.hasNextPage||!s.nextCursor||r>=e.coinAmount)return{coins:a.sort((n,p)=>Number(BigInt(n.coinObjectId)-BigInt(p.coinObjectId))),sum:r};u=s.nextCursor}while(!0)}async function fetchMayanSuiPackageId(e,t){let a;try{a=await t.getObject({id:e,options:{showContent:!0}})}catch(r){throw new Error(`Failed to fetch Mayan Sui package ID:
4
4