@allbridge/bridge-core-sdk 3.17.0-alpha.6 → 3.17.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.
@@ -1,4 +1,4 @@
1
- var gt={},jn=!1;function Aa(){if(jn)return gt;jn=!0,gt.byteLength=g,gt.toByteArray=y,gt.fromByteArray=v;for(var l=[],a=[],i=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=r.length;A<u;++A)l[A]=r[A],a[r.charCodeAt(A)]=A;a[45]=62,a[95]=63;function c(w){var B=w.length;if(B%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=w.indexOf("=");k===-1&&(k=B);var C=k===B?0:4-k%4;return[k,C]}function g(w){var B=c(w),k=B[0],C=B[1];return(k+C)*3/4-C}function f(w,B,k){return(B+k)*3/4-k}function y(w){var B,k=c(w),C=k[0],M=k[1],F=new i(f(w,C,M)),G=0,_=M>0?C-4:C,U;for(U=0;U<_;U+=4)B=a[w.charCodeAt(U)]<<18|a[w.charCodeAt(U+1)]<<12|a[w.charCodeAt(U+2)]<<6|a[w.charCodeAt(U+3)],F[G++]=B>>16&255,F[G++]=B>>8&255,F[G++]=B&255;return M===2&&(B=a[w.charCodeAt(U)]<<2|a[w.charCodeAt(U+1)]>>4,F[G++]=B&255),M===1&&(B=a[w.charCodeAt(U)]<<10|a[w.charCodeAt(U+1)]<<4|a[w.charCodeAt(U+2)]>>2,F[G++]=B>>8&255,F[G++]=B&255),F}function b(w){return l[w>>18&63]+l[w>>12&63]+l[w>>6&63]+l[w&63]}function P(w,B,k){for(var C,M=[],F=B;F<k;F+=3)C=(w[F]<<16&16711680)+(w[F+1]<<8&65280)+(w[F+2]&255),M.push(b(C));return M.join("")}function v(w){for(var B,k=w.length,C=k%3,M=[],F=16383,G=0,_=k-C;G<_;G+=F)M.push(P(w,G,G+F>_?_:G+F));return C===1?(B=w[k-1],M.push(l[B>>2]+l[B<<4&63]+"==")):C===2&&(B=(w[k-2]<<8)+w[k-1],M.push(l[B>>10]+l[B>>4&63]+l[B<<2&63]+"=")),M.join("")}return gt}var Nt={},qn=!1;function ca(){if(qn)return Nt;qn=!0;return Nt.read=function(l,a,i,r,A){var u,c,g=A*8-r-1,f=(1<<g)-1,y=f>>1,b=-7,P=i?A-1:0,v=i?-1:1,w=l[a+P];for(P+=v,u=w&(1<<-b)-1,w>>=-b,b+=g;b>0;u=u*256+l[a+P],P+=v,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=r;b>0;c=c*256+l[a+P],P+=v,b-=8);if(u===0)u=1-y;else{if(u===f)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,r),u=u-y}return(w?-1:1)*c*Math.pow(2,u-r)},Nt.write=function(l,a,i,r,A,u){var c,g,f,y=u*8-A-1,b=(1<<y)-1,P=b>>1,v=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:u-1,B=r?1:-1,k=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(g=isNaN(a)?1:0,c=b):(c=Math.floor(Math.log(a)/Math.LN2),a*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+P>=1?a+=v/f:a+=v*Math.pow(2,1-P),a*f>=2&&(c++,f/=2),c+P>=b?(g=0,c=b):c+P>=1?(g=(a*f-1)*Math.pow(2,A),c=c+P):(g=a*Math.pow(2,P-1)*Math.pow(2,A),c=0));A>=8;l[i+w]=g&255,w+=B,g/=256,A-=8);for(c=c<<A|g,y+=A;y>0;l[i+w]=c&255,w+=B,c/=256,y-=8);l[i+w-B]|=k*128},Nt}var He={},$n=!1;function ua(){if($n)return He;$n=!0;let l=Aa(),a=ca(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;He.Buffer=c,He.SlowBuffer=M,He.INSPECT_MAX_BYTES=50;let r=2147483647;He.kMaxLength=r,c.TYPED_ARRAY_SUPPORT=A(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function A(){try{let m=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(m,s),m.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(m){if(m>r)throw new RangeError('The value "'+m+'" is invalid for option "size"');let s=new Uint8Array(m);return Object.setPrototypeOf(s,c.prototype),s}function c(m,s,o){if(typeof m=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return b(m)}return g(m,s,o)}c.poolSize=8192;function g(m,s,o){if(typeof m=="string")return P(m,s);if(ArrayBuffer.isView(m))return w(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(Me(m,ArrayBuffer)||m&&Me(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Me(m,SharedArrayBuffer)||m&&Me(m.buffer,SharedArrayBuffer)))return B(m,s,o);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=m.valueOf&&m.valueOf();if(d!=null&&d!==m)return c.from(d,s,o);let p=k(m);if(p)return p;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return c.from(m[Symbol.toPrimitive]("string"),s,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}c.from=function(m,s,o){return g(m,s,o)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function f(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function y(m,s,o){return f(m),m<=0?u(m):s!==void 0?typeof o=="string"?u(m).fill(s,o):u(m).fill(s):u(m)}c.alloc=function(m,s,o){return y(m,s,o)};function b(m){return f(m),u(m<0?0:C(m)|0)}c.allocUnsafe=function(m){return b(m)},c.allocUnsafeSlow=function(m){return b(m)};function P(m,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=F(m,s)|0,d=u(o),p=d.write(m,s);return p!==o&&(d=d.slice(0,p)),d}function v(m){let s=m.length<0?0:C(m.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=m[d]&255;return o}function w(m){if(Me(m,Uint8Array)){let s=new Uint8Array(m);return B(s.buffer,s.byteOffset,s.byteLength)}return v(m)}function B(m,s,o){if(s<0||m.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(m.byteLength<s+(o||0))throw new RangeError('"length" is outside of buffer bounds');let d;return s===void 0&&o===void 0?d=new Uint8Array(m):o===void 0?d=new Uint8Array(m,s):d=new Uint8Array(m,s,o),Object.setPrototypeOf(d,c.prototype),d}function k(m){if(c.isBuffer(m)){let s=C(m.length)|0,o=u(s);return o.length===0||m.copy(o,0,0,s),o}if(m.length!==void 0)return typeof m.length!="number"||Bn(m.length)?u(0):v(m);if(m.type==="Buffer"&&Array.isArray(m.data))return v(m.data)}function C(m){if(m>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return m|0}function M(m){return+m!=m&&(m=0),c.alloc(+m)}c.isBuffer=function(s){return s!=null&&s._isBuffer===!0&&s!==c.prototype},c.compare=function(s,o){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),Me(o,Uint8Array)&&(o=c.from(o,o.offset,o.byteLength)),!c.isBuffer(s)||!c.isBuffer(o))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(s===o)return 0;let d=s.length,p=o.length;for(let h=0,T=Math.min(d,p);h<T;++h)if(s[h]!==o[h]){d=s[h],p=o[h];break}return d<p?-1:p<d?1:0},c.isEncoding=function(s){switch(String(s).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(s,o){if(!Array.isArray(s))throw new TypeError('"list" argument must be an Array of Buffers');if(s.length===0)return c.alloc(0);let d;if(o===void 0)for(o=0,d=0;d<s.length;++d)o+=s[d].length;let p=c.allocUnsafe(o),h=0;for(d=0;d<s.length;++d){let T=s[d];if(Me(T,Uint8Array))h+T.length>p.length?(c.isBuffer(T)||(T=c.from(T)),T.copy(p,h)):Uint8Array.prototype.set.call(p,T,h);else if(c.isBuffer(T))T.copy(p,h);else throw new TypeError('"list" argument must be an Array of Buffers');h+=T.length}return p};function F(m,s){if(c.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||Me(m,ArrayBuffer))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);let o=m.length,d=arguments.length>2&&arguments[2]===!0;if(!d&&o===0)return 0;let p=!1;for(;;)switch(s){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return wn(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return zn(m).length;default:if(p)return d?-1:wn(m).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=F;function G(m,s,o){let d=!1;if((s===void 0||s<0)&&(s=0),s>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,s>>>=0,o<=s))return"";for(m||(m="utf8");;)switch(m){case"hex":return Pe(this,s,o);case"utf8":case"utf-8":return ne(this,s,o);case"ascii":return Ae(this,s,o);case"latin1":case"binary":return Te(this,s,o);case"base64":return le(this,s,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pe(this,s,o);default:if(d)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),d=!0}}c.prototype._isBuffer=!0;function _(m,s,o){let d=m[s];m[s]=m[o],m[o]=d}c.prototype.swap16=function(){let s=this.length;if(s%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let o=0;o<s;o+=2)_(this,o,o+1);return this},c.prototype.swap32=function(){let s=this.length;if(s%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let o=0;o<s;o+=4)_(this,o,o+3),_(this,o+1,o+2);return this},c.prototype.swap64=function(){let s=this.length;if(s%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let o=0;o<s;o+=8)_(this,o,o+7),_(this,o+1,o+6),_(this,o+2,o+5),_(this,o+3,o+4);return this},c.prototype.toString=function(){let s=this.length;return s===0?"":arguments.length===0?ne(this,0,s):G.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(s){if(!c.isBuffer(s))throw new TypeError("Argument must be a Buffer");return this===s?!0:c.compare(this,s)===0},c.prototype.inspect=function(){let s="",o=He.INSPECT_MAX_BYTES;return s=this.toString("hex",0,o).replace(/(.{2})/g,"$1 ").trim(),this.length>o&&(s+=" ... "),"<Buffer "+s+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(s,o,d,p,h){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),!c.isBuffer(s))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof s);if(o===void 0&&(o=0),d===void 0&&(d=s?s.length:0),p===void 0&&(p=0),h===void 0&&(h=this.length),o<0||d>s.length||p<0||h>this.length)throw new RangeError("out of range index");if(p>=h&&o>=d)return 0;if(p>=h)return-1;if(o>=d)return 1;if(o>>>=0,d>>>=0,p>>>=0,h>>>=0,this===s)return 0;let T=h-p,Z=d-o,K=Math.min(T,Z),X=this.slice(p,h),Q=s.slice(o,d);for(let V=0;V<K;++V)if(X[V]!==Q[V]){T=X[V],Z=Q[V];break}return T<Z?-1:Z<T?1:0};function U(m,s,o,d,p){if(m.length===0)return-1;if(typeof o=="string"?(d=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Bn(o)&&(o=p?0:m.length-1),o<0&&(o=m.length+o),o>=m.length){if(p)return-1;o=m.length-1}else if(o<0)if(p)o=0;else return-1;if(typeof s=="string"&&(s=c.from(s,d)),c.isBuffer(s))return s.length===0?-1:N(m,s,o,d,p);if(typeof s=="number")return s=s&255,typeof Uint8Array.prototype.indexOf=="function"?p?Uint8Array.prototype.indexOf.call(m,s,o):Uint8Array.prototype.lastIndexOf.call(m,s,o):N(m,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function N(m,s,o,d,p){let h=1,T=m.length,Z=s.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(m.length<2||s.length<2)return-1;h=2,T/=2,Z/=2,o/=2}function K(Q,V){return h===1?Q[V]:Q.readUInt16BE(V*h)}let X;if(p){let Q=-1;for(X=o;X<T;X++)if(K(m,X)===K(s,Q===-1?0:X-Q)){if(Q===-1&&(Q=X),X-Q+1===Z)return Q*h}else Q!==-1&&(X-=X-Q),Q=-1}else for(o+Z>T&&(o=T-Z),X=o;X>=0;X--){let Q=!0;for(let V=0;V<Z;V++)if(K(m,X+V)!==K(s,V)){Q=!1;break}if(Q)return X}return-1}c.prototype.includes=function(s,o,d){return this.indexOf(s,o,d)!==-1},c.prototype.indexOf=function(s,o,d){return U(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return U(this,s,o,d,!1)};function se(m,s,o,d){o=Number(o)||0;let p=m.length-o;d?(d=Number(d),d>p&&(d=p)):d=p;let h=s.length;d>h/2&&(d=h/2);let T;for(T=0;T<d;++T){let Z=parseInt(s.substr(T*2,2),16);if(Bn(Z))return T;m[o+T]=Z}return T}function H(m,s,o,d){return Zt(wn(s,m.length-o),m,o,d)}function ye(m,s,o,d){return Zt(aa(s),m,o,d)}function be(m,s,o,d){return Zt(zn(s),m,o,d)}function Se(m,s,o,d){return Zt(ra(s,m.length-o),m,o,d)}c.prototype.write=function(s,o,d,p){if(o===void 0)p="utf8",d=this.length,o=0;else if(d===void 0&&typeof o=="string")p=o,d=this.length,o=0;else if(isFinite(o))o=o>>>0,isFinite(d)?(d=d>>>0,p===void 0&&(p="utf8")):(p=d,d=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let h=this.length-o;if((d===void 0||d>h)&&(d=h),s.length>0&&(d<0||o<0)||o>this.length)throw new RangeError("Attempt to write outside buffer bounds");p||(p="utf8");let T=!1;for(;;)switch(p){case"hex":return se(this,s,o,d);case"utf8":case"utf-8":return H(this,s,o,d);case"ascii":case"latin1":case"binary":return ye(this,s,o,d);case"base64":return be(this,s,o,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Se(this,s,o,d);default:if(T)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),T=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function le(m,s,o){return s===0&&o===m.length?l.fromByteArray(m):l.fromByteArray(m.slice(s,o))}function ne(m,s,o){o=Math.min(m.length,o);let d=[],p=s;for(;p<o;){let h=m[p],T=null,Z=h>239?4:h>223?3:h>191?2:1;if(p+Z<=o){let K,X,Q,V;switch(Z){case 1:h<128&&(T=h);break;case 2:K=m[p+1],(K&192)===128&&(V=(h&31)<<6|K&63,V>127&&(T=V));break;case 3:K=m[p+1],X=m[p+2],(K&192)===128&&(X&192)===128&&(V=(h&15)<<12|(K&63)<<6|X&63,V>2047&&(V<55296||V>57343)&&(T=V));break;case 4:K=m[p+1],X=m[p+2],Q=m[p+3],(K&192)===128&&(X&192)===128&&(Q&192)===128&&(V=(h&15)<<18|(K&63)<<12|(X&63)<<6|Q&63,V>65535&&V<1114112&&(T=V))}}T===null?(T=65533,Z=1):T>65535&&(T-=65536,d.push(T>>>10&1023|55296),T=56320|T&1023),d.push(T),p+=Z}return de(d)}let oe=4096;function de(m){let s=m.length;if(s<=oe)return String.fromCharCode.apply(String,m);let o="",d=0;for(;d<s;)o+=String.fromCharCode.apply(String,m.slice(d,d+=oe));return o}function Ae(m,s,o){let d="";o=Math.min(m.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(m[p]&127);return d}function Te(m,s,o){let d="";o=Math.min(m.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(m[p]);return d}function Pe(m,s,o){let d=m.length;(!s||s<0)&&(s=0),(!o||o<0||o>d)&&(o=d);let p="";for(let h=s;h<o;++h)p+=sa[m[h]];return p}function pe(m,s,o){let d=m.slice(s,o),p="";for(let h=0;h<d.length-1;h+=2)p+=String.fromCharCode(d[h]+d[h+1]*256);return p}c.prototype.slice=function(s,o){let d=this.length;s=~~s,o=o===void 0?d:~~o,s<0?(s+=d,s<0&&(s=0)):s>d&&(s=d),o<0?(o+=d,o<0&&(o=0)):o>d&&(o=d),o<s&&(o=s);let p=this.subarray(s,o);return Object.setPrototypeOf(p,c.prototype),p};function W(m,s,o){if(m%1!==0||m<0)throw new RangeError("offset is not uint");if(m+s>o)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s],h=1,T=0;for(;++T<o&&(h*=256);)p+=this[s+T]*h;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s+--o],h=1;for(;o>0&&(h*=256);)p+=this[s+--o]*h;return p},c.prototype.readUint8=c.prototype.readUInt8=function(s,o){return s=s>>>0,o||W(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||W(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||W(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||W(s,4,this.length),(this[s]|this[s+1]<<8|this[s+2]<<16)+this[s+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24,h=this[++s]+this[++s]*2**8+this[++s]*2**16+d*2**24;return BigInt(p)+(BigInt(h)<<BigInt(32))}),c.prototype.readBigUInt64BE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=o*2**24+this[++s]*2**16+this[++s]*2**8+this[++s],h=this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d;return(BigInt(p)<<BigInt(32))+BigInt(h)}),c.prototype.readIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s],h=1,T=0;for(;++T<o&&(h*=256);)p+=this[s+T]*h;return h*=128,p>=h&&(p-=Math.pow(2,8*o)),p},c.prototype.readIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=o,h=1,T=this[s+--p];for(;p>0&&(h*=256);)T+=this[s+--p]*h;return h*=128,T>=h&&(T-=Math.pow(2,8*o)),T},c.prototype.readInt8=function(s,o){return s=s>>>0,o||W(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||W(s,2,this.length);let d=this[s]|this[s+1]<<8;return d&32768?d|4294901760:d},c.prototype.readInt16BE=function(s,o){s=s>>>0,o||W(s,2,this.length);let d=this[s+1]|this[s]<<8;return d&32768?d|4294901760:d},c.prototype.readInt32LE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]|this[s+1]<<8|this[s+2]<<16|this[s+3]<<24},c.prototype.readInt32BE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=this[s+4]+this[s+5]*2**8+this[s+6]*2**16+(d<<24);return(BigInt(p)<<BigInt(32))+BigInt(o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24)}),c.prototype.readBigInt64BE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=(o<<24)+this[++s]*2**16+this[++s]*2**8+this[++s];return(BigInt(p)<<BigInt(32))+BigInt(this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d)}),c.prototype.readFloatLE=function(s,o){return s=s>>>0,o||W(s,4,this.length),a.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||W(s,4,this.length),a.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||W(s,8,this.length),a.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||W(s,8,this.length),a.read(this,s,!1,52,8)};function q(m,s,o,d,p,h){if(!c.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>p||s<h)throw new RangeError('"value" argument is out of bounds');if(o+d>m.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let Z=Math.pow(2,8*d)-1;q(this,s,o,d,Z,0)}let h=1,T=0;for(this[o]=s&255;++T<d&&(h*=256);)this[o+T]=s/h&255;return o+d},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let Z=Math.pow(2,8*d)-1;q(this,s,o,d,Z,0)}let h=d-1,T=1;for(this[o+h]=s&255;--h>=0&&(T*=256);)this[o+h]=s/T&255;return o+d},c.prototype.writeUint8=c.prototype.writeUInt8=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,1,255,0),this[o]=s&255,o+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,65535,0),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,65535,0),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,4294967295,0),this[o+3]=s>>>24,this[o+2]=s>>>16,this[o+1]=s>>>8,this[o]=s&255,o+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,4294967295,0),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4};function Ut(m,s,o,d,p){Hn(s,d,p,m,o,7);let h=Number(s&BigInt(4294967295));m[o++]=h,h=h>>8,m[o++]=h,h=h>>8,m[o++]=h,h=h>>8,m[o++]=h;let T=Number(s>>BigInt(32)&BigInt(4294967295));return m[o++]=T,T=T>>8,m[o++]=T,T=T>>8,m[o++]=T,T=T>>8,m[o++]=T,o}function Xn(m,s,o,d,p){Hn(s,d,p,m,o,7);let h=Number(s&BigInt(4294967295));m[o+7]=h,h=h>>8,m[o+6]=h,h=h>>8,m[o+5]=h,h=h>>8,m[o+4]=h;let T=Number(s>>BigInt(32)&BigInt(4294967295));return m[o+3]=T,T=T>>8,m[o+2]=T,T=T>>8,m[o+1]=T,T=T>>8,m[o]=T,o+8}c.prototype.writeBigUInt64LE=Ee(function(s,o=0){return Ut(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ee(function(s,o=0){return Xn(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let K=Math.pow(2,8*d-1);q(this,s,o,d,K-1,-K)}let h=0,T=1,Z=0;for(this[o]=s&255;++h<d&&(T*=256);)s<0&&Z===0&&this[o+h-1]!==0&&(Z=1),this[o+h]=(s/T>>0)-Z&255;return o+d},c.prototype.writeIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let K=Math.pow(2,8*d-1);q(this,s,o,d,K-1,-K)}let h=d-1,T=1,Z=0;for(this[o+h]=s&255;--h>=0&&(T*=256);)s<0&&Z===0&&this[o+h+1]!==0&&(Z=1),this[o+h]=(s/T>>0)-Z&255;return o+d},c.prototype.writeInt8=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,1,127,-128),s<0&&(s=255+s+1),this[o]=s&255,o+1},c.prototype.writeInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,32767,-32768),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,32767,-32768),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,2147483647,-2147483648),this[o]=s&255,this[o+1]=s>>>8,this[o+2]=s>>>16,this[o+3]=s>>>24,o+4},c.prototype.writeInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,2147483647,-2147483648),s<0&&(s=4294967295+s+1),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4},c.prototype.writeBigInt64LE=Ee(function(s,o=0){return Ut(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ee(function(s,o=0){return Xn(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Yn(m,s,o,d,p,h){if(o+d>m.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function Jn(m,s,o,d,p){return s=+s,o=o>>>0,p||Yn(m,s,o,4),a.write(m,s,o,d,23,4),o+4}c.prototype.writeFloatLE=function(s,o,d){return Jn(this,s,o,!0,d)},c.prototype.writeFloatBE=function(s,o,d){return Jn(this,s,o,!1,d)};function Kn(m,s,o,d,p){return s=+s,o=o>>>0,p||Yn(m,s,o,8),a.write(m,s,o,d,52,8),o+8}c.prototype.writeDoubleLE=function(s,o,d){return Kn(this,s,o,!0,d)},c.prototype.writeDoubleBE=function(s,o,d){return Kn(this,s,o,!1,d)},c.prototype.copy=function(s,o,d,p){if(!c.isBuffer(s))throw new TypeError("argument should be a Buffer");if(d||(d=0),!p&&p!==0&&(p=this.length),o>=s.length&&(o=s.length),o||(o=0),p>0&&p<d&&(p=d),p===d||s.length===0||this.length===0)return 0;if(o<0)throw new RangeError("targetStart out of bounds");if(d<0||d>=this.length)throw new RangeError("Index out of range");if(p<0)throw new RangeError("sourceEnd out of bounds");p>this.length&&(p=this.length),s.length-o<p-d&&(p=s.length-o+d);let h=p-d;return this===s&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(o,d,p):Uint8Array.prototype.set.call(s,this.subarray(d,p),o),h},c.prototype.fill=function(s,o,d,p){if(typeof s=="string"){if(typeof o=="string"?(p=o,o=0,d=this.length):typeof d=="string"&&(p=d,d=this.length),p!==void 0&&typeof p!="string")throw new TypeError("encoding must be a string");if(typeof p=="string"&&!c.isEncoding(p))throw new TypeError("Unknown encoding: "+p);if(s.length===1){let T=s.charCodeAt(0);(p==="utf8"&&T<128||p==="latin1")&&(s=T)}}else typeof s=="number"?s=s&255:typeof s=="boolean"&&(s=Number(s));if(o<0||this.length<o||this.length<d)throw new RangeError("Out of range index");if(d<=o)return this;o=o>>>0,d=d===void 0?this.length:d>>>0,s||(s=0);let h;if(typeof s=="number")for(h=o;h<d;++h)this[h]=s;else{let T=c.isBuffer(s)?s:c.from(s,p),Z=T.length;if(Z===0)throw new TypeError('The value "'+s+'" is invalid for argument "value"');for(h=0;h<d-o;++h)this[h+o]=T[h%Z]}return this};let et={};function Sn(m,s,o){et[m]=class extends o{constructor(){super(),Object.defineProperty(this,"message",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${m}]`,this.stack,delete this.name}get code(){return m}set code(p){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:p,writable:!0})}toString(){return`${this.name} [${m}]: ${this.message}`}}}Sn("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Sn("ERR_INVALID_ARG_TYPE",function(m,s){return`The "${m}" argument must be of type number. Received type ${typeof s}`},TypeError),Sn("ERR_OUT_OF_RANGE",function(m,s,o){let d=`The value of "${m}" is out of range.`,p=o;return Number.isInteger(o)&&Math.abs(o)>2**32?p=Qn(String(o)):typeof o=="bigint"&&(p=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(p=Qn(p)),p+="n"),d+=` It must be ${s}. Received ${p}`,d},RangeError);function Qn(m){let s="",o=m.length,d=m[0]==="-"?1:0;for(;o>=d+4;o-=3)s=`_${m.slice(o-3,o)}${s}`;return`${m.slice(0,o)}${s}`}function ta(m,s,o){tt(s,"offset"),(m[s]===void 0||m[s+o]===void 0)&&pt(s,m.length-(o+1))}function Hn(m,s,o,d,p,h){if(m>o||m<s){let T=typeof s=="bigint"?"n":"",Z;throw h>3?s===0||s===BigInt(0)?Z=`>= 0${T} and < 2${T} ** ${(h+1)*8}${T}`:Z=`>= -(2${T} ** ${(h+1)*8-1}${T}) and < 2 ** ${(h+1)*8-1}${T}`:Z=`>= ${s}${T} and <= ${o}${T}`,new et.ERR_OUT_OF_RANGE("value",Z,m)}ta(d,p,h)}function tt(m,s){if(typeof m!="number")throw new et.ERR_INVALID_ARG_TYPE(s,"number",m)}function pt(m,s,o){throw Math.floor(m)!==m?(tt(m,o),new et.ERR_OUT_OF_RANGE(o||"offset","an integer",m)):s<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE(o||"offset",`>= ${o?1:0} and <= ${s}`,m)}let na=/[^+/0-9A-Za-z-_]/g;function ia(m){if(m=m.split("=")[0],m=m.trim().replace(na,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function wn(m,s){s=s||1/0;let o,d=m.length,p=null,h=[];for(let T=0;T<d;++T){if(o=m.charCodeAt(T),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&h.push(239,191,189);continue}else if(T+1===d){(s-=3)>-1&&h.push(239,191,189);continue}p=o;continue}if(o<56320){(s-=3)>-1&&h.push(239,191,189),p=o;continue}o=(p-55296<<10|o-56320)+65536}else p&&(s-=3)>-1&&h.push(239,191,189);if(p=null,o<128){if((s-=1)<0)break;h.push(o)}else if(o<2048){if((s-=2)<0)break;h.push(o>>6|192,o&63|128)}else if(o<65536){if((s-=3)<0)break;h.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((s-=4)<0)break;h.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return h}function aa(m){let s=[];for(let o=0;o<m.length;++o)s.push(m.charCodeAt(o)&255);return s}function ra(m,s){let o,d,p,h=[];for(let T=0;T<m.length&&!((s-=2)<0);++T)o=m.charCodeAt(T),d=o>>8,p=o%256,h.push(p),h.push(d);return h}function zn(m){return l.toByteArray(ia(m))}function Zt(m,s,o,d){let p;for(p=0;p<d&&!(p+o>=s.length||p>=m.length);++p)s[p+o]=m[p];return p}function Me(m,s){return m instanceof s||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===s.name}function Bn(m){return m!==m}let sa=function(){let m="0123456789abcdef",s=new Array(256);for(let o=0;o<16;++o){let d=o*16;for(let p=0;p<16;++p)s[d+p]=m[o]+m[p]}return s}();function Ee(m){return typeof BigInt>"u"?oa:m}function oa(){throw new Error("BigInt not supported")}return He}var ze=ua();ze.Buffer;ze.SlowBuffer;ze.INSPECT_MAX_BYTES;ze.kMaxLength;var S=ze.Buffer,Or=ze.INSPECT_MAX_BYTES,Lr=ze.kMaxLength;var zr={coreApiUrl:"https://core-dev.a11bd.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"",wormholeMessengerProgramId:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",solanaLookUpTable:"C3jAxHRTZjM2Bs7EqPir4nvrT8zKtpcW7RvGR9R2qKtN",sorobanNetworkPassphrase:"Test SDF Network ; September 2015",tronJsonRpc:"https://nile.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{SPL:0,ARB:3,AMO:7}},cachePoolInfoChainSec:20},jr={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},qr={SOL:"https://api.devnet.solana.com",TRX:"https://nile.trongrid.io",SRB:"https://soroban-testnet.stellar.org",STLR:"https://horizon-testnet.stellar.org"};var Dt={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"https://quote-api.jup.ag/v6",wormholeMessengerProgramId:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",solanaLookUpTable:"2JcBAEVnAwVo4u8d61iqgHPrzZuugur7cVTjWubsVLHj",sorobanNetworkPassphrase:"Public Global Stellar Network ; September 2015",tronJsonRpc:"https://api.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{ETH:0,AVA:1,OPT:2,ARB:3,SOL:5,BAS:6,POL:7}},cachePoolInfoChainSec:20},is={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},as={SOL:"https://api.mainnet-beta.solana.com",TRX:"https://api.trongrid.io",SRB:"https://rpc.stellar.org:443",STLR:"https://horizon.stellar.org"};import{Big as We}from"big.js";var _t=class{constructor(a){this.apiClient=a}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let a=await this.getChainDetailsMap();return Object.values(a).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(a,i){return this.apiClient.getGasBalance(a,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(a,i){return await this.apiClient.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.apiClient.getReceiveTransactionCost(a)}async getPoolInfoMap(a){return await this.apiClient.getPoolInfoMap(a)}};import ha from"axios";var ei="3.17.0-alpha.6";var ke=(M=>(M.GRL="GRL",M.SPL="SPL",M.HOL="HOL",M.BSC="BSC",M.ETH="ETH",M.BAS="BAS",M.SOL="SOL",M.TRX="TRX",M.POL="POL",M.MUM="MUM",M.AMO="AMO",M.ARB="ARB",M.CEL="CEL",M.AVA="AVA",M.SRB="SRB",M.STLR="STLR",M.OPT="OPT",M))(ke||{}),$=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))($||{}),ee={EVM:18,SOLANA:9,TRX:6,SRB:7},ue={GRL:{chainSymbol:"GRL",chainId:"0x5",name:"Goerli",chainType:"EVM"},SPL:{chainSymbol:"SPL",chainId:"0xaa36a7",name:"Sepolia",chainType:"EVM"},HOL:{chainSymbol:"HOL",chainId:"0x4268",name:"Hole\u0161ky",chainType:"EVM"},BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},MUM:{chainSymbol:"MUM",chainId:"0x13881",name:"Mumbai",chainType:"EVM"},AMO:{chainSymbol:"AMO",chainId:"0x13882",name:"Amoy",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"}};import{Big as x}from"big.js";import Cn from"bn.js";var j=class extends Error{constructor(a,i){super(i),this.errorCode=a}},O=class extends j{constructor(a){super("SdkError",a)}},Et=class extends j{constructor(a){super("InvalidAmountError",a)}},nt=class extends j{constructor(a){super("AmountNotEnoughError",a)}},Ge=class extends j{constructor(a){super("InsufficientPoolLiquidityError",a)}},ie=class extends j{constructor(a){super("JupiterError",a)}},ft=class extends j{constructor(a){super("InvalidGasFeePaymentOptionError",a)}},ti=class extends j{constructor(a){super("InvalidMessengerOptionError",a)}},me=class extends j{constructor(a){super("MethodNotSupportedError",a)}},ht=class extends j{constructor(a){super("VerifyTxError",a)}},it=class extends j{constructor(a){super("InvalidTxError",a)}},Vt=class extends j{constructor(a){super("ExtraGasMaxLimitExceededError",a)}},Ot=class extends j{constructor(a,i,r){super("ArgumentInvalidDecimalsError",`Argument '${a}' decimals '${i}' cannot be greater than '${r}'`)}},yt=class extends j{constructor(a){super("TimeoutError",a)}},Lt=class extends j{constructor(a){super("NodeRpcUrlNotInitializedError",`For chain '${a}' Node RPC URL not initialized`)}},we=class extends j{constructor(a){super("CCTPDoesNotSupportedError",a)}},Xt=class extends j{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},ma=(C=>(C.SDK_ERROR="SdkError",C.INVALID_AMOUNT_ERROR="InvalidAmountError",C.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",C.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",C.JUPITER_ERROR="JupiterError",C.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",C.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",C.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",C.VERIFY_TX_ERROR="VerifyTxError",C.INVALID_TX_ERROR="InvalidTxError",C.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",C.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",C.TIMEOUT_ERROR="TimeoutError",C.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",C.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",C.TX_TOO_LARGE="TxTooLargeError",C))(ma||{});function In(l,a){return x(100).minus(x(100).times(a).div(l)).toNumber()}function je(l,a){return Ve(l,a,3).round(0,x.roundDown)}function ge(l,a){return Ve(l,3,a)}function Ve(l,a,i){let r=x(i).minus(a).toNumber();return x(l).times(bt(r))}function bt(l){return x(10).pow(l)}function E(l,a){return x(l).times(bt(a))}function D(l,a){let i=x(l);return i.eq(0)?x(0):x(i).div(bt(a))}function fe(l){return D(x(l.tokenBalance).minus(l.vUsdBalance).toFixed(),3).div(2).toFixed()}function ve(l,{feeShare:a,decimals:i},r){let A=x(l);if(A.lte(0))return"0";let u=A.times(a),c=A.minus(u),g=je(c,i),f=x(r.tokenBalance).plus(g),y=xe(f,r.aValue,r.dValue);return x(r.vUsdBalance).minus(y).round(0,x.roundDown).toFixed()}function Tt(l,{feeShare:a,decimals:i},r){let A=x(l);if(A.lte(0))return x(0).toFixed();let u=A.plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=ge(x(r.tokenBalance).minus(c),i),f=x(g).times(a);return x(g).minus(f).round(0,x.roundDown).toFixed()}function ni(l,a){let i=x(l);if(i.lte(0))return a;let r=i.plus(a.vUsdBalance),A=xe(r,a.aValue,a.dValue);return{aValue:a.aValue,dValue:a.dValue,tokenBalance:A.toFixed(0),vUsdBalance:r.toFixed(0)}}function ii(l,{feeShare:a,decimals:i},r){if(x(l).lte(0))return x(0);let A=x(r.vUsdBalance).minus(l);if(A.lte(0))throw new Ge;let u=xe(A,r.aValue,r.dValue),c=x(u).minus(r.tokenBalance),g=ge(c,i),f=x(a).div(x(1).minus(a)),y=x(g).times(f).round(0,x.roundUp);return x(g).plus(y).round(0,x.roundDown)}function ai(l,{feeShare:a,decimals:i},r){if(x(l).lte(0))return x(0);let A=x(a).div(x(1).minus(a)),u=x(l).times(A).round(0,x.roundUp),c=x(l).plus(u),g=je(c,i),f=x(r.tokenBalance).minus(g);if(f.lte(0))throw new Ge;let y=xe(f,r.aValue,r.dValue);return x(y).minus(r.vUsdBalance).round(0,x.roundDown)}function xe(l,a,i){let r=x(4).times(a).times(x(i).minus(l)).minus(i),A=x(i).pow(3),u=r.pow(2),c=x(l).times(x(l).times(u).plus(x(4).times(a).times(A))).sqrt().round(0,x.roundDown),g=x(8).times(a).times(l),f=r.times(l).plus(c).div(g).round(0,x.roundDown);return f.eq(0)?x(0):f.plus(1)}function ri(l,a,i,r){let A=new Cn(l),u=new Cn(i),c=new Cn(a);return A.mul(u).shrn(r).sub(c).toString()}function si(l){return x(l).gt(0)?`${Number(x(l).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function oi(l,a,i){let r=x(a).times(i),A=x(a).plus(i),u=x(8).times(l).times(r).times(A),c=r.times(x(16).times(l).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),y=g.plus(f),b=x(y).sqrt(),P=x(Math.cbrt(+u.plus(b).toFixed())),v=x(Math.cbrt(+u.minus(b).toFixed()));return P.plus(v).toFixed()}var Rn=(c=>(c.OK="OK",c.INVALID="INVALID",c.FORBIDDEN="FORBIDDEN",c.UNINITIALIZED="UNINITIALIZED",c.CONTRACT_ADDRESS="CONTRACT_ADDRESS",c.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",c))(Rn||{});var Ue=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ue||{});function Ai(l){return Object.entries(l).reduce((a,i)=>{let r=i[0],A=i[1],u=fa(r,A);return u&&(a[r]=u),a},{})}function ci(l){let a={};for(let[i,r]of Object.entries(l)){let A=i;for(let u of r.tokens){let c=at({chainSymbol:A,poolAddress:u.poolAddress}),g=fe(u.poolInfo);a[c]={...u.poolInfo,imbalance:g}}}return a}function la(l,a){let{name:i,...r}=l,{poolInfo:A,...u}=a;return{...u,...r,chainName:i}}function da(l){switch(l){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function pa(l){return Object.entries(l).reduce((a,[i,r])=>(a[i]=ga(r),a),{})}function ga(l){return Object.entries(l).reduce((a,[i,r])=>{let A=da(i);return A&&(a[A]=r),a},{})}function fa(l,a){let i=ue[l];if(!i)return null;let r={...i,allbridgeChainId:a.chainId,bridgeAddress:a.bridgeAddress,transferTime:pa(a.transferTime),txCostAmount:a.txCostAmount,confirmations:a.confirmations};return{...r,tokens:a.tokens.map(A=>la(r,A))}}function at(l){return l.chainSymbol+"_"+l.poolAddress}function ui(l){let a=[];for(let[i,r]of Object.entries(l)){let A=i;for(let u of r.tokens)a.push({chainSymbol:A,poolAddress:u.poolAddress})}return a}function mi(l){let a={};for(let[i,r]of Object.entries(l)){let A=i;for(let[u,c]of Object.entries(r))c.imbalance=fe(c),a[at({chainSymbol:A,poolAddress:u})]=c}return a}var Yt=class{constructor(a){this.api=ha.create({baseURL:a.coreApiUrl,headers:{Accept:"application/json",...a.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ei},params:a.coreApiQueryParams})}async getTokenInfo(){let{data:a}=await this.api.get("/token-info");return{chainDetailsMap:Ai(a),poolInfoMap:ci(a)}}async getPendingInfo(){let{data:a}=await this.api.get("/pending-info");return a}async getGasBalance(a,i){let{data:r}=await this.api.get(`/check/${a}/${i}`);return r}async getTransferStatus(a,i){let{data:r}=await this.api.get(`/chain/${a}/${i}`);return r}async getReceiveTransactionCost(a){let{data:i}=await this.api.post("/receive-fee",a,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(a){let i=a instanceof Array?a:[a],{data:r}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return mi(r)}};import Jt from"timed-cache";var Mn=20*1e3,ya=55*1e3,Kt=class{constructor(a){this.apiClient=a;this.tokenInfoCache=new Jt({defaultTtl:ya}),this.receivedTransactionCache=new Jt({defaultTtl:Mn}),this.pendingInfoCache=new Jt({defaultTtl:Mn}),this.gasBalanceCache=new Jt({defaultTtl:Mn})}getTokenInfo(){let a="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(a);if(i)return i;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(a,r),r}async getGasBalance(a,i){let r=`GAS_BALANCE_${a}_${i}`,A=this.gasBalanceCache.get(r);if(A)return A;let u=this.apiClient.getGasBalance(a,i);return this.gasBalanceCache.put(r,u),u}async getPendingInfo(){let a="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(a);if(i)return i;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(a,r),r}async getReceiveTransactionCost(a){let i=`RECEIVE_TX_COST_${a.sourceChainId}_${a.destinationChainId}_${a.messenger}`,r=this.receivedTransactionCache.get(i);if(r)return r;let A=await this.apiClient.getReceiveTransactionCost(a);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(a,i){return this.apiClient.getTransferStatus(a,i)}async getPoolInfoMap(a){return this.apiClient.getPoolInfoMap(a)}};import ba from"timed-cache";var Ta=55*1e3,Qt=class{constructor(a){this.client=a;this.poolInfoCache=new kn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(a,i){return this.client.getTransferStatus(a,i)}getReceiveTransactionCost(a){return this.client.getReceiveTransactionCost(a)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getPoolInfoByKey(a){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(a);if(i)return i;{let r=await this.client.getPoolInfoMap(a);return this.poolInfoCache.putAll(r),r[at(a)]}}async refreshPoolInfo(a){let i;if(a)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(a);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(ui(r.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(a,i){this.poolInfoCache.put(at(a),i)}},kn=class{constructor(){this.cache=new ba({defaultTtl:Ta})}putAll(a){for(let[i,r]of Object.entries(a))this.cache.put(i,r)}putAllIfNotExists(a){for(let[i,r]of Object.entries(a))this.cache.get(i)||this.cache.put(i,r)}put(a,i){this.cache.put(a,i)}get(a){let i=at(a);return this.cache.get(i)}};import qa from"tronweb";import $a from"web3";import{Big as li}from"big.js";async function te(l,a){return await l.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}function L(l){if(li(l).lte(0))throw new Et("Amount must be greater than zero")}function Y(l,a,i){let r=li(a).toFixed();if(r.split(".").length==2&&r.split(".")[1].length>i)throw new Ot(l,r.split(".")[1].length,i)}async function Ht(l,a,i){return await Promise.race([l,new Promise((r,A)=>{setTimeout(()=>A(new yt(a)),i)})])}async function vn(l,a,i,r){if(i<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${i} was received.`);let A=0;for(;;)try{return await Ht(l(),a,r)}catch{if(++A>=i)throw new yt(a)}}async function di(l,a,i,r=1.5,A=!1){let u=[],c=0;if(u.push(await l()),!a(u[u.length-1]))return u;let g=new Date(Date.now()+i*1e3).valueOf(),f=1e3,y=f;for(;Date.now()<g&&a(u[u.length-1]);)c++,A&&console.info(`Waiting ${f}ms before trying again (bringing the total wait time to ${y}ms so far, of total ${i*1e3}ms)`),await new Promise(b=>setTimeout(b,f)),f=f*r,new Date(Date.now()+f).valueOf()>g&&(f=g-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${f}ms`)),y=f+y,u.push(await l(u[u.length-1])),A&&a(u[u.length-1])&&console.info(`${c}. Called ${l.name}; ${u.length} prev attempts. Most recent: ${JSON.stringify(u[u.length-1],null,2)}`);return u}import*as jt from"@project-serum/anchor";import{PublicKey as Mi}from"@solana/web3.js";import{Big as Wa}from"big.js";var pi=[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var gi=[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];import*as re from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(l,a){return re.utils.token.associatedAddress({mint:a,owner:l})}async function Oe(l){let[a]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("config")],l);return a}async function fi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("lock"),Uint8Array.from(l)],a);return i}async function Pt(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([l])],a);return i}async function rt(l){let a=await Oe(l),[i]=await ce.findProgramAddress([a.toBuffer()],l);return i}async function hi(l,a){let[i]=await ce.findProgramAddress([l.toBuffer()],a);return i}async function st(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),l.toBytes()],a);return i}async function yi(l,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("other_bridge_token"),S.from([l]),a],i);return r}async function xn(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([l])],a);return i}async function Fn(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([l])],a);return i}async function bi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("sent_message"),l],a);return i}async function Wn(l,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("user_deposit"),a.toBytes(),l.toBytes()],i);return r}async function Ti(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("cctp_bridge"),l.toBytes()],a);return i}async function Pi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),l.toBytes()],a);return i}function Si(l,a){let[i]=ce.findProgramAddressSync([re.utils.bytes.utf8.encode("lock"),a.toBuffer()],l);return i}function wi(l,a,i,r){let A=qe("message_transmitter",i),u=qe("token_messenger",r),c=qe("__event_authority",r),g=qe("token_minter",r),f=qe("local_token",r,[a]),y=qe("remote_token_messenger",r,[l.toString()]),b=qe("sender_authority",r);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:y,authorityPda:b}}function qe(l,a,i=[]){let r=[S.from(re.utils.bytes.utf8.encode(l))];for(let u of i)typeof u=="string"?r.push(S.from(re.utils.bytes.utf8.encode(u))):Array.isArray(u)?r.push(S.from(u)):S.isBuffer(u)?r.push(u):r.push(u.toBuffer());return ce.findProgramAddressSync(r,a)[0]}import{AnchorProvider as wa}from"@project-serum/anchor";import{Connection as Ba,PublicKey as Ca}from"@solana/web3.js";function Le(l,a){let i=new Ba(l,"confirmed"),r=new Ca(a);return new wa(i,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as Ia}from"@solana/web3.js";import{Address as Ra}from"@stellar/stellar-sdk";import{Big as Ze}from"big.js";import Bi from"randombytes";import*as Ci from"tronweb";function Ne(l,a,i){let r;switch(a){case"EVM":{r=Ma(l);break}case"SOLANA":{r=new Ia(l).toBuffer();break}case"TRX":{r=ka(l);break}case"SRB":{r=new Ra(l).toBuffer();break}}switch(i){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r.toJSON().data;case"SRB":return r.toJSON().data}}function Ii(l){return S.from(l.replace(/^0x/i,""),"hex")}function Ma(l){let i=Ii(l);return S.concat([S.alloc(32-i.length,0),i],32)}function ka(l){let a=St(l),i=Ii(a);return va(i,32)}function St(l){return S.from(Ci.utils.crypto.decodeBase58Address(l)).toString("hex").replace(/^41/,"0x")}function va(l,a){if(l.length>=a)return l;let i=S.alloc(a,0);return l.copy(i,a-l.length),i}function ot(){return Bi(32)}function Gn(){let l=Bi(32).readBigInt64BE();return l<0?l*-1n:l}function Xe(l,a){let i={},r=a.sourceToken;return i.amount=E(a.amount,r.decimals).toFixed(),i.contractAddress=r.bridgeAddress,i.fromAccountAddress=a.fromAccountAddress,i.fromTokenAddress=Ne(r.tokenAddress,l,l),i.toAccountAddress=a.toAccountAddress,i.toTokenAddress=Ne(a.destinationToken.tokenAddress,l,l),i.minimumReceiveAmount=a.minimumReceiveAmount?E(a.minimumReceiveAmount,a.destinationToken.decimals).toFixed():"0",i}async function De(l,a,i){let r={};r.fromChainId=a.sourceToken.allbridgeChainId,r.fromChainSymbol=a.sourceToken.chainSymbol;let A=ue[a.destinationToken.chainSymbol].chainType;r.fromTokenAddress=a.sourceToken.tokenAddress,r.toChainId=a.destinationToken.allbridgeChainId,r.toTokenAddress=a.destinationToken.tokenAddress,a.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let u=a.sourceToken;if(a.messenger===3){if(!u.cctpAddress||!a.destinationToken.cctpAddress)throw new we("Such route does not support CCTP protocol");r.contractAddress=u.cctpAddress}else r.contractAddress=u.bridgeAddress;r.messenger=a.messenger,r.fromAccountAddress=a.fromAccountAddress,r.amount=E(a.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=a;if(!c){let P=(await Un(r.fromChainId,a.sourceToken.chainType,r.toChainId,u.decimals,r.messenger,i))[r.gasFeePaymentMethod];if(!P)throw new ft;c=P.int,g="int"}if(g=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=E(c,ee[u.chainType]).toFixed(0);break;case"stablecoin":r.fee=E(c,u.decimals).toFixed(0);break}else r.fee=c;let{extraGas:f,extraGasFormat:y}=a;if(f&&+f>0){if(y=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=E(f,ee[u.chainType]).toFixed(0);break;case"stablecoin":r.extraGas=E(f,u.decimals).toFixed(0);break}else r.extraGas=f;await Fa(r.extraGas,r.gasFeePaymentMethod,u,a.destinationToken,i)}return r.fromTokenAddress=Ne(r.fromTokenAddress,l,l),r.toAccountAddress=Ne(a.toAccountAddress,A,l),r.toTokenAddress=Ne(r.toTokenAddress,A,l),r.gasFeePaymentMethod=="stablecoin"&&xa(r.amount,u.decimals,r.fee,r.extraGas),r}function xa(l,a,i,r){let A=Ze(l).minus(i).minus(r??0);if(A.lte(0))throw new nt(`Amount not enough to pay fee, ${D(Ze(A).minus(1).neg(),a).toFixed()} stables is missing`)}async function Un(l,a,i,r,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:l,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:D(c.fee,ee[a]).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ve(new Ze(c.fee).mul(c.sourceNativeTokenPrice),ee[a],r).toFixed(0,Ze.roundUp);g.stablecoin={int:f,float:D(f,r).toFixed()}}return g}async function Fa(l,a,i,r,A){let c=(await Zn(i,r,A)).extraGasMax[a];if(!c)throw new ft(`Impossible to pay extra gas by '${a}' payment method`);let g=c.int;if(Ze(l).gt(g))throw new Vt(`Extra gas ${l} in int format, exceeded limit ${g} for '${a}' payment method`)}async function Zn(l,a,i){let r={},A=await i.getReceiveTransactionCost({sourceChainId:l.allbridgeChainId,destinationChainId:a.allbridgeChainId,messenger:1}),u=a.txCostAmount.maxAmount,c=D(u,ee[a.chainType]).toFixed(),g=Ze(c).div(A.exchangeRate).toFixed(ee[l.chainType],Ze.roundDown),f=E(g,ee[l.chainType]).toFixed(0);if(r.native={int:f,float:g},A.sourceNativeTokenPrice){let y=Ze(g).mul(A.sourceNativeTokenPrice).toFixed(l.decimals,Ze.roundDown);r.stablecoin={int:E(y,l.decimals).toFixed(0),float:y}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:a.txCostAmount.swap,float:D(a.txCostAmount.swap,ee[a.chainType]).toFixed()},transfer:{int:a.txCostAmount.transfer,float:D(a.txCostAmount.transfer,ee[a.chainType]).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function Ri(l){return l.sourceToken.chainSymbol!==l.destinationToken.chainSymbol}var wt=class extends Ce{constructor(i,r,A){super();this.web3=i;this.api=r;this.nodeRpcUrlsConfig=A;this.chainType="EVM"}async send(i){let r=await this.buildRawTransactionSend(i);return this.sendRawTransaction(r)}async buildRawTransactionSwap(i){let r=Xe(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:y}=i,P=this.getBridgeContract(A).methods.swap(r,c,f,g,y);return Promise.resolve({from:u,to:A,data:P.encodeABI()})}async buildRawTransactionSend(i){let r=await De(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:y,toTokenAddress:b,messenger:P,fee:v,gasFeePaymentMethod:w,extraGas:B}=r,k="0x"+ot().toString("hex"),C,M,F=v;if(B&&(F=Wa(F).plus(B).toFixed()),P===3){let G=await this.buildRawTransactionCctpSend(i,r,F);C=G.sendMethod,M=G.value}else{let G=this.getBridgeContract(u);w==="stablecoin"?(C=G.methods.swapAndBridge(g,A,y,f,b,k,P,F),M="0"):(C=G.methods.swapAndBridge(g,A,y,f,b,k,P,0),M=F)}return Promise.resolve({from:c,to:u,value:M,data:C.encodeABI()})}async buildRawTransactionCctpSend(i,r,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:y}=r,b=this.getContract(gi,c),P,v;if(i.destinationToken.chainType==="SOLANA"){let w,B=new Mi(i.toAccountAddress),k=new Mi(i.destinationToken.tokenAddress),C=await Be(B,k),M=Le(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);jt.setProvider(M);let F=await jt.Spl.token(M).account.token.fetchNullable(C);if(F?.authority.equals(B))w=Ne(C.toBase58(),"SOLANA",this.chainType);else{let G=await M.connection.getTokenAccountsByOwner(B,{mint:k});if(G.value.length===0&&!F)w=Ne(C.toBase58(),"SOLANA",this.chainType);else if(G.value.length>0)w=Ne(G.value[0].pubkey.toBase58(),"SOLANA",this.chainType);else throw new O("Associated account has wrong owner")}y==="stablecoin"?(P=b.methods.bridgeWithWalletAddress(u,w,f,g,A),v="0"):(P=b.methods.bridgeWithWalletAddress(u,w,f,g,0),v=A)}else y==="stablecoin"?(P=b.methods.bridge(u,f,g,A),v="0"):(P=b.methods.bridge(u,f,g,0),v=A);return{sendMethod:P,value:v}}async sendRawTransaction(i){let r=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:r,...A});return{txId:u}}getContract(i,r){return new this.web3.eth.Contract(i,r)}getBridgeContract(i){return this.getContract(pi,i)}};var qt=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){let r,A;i?(r=a,A=i):A=a;let u=Bt(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},r)}async send(a,i){return L(a.amount),Y("amount",a.amount,a.sourceToken.decimals),Ri(a)?$t(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(a):$t(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(a)}};import{BN as mt,Program as _n,Spl as La,web3 as Ye}from"@project-serum/anchor";import{Keypair as Ei,PublicKey as J,SystemProgram as Xa}from"@solana/web3.js";import{Big as Fe}from"big.js";var Ct={version:"0.1.0",name:"bridge",instructions:[{name:"initialize",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"initializePool",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"token",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializePoolArgs"}}]},{name:"initDepositAccount",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"deposit",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdraw",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amountLp",type:"u64"}]},{name:"swapAndBridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"messenger",isMut:!1,isSigner:!1},{name:"messengerConfig",isMut:!0,isSigner:!1},{name:"sentMessageAccount",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swapAndBridgeWormhole",accounts:[{name:"user",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"wormholeMessenger",isMut:!1,isSigner:!1},{name:"wormholeMessengerConfig",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!1,isSigner:!1},{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swap",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"sendMint",isMut:!1,isSigner:!1},{name:"receiveMint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"sendPool",isMut:!0,isSigner:!1},{name:"receivePool",isMut:!0,isSigner:!1},{name:"sendBridgeToken",isMut:!0,isSigner:!1},{name:"receiveBridgeToken",isMut:!0,isSigner:!1},{name:"sendUserToken",isMut:!0,isSigner:!1},{name:"receiveUserToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"},{name:"receiveAmountMin",type:"u64"}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"receiveAndSwap",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"receiveAndSwapWormhole",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"claimRewards",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAdmin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAdmin",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"startBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"stopBridge",accounts:[{name:"stopAuthority",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"setRebalancer",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"rebalancer",isMut:!1,isSigner:!1}],args:[]},{name:"setStopAuthority",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"setAllbridgeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setWormholeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setPoolFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setBalanceRatioMin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"balanceRatioMinBp",type:"u16"}]},{name:"setPoolAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"addOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"removeOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"adjustTotalLpAmount",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"chainBridge",type:{kind:"struct",fields:[{name:"address",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"config",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"rebalancer",type:"publicKey"},{name:"stopAuthority",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"canSwap",type:"bool"},{name:"canDeposit",type:"bool"},{name:"canWithdraw",type:"bool"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"sentTokenAddress",type:"publicKey"},{name:"amount",type:"u64"},{name:"vusdAmount",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"nonce",type:{array:["u8",32]}},{name:"messenger",type:{defined:"Messenger"}},{name:"slot",type:"u64"},{name:"fee",type:"u64"}]}},{name:"otherBridgeToken",type:{kind:"struct",fields:[]}},{name:"pool",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"a",type:"u64"},{name:"d",type:"u64"},{name:"tokenBalance",type:"u64"},{name:"vUsdBalance",type:"u64"},{name:"reserves",type:"u64"},{name:"decimals",type:"u8"},{name:"totalLpAmount",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"accRewardPerShareP",type:"u128"},{name:"adminFeeAmount",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"unlock",type:{kind:"struct",fields:[{name:"hash",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"fee",type:"u64"},{name:"vUsdAmount",type:"u64"},{name:"slot",type:"u64"}]}},{name:"userDeposit",type:{kind:"struct",fields:[{name:"userAddress",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"lpAmount",type:"u64"},{name:"rewardDebt",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"}]}},{name:"InitializePoolArgs",type:{kind:"struct",fields:[{name:"a",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"vusdAmount",type:"u64"}]}},{name:"UnlockArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"recipient",type:"publicKey"},{name:"sourceChainId",type:"u8"},{name:"receiveToken",type:"publicKey"},{name:"messenger",type:{defined:"Messenger"}},{name:"hash",type:{array:["u8",32]}},{name:"receiveAmountMin",type:"u64"}]}},{name:"RewardError",type:{kind:"enum",variants:[{name:"FeeTooHigh"}]}},{name:"Messenger",type:{kind:"enum",variants:[{name:"None"},{name:"Allbridge"},{name:"Wormhole"}]}},{name:"ActionType",type:{kind:"enum",variants:[{name:"Deposit"},{name:"Withdraw"},{name:"Swap"}]}}],errors:[{code:6e3,name:"AccountAlreadyInitialized",msg:"This account has already been initialized"},{code:6001,name:"AdminAuthorityInvalid",msg:"This instruction requires admin authority"},{code:6002,name:"InvalidSignature",msg:"Provided signature has wrong signer or message"},{code:6003,name:"InvalidHash",msg:"Wrong unlock message hash"},{code:6004,name:"PoolOverflow",msg:"PoolInfo overflow"},{code:6005,name:"ReservesExhausted",msg:"Reserves exhausted"},{code:6006,name:"ZeroAmount",msg:"Zero amount"},{code:6007,name:"ZeroChanges",msg:"Zero changes"},{code:6008,name:"HighVusdAmount",msg:"vUSD amount is too high"},{code:6009,name:"BalanceRatioExceeded",msg:"Balance ratio exceeded"},{code:6010,name:"InsufficientReceivedAmount",msg:"Received insufficient amount"},{code:6011,name:"ForbiddenAction",msg:"ForbiddenAction"},{code:6012,name:"ValueTooHigh",msg:"Value is too high"}]};var ki={version:"0.1.0",name:"cctp_bridge",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"bridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"cctpMessenger",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"messageTransmitterAccount",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"remoteTokenMessengerKey",isMut:!1,isSigner:!1},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"setAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setCctpTokenMessengerMinter",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]}],accounts:[{name:"cctpBridge",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"admin",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"adminFeeShareBp",type:"u64"},{name:"adminFeeAmount",type:"u64"}]}},{name:"chainBridge",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"amount",type:"u64"},{name:"adminFee",type:"u64"},{name:"relayerFee",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"slot",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"amount",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"gasOracleProgramId",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"}]}}],errors:[{code:6e3,name:"ValueTooHigh",msg:"Value is too high"}]};import{Spl as Ga}from"@project-serum/anchor";import Ua from"big.js";import en from"web3";async function ct(l,a){return await Ga.token(a).account.token.fetch(l)}async function vi(l,a,i){let r=await a.account.pool.fetch(i),A=r.decimals,u=Ua(r.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:r.a.toString(),dValue:r.d.toString(),totalLpAmount:r.totalLpAmount.toString(),tokenBalance:r.tokenBalance.toString(),vUsdBalance:r.vUsdBalance.toString(),accRewardPerShareP:r.accRewardPerShareP.toString()};return ve(l,{decimals:A,feeShare:u},c)}function xi(l){let a=l.amount,i="0x"+l.recipient.toString("hex"),r=l.sourceChainId,A=l.destinationChainId,u="0x"+l.receiveToken.toString("hex"),c="0x"+l.nonce.toString("hex"),g=1,f="0x"+l.chainBridge.toString("hex"),y=en.utils.encodePacked({t:"uint256",v:a},{t:"bytes32",v:i},{t:"uint256",v:r},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!y)throw new O("message cannot be undefined");let b=en.utils.keccak256(S.from(y.replace("0x",""),"hex")),P=S.from(b.replace("0x",""),"hex");P[0]=r,P[1]=A;let v=en.utils.encodePacked({t:"bytes32",v:"0x"+P.toString("hex")},{t:"bytes32",v:f});if(!v)throw new it("messageWithSigner cannot be undefined");let w=en.utils.keccak256(S.from(v.replace("0x",""),"hex")),B=S.from(w.replace("0x",""),"hex");return B[0]=P[0],B[1]=P[1],B}import{ComputeBudgetInstruction as Wi,ComputeBudgetProgram as tn,Connection as Gi,TransactionMessage as Za}from"@solana/web3.js";import{Big as Na}from"big.js";import{AddressLookupTableAccount as Fi}from"@solana/web3.js";async function $e(l,a){return await Promise.all(l.message.addressTableLookups.map(async i=>new Fi({key:i.accountKey,state:Fi.deserialize(await a.getAccountInfo(i.accountKey).then(r=>{if(!r)throw new O("Cannot get AccountInfo");return r.data}))})))}var Nn="AUTO";async function ut(l,a,i){let r=new Gi(i,"confirmed"),A=(await r.simulateTransaction(l)).value.unitsConsumed;await Zi(l.instructions,A,a,r)}async function Ui(l,a,i){let r=new Gi(i,"confirmed"),A=await $e(l,r),u=Za.decompile(l.message,{addressLookupTableAccounts:A});if(l.serialize().length>1232)throw new Xt;await Zi(u.instructions,769230,a,r),l.message=u.compileToV0Message(A)}async function Zi(l,a,i,r){if(a>0){let A=Da(a,l);if(i?.solana){let u=i.solana;if(u===Nn)await Dn(l,r);else if("pricePerUnitInMicroLamports"in u)await Dn(l,r,u.pricePerUnitInMicroLamports);else{let c=Na(u.extraFeeInLamports).div(A).mul(bt(6)).toFixed(0);await Dn(l,r,c)}}}}function Da(l,a){let i=a.findIndex(u=>u.programId.equals(tn.programId)&&Wi.decodeInstructionType(u)==="SetComputeUnitLimit"),r=Number((l*1.3).toFixed(0)),A=tn.setComputeUnitLimit({units:r});return i>=0?a[i]=A:a.push(A),r.toString()}async function Dn(l,a,i){let r=l.findIndex(c=>c.programId.equals(tn.programId)&&Wi.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await _a(a)),u=tn.setComputeUnitPrice({microLamports:A});return r>=0?l[r]=u:l.push(u),A.toString()}async function _a(l){let a=await l.getRecentPrioritizationFees(),i=0;for(let r of a)i+=r.prioritizationFee;return(i/a.length).toFixed(0)}import{NATIVE_MINT as Ea}from"@solana/spl-token";import{Connection as Va,TransactionMessage as Ni,VersionedTransaction as Oa}from"@solana/web3.js";import Di,{AxiosError as _i}from"axios";var nn=class{constructor(a,i){this.connection=new Va(a),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(a,i,r,A){let u;try{let P=A?"ExactOut":"ExactIn";u=await Di.get(`${this.jupiterUrl}/quote?inputMint=${i}
1
+ var gt={},jn=!1;function Aa(){if(jn)return gt;jn=!0,gt.byteLength=g,gt.toByteArray=y,gt.fromByteArray=v;for(var l=[],a=[],i=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=r.length;A<u;++A)l[A]=r[A],a[r.charCodeAt(A)]=A;a[45]=62,a[95]=63;function c(w){var B=w.length;if(B%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=w.indexOf("=");k===-1&&(k=B);var C=k===B?0:4-k%4;return[k,C]}function g(w){var B=c(w),k=B[0],C=B[1];return(k+C)*3/4-C}function f(w,B,k){return(B+k)*3/4-k}function y(w){var B,k=c(w),C=k[0],M=k[1],F=new i(f(w,C,M)),G=0,_=M>0?C-4:C,U;for(U=0;U<_;U+=4)B=a[w.charCodeAt(U)]<<18|a[w.charCodeAt(U+1)]<<12|a[w.charCodeAt(U+2)]<<6|a[w.charCodeAt(U+3)],F[G++]=B>>16&255,F[G++]=B>>8&255,F[G++]=B&255;return M===2&&(B=a[w.charCodeAt(U)]<<2|a[w.charCodeAt(U+1)]>>4,F[G++]=B&255),M===1&&(B=a[w.charCodeAt(U)]<<10|a[w.charCodeAt(U+1)]<<4|a[w.charCodeAt(U+2)]>>2,F[G++]=B>>8&255,F[G++]=B&255),F}function b(w){return l[w>>18&63]+l[w>>12&63]+l[w>>6&63]+l[w&63]}function P(w,B,k){for(var C,M=[],F=B;F<k;F+=3)C=(w[F]<<16&16711680)+(w[F+1]<<8&65280)+(w[F+2]&255),M.push(b(C));return M.join("")}function v(w){for(var B,k=w.length,C=k%3,M=[],F=16383,G=0,_=k-C;G<_;G+=F)M.push(P(w,G,G+F>_?_:G+F));return C===1?(B=w[k-1],M.push(l[B>>2]+l[B<<4&63]+"==")):C===2&&(B=(w[k-2]<<8)+w[k-1],M.push(l[B>>10]+l[B>>4&63]+l[B<<2&63]+"=")),M.join("")}return gt}var Nt={},qn=!1;function ca(){if(qn)return Nt;qn=!0;return Nt.read=function(l,a,i,r,A){var u,c,g=A*8-r-1,f=(1<<g)-1,y=f>>1,b=-7,P=i?A-1:0,v=i?-1:1,w=l[a+P];for(P+=v,u=w&(1<<-b)-1,w>>=-b,b+=g;b>0;u=u*256+l[a+P],P+=v,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=r;b>0;c=c*256+l[a+P],P+=v,b-=8);if(u===0)u=1-y;else{if(u===f)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,r),u=u-y}return(w?-1:1)*c*Math.pow(2,u-r)},Nt.write=function(l,a,i,r,A,u){var c,g,f,y=u*8-A-1,b=(1<<y)-1,P=b>>1,v=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:u-1,B=r?1:-1,k=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(g=isNaN(a)?1:0,c=b):(c=Math.floor(Math.log(a)/Math.LN2),a*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+P>=1?a+=v/f:a+=v*Math.pow(2,1-P),a*f>=2&&(c++,f/=2),c+P>=b?(g=0,c=b):c+P>=1?(g=(a*f-1)*Math.pow(2,A),c=c+P):(g=a*Math.pow(2,P-1)*Math.pow(2,A),c=0));A>=8;l[i+w]=g&255,w+=B,g/=256,A-=8);for(c=c<<A|g,y+=A;y>0;l[i+w]=c&255,w+=B,c/=256,y-=8);l[i+w-B]|=k*128},Nt}var He={},$n=!1;function ua(){if($n)return He;$n=!0;let l=Aa(),a=ca(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;He.Buffer=c,He.SlowBuffer=M,He.INSPECT_MAX_BYTES=50;let r=2147483647;He.kMaxLength=r,c.TYPED_ARRAY_SUPPORT=A(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function A(){try{let m=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(m,s),m.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(m){if(m>r)throw new RangeError('The value "'+m+'" is invalid for option "size"');let s=new Uint8Array(m);return Object.setPrototypeOf(s,c.prototype),s}function c(m,s,o){if(typeof m=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return b(m)}return g(m,s,o)}c.poolSize=8192;function g(m,s,o){if(typeof m=="string")return P(m,s);if(ArrayBuffer.isView(m))return w(m);if(m==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m);if(Me(m,ArrayBuffer)||m&&Me(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Me(m,SharedArrayBuffer)||m&&Me(m.buffer,SharedArrayBuffer)))return B(m,s,o);if(typeof m=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=m.valueOf&&m.valueOf();if(d!=null&&d!==m)return c.from(d,s,o);let p=k(m);if(p)return p;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof m[Symbol.toPrimitive]=="function")return c.from(m[Symbol.toPrimitive]("string"),s,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof m)}c.from=function(m,s,o){return g(m,s,o)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function f(m){if(typeof m!="number")throw new TypeError('"size" argument must be of type number');if(m<0)throw new RangeError('The value "'+m+'" is invalid for option "size"')}function y(m,s,o){return f(m),m<=0?u(m):s!==void 0?typeof o=="string"?u(m).fill(s,o):u(m).fill(s):u(m)}c.alloc=function(m,s,o){return y(m,s,o)};function b(m){return f(m),u(m<0?0:C(m)|0)}c.allocUnsafe=function(m){return b(m)},c.allocUnsafeSlow=function(m){return b(m)};function P(m,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=F(m,s)|0,d=u(o),p=d.write(m,s);return p!==o&&(d=d.slice(0,p)),d}function v(m){let s=m.length<0?0:C(m.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=m[d]&255;return o}function w(m){if(Me(m,Uint8Array)){let s=new Uint8Array(m);return B(s.buffer,s.byteOffset,s.byteLength)}return v(m)}function B(m,s,o){if(s<0||m.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(m.byteLength<s+(o||0))throw new RangeError('"length" is outside of buffer bounds');let d;return s===void 0&&o===void 0?d=new Uint8Array(m):o===void 0?d=new Uint8Array(m,s):d=new Uint8Array(m,s,o),Object.setPrototypeOf(d,c.prototype),d}function k(m){if(c.isBuffer(m)){let s=C(m.length)|0,o=u(s);return o.length===0||m.copy(o,0,0,s),o}if(m.length!==void 0)return typeof m.length!="number"||Bn(m.length)?u(0):v(m);if(m.type==="Buffer"&&Array.isArray(m.data))return v(m.data)}function C(m){if(m>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return m|0}function M(m){return+m!=m&&(m=0),c.alloc(+m)}c.isBuffer=function(s){return s!=null&&s._isBuffer===!0&&s!==c.prototype},c.compare=function(s,o){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),Me(o,Uint8Array)&&(o=c.from(o,o.offset,o.byteLength)),!c.isBuffer(s)||!c.isBuffer(o))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(s===o)return 0;let d=s.length,p=o.length;for(let h=0,T=Math.min(d,p);h<T;++h)if(s[h]!==o[h]){d=s[h],p=o[h];break}return d<p?-1:p<d?1:0},c.isEncoding=function(s){switch(String(s).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(s,o){if(!Array.isArray(s))throw new TypeError('"list" argument must be an Array of Buffers');if(s.length===0)return c.alloc(0);let d;if(o===void 0)for(o=0,d=0;d<s.length;++d)o+=s[d].length;let p=c.allocUnsafe(o),h=0;for(d=0;d<s.length;++d){let T=s[d];if(Me(T,Uint8Array))h+T.length>p.length?(c.isBuffer(T)||(T=c.from(T)),T.copy(p,h)):Uint8Array.prototype.set.call(p,T,h);else if(c.isBuffer(T))T.copy(p,h);else throw new TypeError('"list" argument must be an Array of Buffers');h+=T.length}return p};function F(m,s){if(c.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||Me(m,ArrayBuffer))return m.byteLength;if(typeof m!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof m);let o=m.length,d=arguments.length>2&&arguments[2]===!0;if(!d&&o===0)return 0;let p=!1;for(;;)switch(s){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return wn(m).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return zn(m).length;default:if(p)return d?-1:wn(m).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=F;function G(m,s,o){let d=!1;if((s===void 0||s<0)&&(s=0),s>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,s>>>=0,o<=s))return"";for(m||(m="utf8");;)switch(m){case"hex":return Pe(this,s,o);case"utf8":case"utf-8":return ne(this,s,o);case"ascii":return Ae(this,s,o);case"latin1":case"binary":return Te(this,s,o);case"base64":return le(this,s,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return pe(this,s,o);default:if(d)throw new TypeError("Unknown encoding: "+m);m=(m+"").toLowerCase(),d=!0}}c.prototype._isBuffer=!0;function _(m,s,o){let d=m[s];m[s]=m[o],m[o]=d}c.prototype.swap16=function(){let s=this.length;if(s%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let o=0;o<s;o+=2)_(this,o,o+1);return this},c.prototype.swap32=function(){let s=this.length;if(s%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let o=0;o<s;o+=4)_(this,o,o+3),_(this,o+1,o+2);return this},c.prototype.swap64=function(){let s=this.length;if(s%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let o=0;o<s;o+=8)_(this,o,o+7),_(this,o+1,o+6),_(this,o+2,o+5),_(this,o+3,o+4);return this},c.prototype.toString=function(){let s=this.length;return s===0?"":arguments.length===0?ne(this,0,s):G.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(s){if(!c.isBuffer(s))throw new TypeError("Argument must be a Buffer");return this===s?!0:c.compare(this,s)===0},c.prototype.inspect=function(){let s="",o=He.INSPECT_MAX_BYTES;return s=this.toString("hex",0,o).replace(/(.{2})/g,"$1 ").trim(),this.length>o&&(s+=" ... "),"<Buffer "+s+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(s,o,d,p,h){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),!c.isBuffer(s))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof s);if(o===void 0&&(o=0),d===void 0&&(d=s?s.length:0),p===void 0&&(p=0),h===void 0&&(h=this.length),o<0||d>s.length||p<0||h>this.length)throw new RangeError("out of range index");if(p>=h&&o>=d)return 0;if(p>=h)return-1;if(o>=d)return 1;if(o>>>=0,d>>>=0,p>>>=0,h>>>=0,this===s)return 0;let T=h-p,Z=d-o,K=Math.min(T,Z),X=this.slice(p,h),Q=s.slice(o,d);for(let V=0;V<K;++V)if(X[V]!==Q[V]){T=X[V],Z=Q[V];break}return T<Z?-1:Z<T?1:0};function U(m,s,o,d,p){if(m.length===0)return-1;if(typeof o=="string"?(d=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Bn(o)&&(o=p?0:m.length-1),o<0&&(o=m.length+o),o>=m.length){if(p)return-1;o=m.length-1}else if(o<0)if(p)o=0;else return-1;if(typeof s=="string"&&(s=c.from(s,d)),c.isBuffer(s))return s.length===0?-1:N(m,s,o,d,p);if(typeof s=="number")return s=s&255,typeof Uint8Array.prototype.indexOf=="function"?p?Uint8Array.prototype.indexOf.call(m,s,o):Uint8Array.prototype.lastIndexOf.call(m,s,o):N(m,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function N(m,s,o,d,p){let h=1,T=m.length,Z=s.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(m.length<2||s.length<2)return-1;h=2,T/=2,Z/=2,o/=2}function K(Q,V){return h===1?Q[V]:Q.readUInt16BE(V*h)}let X;if(p){let Q=-1;for(X=o;X<T;X++)if(K(m,X)===K(s,Q===-1?0:X-Q)){if(Q===-1&&(Q=X),X-Q+1===Z)return Q*h}else Q!==-1&&(X-=X-Q),Q=-1}else for(o+Z>T&&(o=T-Z),X=o;X>=0;X--){let Q=!0;for(let V=0;V<Z;V++)if(K(m,X+V)!==K(s,V)){Q=!1;break}if(Q)return X}return-1}c.prototype.includes=function(s,o,d){return this.indexOf(s,o,d)!==-1},c.prototype.indexOf=function(s,o,d){return U(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return U(this,s,o,d,!1)};function se(m,s,o,d){o=Number(o)||0;let p=m.length-o;d?(d=Number(d),d>p&&(d=p)):d=p;let h=s.length;d>h/2&&(d=h/2);let T;for(T=0;T<d;++T){let Z=parseInt(s.substr(T*2,2),16);if(Bn(Z))return T;m[o+T]=Z}return T}function H(m,s,o,d){return Zt(wn(s,m.length-o),m,o,d)}function ye(m,s,o,d){return Zt(aa(s),m,o,d)}function be(m,s,o,d){return Zt(zn(s),m,o,d)}function Se(m,s,o,d){return Zt(ra(s,m.length-o),m,o,d)}c.prototype.write=function(s,o,d,p){if(o===void 0)p="utf8",d=this.length,o=0;else if(d===void 0&&typeof o=="string")p=o,d=this.length,o=0;else if(isFinite(o))o=o>>>0,isFinite(d)?(d=d>>>0,p===void 0&&(p="utf8")):(p=d,d=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let h=this.length-o;if((d===void 0||d>h)&&(d=h),s.length>0&&(d<0||o<0)||o>this.length)throw new RangeError("Attempt to write outside buffer bounds");p||(p="utf8");let T=!1;for(;;)switch(p){case"hex":return se(this,s,o,d);case"utf8":case"utf-8":return H(this,s,o,d);case"ascii":case"latin1":case"binary":return ye(this,s,o,d);case"base64":return be(this,s,o,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Se(this,s,o,d);default:if(T)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),T=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function le(m,s,o){return s===0&&o===m.length?l.fromByteArray(m):l.fromByteArray(m.slice(s,o))}function ne(m,s,o){o=Math.min(m.length,o);let d=[],p=s;for(;p<o;){let h=m[p],T=null,Z=h>239?4:h>223?3:h>191?2:1;if(p+Z<=o){let K,X,Q,V;switch(Z){case 1:h<128&&(T=h);break;case 2:K=m[p+1],(K&192)===128&&(V=(h&31)<<6|K&63,V>127&&(T=V));break;case 3:K=m[p+1],X=m[p+2],(K&192)===128&&(X&192)===128&&(V=(h&15)<<12|(K&63)<<6|X&63,V>2047&&(V<55296||V>57343)&&(T=V));break;case 4:K=m[p+1],X=m[p+2],Q=m[p+3],(K&192)===128&&(X&192)===128&&(Q&192)===128&&(V=(h&15)<<18|(K&63)<<12|(X&63)<<6|Q&63,V>65535&&V<1114112&&(T=V))}}T===null?(T=65533,Z=1):T>65535&&(T-=65536,d.push(T>>>10&1023|55296),T=56320|T&1023),d.push(T),p+=Z}return de(d)}let oe=4096;function de(m){let s=m.length;if(s<=oe)return String.fromCharCode.apply(String,m);let o="",d=0;for(;d<s;)o+=String.fromCharCode.apply(String,m.slice(d,d+=oe));return o}function Ae(m,s,o){let d="";o=Math.min(m.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(m[p]&127);return d}function Te(m,s,o){let d="";o=Math.min(m.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(m[p]);return d}function Pe(m,s,o){let d=m.length;(!s||s<0)&&(s=0),(!o||o<0||o>d)&&(o=d);let p="";for(let h=s;h<o;++h)p+=sa[m[h]];return p}function pe(m,s,o){let d=m.slice(s,o),p="";for(let h=0;h<d.length-1;h+=2)p+=String.fromCharCode(d[h]+d[h+1]*256);return p}c.prototype.slice=function(s,o){let d=this.length;s=~~s,o=o===void 0?d:~~o,s<0?(s+=d,s<0&&(s=0)):s>d&&(s=d),o<0?(o+=d,o<0&&(o=0)):o>d&&(o=d),o<s&&(o=s);let p=this.subarray(s,o);return Object.setPrototypeOf(p,c.prototype),p};function W(m,s,o){if(m%1!==0||m<0)throw new RangeError("offset is not uint");if(m+s>o)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s],h=1,T=0;for(;++T<o&&(h*=256);)p+=this[s+T]*h;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s+--o],h=1;for(;o>0&&(h*=256);)p+=this[s+--o]*h;return p},c.prototype.readUint8=c.prototype.readUInt8=function(s,o){return s=s>>>0,o||W(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||W(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||W(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||W(s,4,this.length),(this[s]|this[s+1]<<8|this[s+2]<<16)+this[s+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24,h=this[++s]+this[++s]*2**8+this[++s]*2**16+d*2**24;return BigInt(p)+(BigInt(h)<<BigInt(32))}),c.prototype.readBigUInt64BE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=o*2**24+this[++s]*2**16+this[++s]*2**8+this[++s],h=this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d;return(BigInt(p)<<BigInt(32))+BigInt(h)}),c.prototype.readIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=this[s],h=1,T=0;for(;++T<o&&(h*=256);)p+=this[s+T]*h;return h*=128,p>=h&&(p-=Math.pow(2,8*o)),p},c.prototype.readIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||W(s,o,this.length);let p=o,h=1,T=this[s+--p];for(;p>0&&(h*=256);)T+=this[s+--p]*h;return h*=128,T>=h&&(T-=Math.pow(2,8*o)),T},c.prototype.readInt8=function(s,o){return s=s>>>0,o||W(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||W(s,2,this.length);let d=this[s]|this[s+1]<<8;return d&32768?d|4294901760:d},c.prototype.readInt16BE=function(s,o){s=s>>>0,o||W(s,2,this.length);let d=this[s+1]|this[s]<<8;return d&32768?d|4294901760:d},c.prototype.readInt32LE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]|this[s+1]<<8|this[s+2]<<16|this[s+3]<<24},c.prototype.readInt32BE=function(s,o){return s=s>>>0,o||W(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=this[s+4]+this[s+5]*2**8+this[s+6]*2**16+(d<<24);return(BigInt(p)<<BigInt(32))+BigInt(o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24)}),c.prototype.readBigInt64BE=Ee(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&pt(s,this.length-8);let p=(o<<24)+this[++s]*2**16+this[++s]*2**8+this[++s];return(BigInt(p)<<BigInt(32))+BigInt(this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d)}),c.prototype.readFloatLE=function(s,o){return s=s>>>0,o||W(s,4,this.length),a.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||W(s,4,this.length),a.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||W(s,8,this.length),a.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||W(s,8,this.length),a.read(this,s,!1,52,8)};function q(m,s,o,d,p,h){if(!c.isBuffer(m))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>p||s<h)throw new RangeError('"value" argument is out of bounds');if(o+d>m.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let Z=Math.pow(2,8*d)-1;q(this,s,o,d,Z,0)}let h=1,T=0;for(this[o]=s&255;++T<d&&(h*=256);)this[o+T]=s/h&255;return o+d},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let Z=Math.pow(2,8*d)-1;q(this,s,o,d,Z,0)}let h=d-1,T=1;for(this[o+h]=s&255;--h>=0&&(T*=256);)this[o+h]=s/T&255;return o+d},c.prototype.writeUint8=c.prototype.writeUInt8=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,1,255,0),this[o]=s&255,o+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,65535,0),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,65535,0),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,4294967295,0),this[o+3]=s>>>24,this[o+2]=s>>>16,this[o+1]=s>>>8,this[o]=s&255,o+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,4294967295,0),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4};function Ut(m,s,o,d,p){Hn(s,d,p,m,o,7);let h=Number(s&BigInt(4294967295));m[o++]=h,h=h>>8,m[o++]=h,h=h>>8,m[o++]=h,h=h>>8,m[o++]=h;let T=Number(s>>BigInt(32)&BigInt(4294967295));return m[o++]=T,T=T>>8,m[o++]=T,T=T>>8,m[o++]=T,T=T>>8,m[o++]=T,o}function Xn(m,s,o,d,p){Hn(s,d,p,m,o,7);let h=Number(s&BigInt(4294967295));m[o+7]=h,h=h>>8,m[o+6]=h,h=h>>8,m[o+5]=h,h=h>>8,m[o+4]=h;let T=Number(s>>BigInt(32)&BigInt(4294967295));return m[o+3]=T,T=T>>8,m[o+2]=T,T=T>>8,m[o+1]=T,T=T>>8,m[o]=T,o+8}c.prototype.writeBigUInt64LE=Ee(function(s,o=0){return Ut(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ee(function(s,o=0){return Xn(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let K=Math.pow(2,8*d-1);q(this,s,o,d,K-1,-K)}let h=0,T=1,Z=0;for(this[o]=s&255;++h<d&&(T*=256);)s<0&&Z===0&&this[o+h-1]!==0&&(Z=1),this[o+h]=(s/T>>0)-Z&255;return o+d},c.prototype.writeIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let K=Math.pow(2,8*d-1);q(this,s,o,d,K-1,-K)}let h=d-1,T=1,Z=0;for(this[o+h]=s&255;--h>=0&&(T*=256);)s<0&&Z===0&&this[o+h+1]!==0&&(Z=1),this[o+h]=(s/T>>0)-Z&255;return o+d},c.prototype.writeInt8=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,1,127,-128),s<0&&(s=255+s+1),this[o]=s&255,o+1},c.prototype.writeInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,32767,-32768),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,2,32767,-32768),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,2147483647,-2147483648),this[o]=s&255,this[o+1]=s>>>8,this[o+2]=s>>>16,this[o+3]=s>>>24,o+4},c.prototype.writeInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||q(this,s,o,4,2147483647,-2147483648),s<0&&(s=4294967295+s+1),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4},c.prototype.writeBigInt64LE=Ee(function(s,o=0){return Ut(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ee(function(s,o=0){return Xn(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Yn(m,s,o,d,p,h){if(o+d>m.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function Jn(m,s,o,d,p){return s=+s,o=o>>>0,p||Yn(m,s,o,4),a.write(m,s,o,d,23,4),o+4}c.prototype.writeFloatLE=function(s,o,d){return Jn(this,s,o,!0,d)},c.prototype.writeFloatBE=function(s,o,d){return Jn(this,s,o,!1,d)};function Kn(m,s,o,d,p){return s=+s,o=o>>>0,p||Yn(m,s,o,8),a.write(m,s,o,d,52,8),o+8}c.prototype.writeDoubleLE=function(s,o,d){return Kn(this,s,o,!0,d)},c.prototype.writeDoubleBE=function(s,o,d){return Kn(this,s,o,!1,d)},c.prototype.copy=function(s,o,d,p){if(!c.isBuffer(s))throw new TypeError("argument should be a Buffer");if(d||(d=0),!p&&p!==0&&(p=this.length),o>=s.length&&(o=s.length),o||(o=0),p>0&&p<d&&(p=d),p===d||s.length===0||this.length===0)return 0;if(o<0)throw new RangeError("targetStart out of bounds");if(d<0||d>=this.length)throw new RangeError("Index out of range");if(p<0)throw new RangeError("sourceEnd out of bounds");p>this.length&&(p=this.length),s.length-o<p-d&&(p=s.length-o+d);let h=p-d;return this===s&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(o,d,p):Uint8Array.prototype.set.call(s,this.subarray(d,p),o),h},c.prototype.fill=function(s,o,d,p){if(typeof s=="string"){if(typeof o=="string"?(p=o,o=0,d=this.length):typeof d=="string"&&(p=d,d=this.length),p!==void 0&&typeof p!="string")throw new TypeError("encoding must be a string");if(typeof p=="string"&&!c.isEncoding(p))throw new TypeError("Unknown encoding: "+p);if(s.length===1){let T=s.charCodeAt(0);(p==="utf8"&&T<128||p==="latin1")&&(s=T)}}else typeof s=="number"?s=s&255:typeof s=="boolean"&&(s=Number(s));if(o<0||this.length<o||this.length<d)throw new RangeError("Out of range index");if(d<=o)return this;o=o>>>0,d=d===void 0?this.length:d>>>0,s||(s=0);let h;if(typeof s=="number")for(h=o;h<d;++h)this[h]=s;else{let T=c.isBuffer(s)?s:c.from(s,p),Z=T.length;if(Z===0)throw new TypeError('The value "'+s+'" is invalid for argument "value"');for(h=0;h<d-o;++h)this[h+o]=T[h%Z]}return this};let et={};function Sn(m,s,o){et[m]=class extends o{constructor(){super(),Object.defineProperty(this,"message",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${m}]`,this.stack,delete this.name}get code(){return m}set code(p){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:p,writable:!0})}toString(){return`${this.name} [${m}]: ${this.message}`}}}Sn("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Sn("ERR_INVALID_ARG_TYPE",function(m,s){return`The "${m}" argument must be of type number. Received type ${typeof s}`},TypeError),Sn("ERR_OUT_OF_RANGE",function(m,s,o){let d=`The value of "${m}" is out of range.`,p=o;return Number.isInteger(o)&&Math.abs(o)>2**32?p=Qn(String(o)):typeof o=="bigint"&&(p=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(p=Qn(p)),p+="n"),d+=` It must be ${s}. Received ${p}`,d},RangeError);function Qn(m){let s="",o=m.length,d=m[0]==="-"?1:0;for(;o>=d+4;o-=3)s=`_${m.slice(o-3,o)}${s}`;return`${m.slice(0,o)}${s}`}function ta(m,s,o){tt(s,"offset"),(m[s]===void 0||m[s+o]===void 0)&&pt(s,m.length-(o+1))}function Hn(m,s,o,d,p,h){if(m>o||m<s){let T=typeof s=="bigint"?"n":"",Z;throw h>3?s===0||s===BigInt(0)?Z=`>= 0${T} and < 2${T} ** ${(h+1)*8}${T}`:Z=`>= -(2${T} ** ${(h+1)*8-1}${T}) and < 2 ** ${(h+1)*8-1}${T}`:Z=`>= ${s}${T} and <= ${o}${T}`,new et.ERR_OUT_OF_RANGE("value",Z,m)}ta(d,p,h)}function tt(m,s){if(typeof m!="number")throw new et.ERR_INVALID_ARG_TYPE(s,"number",m)}function pt(m,s,o){throw Math.floor(m)!==m?(tt(m,o),new et.ERR_OUT_OF_RANGE(o||"offset","an integer",m)):s<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE(o||"offset",`>= ${o?1:0} and <= ${s}`,m)}let na=/[^+/0-9A-Za-z-_]/g;function ia(m){if(m=m.split("=")[0],m=m.trim().replace(na,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function wn(m,s){s=s||1/0;let o,d=m.length,p=null,h=[];for(let T=0;T<d;++T){if(o=m.charCodeAt(T),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&h.push(239,191,189);continue}else if(T+1===d){(s-=3)>-1&&h.push(239,191,189);continue}p=o;continue}if(o<56320){(s-=3)>-1&&h.push(239,191,189),p=o;continue}o=(p-55296<<10|o-56320)+65536}else p&&(s-=3)>-1&&h.push(239,191,189);if(p=null,o<128){if((s-=1)<0)break;h.push(o)}else if(o<2048){if((s-=2)<0)break;h.push(o>>6|192,o&63|128)}else if(o<65536){if((s-=3)<0)break;h.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((s-=4)<0)break;h.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return h}function aa(m){let s=[];for(let o=0;o<m.length;++o)s.push(m.charCodeAt(o)&255);return s}function ra(m,s){let o,d,p,h=[];for(let T=0;T<m.length&&!((s-=2)<0);++T)o=m.charCodeAt(T),d=o>>8,p=o%256,h.push(p),h.push(d);return h}function zn(m){return l.toByteArray(ia(m))}function Zt(m,s,o,d){let p;for(p=0;p<d&&!(p+o>=s.length||p>=m.length);++p)s[p+o]=m[p];return p}function Me(m,s){return m instanceof s||m!=null&&m.constructor!=null&&m.constructor.name!=null&&m.constructor.name===s.name}function Bn(m){return m!==m}let sa=function(){let m="0123456789abcdef",s=new Array(256);for(let o=0;o<16;++o){let d=o*16;for(let p=0;p<16;++p)s[d+p]=m[o]+m[p]}return s}();function Ee(m){return typeof BigInt>"u"?oa:m}function oa(){throw new Error("BigInt not supported")}return He}var ze=ua();ze.Buffer;ze.SlowBuffer;ze.INSPECT_MAX_BYTES;ze.kMaxLength;var S=ze.Buffer,Or=ze.INSPECT_MAX_BYTES,Lr=ze.kMaxLength;var zr={coreApiUrl:"https://core-dev.a11bd.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"",wormholeMessengerProgramId:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",solanaLookUpTable:"C3jAxHRTZjM2Bs7EqPir4nvrT8zKtpcW7RvGR9R2qKtN",sorobanNetworkPassphrase:"Test SDF Network ; September 2015",tronJsonRpc:"https://nile.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{SPL:0,ARB:3,AMO:7}},cachePoolInfoChainSec:20},jr={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},qr={SOL:"https://api.devnet.solana.com",TRX:"https://nile.trongrid.io",SRB:"https://soroban-testnet.stellar.org",STLR:"https://horizon-testnet.stellar.org"};var Dt={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"https://quote-api.jup.ag/v6",wormholeMessengerProgramId:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",solanaLookUpTable:"2JcBAEVnAwVo4u8d61iqgHPrzZuugur7cVTjWubsVLHj",sorobanNetworkPassphrase:"Public Global Stellar Network ; September 2015",tronJsonRpc:"https://api.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{ETH:0,AVA:1,OPT:2,ARB:3,SOL:5,BAS:6,POL:7}},cachePoolInfoChainSec:20},is={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},as={SOL:"https://api.mainnet-beta.solana.com",TRX:"https://api.trongrid.io",SRB:"https://rpc.stellar.org:443",STLR:"https://horizon.stellar.org"};import{Big as We}from"big.js";var _t=class{constructor(a){this.apiClient=a}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let a=await this.getChainDetailsMap();return Object.values(a).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(a,i){return this.apiClient.getGasBalance(a,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(a,i){return await this.apiClient.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.apiClient.getReceiveTransactionCost(a)}async getPoolInfoMap(a){return await this.apiClient.getPoolInfoMap(a)}};import ha from"axios";var ei="3.17.0";var ke=(M=>(M.GRL="GRL",M.SPL="SPL",M.HOL="HOL",M.BSC="BSC",M.ETH="ETH",M.BAS="BAS",M.SOL="SOL",M.TRX="TRX",M.POL="POL",M.MUM="MUM",M.AMO="AMO",M.ARB="ARB",M.CEL="CEL",M.AVA="AVA",M.SRB="SRB",M.STLR="STLR",M.OPT="OPT",M))(ke||{}),$=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))($||{}),ee={EVM:18,SOLANA:9,TRX:6,SRB:7},ue={GRL:{chainSymbol:"GRL",chainId:"0x5",name:"Goerli",chainType:"EVM"},SPL:{chainSymbol:"SPL",chainId:"0xaa36a7",name:"Sepolia",chainType:"EVM"},HOL:{chainSymbol:"HOL",chainId:"0x4268",name:"Hole\u0161ky",chainType:"EVM"},BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},MUM:{chainSymbol:"MUM",chainId:"0x13881",name:"Mumbai",chainType:"EVM"},AMO:{chainSymbol:"AMO",chainId:"0x13882",name:"Amoy",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"}};import{Big as x}from"big.js";import Cn from"bn.js";var j=class extends Error{constructor(a,i){super(i),this.errorCode=a}},O=class extends j{constructor(a){super("SdkError",a)}},Et=class extends j{constructor(a){super("InvalidAmountError",a)}},nt=class extends j{constructor(a){super("AmountNotEnoughError",a)}},Ge=class extends j{constructor(a){super("InsufficientPoolLiquidityError",a)}},ie=class extends j{constructor(a){super("JupiterError",a)}},ft=class extends j{constructor(a){super("InvalidGasFeePaymentOptionError",a)}},ti=class extends j{constructor(a){super("InvalidMessengerOptionError",a)}},me=class extends j{constructor(a){super("MethodNotSupportedError",a)}},ht=class extends j{constructor(a){super("VerifyTxError",a)}},it=class extends j{constructor(a){super("InvalidTxError",a)}},Vt=class extends j{constructor(a){super("ExtraGasMaxLimitExceededError",a)}},Ot=class extends j{constructor(a,i,r){super("ArgumentInvalidDecimalsError",`Argument '${a}' decimals '${i}' cannot be greater than '${r}'`)}},yt=class extends j{constructor(a){super("TimeoutError",a)}},Lt=class extends j{constructor(a){super("NodeRpcUrlNotInitializedError",`For chain '${a}' Node RPC URL not initialized`)}},we=class extends j{constructor(a){super("CCTPDoesNotSupportedError",a)}},Xt=class extends j{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},ma=(C=>(C.SDK_ERROR="SdkError",C.INVALID_AMOUNT_ERROR="InvalidAmountError",C.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",C.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",C.JUPITER_ERROR="JupiterError",C.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",C.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",C.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",C.VERIFY_TX_ERROR="VerifyTxError",C.INVALID_TX_ERROR="InvalidTxError",C.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",C.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",C.TIMEOUT_ERROR="TimeoutError",C.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",C.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",C.TX_TOO_LARGE="TxTooLargeError",C))(ma||{});function In(l,a){return x(100).minus(x(100).times(a).div(l)).toNumber()}function je(l,a){return Ve(l,a,3).round(0,x.roundDown)}function ge(l,a){return Ve(l,3,a)}function Ve(l,a,i){let r=x(i).minus(a).toNumber();return x(l).times(bt(r))}function bt(l){return x(10).pow(l)}function E(l,a){return x(l).times(bt(a))}function D(l,a){let i=x(l);return i.eq(0)?x(0):x(i).div(bt(a))}function fe(l){return D(x(l.tokenBalance).minus(l.vUsdBalance).toFixed(),3).div(2).toFixed()}function ve(l,{feeShare:a,decimals:i},r){let A=x(l);if(A.lte(0))return"0";let u=A.times(a),c=A.minus(u),g=je(c,i),f=x(r.tokenBalance).plus(g),y=xe(f,r.aValue,r.dValue);return x(r.vUsdBalance).minus(y).round(0,x.roundDown).toFixed()}function Tt(l,{feeShare:a,decimals:i},r){let A=x(l);if(A.lte(0))return x(0).toFixed();let u=A.plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=ge(x(r.tokenBalance).minus(c),i),f=x(g).times(a);return x(g).minus(f).round(0,x.roundDown).toFixed()}function ni(l,a){let i=x(l);if(i.lte(0))return a;let r=i.plus(a.vUsdBalance),A=xe(r,a.aValue,a.dValue);return{aValue:a.aValue,dValue:a.dValue,tokenBalance:A.toFixed(0),vUsdBalance:r.toFixed(0)}}function ii(l,{feeShare:a,decimals:i},r){if(x(l).lte(0))return x(0);let A=x(r.vUsdBalance).minus(l);if(A.lte(0))throw new Ge;let u=xe(A,r.aValue,r.dValue),c=x(u).minus(r.tokenBalance),g=ge(c,i),f=x(a).div(x(1).minus(a)),y=x(g).times(f).round(0,x.roundUp);return x(g).plus(y).round(0,x.roundDown)}function ai(l,{feeShare:a,decimals:i},r){if(x(l).lte(0))return x(0);let A=x(a).div(x(1).minus(a)),u=x(l).times(A).round(0,x.roundUp),c=x(l).plus(u),g=je(c,i),f=x(r.tokenBalance).minus(g);if(f.lte(0))throw new Ge;let y=xe(f,r.aValue,r.dValue);return x(y).minus(r.vUsdBalance).round(0,x.roundDown)}function xe(l,a,i){let r=x(4).times(a).times(x(i).minus(l)).minus(i),A=x(i).pow(3),u=r.pow(2),c=x(l).times(x(l).times(u).plus(x(4).times(a).times(A))).sqrt().round(0,x.roundDown),g=x(8).times(a).times(l),f=r.times(l).plus(c).div(g).round(0,x.roundDown);return f.eq(0)?x(0):f.plus(1)}function ri(l,a,i,r){let A=new Cn(l),u=new Cn(i),c=new Cn(a);return A.mul(u).shrn(r).sub(c).toString()}function si(l){return x(l).gt(0)?`${Number(x(l).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function oi(l,a,i){let r=x(a).times(i),A=x(a).plus(i),u=x(8).times(l).times(r).times(A),c=r.times(x(16).times(l).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),y=g.plus(f),b=x(y).sqrt(),P=x(Math.cbrt(+u.plus(b).toFixed())),v=x(Math.cbrt(+u.minus(b).toFixed()));return P.plus(v).toFixed()}var Rn=(c=>(c.OK="OK",c.INVALID="INVALID",c.FORBIDDEN="FORBIDDEN",c.UNINITIALIZED="UNINITIALIZED",c.CONTRACT_ADDRESS="CONTRACT_ADDRESS",c.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",c))(Rn||{});var Ue=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ue||{});function Ai(l){return Object.entries(l).reduce((a,i)=>{let r=i[0],A=i[1],u=fa(r,A);return u&&(a[r]=u),a},{})}function ci(l){let a={};for(let[i,r]of Object.entries(l)){let A=i;for(let u of r.tokens){let c=at({chainSymbol:A,poolAddress:u.poolAddress}),g=fe(u.poolInfo);a[c]={...u.poolInfo,imbalance:g}}}return a}function la(l,a){let{name:i,...r}=l,{poolInfo:A,...u}=a;return{...u,...r,chainName:i}}function da(l){switch(l){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function pa(l){return Object.entries(l).reduce((a,[i,r])=>(a[i]=ga(r),a),{})}function ga(l){return Object.entries(l).reduce((a,[i,r])=>{let A=da(i);return A&&(a[A]=r),a},{})}function fa(l,a){let i=ue[l];if(!i)return null;let r={...i,allbridgeChainId:a.chainId,bridgeAddress:a.bridgeAddress,transferTime:pa(a.transferTime),txCostAmount:a.txCostAmount,confirmations:a.confirmations};return{...r,tokens:a.tokens.map(A=>la(r,A))}}function at(l){return l.chainSymbol+"_"+l.poolAddress}function ui(l){let a=[];for(let[i,r]of Object.entries(l)){let A=i;for(let u of r.tokens)a.push({chainSymbol:A,poolAddress:u.poolAddress})}return a}function mi(l){let a={};for(let[i,r]of Object.entries(l)){let A=i;for(let[u,c]of Object.entries(r))c.imbalance=fe(c),a[at({chainSymbol:A,poolAddress:u})]=c}return a}var Yt=class{constructor(a){this.api=ha.create({baseURL:a.coreApiUrl,headers:{Accept:"application/json",...a.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ei},params:a.coreApiQueryParams})}async getTokenInfo(){let{data:a}=await this.api.get("/token-info");return{chainDetailsMap:Ai(a),poolInfoMap:ci(a)}}async getPendingInfo(){let{data:a}=await this.api.get("/pending-info");return a}async getGasBalance(a,i){let{data:r}=await this.api.get(`/check/${a}/${i}`);return r}async getTransferStatus(a,i){let{data:r}=await this.api.get(`/chain/${a}/${i}`);return r}async getReceiveTransactionCost(a){let{data:i}=await this.api.post("/receive-fee",a,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(a){let i=a instanceof Array?a:[a],{data:r}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return mi(r)}};import Jt from"timed-cache";var Mn=20*1e3,ya=55*1e3,Kt=class{constructor(a){this.apiClient=a;this.tokenInfoCache=new Jt({defaultTtl:ya}),this.receivedTransactionCache=new Jt({defaultTtl:Mn}),this.pendingInfoCache=new Jt({defaultTtl:Mn}),this.gasBalanceCache=new Jt({defaultTtl:Mn})}getTokenInfo(){let a="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(a);if(i)return i;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(a,r),r}async getGasBalance(a,i){let r=`GAS_BALANCE_${a}_${i}`,A=this.gasBalanceCache.get(r);if(A)return A;let u=this.apiClient.getGasBalance(a,i);return this.gasBalanceCache.put(r,u),u}async getPendingInfo(){let a="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(a);if(i)return i;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(a,r),r}async getReceiveTransactionCost(a){let i=`RECEIVE_TX_COST_${a.sourceChainId}_${a.destinationChainId}_${a.messenger}`,r=this.receivedTransactionCache.get(i);if(r)return r;let A=await this.apiClient.getReceiveTransactionCost(a);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(a,i){return this.apiClient.getTransferStatus(a,i)}async getPoolInfoMap(a){return this.apiClient.getPoolInfoMap(a)}};import ba from"timed-cache";var Ta=55*1e3,Qt=class{constructor(a){this.client=a;this.poolInfoCache=new kn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(a,i){return this.client.getTransferStatus(a,i)}getReceiveTransactionCost(a){return this.client.getReceiveTransactionCost(a)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getPoolInfoByKey(a){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(a);if(i)return i;{let r=await this.client.getPoolInfoMap(a);return this.poolInfoCache.putAll(r),r[at(a)]}}async refreshPoolInfo(a){let i;if(a)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(a);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(ui(r.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(a,i){this.poolInfoCache.put(at(a),i)}},kn=class{constructor(){this.cache=new ba({defaultTtl:Ta})}putAll(a){for(let[i,r]of Object.entries(a))this.cache.put(i,r)}putAllIfNotExists(a){for(let[i,r]of Object.entries(a))this.cache.get(i)||this.cache.put(i,r)}put(a,i){this.cache.put(a,i)}get(a){let i=at(a);return this.cache.get(i)}};import qa from"tronweb";import $a from"web3";import{Big as li}from"big.js";async function te(l,a){return await l.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}function L(l){if(li(l).lte(0))throw new Et("Amount must be greater than zero")}function Y(l,a,i){let r=li(a).toFixed();if(r.split(".").length==2&&r.split(".")[1].length>i)throw new Ot(l,r.split(".")[1].length,i)}async function Ht(l,a,i){return await Promise.race([l,new Promise((r,A)=>{setTimeout(()=>A(new yt(a)),i)})])}async function vn(l,a,i,r){if(i<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${i} was received.`);let A=0;for(;;)try{return await Ht(l(),a,r)}catch{if(++A>=i)throw new yt(a)}}async function di(l,a,i,r=1.5,A=!1){let u=[],c=0;if(u.push(await l()),!a(u[u.length-1]))return u;let g=new Date(Date.now()+i*1e3).valueOf(),f=1e3,y=f;for(;Date.now()<g&&a(u[u.length-1]);)c++,A&&console.info(`Waiting ${f}ms before trying again (bringing the total wait time to ${y}ms so far, of total ${i*1e3}ms)`),await new Promise(b=>setTimeout(b,f)),f=f*r,new Date(Date.now()+f).valueOf()>g&&(f=g-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${f}ms`)),y=f+y,u.push(await l(u[u.length-1])),A&&a(u[u.length-1])&&console.info(`${c}. Called ${l.name}; ${u.length} prev attempts. Most recent: ${JSON.stringify(u[u.length-1],null,2)}`);return u}import*as jt from"@project-serum/anchor";import{PublicKey as Mi}from"@solana/web3.js";import{Big as Wa}from"big.js";var pi=[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var gi=[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];import*as re from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(l,a){return re.utils.token.associatedAddress({mint:a,owner:l})}async function Oe(l){let[a]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("config")],l);return a}async function fi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("lock"),Uint8Array.from(l)],a);return i}async function Pt(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([l])],a);return i}async function rt(l){let a=await Oe(l),[i]=await ce.findProgramAddress([a.toBuffer()],l);return i}async function hi(l,a){let[i]=await ce.findProgramAddress([l.toBuffer()],a);return i}async function st(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),l.toBytes()],a);return i}async function yi(l,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("other_bridge_token"),S.from([l]),a],i);return r}async function xn(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([l])],a);return i}async function Fn(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([l])],a);return i}async function bi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("sent_message"),l],a);return i}async function Wn(l,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("user_deposit"),a.toBytes(),l.toBytes()],i);return r}async function Ti(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("cctp_bridge"),l.toBytes()],a);return i}async function Pi(l,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),l.toBytes()],a);return i}function Si(l,a){let[i]=ce.findProgramAddressSync([re.utils.bytes.utf8.encode("lock"),a.toBuffer()],l);return i}function wi(l,a,i,r){let A=qe("message_transmitter",i),u=qe("token_messenger",r),c=qe("__event_authority",r),g=qe("token_minter",r),f=qe("local_token",r,[a]),y=qe("remote_token_messenger",r,[l.toString()]),b=qe("sender_authority",r);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:y,authorityPda:b}}function qe(l,a,i=[]){let r=[S.from(re.utils.bytes.utf8.encode(l))];for(let u of i)typeof u=="string"?r.push(S.from(re.utils.bytes.utf8.encode(u))):Array.isArray(u)?r.push(S.from(u)):S.isBuffer(u)?r.push(u):r.push(u.toBuffer());return ce.findProgramAddressSync(r,a)[0]}import{AnchorProvider as wa}from"@project-serum/anchor";import{Connection as Ba,PublicKey as Ca}from"@solana/web3.js";function Le(l,a){let i=new Ba(l,"confirmed"),r=new Ca(a);return new wa(i,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as Ia}from"@solana/web3.js";import{Address as Ra}from"@stellar/stellar-sdk";import{Big as Ze}from"big.js";import Bi from"randombytes";import*as Ci from"tronweb";function Ne(l,a,i){let r;switch(a){case"EVM":{r=Ma(l);break}case"SOLANA":{r=new Ia(l).toBuffer();break}case"TRX":{r=ka(l);break}case"SRB":{r=new Ra(l).toBuffer();break}}switch(i){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r.toJSON().data;case"SRB":return r.toJSON().data}}function Ii(l){return S.from(l.replace(/^0x/i,""),"hex")}function Ma(l){let i=Ii(l);return S.concat([S.alloc(32-i.length,0),i],32)}function ka(l){let a=St(l),i=Ii(a);return va(i,32)}function St(l){return S.from(Ci.utils.crypto.decodeBase58Address(l)).toString("hex").replace(/^41/,"0x")}function va(l,a){if(l.length>=a)return l;let i=S.alloc(a,0);return l.copy(i,a-l.length),i}function ot(){return Bi(32)}function Gn(){let l=Bi(32).readBigInt64BE();return l<0?l*-1n:l}function Xe(l,a){let i={},r=a.sourceToken;return i.amount=E(a.amount,r.decimals).toFixed(),i.contractAddress=r.bridgeAddress,i.fromAccountAddress=a.fromAccountAddress,i.fromTokenAddress=Ne(r.tokenAddress,l,l),i.toAccountAddress=a.toAccountAddress,i.toTokenAddress=Ne(a.destinationToken.tokenAddress,l,l),i.minimumReceiveAmount=a.minimumReceiveAmount?E(a.minimumReceiveAmount,a.destinationToken.decimals).toFixed():"0",i}async function De(l,a,i){let r={};r.fromChainId=a.sourceToken.allbridgeChainId,r.fromChainSymbol=a.sourceToken.chainSymbol;let A=ue[a.destinationToken.chainSymbol].chainType;r.fromTokenAddress=a.sourceToken.tokenAddress,r.toChainId=a.destinationToken.allbridgeChainId,r.toTokenAddress=a.destinationToken.tokenAddress,a.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let u=a.sourceToken;if(a.messenger===3){if(!u.cctpAddress||!a.destinationToken.cctpAddress)throw new we("Such route does not support CCTP protocol");r.contractAddress=u.cctpAddress}else r.contractAddress=u.bridgeAddress;r.messenger=a.messenger,r.fromAccountAddress=a.fromAccountAddress,r.amount=E(a.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=a;if(!c){let P=(await Un(r.fromChainId,a.sourceToken.chainType,r.toChainId,u.decimals,r.messenger,i))[r.gasFeePaymentMethod];if(!P)throw new ft;c=P.int,g="int"}if(g=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=E(c,ee[u.chainType]).toFixed(0);break;case"stablecoin":r.fee=E(c,u.decimals).toFixed(0);break}else r.fee=c;let{extraGas:f,extraGasFormat:y}=a;if(f&&+f>0){if(y=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=E(f,ee[u.chainType]).toFixed(0);break;case"stablecoin":r.extraGas=E(f,u.decimals).toFixed(0);break}else r.extraGas=f;await Fa(r.extraGas,r.gasFeePaymentMethod,u,a.destinationToken,i)}return r.fromTokenAddress=Ne(r.fromTokenAddress,l,l),r.toAccountAddress=Ne(a.toAccountAddress,A,l),r.toTokenAddress=Ne(r.toTokenAddress,A,l),r.gasFeePaymentMethod=="stablecoin"&&xa(r.amount,u.decimals,r.fee,r.extraGas),r}function xa(l,a,i,r){let A=Ze(l).minus(i).minus(r??0);if(A.lte(0))throw new nt(`Amount not enough to pay fee, ${D(Ze(A).minus(1).neg(),a).toFixed()} stables is missing`)}async function Un(l,a,i,r,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:l,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:D(c.fee,ee[a]).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ve(new Ze(c.fee).mul(c.sourceNativeTokenPrice),ee[a],r).toFixed(0,Ze.roundUp);g.stablecoin={int:f,float:D(f,r).toFixed()}}return g}async function Fa(l,a,i,r,A){let c=(await Zn(i,r,A)).extraGasMax[a];if(!c)throw new ft(`Impossible to pay extra gas by '${a}' payment method`);let g=c.int;if(Ze(l).gt(g))throw new Vt(`Extra gas ${l} in int format, exceeded limit ${g} for '${a}' payment method`)}async function Zn(l,a,i){let r={},A=await i.getReceiveTransactionCost({sourceChainId:l.allbridgeChainId,destinationChainId:a.allbridgeChainId,messenger:1}),u=a.txCostAmount.maxAmount,c=D(u,ee[a.chainType]).toFixed(),g=Ze(c).div(A.exchangeRate).toFixed(ee[l.chainType],Ze.roundDown),f=E(g,ee[l.chainType]).toFixed(0);if(r.native={int:f,float:g},A.sourceNativeTokenPrice){let y=Ze(g).mul(A.sourceNativeTokenPrice).toFixed(l.decimals,Ze.roundDown);r.stablecoin={int:E(y,l.decimals).toFixed(0),float:y}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:a.txCostAmount.swap,float:D(a.txCostAmount.swap,ee[a.chainType]).toFixed()},transfer:{int:a.txCostAmount.transfer,float:D(a.txCostAmount.transfer,ee[a.chainType]).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function Ri(l){return l.sourceToken.chainSymbol!==l.destinationToken.chainSymbol}var wt=class extends Ce{constructor(i,r,A){super();this.web3=i;this.api=r;this.nodeRpcUrlsConfig=A;this.chainType="EVM"}async send(i){let r=await this.buildRawTransactionSend(i);return this.sendRawTransaction(r)}async buildRawTransactionSwap(i){let r=Xe(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:y}=i,P=this.getBridgeContract(A).methods.swap(r,c,f,g,y);return Promise.resolve({from:u,to:A,data:P.encodeABI()})}async buildRawTransactionSend(i){let r=await De(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:y,toTokenAddress:b,messenger:P,fee:v,gasFeePaymentMethod:w,extraGas:B}=r,k="0x"+ot().toString("hex"),C,M,F=v;if(B&&(F=Wa(F).plus(B).toFixed()),P===3){let G=await this.buildRawTransactionCctpSend(i,r,F);C=G.sendMethod,M=G.value}else{let G=this.getBridgeContract(u);w==="stablecoin"?(C=G.methods.swapAndBridge(g,A,y,f,b,k,P,F),M="0"):(C=G.methods.swapAndBridge(g,A,y,f,b,k,P,0),M=F)}return Promise.resolve({from:c,to:u,value:M,data:C.encodeABI()})}async buildRawTransactionCctpSend(i,r,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:y}=r,b=this.getContract(gi,c),P,v;if(i.destinationToken.chainType==="SOLANA"){let w,B=new Mi(i.toAccountAddress),k=new Mi(i.destinationToken.tokenAddress),C=await Be(B,k),M=Le(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);jt.setProvider(M);let F=await jt.Spl.token(M).account.token.fetchNullable(C);if(F?.authority.equals(B))w=Ne(C.toBase58(),"SOLANA",this.chainType);else{let G=await M.connection.getTokenAccountsByOwner(B,{mint:k});if(G.value.length===0&&!F)w=Ne(C.toBase58(),"SOLANA",this.chainType);else if(G.value.length>0)w=Ne(G.value[0].pubkey.toBase58(),"SOLANA",this.chainType);else throw new O("Associated account has wrong owner")}y==="stablecoin"?(P=b.methods.bridgeWithWalletAddress(u,w,f,g,A),v="0"):(P=b.methods.bridgeWithWalletAddress(u,w,f,g,0),v=A)}else y==="stablecoin"?(P=b.methods.bridge(u,f,g,A),v="0"):(P=b.methods.bridge(u,f,g,0),v=A);return{sendMethod:P,value:v}}async sendRawTransaction(i){let r=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:r,...A});return{txId:u}}getContract(i,r){return new this.web3.eth.Contract(i,r)}getBridgeContract(i){return this.getContract(pi,i)}};var qt=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){let r,A;i?(r=a,A=i):A=a;let u=Bt(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},r)}async send(a,i){return L(a.amount),Y("amount",a.amount,a.sourceToken.decimals),Ri(a)?$t(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(a):$t(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(a)}};import{BN as mt,Program as _n,Spl as La,web3 as Ye}from"@project-serum/anchor";import{Keypair as Ei,PublicKey as J,SystemProgram as Xa}from"@solana/web3.js";import{Big as Fe}from"big.js";var Ct={version:"0.1.0",name:"bridge",instructions:[{name:"initialize",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"initializePool",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"token",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializePoolArgs"}}]},{name:"initDepositAccount",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"deposit",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdraw",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amountLp",type:"u64"}]},{name:"swapAndBridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"messenger",isMut:!1,isSigner:!1},{name:"messengerConfig",isMut:!0,isSigner:!1},{name:"sentMessageAccount",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swapAndBridgeWormhole",accounts:[{name:"user",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"wormholeMessenger",isMut:!1,isSigner:!1},{name:"wormholeMessengerConfig",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!1,isSigner:!1},{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swap",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"sendMint",isMut:!1,isSigner:!1},{name:"receiveMint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"sendPool",isMut:!0,isSigner:!1},{name:"receivePool",isMut:!0,isSigner:!1},{name:"sendBridgeToken",isMut:!0,isSigner:!1},{name:"receiveBridgeToken",isMut:!0,isSigner:!1},{name:"sendUserToken",isMut:!0,isSigner:!1},{name:"receiveUserToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"},{name:"receiveAmountMin",type:"u64"}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"receiveAndSwap",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"receiveAndSwapWormhole",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"claimRewards",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAdmin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAdmin",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"startBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"stopBridge",accounts:[{name:"stopAuthority",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"setRebalancer",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"rebalancer",isMut:!1,isSigner:!1}],args:[]},{name:"setStopAuthority",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"setAllbridgeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setWormholeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setPoolFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setBalanceRatioMin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"balanceRatioMinBp",type:"u16"}]},{name:"setPoolAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"addOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"removeOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"adjustTotalLpAmount",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"chainBridge",type:{kind:"struct",fields:[{name:"address",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"config",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"rebalancer",type:"publicKey"},{name:"stopAuthority",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"canSwap",type:"bool"},{name:"canDeposit",type:"bool"},{name:"canWithdraw",type:"bool"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"sentTokenAddress",type:"publicKey"},{name:"amount",type:"u64"},{name:"vusdAmount",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"nonce",type:{array:["u8",32]}},{name:"messenger",type:{defined:"Messenger"}},{name:"slot",type:"u64"},{name:"fee",type:"u64"}]}},{name:"otherBridgeToken",type:{kind:"struct",fields:[]}},{name:"pool",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"a",type:"u64"},{name:"d",type:"u64"},{name:"tokenBalance",type:"u64"},{name:"vUsdBalance",type:"u64"},{name:"reserves",type:"u64"},{name:"decimals",type:"u8"},{name:"totalLpAmount",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"accRewardPerShareP",type:"u128"},{name:"adminFeeAmount",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"unlock",type:{kind:"struct",fields:[{name:"hash",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"fee",type:"u64"},{name:"vUsdAmount",type:"u64"},{name:"slot",type:"u64"}]}},{name:"userDeposit",type:{kind:"struct",fields:[{name:"userAddress",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"lpAmount",type:"u64"},{name:"rewardDebt",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"}]}},{name:"InitializePoolArgs",type:{kind:"struct",fields:[{name:"a",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"vusdAmount",type:"u64"}]}},{name:"UnlockArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"recipient",type:"publicKey"},{name:"sourceChainId",type:"u8"},{name:"receiveToken",type:"publicKey"},{name:"messenger",type:{defined:"Messenger"}},{name:"hash",type:{array:["u8",32]}},{name:"receiveAmountMin",type:"u64"}]}},{name:"RewardError",type:{kind:"enum",variants:[{name:"FeeTooHigh"}]}},{name:"Messenger",type:{kind:"enum",variants:[{name:"None"},{name:"Allbridge"},{name:"Wormhole"}]}},{name:"ActionType",type:{kind:"enum",variants:[{name:"Deposit"},{name:"Withdraw"},{name:"Swap"}]}}],errors:[{code:6e3,name:"AccountAlreadyInitialized",msg:"This account has already been initialized"},{code:6001,name:"AdminAuthorityInvalid",msg:"This instruction requires admin authority"},{code:6002,name:"InvalidSignature",msg:"Provided signature has wrong signer or message"},{code:6003,name:"InvalidHash",msg:"Wrong unlock message hash"},{code:6004,name:"PoolOverflow",msg:"PoolInfo overflow"},{code:6005,name:"ReservesExhausted",msg:"Reserves exhausted"},{code:6006,name:"ZeroAmount",msg:"Zero amount"},{code:6007,name:"ZeroChanges",msg:"Zero changes"},{code:6008,name:"HighVusdAmount",msg:"vUSD amount is too high"},{code:6009,name:"BalanceRatioExceeded",msg:"Balance ratio exceeded"},{code:6010,name:"InsufficientReceivedAmount",msg:"Received insufficient amount"},{code:6011,name:"ForbiddenAction",msg:"ForbiddenAction"},{code:6012,name:"ValueTooHigh",msg:"Value is too high"}]};var ki={version:"0.1.0",name:"cctp_bridge",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"bridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"cctpMessenger",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"messageTransmitterAccount",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"remoteTokenMessengerKey",isMut:!1,isSigner:!1},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"setAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setCctpTokenMessengerMinter",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]}],accounts:[{name:"cctpBridge",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"admin",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"adminFeeShareBp",type:"u64"},{name:"adminFeeAmount",type:"u64"}]}},{name:"chainBridge",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"amount",type:"u64"},{name:"adminFee",type:"u64"},{name:"relayerFee",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"slot",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"amount",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"gasOracleProgramId",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"}]}}],errors:[{code:6e3,name:"ValueTooHigh",msg:"Value is too high"}]};import{Spl as Ga}from"@project-serum/anchor";import Ua from"big.js";import en from"web3";async function ct(l,a){return await Ga.token(a).account.token.fetch(l)}async function vi(l,a,i){let r=await a.account.pool.fetch(i),A=r.decimals,u=Ua(r.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:r.a.toString(),dValue:r.d.toString(),totalLpAmount:r.totalLpAmount.toString(),tokenBalance:r.tokenBalance.toString(),vUsdBalance:r.vUsdBalance.toString(),accRewardPerShareP:r.accRewardPerShareP.toString()};return ve(l,{decimals:A,feeShare:u},c)}function xi(l){let a=l.amount,i="0x"+l.recipient.toString("hex"),r=l.sourceChainId,A=l.destinationChainId,u="0x"+l.receiveToken.toString("hex"),c="0x"+l.nonce.toString("hex"),g=1,f="0x"+l.chainBridge.toString("hex"),y=en.utils.encodePacked({t:"uint256",v:a},{t:"bytes32",v:i},{t:"uint256",v:r},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!y)throw new O("message cannot be undefined");let b=en.utils.keccak256(S.from(y.replace("0x",""),"hex")),P=S.from(b.replace("0x",""),"hex");P[0]=r,P[1]=A;let v=en.utils.encodePacked({t:"bytes32",v:"0x"+P.toString("hex")},{t:"bytes32",v:f});if(!v)throw new it("messageWithSigner cannot be undefined");let w=en.utils.keccak256(S.from(v.replace("0x",""),"hex")),B=S.from(w.replace("0x",""),"hex");return B[0]=P[0],B[1]=P[1],B}import{ComputeBudgetInstruction as Wi,ComputeBudgetProgram as tn,Connection as Gi,TransactionMessage as Za}from"@solana/web3.js";import{Big as Na}from"big.js";import{AddressLookupTableAccount as Fi}from"@solana/web3.js";async function $e(l,a){return await Promise.all(l.message.addressTableLookups.map(async i=>new Fi({key:i.accountKey,state:Fi.deserialize(await a.getAccountInfo(i.accountKey).then(r=>{if(!r)throw new O("Cannot get AccountInfo");return r.data}))})))}var Nn="AUTO";async function ut(l,a,i){let r=new Gi(i,"confirmed"),A=(await r.simulateTransaction(l)).value.unitsConsumed;await Zi(l.instructions,A,a,r)}async function Ui(l,a,i){let r=new Gi(i,"confirmed"),A=await $e(l,r),u=Za.decompile(l.message,{addressLookupTableAccounts:A});if(l.serialize().length>1232)throw new Xt;await Zi(u.instructions,769230,a,r),l.message=u.compileToV0Message(A)}async function Zi(l,a,i,r){if(a>0){let A=Da(a,l);if(i?.solana){let u=i.solana;if(u===Nn)await Dn(l,r);else if("pricePerUnitInMicroLamports"in u)await Dn(l,r,u.pricePerUnitInMicroLamports);else{let c=Na(u.extraFeeInLamports).div(A).mul(bt(6)).toFixed(0);await Dn(l,r,c)}}}}function Da(l,a){let i=a.findIndex(u=>u.programId.equals(tn.programId)&&Wi.decodeInstructionType(u)==="SetComputeUnitLimit"),r=Number((l*1.3).toFixed(0)),A=tn.setComputeUnitLimit({units:r});return i>=0?a[i]=A:a.push(A),r.toString()}async function Dn(l,a,i){let r=l.findIndex(c=>c.programId.equals(tn.programId)&&Wi.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await _a(a)),u=tn.setComputeUnitPrice({microLamports:A});return r>=0?l[r]=u:l.push(u),A.toString()}async function _a(l){let a=await l.getRecentPrioritizationFees(),i=0;for(let r of a)i+=r.prioritizationFee;return(i/a.length).toFixed(0)}import{NATIVE_MINT as Ea}from"@solana/spl-token";import{Connection as Va,TransactionMessage as Ni,VersionedTransaction as Oa}from"@solana/web3.js";import Di,{AxiosError as _i}from"axios";var nn=class{constructor(a,i){this.connection=new Va(a),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(a,i,r,A){let u;try{let P=A?"ExactOut":"ExactIn";u=await Di.get(`${this.jupiterUrl}/quote?inputMint=${i}
2
2
  &outputMint=${Ea.toString()}
3
3
  &amount=${r}
4
4
  &swapMode=${P}