@allbridge/bridge-core-sdk 3.18.0 → 3.19.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.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.d.ts +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/package.json +1 -1
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var pt={},jn=!1;function cr(){if(jn)return pt;jn=!0,pt.byteLength=g,pt.toByteArray=y,pt.fromByteArray=B;for(var l=[],r=[],i=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=a.length;A<u;++A)l[A]=a[A],r[a.charCodeAt(A)]=A;r[45]=62,r[95]=63;function c(S){var C=S.length;if(C%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=S.indexOf("=");M===-1&&(M=C);var I=M===C?0:4-M%4;return[M,I]}function g(S){var C=c(S),M=C[0],I=C[1];return(M+I)*3/4-I}function f(S,C,M){return(C+M)*3/4-M}function y(S){var C,M=c(S),I=M[0],W=M[1],x=new i(f(S,I,W)),G=0,_=W>0?I-4:I,D;for(D=0;D<_;D+=4)C=r[S.charCodeAt(D)]<<18|r[S.charCodeAt(D+1)]<<12|r[S.charCodeAt(D+2)]<<6|r[S.charCodeAt(D+3)],x[G++]=C>>16&255,x[G++]=C>>8&255,x[G++]=C&255;return W===2&&(C=r[S.charCodeAt(D)]<<2|r[S.charCodeAt(D+1)]>>4,x[G++]=C&255),W===1&&(C=r[S.charCodeAt(D)]<<10|r[S.charCodeAt(D+1)]<<4|r[S.charCodeAt(D+2)]>>2,x[G++]=C>>8&255,x[G++]=C&255),x}function b(S){return l[S>>18&63]+l[S>>12&63]+l[S>>6&63]+l[S&63]}function T(S,C,M){for(var I,W=[],x=C;x<M;x+=3)I=(S[x]<<16&16711680)+(S[x+1]<<8&65280)+(S[x+2]&255),W.push(b(I));return W.join("")}function B(S){for(var C,M=S.length,I=M%3,W=[],x=16383,G=0,_=M-I;G<_;G+=x)W.push(T(S,G,G+x>_?_:G+x));return I===1?(C=S[M-1],W.push(l[C>>2]+l[C<<4&63]+"==")):I===2&&(C=(S[M-2]<<8)+S[M-1],W.push(l[C>>10]+l[C>>4&63]+l[C<<2&63]+"=")),W.join("")}return pt}var Zt={},qn=!1;function ur(){if(qn)return Zt;qn=!0;return Zt.read=function(l,r,i,a,A){var u,c,g=A*8-a-1,f=(1<<g)-1,y=f>>1,b=-7,T=i?A-1:0,B=i?-1:1,S=l[r+T];for(T+=B,u=S&(1<<-b)-1,S>>=-b,b+=g;b>0;u=u*256+l[r+T],T+=B,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=a;b>0;c=c*256+l[r+T],T+=B,b-=8);if(u===0)u=1-y;else{if(u===f)return c?NaN:(S?-1:1)*(1/0);c=c+Math.pow(2,a),u=u-y}return(S?-1:1)*c*Math.pow(2,u-a)},Zt.write=function(l,r,i,a,A,u){var c,g,f,y=u*8-A-1,b=(1<<y)-1,T=b>>1,B=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=a?0:u-1,C=a?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(g=isNaN(r)?1:0,c=b):(c=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+T>=1?r+=B/f:r+=B*Math.pow(2,1-T),r*f>=2&&(c++,f/=2),c+T>=b?(g=0,c=b):c+T>=1?(g=(r*f-1)*Math.pow(2,A),c=c+T):(g=r*Math.pow(2,T-1)*Math.pow(2,A),c=0));A>=8;l[i+S]=g&255,S+=C,g/=256,A-=8);for(c=c<<A|g,y+=A;y>0;l[i+S]=c&255,S+=C,c/=256,y-=8);l[i+S-C]|=M*128},Zt}var Qe={},$n=!1;function mr(){if($n)return Qe;$n=!0;let l=cr(),r=ur(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Qe.Buffer=c,Qe.SlowBuffer=W,Qe.INSPECT_MAX_BYTES=50;let a=2147483647;Qe.kMaxLength=a,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>a)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 T(m,s);if(ArrayBuffer.isView(m))return S(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(ke(m,ArrayBuffer)||m&&ke(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ke(m,SharedArrayBuffer)||m&&ke(m.buffer,SharedArrayBuffer)))return C(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=M(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:I(m)|0)}c.allocUnsafe=function(m){return b(m)},c.allocUnsafeSlow=function(m){return b(m)};function T(m,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=x(m,s)|0,d=u(o),p=d.write(m,s);return p!==o&&(d=d.slice(0,p)),d}function B(m){let s=m.length<0?0:I(m.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=m[d]&255;return o}function S(m){if(ke(m,Uint8Array)){let s=new Uint8Array(m);return C(s.buffer,s.byteOffset,s.byteLength)}return B(m)}function C(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 M(m){if(c.isBuffer(m)){let s=I(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):B(m);if(m.type==="Buffer"&&Array.isArray(m.data))return B(m.data)}function I(m){if(m>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return m|0}function W(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(ke(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),ke(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,P=Math.min(d,p);h<P;++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 P=s[d];if(ke(P,Uint8Array))h+P.length>p.length?(c.isBuffer(P)||(P=c.from(P)),P.copy(p,h)):Uint8Array.prototype.set.call(p,P,h);else if(c.isBuffer(P))P.copy(p,h);else throw new TypeError('"list" argument must be an Array of Buffers');h+=P.length}return p};function x(m,s){if(c.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||ke(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 Sn(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:Sn(m).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=x;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 Te(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 be(this,s,o);case"base64":return me(this,s,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return de(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=Qe.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(ke(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 P=h-p,U=d-o,Q=Math.min(P,U),Y=this.slice(p,h),H=s.slice(o,d);for(let X=0;X<Q;++X)if(Y[X]!==H[X]){P=Y[X],U=H[X];break}return P<U?-1:U<P?1:0};function D(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:E(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):E(m,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function E(m,s,o,d,p){let h=1,P=m.length,U=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,P/=2,U/=2,o/=2}function Q(H,X){return h===1?H[X]:H.readUInt16BE(X*h)}let Y;if(p){let H=-1;for(Y=o;Y<P;Y++)if(Q(m,Y)===Q(s,H===-1?0:Y-H)){if(H===-1&&(H=Y),Y-H+1===U)return H*h}else H!==-1&&(Y-=Y-H),H=-1}else for(o+U>P&&(o=P-U),Y=o;Y>=0;Y--){let H=!0;for(let X=0;X<U;X++)if(Q(m,Y+X)!==Q(s,X)){H=!1;break}if(H)return Y}return-1}c.prototype.includes=function(s,o,d){return this.indexOf(s,o,d)!==-1},c.prototype.indexOf=function(s,o,d){return D(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return D(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 P;for(P=0;P<d;++P){let U=parseInt(s.substr(P*2,2),16);if(Bn(U))return P;m[o+P]=U}return P}function z(m,s,o,d){return Dt(Sn(s,m.length-o),m,o,d)}function he(m,s,o,d){return Dt(ar(s),m,o,d)}function ye(m,s,o,d){return Dt(zn(s),m,o,d)}function Pe(m,s,o,d){return Dt(sr(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 P=!1;for(;;)switch(p){case"hex":return se(this,s,o,d);case"utf8":case"utf-8":return z(this,s,o,d);case"ascii":case"latin1":case"binary":return he(this,s,o,d);case"base64":return ye(this,s,o,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Pe(this,s,o,d);default:if(P)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),P=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function me(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],P=null,U=h>239?4:h>223?3:h>191?2:1;if(p+U<=o){let Q,Y,H,X;switch(U){case 1:h<128&&(P=h);break;case 2:Q=m[p+1],(Q&192)===128&&(X=(h&31)<<6|Q&63,X>127&&(P=X));break;case 3:Q=m[p+1],Y=m[p+2],(Q&192)===128&&(Y&192)===128&&(X=(h&15)<<12|(Q&63)<<6|Y&63,X>2047&&(X<55296||X>57343)&&(P=X));break;case 4:Q=m[p+1],Y=m[p+2],H=m[p+3],(Q&192)===128&&(Y&192)===128&&(H&192)===128&&(X=(h&15)<<18|(Q&63)<<12|(Y&63)<<6|H&63,X>65535&&X<1114112&&(P=X))}}P===null?(P=65533,U=1):P>65535&&(P-=65536,d.push(P>>>10&1023|55296),P=56320|P&1023),d.push(P),p+=U}return le(d)}let oe=4096;function le(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 be(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 Te(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+=or[m[h]];return p}function de(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 F(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||F(s,o,this.length);let p=this[s],h=1,P=0;for(;++P<o&&(h*=256);)p+=this[s+P]*h;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||F(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||F(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||F(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||F(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||F(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||F(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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||F(s,o,this.length);let p=this[s],h=1,P=0;for(;++P<o&&(h*=256);)p+=this[s+P]*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||F(s,o,this.length);let p=o,h=1,P=this[s+--p];for(;p>0&&(h*=256);)P+=this[s+--p]*h;return h*=128,P>=h&&(P-=Math.pow(2,8*o)),P},c.prototype.readInt8=function(s,o){return s=s>>>0,o||F(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||F(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||F(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||F(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||F(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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||F(s,4,this.length),r.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||F(s,4,this.length),r.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||F(s,8,this.length),r.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||F(s,8,this.length),r.read(this,s,!1,52,8)};function $(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 U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let h=1,P=0;for(this[o]=s&255;++P<d&&(h*=256);)this[o+P]=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 U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let h=d-1,P=1;for(this[o+h]=s&255;--h>=0&&(P*=256);)this[o+h]=s/P&255;return o+d},c.prototype.writeUint8=c.prototype.writeUInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(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||$(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||$(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||$(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||$(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 Gt(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 P=Number(s>>BigInt(32)&BigInt(4294967295));return m[o++]=P,P=P>>8,m[o++]=P,P=P>>8,m[o++]=P,P=P>>8,m[o++]=P,o}function Ln(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 P=Number(s>>BigInt(32)&BigInt(4294967295));return m[o+3]=P,P=P>>8,m[o+2]=P,P=P>>8,m[o+1]=P,P=P>>8,m[o]=P,o+8}c.prototype.writeBigUInt64LE=_e(function(s,o=0){return Gt(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=_e(function(s,o=0){return Ln(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let h=0,P=1,U=0;for(this[o]=s&255;++h<d&&(P*=256);)s<0&&U===0&&this[o+h-1]!==0&&(U=1),this[o+h]=(s/P>>0)-U&255;return o+d},c.prototype.writeIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let h=d-1,P=1,U=0;for(this[o+h]=s&255;--h>=0&&(P*=256);)s<0&&U===0&&this[o+h+1]!==0&&(U=1),this[o+h]=(s/P>>0)-U&255;return o+d},c.prototype.writeInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(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||$(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||$(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||$(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||$(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=_e(function(s,o=0){return Gt(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=_e(function(s,o=0){return Ln(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),r.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),r.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 P=s.charCodeAt(0);(p==="utf8"&&P<128||p==="latin1")&&(s=P)}}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 P=c.isBuffer(s)?s:c.from(s,p),U=P.length;if(U===0)throw new TypeError('The value "'+s+'" is invalid for argument "value"');for(h=0;h<d-o;++h)this[h+o]=P[h%U]}return this};let $e={};function wn(m,s,o){$e[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}`}}}wn("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),wn("ERR_INVALID_ARG_TYPE",function(m,s){return`The "${m}" argument must be of type number. Received type ${typeof s}`},TypeError),wn("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 nr(m,s,o){et(s,"offset"),(m[s]===void 0||m[s+o]===void 0)&&dt(s,m.length-(o+1))}function Hn(m,s,o,d,p,h){if(m>o||m<s){let P=typeof s=="bigint"?"n":"",U;throw h>3?s===0||s===BigInt(0)?U=`>= 0${P} and < 2${P} ** ${(h+1)*8}${P}`:U=`>= -(2${P} ** ${(h+1)*8-1}${P}) and < 2 ** ${(h+1)*8-1}${P}`:U=`>= ${s}${P} and <= ${o}${P}`,new $e.ERR_OUT_OF_RANGE("value",U,m)}nr(d,p,h)}function et(m,s){if(typeof m!="number")throw new $e.ERR_INVALID_ARG_TYPE(s,"number",m)}function dt(m,s,o){throw Math.floor(m)!==m?(et(m,o),new $e.ERR_OUT_OF_RANGE(o||"offset","an integer",m)):s<0?new $e.ERR_BUFFER_OUT_OF_BOUNDS:new $e.ERR_OUT_OF_RANGE(o||"offset",`>= ${o?1:0} and <= ${s}`,m)}let ir=/[^+/0-9A-Za-z-_]/g;function rr(m){if(m=m.split("=")[0],m=m.trim().replace(ir,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function Sn(m,s){s=s||1/0;let o,d=m.length,p=null,h=[];for(let P=0;P<d;++P){if(o=m.charCodeAt(P),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&h.push(239,191,189);continue}else if(P+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 ar(m){let s=[];for(let o=0;o<m.length;++o)s.push(m.charCodeAt(o)&255);return s}function sr(m,s){let o,d,p,h=[];for(let P=0;P<m.length&&!((s-=2)<0);++P)o=m.charCodeAt(P),d=o>>8,p=o%256,h.push(p),h.push(d);return h}function zn(m){return l.toByteArray(rr(m))}function Dt(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 ke(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 or=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 _e(m){return typeof BigInt>"u"?Ar:m}function Ar(){throw new Error("BigInt not supported")}return Qe}var He=mr();He.Buffer;He.SlowBuffer;He.INSPECT_MAX_BYTES;He.kMaxLength;var w=He.Buffer,Ja=He.INSPECT_MAX_BYTES,Ka=He.kMaxLength;var Ut={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},es={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},ts={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 q=class extends Error{constructor(r,i){super(i),this.errorCode=r}},Z=class extends q{constructor(r){super("SdkError",r)}},Et=class extends q{constructor(r){super("InvalidAmountError",r)}},tt=class extends q{constructor(r){super("AmountNotEnoughError",r)}},Fe=class extends q{constructor(r){super("InsufficientPoolLiquidityError",r)}},ie=class extends q{constructor(r){super("JupiterError",r)}},gt=class extends q{constructor(r){super("InvalidGasFeePaymentOptionError",r)}},ei=class extends q{constructor(r){super("InvalidMessengerOptionError",r)}},ue=class extends q{constructor(r){super("MethodNotSupportedError",r)}},ft=class extends q{constructor(r){super("VerifyTxError",r)}},nt=class extends q{constructor(r){super("InvalidTxError",r)}},_t=class extends q{constructor(r){super("ExtraGasMaxLimitExceededError",r)}},Nt=class extends q{constructor(r,i,a){super("ArgumentInvalidDecimalsError",`Argument '${r}' decimals '${i}' cannot be greater than '${a}'`)}},ht=class extends q{constructor(r){super("TimeoutError",r)}},Vt=class extends q{constructor(r){super("NodeRpcUrlNotInitializedError",`For chain '${r}' Node RPC URL not initialized`)}},we=class extends q{constructor(r){super("CCTPDoesNotSupportedError",r)}},Ot=class extends q{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},lr=(I=>(I.SDK_ERROR="SdkError",I.INVALID_AMOUNT_ERROR="InvalidAmountError",I.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",I.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",I.JUPITER_ERROR="JupiterError",I.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",I.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",I.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",I.VERIFY_TX_ERROR="VerifyTxError",I.INVALID_TX_ERROR="InvalidTxError",I.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",I.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",I.TIMEOUT_ERROR="TimeoutError",I.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",I.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",I.TX_TOO_LARGE="TxTooLargeError",I))(lr||{});var Se=(B=>(B.BSC="BSC",B.ETH="ETH",B.BAS="BAS",B.SOL="SOL",B.TRX="TRX",B.POL="POL",B.ARB="ARB",B.CEL="CEL",B.AVA="AVA",B.SRB="SRB",B.STLR="STLR",B.OPT="OPT",B))(Se||{}),ee=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))(ee||{});var dr={EVM:18,SOLANA:9,TRX:6,SRB:7},pr={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"},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"}},V=(()=>{let l={...pr};return{addChainsProperties(r){l={...l,...r}},getChainProperty(r){let i=l[r];if(!i)throw new Z(`Cannot find chain properties for ${r}`);return i},getChainsProperties(){return l},getChainDecimalsByType(r){return dr[r]}}})();import Tr from"axios";var ti="3.18.0";import{Big as v}from"big.js";import Cn from"bn.js";function In(l,r){return v(100).minus(v(100).times(r).div(l)).toNumber()}function ze(l,r){return Ne(l,r,3).round(0,v.roundDown)}function pe(l,r){return Ne(l,3,r)}function Ne(l,r,i){let a=v(i).minus(r).toNumber();return v(l).times(yt(a))}function yt(l){return v(10).pow(l)}function O(l,r){return v(l).times(yt(r))}function N(l,r){let i=v(l);return i.eq(0)?v(0):v(i).div(yt(r))}function ge(l){return N(v(l.tokenBalance).minus(l.vUsdBalance).toFixed(),3).div(2).toFixed()}function Me(l,{feeShare:r,decimals:i},a){let A=v(l);if(A.lte(0))return"0";let u=A.times(r),c=A.minus(u),g=ze(c,i),f=v(a.tokenBalance).plus(g),y=ve(f,a.aValue,a.dValue);return v(a.vUsdBalance).minus(y).round(0,v.roundDown).toFixed()}function bt(l,{feeShare:r,decimals:i},a){let A=v(l);if(A.lte(0))return v(0).toFixed();let u=A.plus(a.vUsdBalance),c=ve(u,a.aValue,a.dValue),g=pe(v(a.tokenBalance).minus(c),i),f=v(g).times(r);return v(g).minus(f).round(0,v.roundDown).toFixed()}function ni(l,r){let i=v(l);if(i.lte(0))return r;let a=i.plus(r.vUsdBalance),A=ve(a,r.aValue,r.dValue);return{aValue:r.aValue,dValue:r.dValue,tokenBalance:A.toFixed(0),vUsdBalance:a.toFixed(0)}}function ii(l,{feeShare:r,decimals:i},a){if(v(l).lte(0))return v(0);let A=v(a.vUsdBalance).minus(l);if(A.lte(0))throw new Fe;let u=ve(A,a.aValue,a.dValue),c=v(u).minus(a.tokenBalance),g=pe(c,i),f=v(r).div(v(1).minus(r)),y=v(g).times(f).round(0,v.roundUp);return v(g).plus(y).round(0,v.roundDown)}function ri(l,{feeShare:r,decimals:i},a){if(v(l).lte(0))return v(0);let A=v(r).div(v(1).minus(r)),u=v(l).times(A).round(0,v.roundUp),c=v(l).plus(u),g=ze(c,i),f=v(a.tokenBalance).minus(g);if(f.lte(0))throw new Fe;let y=ve(f,a.aValue,a.dValue);return v(y).minus(a.vUsdBalance).round(0,v.roundDown)}function ve(l,r,i){let a=v(4).times(r).times(v(i).minus(l)).minus(i),A=v(i).pow(3),u=a.pow(2),c=v(l).times(v(l).times(u).plus(v(4).times(r).times(A))).sqrt().round(0,v.roundDown),g=v(8).times(r).times(l),f=a.times(l).plus(c).div(g).round(0,v.roundDown);return f.eq(0)?v(0):f.plus(1)}function ai(l,r,i,a){let A=new Cn(l),u=new Cn(i),c=new Cn(r);return A.mul(u).shrn(a).sub(c).toString()}function si(l){return v(l).gt(0)?`${Number(v(l).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function oi(l,r,i){let a=v(r).times(i),A=v(r).plus(i),u=v(8).times(l).times(a).times(A),c=a.times(v(16).times(l).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),y=g.plus(f),b=v(y).sqrt(),T=v(Math.cbrt(+u.plus(b).toFixed())),B=v(Math.cbrt(+u.minus(b).toFixed()));return T.plus(B).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 Ge=(a=>(a[a.ALLBRIDGE=1]="ALLBRIDGE",a[a.WORMHOLE=2]="WORMHOLE",a[a.CCTP=3]="CCTP",a))(Ge||{});function Ai(l){return Object.entries(l).reduce((r,i)=>{let a=i[0],A=i[1],u=br(a,A);return u&&(r[a]=u),r},{})}function ci(l){let r={};for(let[i,a]of Object.entries(l)){let A=i;for(let u of a.tokens){let c=it({chainSymbol:A,poolAddress:u.poolAddress}),g=ge(u.poolInfo);r[c]={...u.poolInfo,imbalance:g}}}return r}function gr(l,r){let{name:i,...a}=l,{poolInfo:A,...u}=r;return{...u,...a,chainName:i}}function fr(l){switch(l){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function hr(l){return Object.entries(l).reduce((r,[i,a])=>(r[i]=yr(a),r),{})}function yr(l){return Object.entries(l).reduce((r,[i,a])=>{let A=fr(i);return A&&(r[A]=a),r},{})}function br(l,r){let i=V.getChainsProperties()[l];if(!i)return null;let a={...i,allbridgeChainId:r.chainId,bridgeAddress:r.bridgeAddress,transferTime:hr(r.transferTime),txCostAmount:r.txCostAmount,confirmations:r.confirmations};return{...a,tokens:r.tokens.map(A=>gr(a,A))}}function it(l){return l.chainSymbol+"_"+l.poolAddress}function ui(l){let r=[];for(let[i,a]of Object.entries(l)){let A=i;for(let u of a.tokens)r.push({chainSymbol:A,poolAddress:u.poolAddress})}return r}function mi(l){let r={};for(let[i,a]of Object.entries(l)){let A=i;for(let[u,c]of Object.entries(a))c.imbalance=ge(c),r[it({chainSymbol:A,poolAddress:u})]=c}return r}var Xt=class{constructor(r){this.api=Tr.create({baseURL:r.coreApiUrl,headers:{Accept:"application/json",...r.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ti},params:r.coreApiQueryParams})}async getTokenInfo(){let{data:r}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:Ai(r),poolInfoMap:ci(r)}}async getPendingInfo(){let{data:r}=await this.api.get("/pending-info");return r}async getGasBalance(r,i){let{data:a}=await this.api.get(`/check/${r}/${i}`);return a}async getTransferStatus(r,i){let{data:a}=await this.api.get(`/chain/${r}/${i}`);return a}async getReceiveTransactionCost(r){let{data:i}=await this.api.post("/receive-fee",r,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(r){let i=r instanceof Array?r:[r],{data:a}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return mi(a)}};import Lt from"timed-cache";var kn=20*1e3,Pr=55*1e3,Yt=class{constructor(r){this.apiClient=r;this.tokenInfoCache=new Lt({defaultTtl:Pr}),this.receivedTransactionCache=new Lt({defaultTtl:kn}),this.pendingInfoCache=new Lt({defaultTtl:kn}),this.gasBalanceCache=new Lt({defaultTtl:kn})}getTokenInfo(){let r="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(r);if(i)return i;let a=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(r,a),a}async getGasBalance(r,i){let a=`GAS_BALANCE_${r}_${i}`,A=this.gasBalanceCache.get(a);if(A)return A;let u=this.apiClient.getGasBalance(r,i);return this.gasBalanceCache.put(a,u),u}async getPendingInfo(){let r="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(r);if(i)return i;let a=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(r,a),a}async getReceiveTransactionCost(r){let i=`RECEIVE_TX_COST_${r.sourceChainId}_${r.destinationChainId}_${r.messenger}`,a=this.receivedTransactionCache.get(i);if(a)return a;let A=await this.apiClient.getReceiveTransactionCost(r);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(r,i){return this.apiClient.getTransferStatus(r,i)}async getPoolInfoMap(r){return this.apiClient.getPoolInfoMap(r)}};var Jt=class{constructor(r){this.apiClient=r}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let r=await this.getChainDetailsMap();return Object.values(r).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(r,i){return this.apiClient.getGasBalance(r,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(r,i){return await this.apiClient.getTransferStatus(r,i)}async getReceiveTransactionCost(r){return await this.apiClient.getReceiveTransactionCost(r)}async getPoolInfoMap(r){return await this.apiClient.getPoolInfoMap(r)}};var Kt=class{constructor(r,i){this.client=r;this.isStaging=i.coreApiQueryParams?.staging==="true"}async getChainDetailsMap(r){let i=await this.client.getChainDetailsMap(),a={};for(let A in i){let u=i[A];u&&(a[A]={...u,tokens:li(u.tokens,r,this.isStaging)})}return a}async tokens(r){return li(await this.client.tokens(),r,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(r,i){return this.client.getGasBalance(r,i)}async getTransferStatus(r,i){return await this.client.getTransferStatus(r,i)}async getReceiveTransactionCost(r){return await this.client.getReceiveTransactionCost(r)}cachePut(r,i){return this.client.cachePut(r,i)}getPoolInfoByKey(r){return this.client.getPoolInfoByKey(r)}refreshPoolInfo(r){return this.client.refreshPoolInfo(r)}};function li(l,r,i){return l.filter(a=>i?!0:a.flags[r]).map(wr)}function wr(l){let{flags:r,...i}=l;return i}import Sr from"timed-cache";var Br=55*1e3,Qt=class{constructor(r){this.client=r;this.poolInfoCache=new Mn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(r,i){return this.client.getTransferStatus(r,i)}getReceiveTransactionCost(r){return this.client.getReceiveTransactionCost(r)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(r,i){return this.client.getGasBalance(r,i)}async getPoolInfoByKey(r){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(r);if(i)return i;{let a=await this.client.getPoolInfoMap(r);this.poolInfoCache.putAll(a);let A=a[it(r)];if(A)return A;throw new Z("Cannot find pool info for "+r.poolAddress+" on chain "+r.chainSymbol)}}async refreshPoolInfo(r){let i;if(r)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(r);else{let a=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(ui(a.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(r,i){this.poolInfoCache.put(it(r),i)}},Mn=class{constructor(){this.cache=new Sr({defaultTtl:Br})}putAll(r){for(let[i,a]of Object.entries(r))this.cache.put(i,a)}putAllIfNotExists(r){for(let[i,a]of Object.entries(r))this.cache.get(i)||this.cache.put(i,a)}put(r,i){this.cache.put(r,i)}get(r){let i=it(r);return this.cache.get(i)}};import na from"tronweb";import ia from"web3";import{Big as di}from"big.js";async function te(l,r){return await l.getPoolInfoByKey({chainSymbol:r.chainSymbol,poolAddress:r.poolAddress})}function L(l){if(di(l).lte(0))throw new Et("Amount must be greater than zero")}function J(l,r,i){let a=di(r).toFixed(),[A,u]=a.split(".");if(u&&u.length>i)throw new Nt(l,u.length,i)}async function Ht(l,r,i){return await Promise.race([l,new Promise((a,A)=>{setTimeout(()=>A(new ht(r)),i)})])}async function vn(l,r,i,a){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(),r,a)}catch{if(++A>=i)throw new ht(r)}}async function pi(l,r,i,a=1.5,A=!1){let u=[],c=0,g=await l();if(u.push(g),!r(g))return u;let f=new Date(Date.now()+i*1e3).valueOf(),y=1e3,b=y;for(;Date.now()<f;){let T=u[u.length-1];if(T===void 0||!r(T))break;c++,A&&console.info(`Waiting ${y}ms before trying again (bringing the total wait time to ${b}ms so far, of total ${i*1e3}ms)`),await new Promise(S=>setTimeout(S,y)),y=y*a,new Date(Date.now()+y).valueOf()>f&&(y=f-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${y}ms`)),b=y+b;let B=await l(T);u.push(B),A&&r(B)&&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 Ur}from"big.js";var gi=[{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 fi=[{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 ae from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(l,r){return ae.utils.token.associatedAddress({mint:r,owner:l})}async function Ve(l){let[r]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("config")],l);return r}async function hi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("lock"),Uint8Array.from(l)],r);return i}async function Tt(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([l])],r);return i}async function rt(l){let r=await Ve(l),[i]=await ce.findProgramAddress([r.toBuffer()],l);return i}async function yi(l,r){let[i]=await ce.findProgramAddress([l.toBuffer()],r);return i}async function at(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("token"),l.toBytes()],r);return i}async function bi(l,r,i){let[a]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("other_bridge_token"),w.from([l]),r],i);return a}async function xn(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([l])],r);return i}async function Wn(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([l])],r);return i}async function Ti(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("sent_message"),l],r);return i}async function Fn(l,r,i){let[a]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("user_deposit"),r.toBytes(),l.toBytes()],i);return a}async function Pi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("cctp_bridge"),l.toBytes()],r);return i}async function wi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("token"),l.toBytes()],r);return i}function Si(l,r){let[i]=ce.findProgramAddressSync([ae.utils.bytes.utf8.encode("lock"),r.toBuffer()],l);return i}function Bi(l,r,i,a){let A=je("message_transmitter",i),u=je("token_messenger",a),c=je("__event_authority",a),g=je("token_minter",a),f=je("local_token",a,[r]),y=je("remote_token_messenger",a,[l.toString()]),b=je("sender_authority",a);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:y,authorityPda:b}}function je(l,r,i=[]){let a=[w.from(ae.utils.bytes.utf8.encode(l))];for(let u of i)typeof u=="string"?a.push(w.from(ae.utils.bytes.utf8.encode(u))):Array.isArray(u)?a.push(w.from(u)):w.isBuffer(u)?a.push(u):a.push(u.toBuffer());return ce.findProgramAddressSync(a,r)[0]}import{AnchorProvider as Rr}from"@project-serum/anchor";import{Connection as kr,PublicKey as Mr}from"@solana/web3.js";function Oe(l,r){let i=new kr(l,"confirmed"),a=new Mr(r);return new Rr(i,{publicKey:a},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as vr}from"@solana/web3.js";import{Address as xr}from"@stellar/stellar-sdk";import{Big as De}from"big.js";import Ci from"randombytes";import*as Ii from"tronweb";function Ze(l,r,i){let a;switch(r){case"EVM":{a=Wr(l);break}case"SOLANA":{a=new vr(l).toBuffer();break}case"TRX":{a=Fr(l);break}case"SRB":{a=new xr(l).toBuffer();break}}switch(i){case"EVM":return"0x"+a.toString("hex");case"SOLANA":return Array.from(a);case"TRX":return a.toJSON().data;case"SRB":return a.toJSON().data}}function Ri(l){return w.from(l.replace(/^0x/i,""),"hex")}function Wr(l){let i=Ri(l);return w.concat([w.alloc(32-i.length,0),i],32)}function Fr(l){let r=Pt(l),i=Ri(r);return Gr(i,32)}function Pt(l){return w.from(Ii.utils.crypto.decodeBase58Address(l)).toString("hex").replace(/^41/,"0x")}function Gr(l,r){if(l.length>=r)return l;let i=w.alloc(r,0);return l.copy(i,r-l.length),i}function st(){return Ci(32)}function Gn(){let l=Ci(32).readBigInt64BE();return l<0?l*-1n:l}function Xe(l,r){let i={},a=r.sourceToken;return i.amount=O(r.amount,a.decimals).toFixed(),i.contractAddress=a.bridgeAddress,i.fromAccountAddress=r.fromAccountAddress,i.fromTokenAddress=Ze(a.tokenAddress,l,l),i.toAccountAddress=r.toAccountAddress,i.toTokenAddress=Ze(r.destinationToken.tokenAddress,l,l),i.minimumReceiveAmount=r.minimumReceiveAmount?O(r.minimumReceiveAmount,r.destinationToken.decimals).toFixed():"0",i}async function Ue(l,r,i){let a={};a.fromChainId=r.sourceToken.allbridgeChainId,a.fromChainSymbol=r.sourceToken.chainSymbol;let A=V.getChainProperty(r.destinationToken.chainSymbol).chainType;a.fromTokenAddress=r.sourceToken.tokenAddress,a.toChainId=r.destinationToken.allbridgeChainId,a.toTokenAddress=r.destinationToken.tokenAddress,r.gasFeePaymentMethod==="stablecoin"?a.gasFeePaymentMethod="stablecoin":a.gasFeePaymentMethod="native";let u=r.sourceToken;if(r.messenger===3){if(!u.cctpAddress||!r.destinationToken.cctpAddress)throw new we("Such route does not support CCTP protocol");a.contractAddress=u.cctpAddress}else a.contractAddress=u.bridgeAddress;a.messenger=r.messenger,a.fromAccountAddress=r.fromAccountAddress,a.amount=O(r.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=r;if(!c){let T=(await Dn(a.fromChainId,r.sourceToken.chainType,a.toChainId,u.decimals,a.messenger,i))[a.gasFeePaymentMethod];if(!T)throw new gt;c=T.int,g="int"}if(g=="float")switch(a.gasFeePaymentMethod){case"native":a.fee=O(c,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":a.fee=O(c,u.decimals).toFixed(0);break}else a.fee=c;let{extraGas:f,extraGasFormat:y}=r;if(f&&+f>0){if(y=="float")switch(a.gasFeePaymentMethod){case"native":a.extraGas=O(f,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":a.extraGas=O(f,u.decimals).toFixed(0);break}else a.extraGas=f;await Zr(a.extraGas,a.gasFeePaymentMethod,u,r.destinationToken,i)}return a.fromTokenAddress=Ze(a.fromTokenAddress,l,l),a.toAccountAddress=Ze(r.toAccountAddress,A,l),a.toTokenAddress=Ze(a.toTokenAddress,A,l),a.gasFeePaymentMethod=="stablecoin"&&Dr(a.amount,u.decimals,a.fee,a.extraGas),a}function Dr(l,r,i,a){let A=De(l).minus(i).minus(a??0);if(A.lte(0))throw new tt(`Amount not enough to pay fee, ${N(De(A).minus(1).neg(),r).toFixed()} stables is missing`)}async function Dn(l,r,i,a,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:l,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:N(c.fee,V.getChainDecimalsByType(r)).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ne(new De(c.fee).mul(c.sourceNativeTokenPrice),V.getChainDecimalsByType(r),a).toFixed(0,De.roundUp);g.stablecoin={int:f,float:N(f,a).toFixed()}}return g}async function Zr(l,r,i,a,A){let c=(await Zn(i,a,A)).extraGasMax[r];if(!c)throw new gt(`Impossible to pay extra gas by '${r}' payment method`);let g=c.int;if(De(l).gt(g))throw new _t(`Extra gas ${l} in int format, exceeded limit ${g} for '${r}' payment method`)}async function Zn(l,r,i){let a={},A=await i.getReceiveTransactionCost({sourceChainId:l.allbridgeChainId,destinationChainId:r.allbridgeChainId,messenger:1}),u=r.txCostAmount.maxAmount,c=N(u,V.getChainDecimalsByType(r.chainType)).toFixed(),g=De(c).div(A.exchangeRate).toFixed(V.getChainDecimalsByType(l.chainType),De.roundDown),f=O(g,V.getChainDecimalsByType(l.chainType)).toFixed(0);if(a.native={int:f,float:g},A.sourceNativeTokenPrice){let y=De(g).mul(A.sourceNativeTokenPrice).toFixed(l.decimals,De.roundDown);a.stablecoin={int:O(y,l.decimals).toFixed(0),float:y}}return{extraGasMax:a,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:r.txCostAmount.swap,float:N(r.txCostAmount.swap,V.getChainDecimalsByType(r.chainType)).toFixed()},transfer:{int:r.txCostAmount.transfer,float:N(r.txCostAmount.transfer,V.getChainDecimalsByType(r.chainType)).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function ki(l){return l.sourceToken.chainSymbol!==l.destinationToken.chainSymbol}var wt=class extends Ce{constructor(i,a,A){super();this.web3=i;this.api=a;this.nodeRpcUrlsConfig=A;this.chainType="EVM"}async send(i){let a=await this.buildRawTransactionSend(i);return this.sendRawTransaction(a)}async buildRawTransactionSwap(i){let a=Xe(this.chainType,i);return await this.buildRawTransactionSwapFromParams(a)}async buildRawTransactionSwapFromParams(i){let{amount:a,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:y}=i,T=this.getBridgeContract(A).methods.swap(a,c,f,g,y);return Promise.resolve({from:u,to:A,data:T.encodeABI()})}async buildRawTransactionSend(i){let a=await Ue(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:y,toTokenAddress:b,messenger:T,fee:B,gasFeePaymentMethod:S,extraGas:C}=a,M="0x"+st().toString("hex"),I,W,x=B;if(C&&(x=Ur(x).plus(C).toFixed()),T===3){let G=await this.buildRawTransactionCctpSend(i,a,x);I=G.sendMethod,W=G.value}else{let G=this.getBridgeContract(u);S==="stablecoin"?(I=G.methods.swapAndBridge(g,A,y,f,b,M,T,x),W="0"):(I=G.methods.swapAndBridge(g,A,y,f,b,M,T,0),W=x)}return Promise.resolve({from:c,to:u,value:W,data:I.encodeABI()})}async buildRawTransactionCctpSend(i,a,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:y}=a,b=this.getContract(fi,c),T,B;if(i.destinationToken.chainType==="SOLANA"){let S,C=new Mi(i.toAccountAddress),M=new Mi(i.destinationToken.tokenAddress),I=await Be(C,M),W=Oe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);jt.setProvider(W);let x=await jt.Spl.token(W).account.token.fetchNullable(I);if(x?.authority.equals(C))S=Ze(I.toBase58(),"SOLANA",this.chainType);else{let G=await W.connection.getTokenAccountsByOwner(C,{mint:M});if(G.value.length===0&&!x)S=Ze(I.toBase58(),"SOLANA",this.chainType);else if(G.value.length>0){let _=G.value[0];if(!_?.pubkey)throw new Z("First token account or its public key is undefined");S=Ze(_.pubkey.toBase58(),"SOLANA",this.chainType)}else throw new Z("Associated account has wrong owner")}y==="stablecoin"?(T=b.methods.bridgeWithWalletAddress(u,S,f,g,A),B="0"):(T=b.methods.bridgeWithWalletAddress(u,S,f,g,0),B=A)}else y==="stablecoin"?(T=b.methods.bridge(u,f,g,A),B="0"):(T=b.methods.bridge(u,f,g,0),B=A);return{sendMethod:T,value:B}}async sendRawTransaction(i){let a=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:a,...A});return{txId:u}}getContract(i,a){return new this.web3.eth.Contract(i,a)}getBridgeContract(i){return this.getContract(gi,i)}};var qt=class{constructor(r,i,a,A){this.api=r;this.nodeRpcUrlsConfig=i;this.params=a;this.tokenService=A}async approve(r,i){let a,A;i?(a=r,A=i):A=r;let u=St(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},a)}async send(r,i){return L(r.amount),J("amount",r.amount,r.sourceToken.decimals),ki(r)?$t(r.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(r):$t(r.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(r)}};import{BN as ut,Program as _n,Spl as Kr,web3 as Le}from"@project-serum/anchor";import{Keypair as Vi,PublicKey as K,SystemProgram as Qr}from"@solana/web3.js";import{Big as xe}from"big.js";var Bt={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 vi={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 Er}from"@project-serum/anchor";import _r from"big.js";import en from"web3";async function At(l,r){return await Er.token(r).account.token.fetch(l)}async function xi(l,r,i){let a=await r.account.pool.fetch(i),A=a.decimals,u=_r(a.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:a.a.toString(),dValue:a.d.toString(),totalLpAmount:a.totalLpAmount.toString(),tokenBalance:a.tokenBalance.toString(),vUsdBalance:a.vUsdBalance.toString(),accRewardPerShareP:a.accRewardPerShareP.toString()};return Me(l,{decimals:A,feeShare:u},c)}function Wi(l){let r=l.amount,i="0x"+l.recipient.toString("hex"),a=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:r},{t:"bytes32",v:i},{t:"uint256",v:a},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!y)throw new Z("message cannot be undefined");let b=en.utils.keccak256(w.from(y.replace("0x",""),"hex")),T=w.from(b.replace("0x",""),"hex");T[0]=a,T[1]=A;let B=en.utils.encodePacked({t:"bytes32",v:"0x"+T.toString("hex")},{t:"bytes32",v:f});if(!B)throw new nt("messageWithSigner cannot be undefined");let S=en.utils.keccak256(w.from(B.replace("0x",""),"hex")),C=w.from(S.replace("0x",""),"hex");return C[0]=T[0],C[1]=T[1],C}import{ComputeBudgetInstruction as Gi,ComputeBudgetProgram as tn,Connection as Di,TransactionMessage as Nr}from"@solana/web3.js";import{Big as Vr}from"big.js";import{AddressLookupTableAccount as Fi}from"@solana/web3.js";async function qe(l,r){return await Promise.all(l.message.addressTableLookups.map(async i=>new Fi({key:i.accountKey,state:Fi.deserialize(await r.getAccountInfo(i.accountKey).then(a=>{if(!a)throw new Z("Cannot get AccountInfo");return a.data}))})))}var Un="AUTO";async function ct(l,r,i){let a=new Di(i,"confirmed"),A=(await a.simulateTransaction(l)).value.unitsConsumed;await Ui(l.instructions,A,r,a)}async function Zi(l,r,i){let a=new Di(i,"confirmed"),A=await qe(l,a),u=Nr.decompile(l.message,{addressLookupTableAccounts:A});if(l.serialize().length>1232)throw new Ot;await Ui(u.instructions,769230,r,a),l.message=u.compileToV0Message(A)}async function Ui(l,r,i,a){if(r>0){let A=Or(r,l);if(i?.solana){let u=i.solana;if(u===Un)await En(l,a);else if("pricePerUnitInMicroLamports"in u)await En(l,a,u.pricePerUnitInMicroLamports);else{let c=Vr(u.extraFeeInLamports).div(A).mul(yt(6)).toFixed(0);await En(l,a,c)}}}}function Or(l,r){let i=r.findIndex(u=>u.programId.equals(tn.programId)&&Gi.decodeInstructionType(u)==="SetComputeUnitLimit"),a=Number((l*1.3).toFixed(0)),A=tn.setComputeUnitLimit({units:a});return i>=0?r[i]=A:r.push(A),a.toString()}async function En(l,r,i){let a=l.findIndex(c=>c.programId.equals(tn.programId)&&Gi.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await Xr(r)),u=tn.setComputeUnitPrice({microLamports:A});return a>=0?l[a]=u:l.push(u),A.toString()}async function Xr(l){let r=await l.getRecentPrioritizationFees(),i=0;for(let a of r)i+=a.prioritizationFee;return(i/r.length).toFixed(0)}import{NATIVE_MINT as Lr}from"@solana/spl-token";import{Connection as Yr,TransactionMessage as Ei,VersionedTransaction as Jr}from"@solana/web3.js";import _i,{AxiosError as Ni}from"axios";var nn=class{constructor(r,i){this.connection=new Yr(r),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(r,i,a,A){let u;try{let T=A?"ExactOut":"ExactIn";u=await _i.get(`${this.jupiterUrl}/quote?inputMint=${i}
|
|
1
|
+
var pt={},jn=!1;function cr(){if(jn)return pt;jn=!0,pt.byteLength=g,pt.toByteArray=y,pt.fromByteArray=B;for(var l=[],r=[],i=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=a.length;A<u;++A)l[A]=a[A],r[a.charCodeAt(A)]=A;r[45]=62,r[95]=63;function c(S){var C=S.length;if(C%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=S.indexOf("=");M===-1&&(M=C);var I=M===C?0:4-M%4;return[M,I]}function g(S){var C=c(S),M=C[0],I=C[1];return(M+I)*3/4-I}function f(S,C,M){return(C+M)*3/4-M}function y(S){var C,M=c(S),I=M[0],W=M[1],x=new i(f(S,I,W)),G=0,_=W>0?I-4:I,D;for(D=0;D<_;D+=4)C=r[S.charCodeAt(D)]<<18|r[S.charCodeAt(D+1)]<<12|r[S.charCodeAt(D+2)]<<6|r[S.charCodeAt(D+3)],x[G++]=C>>16&255,x[G++]=C>>8&255,x[G++]=C&255;return W===2&&(C=r[S.charCodeAt(D)]<<2|r[S.charCodeAt(D+1)]>>4,x[G++]=C&255),W===1&&(C=r[S.charCodeAt(D)]<<10|r[S.charCodeAt(D+1)]<<4|r[S.charCodeAt(D+2)]>>2,x[G++]=C>>8&255,x[G++]=C&255),x}function b(S){return l[S>>18&63]+l[S>>12&63]+l[S>>6&63]+l[S&63]}function T(S,C,M){for(var I,W=[],x=C;x<M;x+=3)I=(S[x]<<16&16711680)+(S[x+1]<<8&65280)+(S[x+2]&255),W.push(b(I));return W.join("")}function B(S){for(var C,M=S.length,I=M%3,W=[],x=16383,G=0,_=M-I;G<_;G+=x)W.push(T(S,G,G+x>_?_:G+x));return I===1?(C=S[M-1],W.push(l[C>>2]+l[C<<4&63]+"==")):I===2&&(C=(S[M-2]<<8)+S[M-1],W.push(l[C>>10]+l[C>>4&63]+l[C<<2&63]+"=")),W.join("")}return pt}var Zt={},qn=!1;function ur(){if(qn)return Zt;qn=!0;return Zt.read=function(l,r,i,a,A){var u,c,g=A*8-a-1,f=(1<<g)-1,y=f>>1,b=-7,T=i?A-1:0,B=i?-1:1,S=l[r+T];for(T+=B,u=S&(1<<-b)-1,S>>=-b,b+=g;b>0;u=u*256+l[r+T],T+=B,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=a;b>0;c=c*256+l[r+T],T+=B,b-=8);if(u===0)u=1-y;else{if(u===f)return c?NaN:(S?-1:1)*(1/0);c=c+Math.pow(2,a),u=u-y}return(S?-1:1)*c*Math.pow(2,u-a)},Zt.write=function(l,r,i,a,A,u){var c,g,f,y=u*8-A-1,b=(1<<y)-1,T=b>>1,B=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=a?0:u-1,C=a?1:-1,M=r<0||r===0&&1/r<0?1:0;for(r=Math.abs(r),isNaN(r)||r===1/0?(g=isNaN(r)?1:0,c=b):(c=Math.floor(Math.log(r)/Math.LN2),r*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+T>=1?r+=B/f:r+=B*Math.pow(2,1-T),r*f>=2&&(c++,f/=2),c+T>=b?(g=0,c=b):c+T>=1?(g=(r*f-1)*Math.pow(2,A),c=c+T):(g=r*Math.pow(2,T-1)*Math.pow(2,A),c=0));A>=8;l[i+S]=g&255,S+=C,g/=256,A-=8);for(c=c<<A|g,y+=A;y>0;l[i+S]=c&255,S+=C,c/=256,y-=8);l[i+S-C]|=M*128},Zt}var Qe={},$n=!1;function mr(){if($n)return Qe;$n=!0;let l=cr(),r=ur(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Qe.Buffer=c,Qe.SlowBuffer=W,Qe.INSPECT_MAX_BYTES=50;let a=2147483647;Qe.kMaxLength=a,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>a)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 T(m,s);if(ArrayBuffer.isView(m))return S(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(ke(m,ArrayBuffer)||m&&ke(m.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ke(m,SharedArrayBuffer)||m&&ke(m.buffer,SharedArrayBuffer)))return C(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=M(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:I(m)|0)}c.allocUnsafe=function(m){return b(m)},c.allocUnsafeSlow=function(m){return b(m)};function T(m,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=x(m,s)|0,d=u(o),p=d.write(m,s);return p!==o&&(d=d.slice(0,p)),d}function B(m){let s=m.length<0?0:I(m.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=m[d]&255;return o}function S(m){if(ke(m,Uint8Array)){let s=new Uint8Array(m);return C(s.buffer,s.byteOffset,s.byteLength)}return B(m)}function C(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 M(m){if(c.isBuffer(m)){let s=I(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):B(m);if(m.type==="Buffer"&&Array.isArray(m.data))return B(m.data)}function I(m){if(m>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return m|0}function W(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(ke(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),ke(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,P=Math.min(d,p);h<P;++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 P=s[d];if(ke(P,Uint8Array))h+P.length>p.length?(c.isBuffer(P)||(P=c.from(P)),P.copy(p,h)):Uint8Array.prototype.set.call(p,P,h);else if(c.isBuffer(P))P.copy(p,h);else throw new TypeError('"list" argument must be an Array of Buffers');h+=P.length}return p};function x(m,s){if(c.isBuffer(m))return m.length;if(ArrayBuffer.isView(m)||ke(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 Sn(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:Sn(m).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=x;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 Te(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 be(this,s,o);case"base64":return me(this,s,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return de(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=Qe.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(ke(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 P=h-p,U=d-o,Q=Math.min(P,U),Y=this.slice(p,h),H=s.slice(o,d);for(let X=0;X<Q;++X)if(Y[X]!==H[X]){P=Y[X],U=H[X];break}return P<U?-1:U<P?1:0};function D(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:E(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):E(m,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function E(m,s,o,d,p){let h=1,P=m.length,U=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,P/=2,U/=2,o/=2}function Q(H,X){return h===1?H[X]:H.readUInt16BE(X*h)}let Y;if(p){let H=-1;for(Y=o;Y<P;Y++)if(Q(m,Y)===Q(s,H===-1?0:Y-H)){if(H===-1&&(H=Y),Y-H+1===U)return H*h}else H!==-1&&(Y-=Y-H),H=-1}else for(o+U>P&&(o=P-U),Y=o;Y>=0;Y--){let H=!0;for(let X=0;X<U;X++)if(Q(m,Y+X)!==Q(s,X)){H=!1;break}if(H)return Y}return-1}c.prototype.includes=function(s,o,d){return this.indexOf(s,o,d)!==-1},c.prototype.indexOf=function(s,o,d){return D(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return D(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 P;for(P=0;P<d;++P){let U=parseInt(s.substr(P*2,2),16);if(Bn(U))return P;m[o+P]=U}return P}function z(m,s,o,d){return Dt(Sn(s,m.length-o),m,o,d)}function he(m,s,o,d){return Dt(ar(s),m,o,d)}function ye(m,s,o,d){return Dt(zn(s),m,o,d)}function Pe(m,s,o,d){return Dt(sr(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 P=!1;for(;;)switch(p){case"hex":return se(this,s,o,d);case"utf8":case"utf-8":return z(this,s,o,d);case"ascii":case"latin1":case"binary":return he(this,s,o,d);case"base64":return ye(this,s,o,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Pe(this,s,o,d);default:if(P)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),P=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function me(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],P=null,U=h>239?4:h>223?3:h>191?2:1;if(p+U<=o){let Q,Y,H,X;switch(U){case 1:h<128&&(P=h);break;case 2:Q=m[p+1],(Q&192)===128&&(X=(h&31)<<6|Q&63,X>127&&(P=X));break;case 3:Q=m[p+1],Y=m[p+2],(Q&192)===128&&(Y&192)===128&&(X=(h&15)<<12|(Q&63)<<6|Y&63,X>2047&&(X<55296||X>57343)&&(P=X));break;case 4:Q=m[p+1],Y=m[p+2],H=m[p+3],(Q&192)===128&&(Y&192)===128&&(H&192)===128&&(X=(h&15)<<18|(Q&63)<<12|(Y&63)<<6|H&63,X>65535&&X<1114112&&(P=X))}}P===null?(P=65533,U=1):P>65535&&(P-=65536,d.push(P>>>10&1023|55296),P=56320|P&1023),d.push(P),p+=U}return le(d)}let oe=4096;function le(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 be(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 Te(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+=or[m[h]];return p}function de(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 F(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||F(s,o,this.length);let p=this[s],h=1,P=0;for(;++P<o&&(h*=256);)p+=this[s+P]*h;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||F(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||F(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||F(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||F(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||F(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||F(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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||F(s,o,this.length);let p=this[s],h=1,P=0;for(;++P<o&&(h*=256);)p+=this[s+P]*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||F(s,o,this.length);let p=o,h=1,P=this[s+--p];for(;p>0&&(h*=256);)P+=this[s+--p]*h;return h*=128,P>=h&&(P-=Math.pow(2,8*o)),P},c.prototype.readInt8=function(s,o){return s=s>>>0,o||F(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||F(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||F(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||F(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||F(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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=_e(function(s){s=s>>>0,et(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(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||F(s,4,this.length),r.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||F(s,4,this.length),r.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||F(s,8,this.length),r.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||F(s,8,this.length),r.read(this,s,!1,52,8)};function $(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 U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let h=1,P=0;for(this[o]=s&255;++P<d&&(h*=256);)this[o+P]=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 U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let h=d-1,P=1;for(this[o+h]=s&255;--h>=0&&(P*=256);)this[o+h]=s/P&255;return o+d},c.prototype.writeUint8=c.prototype.writeUInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(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||$(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||$(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||$(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||$(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 Gt(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 P=Number(s>>BigInt(32)&BigInt(4294967295));return m[o++]=P,P=P>>8,m[o++]=P,P=P>>8,m[o++]=P,P=P>>8,m[o++]=P,o}function Ln(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 P=Number(s>>BigInt(32)&BigInt(4294967295));return m[o+3]=P,P=P>>8,m[o+2]=P,P=P>>8,m[o+1]=P,P=P>>8,m[o]=P,o+8}c.prototype.writeBigUInt64LE=_e(function(s,o=0){return Gt(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=_e(function(s,o=0){return Ln(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let h=0,P=1,U=0;for(this[o]=s&255;++h<d&&(P*=256);)s<0&&U===0&&this[o+h-1]!==0&&(U=1),this[o+h]=(s/P>>0)-U&255;return o+d},c.prototype.writeIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let h=d-1,P=1,U=0;for(this[o+h]=s&255;--h>=0&&(P*=256);)s<0&&U===0&&this[o+h+1]!==0&&(U=1),this[o+h]=(s/P>>0)-U&255;return o+d},c.prototype.writeInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(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||$(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||$(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||$(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||$(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=_e(function(s,o=0){return Gt(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=_e(function(s,o=0){return Ln(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),r.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),r.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 P=s.charCodeAt(0);(p==="utf8"&&P<128||p==="latin1")&&(s=P)}}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 P=c.isBuffer(s)?s:c.from(s,p),U=P.length;if(U===0)throw new TypeError('The value "'+s+'" is invalid for argument "value"');for(h=0;h<d-o;++h)this[h+o]=P[h%U]}return this};let $e={};function wn(m,s,o){$e[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}`}}}wn("ERR_BUFFER_OUT_OF_BOUNDS",function(m){return m?`${m} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),wn("ERR_INVALID_ARG_TYPE",function(m,s){return`The "${m}" argument must be of type number. Received type ${typeof s}`},TypeError),wn("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 nr(m,s,o){et(s,"offset"),(m[s]===void 0||m[s+o]===void 0)&&dt(s,m.length-(o+1))}function Hn(m,s,o,d,p,h){if(m>o||m<s){let P=typeof s=="bigint"?"n":"",U;throw h>3?s===0||s===BigInt(0)?U=`>= 0${P} and < 2${P} ** ${(h+1)*8}${P}`:U=`>= -(2${P} ** ${(h+1)*8-1}${P}) and < 2 ** ${(h+1)*8-1}${P}`:U=`>= ${s}${P} and <= ${o}${P}`,new $e.ERR_OUT_OF_RANGE("value",U,m)}nr(d,p,h)}function et(m,s){if(typeof m!="number")throw new $e.ERR_INVALID_ARG_TYPE(s,"number",m)}function dt(m,s,o){throw Math.floor(m)!==m?(et(m,o),new $e.ERR_OUT_OF_RANGE(o||"offset","an integer",m)):s<0?new $e.ERR_BUFFER_OUT_OF_BOUNDS:new $e.ERR_OUT_OF_RANGE(o||"offset",`>= ${o?1:0} and <= ${s}`,m)}let ir=/[^+/0-9A-Za-z-_]/g;function rr(m){if(m=m.split("=")[0],m=m.trim().replace(ir,""),m.length<2)return"";for(;m.length%4!==0;)m=m+"=";return m}function Sn(m,s){s=s||1/0;let o,d=m.length,p=null,h=[];for(let P=0;P<d;++P){if(o=m.charCodeAt(P),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&h.push(239,191,189);continue}else if(P+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 ar(m){let s=[];for(let o=0;o<m.length;++o)s.push(m.charCodeAt(o)&255);return s}function sr(m,s){let o,d,p,h=[];for(let P=0;P<m.length&&!((s-=2)<0);++P)o=m.charCodeAt(P),d=o>>8,p=o%256,h.push(p),h.push(d);return h}function zn(m){return l.toByteArray(rr(m))}function Dt(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 ke(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 or=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 _e(m){return typeof BigInt>"u"?Ar:m}function Ar(){throw new Error("BigInt not supported")}return Qe}var He=mr();He.Buffer;He.SlowBuffer;He.INSPECT_MAX_BYTES;He.kMaxLength;var w=He.Buffer,Ja=He.INSPECT_MAX_BYTES,Ka=He.kMaxLength;var Ut={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},es={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},ts={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 q=class extends Error{constructor(r,i){super(i),this.errorCode=r}},Z=class extends q{constructor(r){super("SdkError",r)}},Et=class extends q{constructor(r){super("InvalidAmountError",r)}},tt=class extends q{constructor(r){super("AmountNotEnoughError",r)}},Fe=class extends q{constructor(r){super("InsufficientPoolLiquidityError",r)}},ie=class extends q{constructor(r){super("JupiterError",r)}},gt=class extends q{constructor(r){super("InvalidGasFeePaymentOptionError",r)}},ei=class extends q{constructor(r){super("InvalidMessengerOptionError",r)}},ue=class extends q{constructor(r){super("MethodNotSupportedError",r)}},ft=class extends q{constructor(r){super("VerifyTxError",r)}},nt=class extends q{constructor(r){super("InvalidTxError",r)}},_t=class extends q{constructor(r){super("ExtraGasMaxLimitExceededError",r)}},Nt=class extends q{constructor(r,i,a){super("ArgumentInvalidDecimalsError",`Argument '${r}' decimals '${i}' cannot be greater than '${a}'`)}},ht=class extends q{constructor(r){super("TimeoutError",r)}},Vt=class extends q{constructor(r){super("NodeRpcUrlNotInitializedError",`For chain '${r}' Node RPC URL not initialized`)}},we=class extends q{constructor(r){super("CCTPDoesNotSupportedError",r)}},Ot=class extends q{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},lr=(I=>(I.SDK_ERROR="SdkError",I.INVALID_AMOUNT_ERROR="InvalidAmountError",I.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",I.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",I.JUPITER_ERROR="JupiterError",I.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",I.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",I.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",I.VERIFY_TX_ERROR="VerifyTxError",I.INVALID_TX_ERROR="InvalidTxError",I.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",I.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",I.TIMEOUT_ERROR="TimeoutError",I.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",I.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",I.TX_TOO_LARGE="TxTooLargeError",I))(lr||{});var Se=(B=>(B.BSC="BSC",B.ETH="ETH",B.BAS="BAS",B.SOL="SOL",B.TRX="TRX",B.POL="POL",B.ARB="ARB",B.CEL="CEL",B.AVA="AVA",B.SRB="SRB",B.STLR="STLR",B.OPT="OPT",B))(Se||{}),ee=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))(ee||{});var dr={EVM:18,SOLANA:9,TRX:6,SRB:7},pr={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"},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"}},V=(()=>{let l={...pr};return{addChainsProperties(r){l={...l,...r}},getChainProperty(r){let i=l[r];if(!i)throw new Z(`Cannot find chain properties for ${r}`);return i},getChainsProperties(){return l},getChainDecimalsByType(r){return dr[r]}}})();import Tr from"axios";var ti="3.19.0";import{Big as v}from"big.js";import Cn from"bn.js";function In(l,r){return v(100).minus(v(100).times(r).div(l)).toNumber()}function ze(l,r){return Ne(l,r,3).round(0,v.roundDown)}function pe(l,r){return Ne(l,3,r)}function Ne(l,r,i){let a=v(i).minus(r).toNumber();return v(l).times(yt(a))}function yt(l){return v(10).pow(l)}function O(l,r){return v(l).times(yt(r))}function N(l,r){let i=v(l);return i.eq(0)?v(0):v(i).div(yt(r))}function ge(l){return N(v(l.tokenBalance).minus(l.vUsdBalance).toFixed(),3).div(2).toFixed()}function Me(l,{feeShare:r,decimals:i},a){let A=v(l);if(A.lte(0))return"0";let u=A.times(r),c=A.minus(u),g=ze(c,i),f=v(a.tokenBalance).plus(g),y=ve(f,a.aValue,a.dValue);return v(a.vUsdBalance).minus(y).round(0,v.roundDown).toFixed()}function bt(l,{feeShare:r,decimals:i},a){let A=v(l);if(A.lte(0))return v(0).toFixed();let u=A.plus(a.vUsdBalance),c=ve(u,a.aValue,a.dValue),g=pe(v(a.tokenBalance).minus(c),i),f=v(g).times(r);return v(g).minus(f).round(0,v.roundDown).toFixed()}function ni(l,r){let i=v(l);if(i.lte(0))return r;let a=i.plus(r.vUsdBalance),A=ve(a,r.aValue,r.dValue);return{aValue:r.aValue,dValue:r.dValue,tokenBalance:A.toFixed(0),vUsdBalance:a.toFixed(0)}}function ii(l,{feeShare:r,decimals:i},a){if(v(l).lte(0))return v(0);let A=v(a.vUsdBalance).minus(l);if(A.lte(0))throw new Fe;let u=ve(A,a.aValue,a.dValue),c=v(u).minus(a.tokenBalance),g=pe(c,i),f=v(r).div(v(1).minus(r)),y=v(g).times(f).round(0,v.roundUp);return v(g).plus(y).round(0,v.roundDown)}function ri(l,{feeShare:r,decimals:i},a){if(v(l).lte(0))return v(0);let A=v(r).div(v(1).minus(r)),u=v(l).times(A).round(0,v.roundUp),c=v(l).plus(u),g=ze(c,i),f=v(a.tokenBalance).minus(g);if(f.lte(0))throw new Fe;let y=ve(f,a.aValue,a.dValue);return v(y).minus(a.vUsdBalance).round(0,v.roundDown)}function ve(l,r,i){let a=v(4).times(r).times(v(i).minus(l)).minus(i),A=v(i).pow(3),u=a.pow(2),c=v(l).times(v(l).times(u).plus(v(4).times(r).times(A))).sqrt().round(0,v.roundDown),g=v(8).times(r).times(l),f=a.times(l).plus(c).div(g).round(0,v.roundDown);return f.eq(0)?v(0):f.plus(1)}function ai(l,r,i,a){let A=new Cn(l),u=new Cn(i),c=new Cn(r);return A.mul(u).shrn(a).sub(c).toString()}function si(l){return v(l).gt(0)?`${Number(v(l).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function oi(l,r,i){let a=v(r).times(i),A=v(r).plus(i),u=v(8).times(l).times(a).times(A),c=a.times(v(16).times(l).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),y=g.plus(f),b=v(y).sqrt(),T=v(Math.cbrt(+u.plus(b).toFixed())),B=v(Math.cbrt(+u.minus(b).toFixed()));return T.plus(B).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 Ge=(a=>(a[a.ALLBRIDGE=1]="ALLBRIDGE",a[a.WORMHOLE=2]="WORMHOLE",a[a.CCTP=3]="CCTP",a))(Ge||{});function Ai(l){return Object.entries(l).reduce((r,i)=>{let a=i[0],A=i[1],u=br(a,A);return u&&(r[a]=u),r},{})}function ci(l){let r={};for(let[i,a]of Object.entries(l)){let A=i;for(let u of a.tokens){let c=it({chainSymbol:A,poolAddress:u.poolAddress}),g=ge(u.poolInfo);r[c]={...u.poolInfo,imbalance:g}}}return r}function gr(l,r){let{name:i,...a}=l,{poolInfo:A,...u}=r;return{...u,...a,chainName:i}}function fr(l){switch(l){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function hr(l){return Object.entries(l).reduce((r,[i,a])=>(r[i]=yr(a),r),{})}function yr(l){return Object.entries(l).reduce((r,[i,a])=>{let A=fr(i);return A&&(r[A]=a),r},{})}function br(l,r){let i=V.getChainsProperties()[l];if(!i)return null;let a={...i,allbridgeChainId:r.chainId,bridgeAddress:r.bridgeAddress,transferTime:hr(r.transferTime),txCostAmount:r.txCostAmount,confirmations:r.confirmations};return{...a,tokens:r.tokens.map(A=>gr(a,A))}}function it(l){return l.chainSymbol+"_"+l.poolAddress}function ui(l){let r=[];for(let[i,a]of Object.entries(l)){let A=i;for(let u of a.tokens)r.push({chainSymbol:A,poolAddress:u.poolAddress})}return r}function mi(l){let r={};for(let[i,a]of Object.entries(l)){let A=i;for(let[u,c]of Object.entries(a))c.imbalance=ge(c),r[it({chainSymbol:A,poolAddress:u})]=c}return r}var Xt=class{constructor(r){this.api=Tr.create({baseURL:r.coreApiUrl,headers:{Accept:"application/json",...r.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ti},params:r.coreApiQueryParams})}async getTokenInfo(){let{data:r}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:Ai(r),poolInfoMap:ci(r)}}async getPendingInfo(){let{data:r}=await this.api.get("/pending-info");return r}async getGasBalance(r,i){let{data:a}=await this.api.get(`/check/${r}/${i}`);return a}async getTransferStatus(r,i){let{data:a}=await this.api.get(`/chain/${r}/${i}`);return a}async getReceiveTransactionCost(r){let{data:i}=await this.api.post("/receive-fee",r,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(r){let i=r instanceof Array?r:[r],{data:a}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return mi(a)}};import Lt from"timed-cache";var kn=20*1e3,Pr=55*1e3,Yt=class{constructor(r){this.apiClient=r;this.tokenInfoCache=new Lt({defaultTtl:Pr}),this.receivedTransactionCache=new Lt({defaultTtl:kn}),this.pendingInfoCache=new Lt({defaultTtl:kn}),this.gasBalanceCache=new Lt({defaultTtl:kn})}getTokenInfo(){let r="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(r);if(i)return i;let a=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(r,a),a}async getGasBalance(r,i){let a=`GAS_BALANCE_${r}_${i}`,A=this.gasBalanceCache.get(a);if(A)return A;let u=this.apiClient.getGasBalance(r,i);return this.gasBalanceCache.put(a,u),u}async getPendingInfo(){let r="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(r);if(i)return i;let a=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(r,a),a}async getReceiveTransactionCost(r){let i=`RECEIVE_TX_COST_${r.sourceChainId}_${r.destinationChainId}_${r.messenger}`,a=this.receivedTransactionCache.get(i);if(a)return a;let A=await this.apiClient.getReceiveTransactionCost(r);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(r,i){return this.apiClient.getTransferStatus(r,i)}async getPoolInfoMap(r){return this.apiClient.getPoolInfoMap(r)}};var Jt=class{constructor(r){this.apiClient=r}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let r=await this.getChainDetailsMap();return Object.values(r).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(r,i){return this.apiClient.getGasBalance(r,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(r,i){return await this.apiClient.getTransferStatus(r,i)}async getReceiveTransactionCost(r){return await this.apiClient.getReceiveTransactionCost(r)}async getPoolInfoMap(r){return await this.apiClient.getPoolInfoMap(r)}};var Kt=class{constructor(r,i){this.client=r;this.isStaging=i.coreApiQueryParams?.staging==="true"}async getChainDetailsMap(r){let i=await this.client.getChainDetailsMap(),a={};for(let A in i){let u=i[A];u&&(a[A]={...u,tokens:li(u.tokens,r,this.isStaging)})}return a}async tokens(r){return li(await this.client.tokens(),r,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(r,i){return this.client.getGasBalance(r,i)}async getTransferStatus(r,i){return await this.client.getTransferStatus(r,i)}async getReceiveTransactionCost(r){return await this.client.getReceiveTransactionCost(r)}cachePut(r,i){return this.client.cachePut(r,i)}getPoolInfoByKey(r){return this.client.getPoolInfoByKey(r)}refreshPoolInfo(r){return this.client.refreshPoolInfo(r)}};function li(l,r,i){return l.filter(a=>i?!0:a.flags[r]).map(wr)}function wr(l){let{flags:r,...i}=l;return i}import Sr from"timed-cache";var Br=55*1e3,Qt=class{constructor(r){this.client=r;this.poolInfoCache=new Mn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(r,i){return this.client.getTransferStatus(r,i)}getReceiveTransactionCost(r){return this.client.getReceiveTransactionCost(r)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(r,i){return this.client.getGasBalance(r,i)}async getPoolInfoByKey(r){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(r);if(i)return i;{let a=await this.client.getPoolInfoMap(r);this.poolInfoCache.putAll(a);let A=a[it(r)];if(A)return A;throw new Z("Cannot find pool info for "+r.poolAddress+" on chain "+r.chainSymbol)}}async refreshPoolInfo(r){let i;if(r)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(r);else{let a=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(ui(a.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(r,i){this.poolInfoCache.put(it(r),i)}},Mn=class{constructor(){this.cache=new Sr({defaultTtl:Br})}putAll(r){for(let[i,a]of Object.entries(r))this.cache.put(i,a)}putAllIfNotExists(r){for(let[i,a]of Object.entries(r))this.cache.get(i)||this.cache.put(i,a)}put(r,i){this.cache.put(r,i)}get(r){let i=it(r);return this.cache.get(i)}};import na from"tronweb";import ia from"web3";import{Big as di}from"big.js";async function te(l,r){return await l.getPoolInfoByKey({chainSymbol:r.chainSymbol,poolAddress:r.poolAddress})}function L(l){if(di(l).lte(0))throw new Et("Amount must be greater than zero")}function J(l,r,i){let a=di(r).toFixed(),[A,u]=a.split(".");if(u&&u.length>i)throw new Nt(l,u.length,i)}async function Ht(l,r,i){return await Promise.race([l,new Promise((a,A)=>{setTimeout(()=>A(new ht(r)),i)})])}async function vn(l,r,i,a){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(),r,a)}catch{if(++A>=i)throw new ht(r)}}async function pi(l,r,i,a=1.5,A=!1){let u=[],c=0,g=await l();if(u.push(g),!r(g))return u;let f=new Date(Date.now()+i*1e3).valueOf(),y=1e3,b=y;for(;Date.now()<f;){let T=u[u.length-1];if(T===void 0||!r(T))break;c++,A&&console.info(`Waiting ${y}ms before trying again (bringing the total wait time to ${b}ms so far, of total ${i*1e3}ms)`),await new Promise(S=>setTimeout(S,y)),y=y*a,new Date(Date.now()+y).valueOf()>f&&(y=f-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${y}ms`)),b=y+b;let B=await l(T);u.push(B),A&&r(B)&&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 Ur}from"big.js";var gi=[{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 fi=[{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 ae from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(l,r){return ae.utils.token.associatedAddress({mint:r,owner:l})}async function Ve(l){let[r]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("config")],l);return r}async function hi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("lock"),Uint8Array.from(l)],r);return i}async function Tt(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([l])],r);return i}async function rt(l){let r=await Ve(l),[i]=await ce.findProgramAddress([r.toBuffer()],l);return i}async function yi(l,r){let[i]=await ce.findProgramAddress([l.toBuffer()],r);return i}async function at(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("token"),l.toBytes()],r);return i}async function bi(l,r,i){let[a]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("other_bridge_token"),w.from([l]),r],i);return a}async function xn(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([l])],r);return i}async function Wn(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([l])],r);return i}async function Ti(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("sent_message"),l],r);return i}async function Fn(l,r,i){let[a]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("user_deposit"),r.toBytes(),l.toBytes()],i);return a}async function Pi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("cctp_bridge"),l.toBytes()],r);return i}async function wi(l,r){let[i]=await ce.findProgramAddress([ae.utils.bytes.utf8.encode("token"),l.toBytes()],r);return i}function Si(l,r){let[i]=ce.findProgramAddressSync([ae.utils.bytes.utf8.encode("lock"),r.toBuffer()],l);return i}function Bi(l,r,i,a){let A=je("message_transmitter",i),u=je("token_messenger",a),c=je("__event_authority",a),g=je("token_minter",a),f=je("local_token",a,[r]),y=je("remote_token_messenger",a,[l.toString()]),b=je("sender_authority",a);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:y,authorityPda:b}}function je(l,r,i=[]){let a=[w.from(ae.utils.bytes.utf8.encode(l))];for(let u of i)typeof u=="string"?a.push(w.from(ae.utils.bytes.utf8.encode(u))):Array.isArray(u)?a.push(w.from(u)):w.isBuffer(u)?a.push(u):a.push(u.toBuffer());return ce.findProgramAddressSync(a,r)[0]}import{AnchorProvider as Rr}from"@project-serum/anchor";import{Connection as kr,PublicKey as Mr}from"@solana/web3.js";function Oe(l,r){let i=new kr(l,"confirmed"),a=new Mr(r);return new Rr(i,{publicKey:a},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as vr}from"@solana/web3.js";import{Address as xr}from"@stellar/stellar-sdk";import{Big as De}from"big.js";import Ci from"randombytes";import*as Ii from"tronweb";function Ze(l,r,i){let a;switch(r){case"EVM":{a=Wr(l);break}case"SOLANA":{a=new vr(l).toBuffer();break}case"TRX":{a=Fr(l);break}case"SRB":{a=new xr(l).toBuffer();break}}switch(i){case"EVM":return"0x"+a.toString("hex");case"SOLANA":return Array.from(a);case"TRX":return a.toJSON().data;case"SRB":return a.toJSON().data}}function Ri(l){return w.from(l.replace(/^0x/i,""),"hex")}function Wr(l){let i=Ri(l);return w.concat([w.alloc(32-i.length,0),i],32)}function Fr(l){let r=Pt(l),i=Ri(r);return Gr(i,32)}function Pt(l){return w.from(Ii.utils.crypto.decodeBase58Address(l)).toString("hex").replace(/^41/,"0x")}function Gr(l,r){if(l.length>=r)return l;let i=w.alloc(r,0);return l.copy(i,r-l.length),i}function st(){return Ci(32)}function Gn(){let l=Ci(32).readBigInt64BE();return l<0?l*-1n:l}function Xe(l,r){let i={},a=r.sourceToken;return i.amount=O(r.amount,a.decimals).toFixed(),i.contractAddress=a.bridgeAddress,i.fromAccountAddress=r.fromAccountAddress,i.fromTokenAddress=Ze(a.tokenAddress,l,l),i.toAccountAddress=r.toAccountAddress,i.toTokenAddress=Ze(r.destinationToken.tokenAddress,l,l),i.minimumReceiveAmount=r.minimumReceiveAmount?O(r.minimumReceiveAmount,r.destinationToken.decimals).toFixed():"0",i}async function Ue(l,r,i){let a={};a.fromChainId=r.sourceToken.allbridgeChainId,a.fromChainSymbol=r.sourceToken.chainSymbol;let A=V.getChainProperty(r.destinationToken.chainSymbol).chainType;a.fromTokenAddress=r.sourceToken.tokenAddress,a.toChainId=r.destinationToken.allbridgeChainId,a.toTokenAddress=r.destinationToken.tokenAddress,r.gasFeePaymentMethod==="stablecoin"?a.gasFeePaymentMethod="stablecoin":a.gasFeePaymentMethod="native";let u=r.sourceToken;if(r.messenger===3){if(!u.cctpAddress||!r.destinationToken.cctpAddress)throw new we("Such route does not support CCTP protocol");a.contractAddress=u.cctpAddress}else a.contractAddress=u.bridgeAddress;a.messenger=r.messenger,a.fromAccountAddress=r.fromAccountAddress,a.amount=O(r.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=r;if(!c){let T=(await Dn(a.fromChainId,r.sourceToken.chainType,a.toChainId,u.decimals,a.messenger,i))[a.gasFeePaymentMethod];if(!T)throw new gt;c=T.int,g="int"}if(g=="float")switch(a.gasFeePaymentMethod){case"native":a.fee=O(c,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":a.fee=O(c,u.decimals).toFixed(0);break}else a.fee=c;let{extraGas:f,extraGasFormat:y}=r;if(f&&+f>0){if(y=="float")switch(a.gasFeePaymentMethod){case"native":a.extraGas=O(f,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":a.extraGas=O(f,u.decimals).toFixed(0);break}else a.extraGas=f;await Zr(a.extraGas,a.gasFeePaymentMethod,u,r.destinationToken,i)}return a.fromTokenAddress=Ze(a.fromTokenAddress,l,l),a.toAccountAddress=Ze(r.toAccountAddress,A,l),a.toTokenAddress=Ze(a.toTokenAddress,A,l),a.gasFeePaymentMethod=="stablecoin"&&Dr(a.amount,u.decimals,a.fee,a.extraGas),a}function Dr(l,r,i,a){let A=De(l).minus(i).minus(a??0);if(A.lte(0))throw new tt(`Amount not enough to pay fee, ${N(De(A).minus(1).neg(),r).toFixed()} stables is missing`)}async function Dn(l,r,i,a,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:l,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:N(c.fee,V.getChainDecimalsByType(r)).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ne(new De(c.fee).mul(c.sourceNativeTokenPrice),V.getChainDecimalsByType(r),a).toFixed(0,De.roundUp);g.stablecoin={int:f,float:N(f,a).toFixed()}}return g}async function Zr(l,r,i,a,A){let c=(await Zn(i,a,A)).extraGasMax[r];if(!c)throw new gt(`Impossible to pay extra gas by '${r}' payment method`);let g=c.int;if(De(l).gt(g))throw new _t(`Extra gas ${l} in int format, exceeded limit ${g} for '${r}' payment method`)}async function Zn(l,r,i){let a={},A=await i.getReceiveTransactionCost({sourceChainId:l.allbridgeChainId,destinationChainId:r.allbridgeChainId,messenger:1}),u=r.txCostAmount.maxAmount,c=N(u,V.getChainDecimalsByType(r.chainType)).toFixed(),g=De(c).div(A.exchangeRate).toFixed(V.getChainDecimalsByType(l.chainType),De.roundDown),f=O(g,V.getChainDecimalsByType(l.chainType)).toFixed(0);if(a.native={int:f,float:g},A.sourceNativeTokenPrice){let y=De(g).mul(A.sourceNativeTokenPrice).toFixed(l.decimals,De.roundDown);a.stablecoin={int:O(y,l.decimals).toFixed(0),float:y}}return{extraGasMax:a,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:r.txCostAmount.swap,float:N(r.txCostAmount.swap,V.getChainDecimalsByType(r.chainType)).toFixed()},transfer:{int:r.txCostAmount.transfer,float:N(r.txCostAmount.transfer,V.getChainDecimalsByType(r.chainType)).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function ki(l){return l.sourceToken.chainSymbol!==l.destinationToken.chainSymbol}var wt=class extends Ce{constructor(i,a,A){super();this.web3=i;this.api=a;this.nodeRpcUrlsConfig=A;this.chainType="EVM"}async send(i){let a=await this.buildRawTransactionSend(i);return this.sendRawTransaction(a)}async buildRawTransactionSwap(i){let a=Xe(this.chainType,i);return await this.buildRawTransactionSwapFromParams(a)}async buildRawTransactionSwapFromParams(i){let{amount:a,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:y}=i,T=this.getBridgeContract(A).methods.swap(a,c,f,g,y);return Promise.resolve({from:u,to:A,data:T.encodeABI()})}async buildRawTransactionSend(i){let a=await Ue(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:y,toTokenAddress:b,messenger:T,fee:B,gasFeePaymentMethod:S,extraGas:C}=a,M="0x"+st().toString("hex"),I,W,x=B;if(C&&(x=Ur(x).plus(C).toFixed()),T===3){let G=await this.buildRawTransactionCctpSend(i,a,x);I=G.sendMethod,W=G.value}else{let G=this.getBridgeContract(u);S==="stablecoin"?(I=G.methods.swapAndBridge(g,A,y,f,b,M,T,x),W="0"):(I=G.methods.swapAndBridge(g,A,y,f,b,M,T,0),W=x)}return Promise.resolve({from:c,to:u,value:W,data:I.encodeABI()})}async buildRawTransactionCctpSend(i,a,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:y}=a,b=this.getContract(fi,c),T,B;if(i.destinationToken.chainType==="SOLANA"){let S,C=new Mi(i.toAccountAddress),M=new Mi(i.destinationToken.tokenAddress),I=await Be(C,M),W=Oe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);jt.setProvider(W);let x=await jt.Spl.token(W).account.token.fetchNullable(I);if(x?.authority.equals(C))S=Ze(I.toBase58(),"SOLANA",this.chainType);else{let G=await W.connection.getTokenAccountsByOwner(C,{mint:M});if(G.value.length===0&&!x)S=Ze(I.toBase58(),"SOLANA",this.chainType);else if(G.value.length>0){let _=G.value[0];if(!_?.pubkey)throw new Z("First token account or its public key is undefined");S=Ze(_.pubkey.toBase58(),"SOLANA",this.chainType)}else throw new Z("Associated account has wrong owner")}y==="stablecoin"?(T=b.methods.bridgeWithWalletAddress(u,S,f,g,A),B="0"):(T=b.methods.bridgeWithWalletAddress(u,S,f,g,0),B=A)}else y==="stablecoin"?(T=b.methods.bridge(u,f,g,A),B="0"):(T=b.methods.bridge(u,f,g,0),B=A);return{sendMethod:T,value:B}}async sendRawTransaction(i){let a=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:a,...A});return{txId:u}}getContract(i,a){return new this.web3.eth.Contract(i,a)}getBridgeContract(i){return this.getContract(gi,i)}};var qt=class{constructor(r,i,a,A){this.api=r;this.nodeRpcUrlsConfig=i;this.params=a;this.tokenService=A}async approve(r,i){let a,A;i?(a=r,A=i):A=r;let u=St(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},a)}async send(r,i){return L(r.amount),J("amount",r.amount,r.sourceToken.decimals),ki(r)?$t(r.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(r):$t(r.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(r)}};import{BN as ut,Program as _n,Spl as Kr,web3 as Le}from"@project-serum/anchor";import{Keypair as Vi,PublicKey as K,SystemProgram as Qr}from"@solana/web3.js";import{Big as xe}from"big.js";var Bt={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 vi={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 Er}from"@project-serum/anchor";import _r from"big.js";import en from"web3";async function At(l,r){return await Er.token(r).account.token.fetch(l)}async function xi(l,r,i){let a=await r.account.pool.fetch(i),A=a.decimals,u=_r(a.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:a.a.toString(),dValue:a.d.toString(),totalLpAmount:a.totalLpAmount.toString(),tokenBalance:a.tokenBalance.toString(),vUsdBalance:a.vUsdBalance.toString(),accRewardPerShareP:a.accRewardPerShareP.toString()};return Me(l,{decimals:A,feeShare:u},c)}function Wi(l){let r=l.amount,i="0x"+l.recipient.toString("hex"),a=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:r},{t:"bytes32",v:i},{t:"uint256",v:a},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!y)throw new Z("message cannot be undefined");let b=en.utils.keccak256(w.from(y.replace("0x",""),"hex")),T=w.from(b.replace("0x",""),"hex");T[0]=a,T[1]=A;let B=en.utils.encodePacked({t:"bytes32",v:"0x"+T.toString("hex")},{t:"bytes32",v:f});if(!B)throw new nt("messageWithSigner cannot be undefined");let S=en.utils.keccak256(w.from(B.replace("0x",""),"hex")),C=w.from(S.replace("0x",""),"hex");return C[0]=T[0],C[1]=T[1],C}import{ComputeBudgetInstruction as Gi,ComputeBudgetProgram as tn,Connection as Di,TransactionMessage as Nr}from"@solana/web3.js";import{Big as Vr}from"big.js";import{AddressLookupTableAccount as Fi}from"@solana/web3.js";async function qe(l,r){return await Promise.all(l.message.addressTableLookups.map(async i=>new Fi({key:i.accountKey,state:Fi.deserialize(await r.getAccountInfo(i.accountKey).then(a=>{if(!a)throw new Z("Cannot get AccountInfo");return a.data}))})))}var Un="AUTO";async function ct(l,r,i){let a=new Di(i,"confirmed"),A=(await a.simulateTransaction(l)).value.unitsConsumed;await Ui(l.instructions,A,r,a)}async function Zi(l,r,i){let a=new Di(i,"confirmed"),A=await qe(l,a),u=Nr.decompile(l.message,{addressLookupTableAccounts:A});if(l.serialize().length>1232)throw new Ot;await Ui(u.instructions,769230,r,a),l.message=u.compileToV0Message(A)}async function Ui(l,r,i,a){if(r>0){let A=Or(r,l);if(i?.solana){let u=i.solana;if(u===Un)await En(l,a);else if("pricePerUnitInMicroLamports"in u)await En(l,a,u.pricePerUnitInMicroLamports);else{let c=Vr(u.extraFeeInLamports).div(A).mul(yt(6)).toFixed(0);await En(l,a,c)}}}}function Or(l,r){let i=r.findIndex(u=>u.programId.equals(tn.programId)&&Gi.decodeInstructionType(u)==="SetComputeUnitLimit"),a=Number((l*1.3).toFixed(0)),A=tn.setComputeUnitLimit({units:a});return i>=0?r[i]=A:r.push(A),a.toString()}async function En(l,r,i){let a=l.findIndex(c=>c.programId.equals(tn.programId)&&Gi.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await Xr(r)),u=tn.setComputeUnitPrice({microLamports:A});return a>=0?l[a]=u:l.push(u),A.toString()}async function Xr(l){let r=await l.getRecentPrioritizationFees(),i=0;for(let a of r)i+=a.prioritizationFee;return(i/r.length).toFixed(0)}import{NATIVE_MINT as Lr}from"@solana/spl-token";import{Connection as Yr,TransactionMessage as Ei,VersionedTransaction as Jr}from"@solana/web3.js";import _i,{AxiosError as Ni}from"axios";var nn=class{constructor(r,i){this.connection=new Yr(r),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(r,i,a,A){let u;try{let T=A?"ExactOut":"ExactIn";u=await _i.get(`${this.jupiterUrl}/quote?inputMint=${i}
|
|
2
2
|
&outputMint=${Lr.toString()}
|
|
3
3
|
&amount=${a}
|
|
4
4
|
&swapMode=${T}
|