@allbridge/bridge-core-sdk 3.20.0-alpha.1 → 3.20.0-alpha.2
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/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +3 -1
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var pt={},qn=!1;function la(){if(qn)return pt;qn=!0,pt.byteLength=g,pt.toByteArray=h,pt.fromByteArray=B;for(var m=[],a=[],i=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=r.length;A<u;++A)m[A]=r[A],a[r.charCodeAt(A)]=A;a[45]=62,a[95]=63;function c(w){var C=w.length;if(C%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=w.indexOf("=");M===-1&&(M=C);var I=M===C?0:4-M%4;return[M,I]}function g(w){var C=c(w),M=C[0],I=C[1];return(M+I)*3/4-I}function f(w,C,M){return(C+M)*3/4-M}function h(w){var C,M=c(w),I=M[0],W=M[1],x=new i(f(w,I,W)),F=0,Z=W>0?I-4:I,E;for(E=0;E<Z;E+=4)C=a[w.charCodeAt(E)]<<18|a[w.charCodeAt(E+1)]<<12|a[w.charCodeAt(E+2)]<<6|a[w.charCodeAt(E+3)],x[F++]=C>>16&255,x[F++]=C>>8&255,x[F++]=C&255;return W===2&&(C=a[w.charCodeAt(E)]<<2|a[w.charCodeAt(E+1)]>>4,x[F++]=C&255),W===1&&(C=a[w.charCodeAt(E)]<<10|a[w.charCodeAt(E+1)]<<4|a[w.charCodeAt(E+2)]>>2,x[F++]=C>>8&255,x[F++]=C&255),x}function b(w){return m[w>>18&63]+m[w>>12&63]+m[w>>6&63]+m[w&63]}function T(w,C,M){for(var I,W=[],x=C;x<M;x+=3)I=(w[x]<<16&16711680)+(w[x+1]<<8&65280)+(w[x+2]&255),W.push(b(I));return W.join("")}function B(w){for(var C,M=w.length,I=M%3,W=[],x=16383,F=0,Z=M-I;F<Z;F+=x)W.push(T(w,F,F+x>Z?Z:F+x));return I===1?(C=w[M-1],W.push(m[C>>2]+m[C<<4&63]+"==")):I===2&&(C=(w[M-2]<<8)+w[M-1],W.push(m[C>>10]+m[C>>4&63]+m[C<<2&63]+"=")),W.join("")}return pt}var Dt={},$n=!1;function ma(){if($n)return Dt;$n=!0;return Dt.read=function(m,a,i,r,A){var u,c,g=A*8-r-1,f=(1<<g)-1,h=f>>1,b=-7,T=i?A-1:0,B=i?-1:1,w=m[a+T];for(T+=B,u=w&(1<<-b)-1,w>>=-b,b+=g;b>0;u=u*256+m[a+T],T+=B,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=r;b>0;c=c*256+m[a+T],T+=B,b-=8);if(u===0)u=1-h;else{if(u===f)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,r),u=u-h}return(w?-1:1)*c*Math.pow(2,u-r)},Dt.write=function(m,a,i,r,A,u){var c,g,f,h=u*8-A-1,b=(1<<h)-1,T=b>>1,B=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:u-1,C=r?1:-1,M=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(g=isNaN(a)?1:0,c=b):(c=Math.floor(Math.log(a)/Math.LN2),a*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+T>=1?a+=B/f:a+=B*Math.pow(2,1-T),a*f>=2&&(c++,f/=2),c+T>=b?(g=0,c=b):c+T>=1?(g=(a*f-1)*Math.pow(2,A),c=c+T):(g=a*Math.pow(2,T-1)*Math.pow(2,A),c=0));A>=8;m[i+w]=g&255,w+=C,g/=256,A-=8);for(c=c<<A|g,h+=A;h>0;m[i+w]=c&255,w+=C,c/=256,h-=8);m[i+w-C]|=M*128},Dt}var He={},ei=!1;function ti(){if(ei)return He;ei=!0;let m=la(),a=ma(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;He.Buffer=c,He.SlowBuffer=W,He.INSPECT_MAX_BYTES=50;let r=2147483647;He.kMaxLength=r,c.TYPED_ARRAY_SUPPORT=A(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function A(){try{let l=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(l,s),l.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(l){if(l>r)throw new RangeError('The value "'+l+'" is invalid for option "size"');let s=new Uint8Array(l);return Object.setPrototypeOf(s,c.prototype),s}function c(l,s,o){if(typeof l=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return b(l)}return g(l,s,o)}c.poolSize=8192;function g(l,s,o){if(typeof l=="string")return T(l,s);if(ArrayBuffer.isView(l))return w(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(Me(l,ArrayBuffer)||l&&Me(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Me(l,SharedArrayBuffer)||l&&Me(l.buffer,SharedArrayBuffer)))return C(l,s,o);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=l.valueOf&&l.valueOf();if(d!=null&&d!==l)return c.from(d,s,o);let p=M(l);if(p)return p;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return c.from(l[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 l)}c.from=function(l,s,o){return g(l,s,o)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function f(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function h(l,s,o){return f(l),l<=0?u(l):s!==void 0?typeof o=="string"?u(l).fill(s,o):u(l).fill(s):u(l)}c.alloc=function(l,s,o){return h(l,s,o)};function b(l){return f(l),u(l<0?0:I(l)|0)}c.allocUnsafe=function(l){return b(l)},c.allocUnsafeSlow=function(l){return b(l)};function T(l,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=x(l,s)|0,d=u(o),p=d.write(l,s);return p!==o&&(d=d.slice(0,p)),d}function B(l){let s=l.length<0?0:I(l.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=l[d]&255;return o}function w(l){if(Me(l,Uint8Array)){let s=new Uint8Array(l);return C(s.buffer,s.byteOffset,s.byteLength)}return B(l)}function C(l,s,o){if(s<0||l.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(l.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(l):o===void 0?d=new Uint8Array(l,s):d=new Uint8Array(l,s,o),Object.setPrototypeOf(d,c.prototype),d}function M(l){if(c.isBuffer(l)){let s=I(l.length)|0,o=u(s);return o.length===0||l.copy(o,0,0,s),o}if(l.length!==void 0)return typeof l.length!="number"||Rn(l.length)?u(0):B(l);if(l.type==="Buffer"&&Array.isArray(l.data))return B(l.data)}function I(l){if(l>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return l|0}function W(l){return+l!=l&&(l=0),c.alloc(+l)}c.isBuffer=function(s){return s!=null&&s._isBuffer===!0&&s!==c.prototype},c.compare=function(s,o){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),Me(o,Uint8Array)&&(o=c.from(o,o.offset,o.byteLength)),!c.isBuffer(s)||!c.isBuffer(o))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(s===o)return 0;let d=s.length,p=o.length;for(let y=0,P=Math.min(d,p);y<P;++y)if(s[y]!==o[y]){d=s[y],p=o[y];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),y=0;for(d=0;d<s.length;++d){let P=s[d];if(Me(P,Uint8Array))y+P.length>p.length?(c.isBuffer(P)||(P=c.from(P)),P.copy(p,y)):Uint8Array.prototype.set.call(p,P,y);else if(c.isBuffer(P))P.copy(p,y);else throw new TypeError('"list" argument must be an Array of Buffers');y+=P.length}return p};function x(l,s){if(c.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||Me(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);let o=l.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 In(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return jn(l).length;default:if(p)return d?-1:In(l).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=x;function F(l,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(l||(l="utf8");;)switch(l){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 le(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: "+l);l=(l+"").toLowerCase(),d=!0}}c.prototype._isBuffer=!0;function Z(l,s,o){let d=l[s];l[s]=l[o],l[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)Z(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)Z(this,o,o+3),Z(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)Z(this,o,o+7),Z(this,o+1,o+6),Z(this,o+2,o+5),Z(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):F.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(s){if(!c.isBuffer(s))throw new TypeError("Argument must be a Buffer");return this===s?!0:c.compare(this,s)===0},c.prototype.inspect=function(){let s="",o=He.INSPECT_MAX_BYTES;return s=this.toString("hex",0,o).replace(/(.{2})/g,"$1 ").trim(),this.length>o&&(s+=" ... "),"<Buffer "+s+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(s,o,d,p,y){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),!c.isBuffer(s))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof s);if(o===void 0&&(o=0),d===void 0&&(d=s?s.length:0),p===void 0&&(p=0),y===void 0&&(y=this.length),o<0||d>s.length||p<0||y>this.length)throw new RangeError("out of range index");if(p>=y&&o>=d)return 0;if(p>=y)return-1;if(o>=d)return 1;if(o>>>=0,d>>>=0,p>>>=0,y>>>=0,this===s)return 0;let P=y-p,U=d-o,Q=Math.min(P,U),Y=this.slice(p,y),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 E(l,s,o,d,p){if(l.length===0)return-1;if(typeof o=="string"?(d=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Rn(o)&&(o=p?0:l.length-1),o<0&&(o=l.length+o),o>=l.length){if(p)return-1;o=l.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:_(l,s,o,d,p);if(typeof s=="number")return s=s&255,typeof Uint8Array.prototype.indexOf=="function"?p?Uint8Array.prototype.indexOf.call(l,s,o):Uint8Array.prototype.lastIndexOf.call(l,s,o):_(l,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function _(l,s,o,d,p){let y=1,P=l.length,U=s.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(l.length<2||s.length<2)return-1;y=2,P/=2,U/=2,o/=2}function Q(H,X){return y===1?H[X]:H.readUInt16BE(X*y)}let Y;if(p){let H=-1;for(Y=o;Y<P;Y++)if(Q(l,Y)===Q(s,H===-1?0:Y-H)){if(H===-1&&(H=Y),Y-H+1===U)return H*y}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(l,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 E(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return E(this,s,o,d,!1)};function se(l,s,o,d){o=Number(o)||0;let p=l.length-o;d?(d=Number(d),d>p&&(d=p)):d=p;let y=s.length;d>y/2&&(d=y/2);let P;for(P=0;P<d;++P){let U=parseInt(s.substr(P*2,2),16);if(Rn(U))return P;l[o+P]=U}return P}function z(l,s,o,d){return Et(In(s,l.length-o),l,o,d)}function he(l,s,o,d){return Et(oa(s),l,o,d)}function ye(l,s,o,d){return Et(jn(s),l,o,d)}function Pe(l,s,o,d){return Et(Aa(s,l.length-o),l,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 y=this.length-o;if((d===void 0||d>y)&&(d=y),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 le(l,s,o){return s===0&&o===l.length?m.fromByteArray(l):m.fromByteArray(l.slice(s,o))}function ne(l,s,o){o=Math.min(l.length,o);let d=[],p=s;for(;p<o;){let y=l[p],P=null,U=y>239?4:y>223?3:y>191?2:1;if(p+U<=o){let Q,Y,H,X;switch(U){case 1:y<128&&(P=y);break;case 2:Q=l[p+1],(Q&192)===128&&(X=(y&31)<<6|Q&63,X>127&&(P=X));break;case 3:Q=l[p+1],Y=l[p+2],(Q&192)===128&&(Y&192)===128&&(X=(y&15)<<12|(Q&63)<<6|Y&63,X>2047&&(X<55296||X>57343)&&(P=X));break;case 4:Q=l[p+1],Y=l[p+2],H=l[p+3],(Q&192)===128&&(Y&192)===128&&(H&192)===128&&(X=(y&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 me(d)}let oe=4096;function me(l){let s=l.length;if(s<=oe)return String.fromCharCode.apply(String,l);let o="",d=0;for(;d<s;)o+=String.fromCharCode.apply(String,l.slice(d,d+=oe));return o}function Ae(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]&127);return d}function be(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]);return d}function Te(l,s,o){let d=l.length;(!s||s<0)&&(s=0),(!o||o<0||o>d)&&(o=d);let p="";for(let y=s;y<o;++y)p+=ca[l[y]];return p}function de(l,s,o){let d=l.slice(s,o),p="";for(let y=0;y<d.length-1;y+=2)p+=String.fromCharCode(d[y]+d[y+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 G(l,s,o){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+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||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s+--o],y=1;for(;o>0&&(y*=256);)p+=this[s+--o]*y;return p},c.prototype.readUint8=c.prototype.readUInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||G(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||G(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=Ne(function(s){s=s>>>0,tt(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,y=this[++s]+this[++s]*2**8+this[++s]*2**16+d*2**24;return BigInt(p)+(BigInt(y)<<BigInt(32))}),c.prototype.readBigUInt64BE=Ne(function(s){s=s>>>0,tt(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],y=this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d;return(BigInt(p)<<BigInt(32))+BigInt(y)}),c.prototype.readIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return y*=128,p>=y&&(p-=Math.pow(2,8*o)),p},c.prototype.readIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=o,y=1,P=this[s+--p];for(;p>0&&(y*=256);)P+=this[s+--p]*y;return y*=128,P>=y&&(P-=Math.pow(2,8*o)),P},c.prototype.readInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||G(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||G(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||G(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||G(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=Ne(function(s){s=s>>>0,tt(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=Ne(function(s){s=s>>>0,tt(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||G(s,4,this.length),a.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||G(s,4,this.length),a.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!1,52,8)};function $(l,s,o,d,p,y){if(!c.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>p||s<y)throw new RangeError('"value" argument is out of bounds');if(o+d>l.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 y=1,P=0;for(this[o]=s&255;++P<d&&(y*=256);)this[o+P]=s/y&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 y=d-1,P=1;for(this[o+y]=s&255;--y>=0&&(P*=256);)this[o+y]=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(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,o}function Yn(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o+7]=y,y=y>>8,l[o+6]=y,y=y>>8,l[o+5]=y,y=y>>8,l[o+4]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o+3]=P,P=P>>8,l[o+2]=P,P=P>>8,l[o+1]=P,P=P>>8,l[o]=P,o+8}c.prototype.writeBigUInt64LE=Ne(function(s,o=0){return Gt(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ne(function(s,o=0){return Yn(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 y=0,P=1,U=0;for(this[o]=s&255;++y<d&&(P*=256);)s<0&&U===0&&this[o+y-1]!==0&&(U=1),this[o+y]=(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 y=d-1,P=1,U=0;for(this[o+y]=s&255;--y>=0&&(P*=256);)s<0&&U===0&&this[o+y+1]!==0&&(U=1),this[o+y]=(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=Ne(function(s,o=0){return Gt(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ne(function(s,o=0){return Yn(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Jn(l,s,o,d,p,y){if(o+d>l.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function Kn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,4),a.write(l,s,o,d,23,4),o+4}c.prototype.writeFloatLE=function(s,o,d){return Kn(this,s,o,!0,d)},c.prototype.writeFloatBE=function(s,o,d){return Kn(this,s,o,!1,d)};function Qn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,8),a.write(l,s,o,d,52,8),o+8}c.prototype.writeDoubleLE=function(s,o,d){return Qn(this,s,o,!0,d)},c.prototype.writeDoubleBE=function(s,o,d){return Qn(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 y=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),y},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 y;if(typeof s=="number")for(y=o;y<d;++y)this[y]=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(y=0;y<d-o;++y)this[y+o]=P[y%U]}return this};let et={};function Cn(l,s,o){et[l]=class extends o{constructor(){super(),Object.defineProperty(this,"message",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(p){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:p,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}Cn("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Cn("ERR_INVALID_ARG_TYPE",function(l,s){return`The "${l}" argument must be of type number. Received type ${typeof s}`},TypeError),Cn("ERR_OUT_OF_RANGE",function(l,s,o){let d=`The value of "${l}" is out of range.`,p=o;return Number.isInteger(o)&&Math.abs(o)>2**32?p=Hn(String(o)):typeof o=="bigint"&&(p=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(p=Hn(p)),p+="n"),d+=` It must be ${s}. Received ${p}`,d},RangeError);function Hn(l){let s="",o=l.length,d=l[0]==="-"?1:0;for(;o>=d+4;o-=3)s=`_${l.slice(o-3,o)}${s}`;return`${l.slice(0,o)}${s}`}function aa(l,s,o){tt(s,"offset"),(l[s]===void 0||l[s+o]===void 0)&&dt(s,l.length-(o+1))}function zn(l,s,o,d,p,y){if(l>o||l<s){let P=typeof s=="bigint"?"n":"",U;throw s===0||s===BigInt(0)?U=`>= 0${P} and < 2${P} ** ${(y+1)*8}${P}`:U=`>= -(2${P} ** ${(y+1)*8-1}${P}) and < 2 ** ${(y+1)*8-1}${P}`,new et.ERR_OUT_OF_RANGE("value",U,l)}aa(d,p,y)}function tt(l,s){if(typeof l!="number")throw new et.ERR_INVALID_ARG_TYPE(s,"number",l)}function dt(l,s,o){throw Math.floor(l)!==l?(tt(l,o),new et.ERR_OUT_OF_RANGE("offset","an integer",l)):s<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${s}`,l)}let ra=/[^+/0-9A-Za-z-_]/g;function sa(l){if(l=l.split("=")[0],l=l.trim().replace(ra,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function In(l,s){s=s||1/0;let o,d=l.length,p=null,y=[];for(let P=0;P<d;++P){if(o=l.charCodeAt(P),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&y.push(239,191,189);continue}else if(P+1===d){(s-=3)>-1&&y.push(239,191,189);continue}p=o;continue}if(o<56320){(s-=3)>-1&&y.push(239,191,189),p=o;continue}o=(p-55296<<10|o-56320)+65536}else p&&(s-=3)>-1&&y.push(239,191,189);if(p=null,o<128){if((s-=1)<0)break;y.push(o)}else if(o<2048){if((s-=2)<0)break;y.push(o>>6|192,o&63|128)}else if(o<65536){if((s-=3)<0)break;y.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((s-=4)<0)break;y.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return y}function oa(l){let s=[];for(let o=0;o<l.length;++o)s.push(l.charCodeAt(o)&255);return s}function Aa(l,s){let o,d,p,y=[];for(let P=0;P<l.length&&!((s-=2)<0);++P)o=l.charCodeAt(P),d=o>>8,p=o%256,y.push(p),y.push(d);return y}function jn(l){return m.toByteArray(sa(l))}function Et(l,s,o,d){let p;for(p=0;p<d&&!(p+o>=s.length||p>=l.length);++p)s[p+o]=l[p];return p}function Me(l,s){return l instanceof s||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===s.name}function Rn(l){return l!==l}let ca=function(){let l="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]=l[o]+l[p]}return s}();function Ne(l){return typeof BigInt>"u"?ua:l}function ua(){throw new Error("BigInt not supported")}return He}var ze=ti();ze.Buffer;ze.SlowBuffer;ze.INSPECT_MAX_BYTES;ze.kMaxLength;var S=ze.Buffer,qr=ze.INSPECT_MAX_BYTES,$r=ze.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},ss={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},os={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{errorCode;constructor(a,i){super(i),this.errorCode=a}},D=class extends q{constructor(a){super("SdkError",a)}},Zt=class extends q{constructor(a){super("InvalidAmountError",a)}},nt=class extends q{constructor(a){super("AmountNotEnoughError",a)}},Fe=class extends q{constructor(a){super("InsufficientPoolLiquidityError",a)}},ie=class extends q{constructor(a){super("JupiterError",a)}},gt=class extends q{constructor(a){super("InvalidGasFeePaymentOptionError",a)}},ni=class extends q{constructor(a){super("InvalidMessengerOptionError",a)}},ue=class extends q{constructor(a){super("MethodNotSupportedError",a)}},ft=class extends q{constructor(a){super("VerifyTxError",a)}},it=class extends q{constructor(a){super("InvalidTxError",a)}},_t=class extends q{constructor(a){super("ExtraGasMaxLimitExceededError",a)}},Nt=class extends q{constructor(a,i,r){super("ArgumentInvalidDecimalsError",`Argument '${a}' decimals '${i}' cannot be greater than '${r}'`)}},ht=class extends q{constructor(a){super("TimeoutError",a)}},Vt=class extends q{constructor(a){super("NodeRpcUrlNotInitializedError",`For chain '${a}' Node RPC URL not initialized`)}},Se=class extends q{constructor(a){super("CCTPDoesNotSupportedError",a)}},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")}},da=(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))(da||{});var we=(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))(we||{}),ee=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))(ee||{});var pa={EVM:18,SOLANA:9,TRX:6,SRB:7},ga={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 m={...ga};return{addChainsProperties(a){m={...m,...a}},getChainProperty(a){let i=m[a];if(!i)throw new D(`Cannot find chain properties for ${a}`);return i},getChainsProperties(){return m},getChainDecimalsByType(a){return pa[a]}}})();import Pa from"axios";var ii="3.20.0-alpha.1";import{Big as v}from"big.js";import kn from"bn.js";function Mn(m,a){return v(100).minus(v(100).times(a).div(m)).toNumber()}function je(m,a){return Ve(m,a,3).round(0,v.roundDown)}function pe(m,a){return Ve(m,3,a)}function Ve(m,a,i){let r=v(i).minus(a).toNumber();return v(m).times(yt(r))}function yt(m){return v(10).pow(m)}function O(m,a){return v(m).times(yt(a))}function N(m,a){let i=v(m);return i.eq(0)?v(0):v(i).div(yt(a))}function ge(m){return N(v(m.tokenBalance).minus(m.vUsdBalance).toFixed(),3).div(2).toFixed()}function ve(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return"0";let u=A.times(a),c=A.minus(u),g=je(c,i),f=v(r.tokenBalance).plus(g),h=xe(f,r.aValue,r.dValue);return v(r.vUsdBalance).minus(h).round(0,v.roundDown).toFixed()}function bt(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return v(0).toFixed();let u=A.plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=pe(v(r.tokenBalance).minus(c),i),f=v(g).times(a);return v(g).minus(f).round(0,v.roundDown).toFixed()}function ai(m,a){let i=v(m);if(i.lte(0))return a;let r=i.plus(a.vUsdBalance),A=xe(r,a.aValue,a.dValue);return{aValue:a.aValue,dValue:a.dValue,tokenBalance:A.toFixed(0),vUsdBalance:r.toFixed(0)}}function ri(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(r.vUsdBalance).minus(m);if(A.lte(0))throw new Fe;let u=xe(A,r.aValue,r.dValue),c=v(u).minus(r.tokenBalance),g=pe(c,i),f=v(a).div(v(1).minus(a)),h=v(g).times(f).round(0,v.roundUp);return v(g).plus(h).round(0,v.roundDown)}function si(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(a).div(v(1).minus(a)),u=v(m).times(A).round(0,v.roundUp),c=v(m).plus(u),g=je(c,i),f=v(r.tokenBalance).minus(g);if(f.lte(0))throw new Fe;let h=xe(f,r.aValue,r.dValue);return v(h).minus(r.vUsdBalance).round(0,v.roundDown)}function xe(m,a,i){let r=v(4).times(a).times(v(i).minus(m)).minus(i),A=v(i).pow(3),u=r.pow(2),c=v(m).times(v(m).times(u).plus(v(4).times(a).times(A))).sqrt().round(0,v.roundDown),g=v(8).times(a).times(m),f=r.times(m).plus(c).div(g).round(0,v.roundDown);return f.eq(0)?v(0):f.plus(1)}function oi(m,a,i,r){let A=new kn(m),u=new kn(i),c=new kn(a);return A.mul(u).shrn(r).sub(c).toString()}function Ai(m){return v(m).gt(0)?`${Number(v(m).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function ci(m,a,i){let r=v(a).times(i),A=v(a).plus(i),u=v(8).times(m).times(r).times(A),c=r.times(v(16).times(m).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),h=g.plus(f),b=v(h).sqrt(),T=v(Math.cbrt(+u.plus(b).toFixed())),B=v(Math.cbrt(+u.minus(b).toFixed()));return T.plus(B).toFixed()}var vn=(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))(vn||{});var Ge=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ge||{});function ui(m){return Object.entries(m).reduce((a,i)=>{let r=i[0],A=i[1],u=Ta(r,A);return u&&(a[r]=u),a},{})}function li(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens){let c=at({chainSymbol:A,poolAddress:u.poolAddress}),g=ge(u.poolInfo);a[c]={...u.poolInfo,imbalance:g}}}return a}function fa(m,a){let{name:i,...r}=m,{poolInfo:A,...u}=a;return{...u,...r,chainName:i}}function ha(m){switch(m){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ya(m){return Object.entries(m).reduce((a,[i,r])=>(a[i]=ba(r),a),{})}function ba(m){return Object.entries(m).reduce((a,[i,r])=>{let A=ha(i);return A&&(a[A]=r),a},{})}function Ta(m,a){let i=V.getChainsProperties()[m];if(!i)return null;let r={...i,allbridgeChainId:a.chainId,bridgeAddress:a.bridgeAddress,transferTime:ya(a.transferTime),txCostAmount:a.txCostAmount,confirmations:a.confirmations};return{...r,tokens:a.tokens.map(A=>fa(r,A))}}function at(m){return m.chainSymbol+"_"+m.poolAddress}function mi(m){let a=[];for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens)a.push({chainSymbol:A,poolAddress:u.poolAddress})}return a}function di(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let[u,c]of Object.entries(r))c.imbalance=ge(c),a[at({chainSymbol:A,poolAddress:u})]=c}return a}var Xt=class{api;constructor(a){this.api=Pa.create({baseURL:a.coreApiUrl,headers:{Accept:"application/json",...a.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ii},params:a.coreApiQueryParams})}async getTokenInfo(){let{data:a}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:ui(a),poolInfoMap:li(a)}}async getPendingInfo(){let{data:a}=await this.api.get("/pending-info");return a}async getGasBalance(a,i){let{data:r}=await this.api.get(`/check/${a}/${i}`);return r}async getTransferStatus(a,i){let{data:r}=await this.api.get(`/chain/${a}/${i}`);return r}async getReceiveTransactionCost(a){let{data:i}=await this.api.post("/receive-fee",a,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(a){let i=a instanceof Array?a:[a],{data:r}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return di(r)}};import Lt from"timed-cache";var xn=20*1e3,Sa=55*1e3,Yt=class{constructor(a){this.apiClient=a;this.tokenInfoCache=new Lt({defaultTtl:Sa}),this.receivedTransactionCache=new Lt({defaultTtl:xn}),this.pendingInfoCache=new Lt({defaultTtl:xn}),this.gasBalanceCache=new Lt({defaultTtl:xn})}tokenInfoCache;pendingInfoCache;gasBalanceCache;receivedTransactionCache;getTokenInfo(){let a="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(a);if(i)return i;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(a,r),r}async getGasBalance(a,i){let r=`GAS_BALANCE_${a}_${i}`,A=this.gasBalanceCache.get(r);if(A)return A;let u=this.apiClient.getGasBalance(a,i);return this.gasBalanceCache.put(r,u),u}async getPendingInfo(){let a="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(a);if(i)return i;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(a,r),r}async getReceiveTransactionCost(a){let i=`RECEIVE_TX_COST_${a.sourceChainId}_${a.destinationChainId}_${a.messenger}`,r=this.receivedTransactionCache.get(i);if(r)return r;let A=await this.apiClient.getReceiveTransactionCost(a);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(a,i){return this.apiClient.getTransferStatus(a,i)}async getPoolInfoMap(a){return this.apiClient.getPoolInfoMap(a)}};var Jt=class{constructor(a){this.apiClient=a}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let a=await this.getChainDetailsMap();return Object.values(a).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(a,i){return this.apiClient.getGasBalance(a,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(a,i){return await this.apiClient.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.apiClient.getReceiveTransactionCost(a)}async getPoolInfoMap(a){return await this.apiClient.getPoolInfoMap(a)}};var Kt=class{constructor(a,i){this.client=a;this.isStaging=i.coreApiQueryParams?.staging==="true"}isStaging;async getChainDetailsMap(a){let i=await this.client.getChainDetailsMap(),r={};for(let A in i){let u=i[A];u&&(r[A]={...u,tokens:pi(u.tokens,a,this.isStaging)})}return r}async tokens(a){return pi(await this.client.tokens(),a,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getTransferStatus(a,i){return await this.client.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.client.getReceiveTransactionCost(a)}cachePut(a,i){return this.client.cachePut(a,i)}getPoolInfoByKey(a){return this.client.getPoolInfoByKey(a)}refreshPoolInfo(a){return this.client.refreshPoolInfo(a)}};function pi(m,a,i){return m.filter(r=>i?!0:r.flags[a]).map(wa)}function wa(m){let{flags:a,...i}=m;return i}import Ba from"timed-cache";var Ca=55*1e3,Qt=class{constructor(a){this.client=a;this.poolInfoCache=new Wn}poolInfoCache;async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(a,i){return this.client.getTransferStatus(a,i)}getReceiveTransactionCost(a){return this.client.getReceiveTransactionCost(a)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getPoolInfoByKey(a){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(a);if(i)return i;{let r=await this.client.getPoolInfoMap(a);this.poolInfoCache.putAll(r);let A=r[at(a)];if(A)return A;throw new D("Cannot find pool info for "+a.poolAddress+" on chain "+a.chainSymbol)}}async refreshPoolInfo(a){let i;if(a)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(a);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(mi(r.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(a,i){this.poolInfoCache.put(at(a),i)}},Wn=class{cache;constructor(){this.cache=new Ba({defaultTtl:Ca})}putAll(a){for(let[i,r]of Object.entries(a))this.cache.put(i,r)}putAllIfNotExists(a){for(let[i,r]of Object.entries(a))this.cache.get(i)||this.cache.put(i,r)}put(a,i){this.cache.put(a,i)}get(a){let i=at(a);return this.cache.get(i)}};import{TronWeb as nr}from"tronweb";import{Web3 as ir}from"web3";import{Big as gi}from"big.js";async function te(m,a){return await m.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}function L(m){if(gi(m).lte(0))throw new Zt("Amount must be greater than zero")}function J(m,a,i){let r=gi(a).toFixed(),[A,u]=r.split(".");if(u&&u.length>i)throw new Nt(m,u.length,i)}async function Ht(m,a,i){return await Promise.race([m,new Promise((r,A)=>{setTimeout(()=>A(new ht(a)),i)})])}async function Fn(m,a,i,r){if(i<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${i} was received.`);let A=0;for(;;)try{return await Ht(m(),a,r)}catch{if(++A>=i)throw new ht(a)}}async function fi(m,a,i,r=1.5,A=!1){let u=[],c=0,g=await m();if(u.push(g),!a(g))return u;let f=new Date(Date.now()+i*1e3).valueOf(),h=1e3,b=h;for(;Date.now()<f;){let T=u[u.length-1];if(T===void 0||!a(T))break;c++,A&&console.info(`Waiting ${h}ms before trying again (bringing the total wait time to ${b}ms so far, of total ${i*1e3}ms)`),await new Promise(w=>setTimeout(w,h)),h=h*r,new Date(Date.now()+h).valueOf()>f&&(h=f-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${h}ms`)),b=h+b;let B=await m(T);u.push(B),A&&a(B)&&console.info(`${c}. Called ${m.name}; ${u.length} prev attempts. Most recent: ${JSON.stringify(u[u.length-1],null,2)}`)}return u}import*as $t from"@project-serum/anchor";import{PublicKey as xi}from"@solana/web3.js";import{Big as Za}from"big.js";var Ia={abi:[{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"}]},hi=Ia;var Ra={abi:[{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"}]},yi=Ra;import*as re from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(m,a){return re.utils.token.associatedAddress({mint:a,owner:m})}async function Oe(m){let[a]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("config")],m);return a}async function bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("lock"),Uint8Array.from(m)],a);return i}async function Tt(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([m])],a);return i}async function rt(m){let a=await Oe(m),[i]=await ce.findProgramAddress([a.toBuffer()],m);return i}async function Ti(m,a){let[i]=await ce.findProgramAddress([m.toBuffer()],a);return i}async function st(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}async function Pi(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("other_bridge_token"),S.from([m]),a],i);return r}async function Gn(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([m])],a);return i}async function En(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([m])],a);return i}async function Si(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("sent_message"),m],a);return i}async function Dn(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("user_deposit"),a.toBytes(),m.toBytes()],i);return r}async function wi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("cctp_bridge"),m.toBytes()],a);return i}async function Bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}function Ci(m,a){let[i]=ce.findProgramAddressSync([re.utils.bytes.utf8.encode("lock"),a.toBuffer()],m);return i}function Ii(m,a,i,r){let A=qe("message_transmitter",i),u=qe("token_messenger",r),c=qe("__event_authority",r),g=qe("token_minter",r),f=qe("local_token",r,[a]),h=qe("remote_token_messenger",r,[m.toString()]),b=qe("sender_authority",r);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:h,authorityPda:b}}function qe(m,a,i=[]){let r=[S.from(re.utils.bytes.utf8.encode(m))];for(let u of i)typeof u=="string"?r.push(S.from(re.utils.bytes.utf8.encode(u))):Array.isArray(u)?r.push(S.from(Uint8Array.from(u))):S.isBuffer(u)?r.push(S.from(Uint8Array.from(u))):r.push(S.from(Uint8Array.from(u.toBuffer())));return ce.findProgramAddressSync(r,a)[0]}import{AnchorProvider as ka}from"@project-serum/anchor";import{Connection as Ma,PublicKey as va}from"@solana/web3.js";function Xe(m,a){let i=new Ma(m,"confirmed"),r=new va(a);return new ka(i,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as xa}from"@solana/web3.js";import{Address as Wa}from"@stellar/stellar-sdk";import{Big as Ee}from"big.js";import ki from"randombytes";import{utils as Ri}from"tronweb";function De(m,a,i){let r;switch(a){case"EVM":{r=Fa(m);break}case"SOLANA":{r=new xa(m).toBuffer();break}case"TRX":{r=Ga(m);break}case"SRB":{r=new Wa(m).toBuffer();break}}switch(i){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r;case"SRB":return r.toJSON().data}}function Mi(m){return S.from(m.replace(/^0x/i,""),"hex")}function Fa(m){let i=Mi(m);return S.concat([S.alloc(32-i.length,0),i],32)}function Ga(m){let a=zt(m),i=Mi(a);return Ea(i,32)}function zt(m){let a=Ri.crypto.decodeBase58Address(m);return a?Ri.bytes.byteArray2hexStr(a).replace(/^41/,"0x"):""}function Ea(m,a){if(m.length>=a)return m;let i=S.alloc(a,0);return m.copy(i,a-m.length),i}function jt(){return ki(32)}function Pt(){let m=ki(32).readBigInt64BE();return m<0?m*-1n:m}function Le(m,a){let i={},r=a.sourceToken;return i.amount=O(a.amount,r.decimals).toFixed(),i.contractAddress=r.bridgeAddress,i.fromAccountAddress=a.fromAccountAddress,i.fromTokenAddress=De(r.tokenAddress,m,m),i.toAccountAddress=a.toAccountAddress,i.toTokenAddress=De(a.destinationToken.tokenAddress,m,m),i.minimumReceiveAmount=a.minimumReceiveAmount?O(a.minimumReceiveAmount,a.destinationToken.decimals).toFixed():"0",i}async function Ue(m,a,i){let r={};r.fromChainId=a.sourceToken.allbridgeChainId,r.fromChainSymbol=a.sourceToken.chainSymbol;let A=V.getChainProperty(a.destinationToken.chainSymbol).chainType;r.fromTokenAddress=a.sourceToken.tokenAddress,r.toChainId=a.destinationToken.allbridgeChainId,r.toTokenAddress=a.destinationToken.tokenAddress,a.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let u=a.sourceToken;if(a.messenger===3){if(!u.cctpAddress||!a.destinationToken.cctpAddress)throw new Se("Such route does not support CCTP protocol");r.contractAddress=u.cctpAddress}else r.contractAddress=u.bridgeAddress;r.messenger=a.messenger,r.fromAccountAddress=a.fromAccountAddress,r.amount=O(a.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=a;if(!c){let T=(await Un(r.fromChainId,a.sourceToken.chainType,r.toChainId,u.decimals,r.messenger,i))[r.gasFeePaymentMethod];if(!T)throw new gt;c=T.int,g="int"}if(g=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=O(c,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.fee=O(c,u.decimals).toFixed(0);break}else r.fee=c;let{extraGas:f,extraGasFormat:h}=a;if(f&&+f>0){if(h=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=O(f,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.extraGas=O(f,u.decimals).toFixed(0);break}else r.extraGas=f;await Ua(r.extraGas,r.gasFeePaymentMethod,u,a.destinationToken,i)}return r.fromTokenAddress=De(r.fromTokenAddress,m,m),r.toAccountAddress=De(a.toAccountAddress,A,m),r.toTokenAddress=De(r.toTokenAddress,A,m),r.gasFeePaymentMethod=="stablecoin"&&Da(r.amount,u.decimals,r.fee,r.extraGas),r}function Da(m,a,i,r){let A=Ee(m).minus(i).minus(r??0);if(A.lte(0))throw new nt(`Amount not enough to pay fee, ${N(Ee(A).minus(1).neg(),a).toFixed()} stables is missing`)}async function Un(m,a,i,r,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:m,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:N(c.fee,V.getChainDecimalsByType(a)).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ve(new Ee(c.fee).mul(c.sourceNativeTokenPrice),V.getChainDecimalsByType(a),r).toFixed(0,Ee.roundUp);g.stablecoin={int:f,float:N(f,r).toFixed()}}return g}async function Ua(m,a,i,r,A){let c=(await Zn(i,r,A)).extraGasMax[a];if(!c)throw new gt(`Impossible to pay extra gas by '${a}' payment method`);let g=c.int;if(Ee(m).gt(g))throw new _t(`Extra gas ${m} in int format, exceeded limit ${g} for '${a}' payment method`)}async function Zn(m,a,i){let r={},A=await i.getReceiveTransactionCost({sourceChainId:m.allbridgeChainId,destinationChainId:a.allbridgeChainId,messenger:1}),u=a.txCostAmount.maxAmount,c=N(u,V.getChainDecimalsByType(a.chainType)).toFixed(),g=Ee(c).div(A.exchangeRate).toFixed(V.getChainDecimalsByType(m.chainType),Ee.roundDown),f=O(g,V.getChainDecimalsByType(m.chainType)).toFixed(0);if(r.native={int:f,float:g},A.sourceNativeTokenPrice){let h=Ee(g).mul(A.sourceNativeTokenPrice).toFixed(m.decimals,Ee.roundDown);r.stablecoin={int:O(h,m.decimals).toFixed(0),float:h}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:a.txCostAmount.swap,float:N(a.txCostAmount.swap,V.getChainDecimalsByType(a.chainType)).toFixed()},transfer:{int:a.txCostAmount.transfer,float:N(a.txCostAmount.transfer,V.getChainDecimalsByType(a.chainType)).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function vi(m){return m.sourceToken.chainSymbol!==m.destinationToken.chainSymbol}var St=class extends Ce{constructor(i,r,A){super();this.web3=i;this.api=r;this.nodeRpcUrlsConfig=A}chainType="EVM";async send(i){let r=await this.buildRawTransactionSend(i);return this.sendRawTransaction(r)}async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:h}=i,T=this.getBridgeContract(A).methods.swap(r,c,f,g,h);return Promise.resolve({from:u,to:A,data:T.encodeABI()})}async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:h,toTokenAddress:b,messenger:T,fee:B,gasFeePaymentMethod:w,extraGas:C}=r,M="0x"+jt().toString("hex"),I,W,x=B;if(C&&(x=Za(x).plus(C).toFixed()),T===3){let F=await this.buildRawTransactionCctpSend(i,r,x);I=F.sendMethod,W=F.value}else{let F=this.getBridgeContract(u);w==="stablecoin"?(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,x),W="0"):(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,0),W=x)}return Promise.resolve({from:c,to:u,value:W,data:I.encodeABI()})}async buildRawTransactionCctpSend(i,r,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:h}=r,b=this.getCctpBridgeContract(c),T,B;if(i.destinationToken.chainType==="SOLANA"){let w,C=new xi(i.toAccountAddress),M=new xi(i.destinationToken.tokenAddress),I=await Be(C,M),W=Xe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);$t.setProvider(W);let x=await $t.Spl.token(W).account.token.fetchNullable(I);if(x?.authority.equals(C))w=De(I.toBase58(),"SOLANA",this.chainType);else{let F=await W.connection.getTokenAccountsByOwner(C,{mint:M});if(F.value.length===0&&!x)w=De(I.toBase58(),"SOLANA",this.chainType);else if(F.value.length>0){let Z=F.value[0];if(!Z?.pubkey)throw new D("First token account or its public key is undefined");w=De(Z.pubkey.toBase58(),"SOLANA",this.chainType)}else throw new D("Associated account has wrong owner")}h==="stablecoin"?(T=b.methods.bridgeWithWalletAddress(u,w,f,g,A),B="0"):(T=b.methods.bridgeWithWalletAddress(u,w,f,g,0),B=A)}else h==="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 r=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:r,...A});return{txId:u.toString()}}getBridgeContract(i){return new this.web3.eth.Contract(hi.abi,i)}getCctpBridgeContract(i){return new this.web3.eth.Contract(yi.abi,i)}};var en=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){let r,A;i?(r=a,A=i):A=a;let u=wt(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},r)}async send(a,i){return L(a.amount),J("amount",a.amount,a.sourceToken.decimals),vi(a)?tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(a):tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(a)}};import{BN as ut,Program as Vn,Spl as Qa,web3 as Ye}from"@project-serum/anchor";import{Keypair as Xi,PublicKey as K,SystemProgram as Ha}from"@solana/web3.js";import{Big as Ie}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 Wi={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 _a}from"@project-serum/anchor";import Na from"big.js";import{Web3 as nn}from"web3";async function At(m,a){return await _a.token(a).account.token.fetch(m)}async function Fi(m,a,i){let r=await a.account.pool.fetch(i),A=r.decimals,u=Na(r.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:r.a.toString(),dValue:r.d.toString(),totalLpAmount:r.totalLpAmount.toString(),tokenBalance:r.tokenBalance.toString(),vUsdBalance:r.vUsdBalance.toString(),accRewardPerShareP:r.accRewardPerShareP.toString()};return ve(m,{decimals:A,feeShare:u},c)}function Gi(m){let a=m.amount,i="0x"+m.recipient.toString("hex"),r=m.sourceChainId,A=m.destinationChainId,u="0x"+m.receiveToken.toString("hex"),c="0x"+m.nonce.toString("hex"),g=1,f="0x"+m.chainBridge.toString("hex"),h=nn.utils.encodePacked({t:"uint256",v:a},{t:"bytes32",v:i},{t:"uint256",v:r},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!h)throw new D("message cannot be undefined");let b=nn.utils.keccak256(S.from(h.replace("0x",""),"hex")),T=S.from(b.replace("0x",""),"hex");T[0]=r,T[1]=A;let B=nn.utils.encodePacked({t:"bytes32",v:"0x"+T.toString("hex")},{t:"bytes32",v:f});if(!B)throw new it("messageWithSigner cannot be undefined");let w=nn.utils.keccak256(S.from(B.replace("0x",""),"hex")),C=S.from(w.replace("0x",""),"hex");return C[0]=T[0],C[1]=T[1],C}import{ComputeBudgetInstruction as Di,ComputeBudgetProgram as an,Connection as Ui,TransactionMessage as Va}from"@solana/web3.js";import{Big as Oa}from"big.js";import{AddressLookupTableAccount as Ei}from"@solana/web3.js";async function $e(m,a){return await Promise.all(m.message.addressTableLookups.map(async i=>new Ei({key:i.accountKey,state:Ei.deserialize(await a.getAccountInfo(i.accountKey).then(r=>{if(!r)throw new D("Cannot get AccountInfo");return r.data}))})))}var _n="AUTO";async function ct(m,a,i){let r=new Ui(i,"confirmed"),A=(await r.simulateTransaction(m)).value.unitsConsumed;await _i(m.instructions,A,a,r)}async function Zi(m,a,i){let r=new Ui(i,"confirmed"),A=await $e(m,r),u=Va.decompile(m.message,{addressLookupTableAccounts:A});if(m.serialize().length>1232)throw new Ot;await _i(u.instructions,769230,a,r),m.message=u.compileToV0Message(A)}async function _i(m,a,i,r){if(a>0){let A=Xa(a,m);if(i?.solana){let u=i.solana;if(u===_n)await Nn(m,r);else if("pricePerUnitInMicroLamports"in u)await Nn(m,r,u.pricePerUnitInMicroLamports);else{let c=Oa(u.extraFeeInLamports).div(A).mul(yt(6)).toFixed(0);await Nn(m,r,c)}}}}function Xa(m,a){let i=a.findIndex(u=>u.programId.equals(an.programId)&&Di.decodeInstructionType(u)==="SetComputeUnitLimit"),r=Number((m*1.3).toFixed(0)),A=an.setComputeUnitLimit({units:r});return i>=0?a[i]=A:a.push(A),r.toString()}async function Nn(m,a,i){let r=m.findIndex(c=>c.programId.equals(an.programId)&&Di.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await La(a)),u=an.setComputeUnitPrice({microLamports:A});return r>=0?m[r]=u:m.push(u),A.toString()}async function La(m){let a=await m.getRecentPrioritizationFees(),i=0;for(let r of a)i+=r.prioritizationFee;return(i/a.length).toFixed(0)}import{NATIVE_MINT as Ya}from"@solana/spl-token";import{Connection as Ja,TransactionMessage as Ni,VersionedTransaction as Ka}from"@solana/web3.js";import Vi,{AxiosError as Oi}from"axios";var rn=class{connection;jupiterUrl;constructor(a,i){this.connection=new Ja(a),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(a,i,r,A){let u;try{let T=A?"ExactOut":"ExactIn";u=await Vi.get(`${this.jupiterUrl}/quote?inputMint=${i}
|
|
1
|
+
var pt={},qn=!1;function la(){if(qn)return pt;qn=!0,pt.byteLength=g,pt.toByteArray=h,pt.fromByteArray=B;for(var m=[],a=[],i=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=r.length;A<u;++A)m[A]=r[A],a[r.charCodeAt(A)]=A;a[45]=62,a[95]=63;function c(w){var C=w.length;if(C%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=w.indexOf("=");M===-1&&(M=C);var I=M===C?0:4-M%4;return[M,I]}function g(w){var C=c(w),M=C[0],I=C[1];return(M+I)*3/4-I}function f(w,C,M){return(C+M)*3/4-M}function h(w){var C,M=c(w),I=M[0],W=M[1],x=new i(f(w,I,W)),F=0,Z=W>0?I-4:I,E;for(E=0;E<Z;E+=4)C=a[w.charCodeAt(E)]<<18|a[w.charCodeAt(E+1)]<<12|a[w.charCodeAt(E+2)]<<6|a[w.charCodeAt(E+3)],x[F++]=C>>16&255,x[F++]=C>>8&255,x[F++]=C&255;return W===2&&(C=a[w.charCodeAt(E)]<<2|a[w.charCodeAt(E+1)]>>4,x[F++]=C&255),W===1&&(C=a[w.charCodeAt(E)]<<10|a[w.charCodeAt(E+1)]<<4|a[w.charCodeAt(E+2)]>>2,x[F++]=C>>8&255,x[F++]=C&255),x}function b(w){return m[w>>18&63]+m[w>>12&63]+m[w>>6&63]+m[w&63]}function T(w,C,M){for(var I,W=[],x=C;x<M;x+=3)I=(w[x]<<16&16711680)+(w[x+1]<<8&65280)+(w[x+2]&255),W.push(b(I));return W.join("")}function B(w){for(var C,M=w.length,I=M%3,W=[],x=16383,F=0,Z=M-I;F<Z;F+=x)W.push(T(w,F,F+x>Z?Z:F+x));return I===1?(C=w[M-1],W.push(m[C>>2]+m[C<<4&63]+"==")):I===2&&(C=(w[M-2]<<8)+w[M-1],W.push(m[C>>10]+m[C>>4&63]+m[C<<2&63]+"=")),W.join("")}return pt}var Dt={},$n=!1;function ma(){if($n)return Dt;$n=!0;return Dt.read=function(m,a,i,r,A){var u,c,g=A*8-r-1,f=(1<<g)-1,h=f>>1,b=-7,T=i?A-1:0,B=i?-1:1,w=m[a+T];for(T+=B,u=w&(1<<-b)-1,w>>=-b,b+=g;b>0;u=u*256+m[a+T],T+=B,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=r;b>0;c=c*256+m[a+T],T+=B,b-=8);if(u===0)u=1-h;else{if(u===f)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,r),u=u-h}return(w?-1:1)*c*Math.pow(2,u-r)},Dt.write=function(m,a,i,r,A,u){var c,g,f,h=u*8-A-1,b=(1<<h)-1,T=b>>1,B=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:u-1,C=r?1:-1,M=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(g=isNaN(a)?1:0,c=b):(c=Math.floor(Math.log(a)/Math.LN2),a*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+T>=1?a+=B/f:a+=B*Math.pow(2,1-T),a*f>=2&&(c++,f/=2),c+T>=b?(g=0,c=b):c+T>=1?(g=(a*f-1)*Math.pow(2,A),c=c+T):(g=a*Math.pow(2,T-1)*Math.pow(2,A),c=0));A>=8;m[i+w]=g&255,w+=C,g/=256,A-=8);for(c=c<<A|g,h+=A;h>0;m[i+w]=c&255,w+=C,c/=256,h-=8);m[i+w-C]|=M*128},Dt}var He={},ei=!1;function ti(){if(ei)return He;ei=!0;let m=la(),a=ma(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;He.Buffer=c,He.SlowBuffer=W,He.INSPECT_MAX_BYTES=50;let r=2147483647;He.kMaxLength=r,c.TYPED_ARRAY_SUPPORT=A(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function A(){try{let l=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(l,s),l.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(l){if(l>r)throw new RangeError('The value "'+l+'" is invalid for option "size"');let s=new Uint8Array(l);return Object.setPrototypeOf(s,c.prototype),s}function c(l,s,o){if(typeof l=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return b(l)}return g(l,s,o)}c.poolSize=8192;function g(l,s,o){if(typeof l=="string")return T(l,s);if(ArrayBuffer.isView(l))return w(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(Me(l,ArrayBuffer)||l&&Me(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Me(l,SharedArrayBuffer)||l&&Me(l.buffer,SharedArrayBuffer)))return C(l,s,o);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=l.valueOf&&l.valueOf();if(d!=null&&d!==l)return c.from(d,s,o);let p=M(l);if(p)return p;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return c.from(l[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 l)}c.from=function(l,s,o){return g(l,s,o)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function f(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function h(l,s,o){return f(l),l<=0?u(l):s!==void 0?typeof o=="string"?u(l).fill(s,o):u(l).fill(s):u(l)}c.alloc=function(l,s,o){return h(l,s,o)};function b(l){return f(l),u(l<0?0:I(l)|0)}c.allocUnsafe=function(l){return b(l)},c.allocUnsafeSlow=function(l){return b(l)};function T(l,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=x(l,s)|0,d=u(o),p=d.write(l,s);return p!==o&&(d=d.slice(0,p)),d}function B(l){let s=l.length<0?0:I(l.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=l[d]&255;return o}function w(l){if(Me(l,Uint8Array)){let s=new Uint8Array(l);return C(s.buffer,s.byteOffset,s.byteLength)}return B(l)}function C(l,s,o){if(s<0||l.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(l.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(l):o===void 0?d=new Uint8Array(l,s):d=new Uint8Array(l,s,o),Object.setPrototypeOf(d,c.prototype),d}function M(l){if(c.isBuffer(l)){let s=I(l.length)|0,o=u(s);return o.length===0||l.copy(o,0,0,s),o}if(l.length!==void 0)return typeof l.length!="number"||Rn(l.length)?u(0):B(l);if(l.type==="Buffer"&&Array.isArray(l.data))return B(l.data)}function I(l){if(l>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return l|0}function W(l){return+l!=l&&(l=0),c.alloc(+l)}c.isBuffer=function(s){return s!=null&&s._isBuffer===!0&&s!==c.prototype},c.compare=function(s,o){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),Me(o,Uint8Array)&&(o=c.from(o,o.offset,o.byteLength)),!c.isBuffer(s)||!c.isBuffer(o))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(s===o)return 0;let d=s.length,p=o.length;for(let y=0,P=Math.min(d,p);y<P;++y)if(s[y]!==o[y]){d=s[y],p=o[y];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),y=0;for(d=0;d<s.length;++d){let P=s[d];if(Me(P,Uint8Array))y+P.length>p.length?(c.isBuffer(P)||(P=c.from(P)),P.copy(p,y)):Uint8Array.prototype.set.call(p,P,y);else if(c.isBuffer(P))P.copy(p,y);else throw new TypeError('"list" argument must be an Array of Buffers');y+=P.length}return p};function x(l,s){if(c.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||Me(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);let o=l.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 In(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return jn(l).length;default:if(p)return d?-1:In(l).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=x;function F(l,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(l||(l="utf8");;)switch(l){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 le(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: "+l);l=(l+"").toLowerCase(),d=!0}}c.prototype._isBuffer=!0;function Z(l,s,o){let d=l[s];l[s]=l[o],l[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)Z(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)Z(this,o,o+3),Z(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)Z(this,o,o+7),Z(this,o+1,o+6),Z(this,o+2,o+5),Z(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):F.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(s){if(!c.isBuffer(s))throw new TypeError("Argument must be a Buffer");return this===s?!0:c.compare(this,s)===0},c.prototype.inspect=function(){let s="",o=He.INSPECT_MAX_BYTES;return s=this.toString("hex",0,o).replace(/(.{2})/g,"$1 ").trim(),this.length>o&&(s+=" ... "),"<Buffer "+s+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(s,o,d,p,y){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),!c.isBuffer(s))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof s);if(o===void 0&&(o=0),d===void 0&&(d=s?s.length:0),p===void 0&&(p=0),y===void 0&&(y=this.length),o<0||d>s.length||p<0||y>this.length)throw new RangeError("out of range index");if(p>=y&&o>=d)return 0;if(p>=y)return-1;if(o>=d)return 1;if(o>>>=0,d>>>=0,p>>>=0,y>>>=0,this===s)return 0;let P=y-p,U=d-o,Q=Math.min(P,U),Y=this.slice(p,y),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 E(l,s,o,d,p){if(l.length===0)return-1;if(typeof o=="string"?(d=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Rn(o)&&(o=p?0:l.length-1),o<0&&(o=l.length+o),o>=l.length){if(p)return-1;o=l.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:_(l,s,o,d,p);if(typeof s=="number")return s=s&255,typeof Uint8Array.prototype.indexOf=="function"?p?Uint8Array.prototype.indexOf.call(l,s,o):Uint8Array.prototype.lastIndexOf.call(l,s,o):_(l,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function _(l,s,o,d,p){let y=1,P=l.length,U=s.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(l.length<2||s.length<2)return-1;y=2,P/=2,U/=2,o/=2}function Q(H,X){return y===1?H[X]:H.readUInt16BE(X*y)}let Y;if(p){let H=-1;for(Y=o;Y<P;Y++)if(Q(l,Y)===Q(s,H===-1?0:Y-H)){if(H===-1&&(H=Y),Y-H+1===U)return H*y}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(l,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 E(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return E(this,s,o,d,!1)};function se(l,s,o,d){o=Number(o)||0;let p=l.length-o;d?(d=Number(d),d>p&&(d=p)):d=p;let y=s.length;d>y/2&&(d=y/2);let P;for(P=0;P<d;++P){let U=parseInt(s.substr(P*2,2),16);if(Rn(U))return P;l[o+P]=U}return P}function z(l,s,o,d){return Et(In(s,l.length-o),l,o,d)}function he(l,s,o,d){return Et(oa(s),l,o,d)}function ye(l,s,o,d){return Et(jn(s),l,o,d)}function Pe(l,s,o,d){return Et(Aa(s,l.length-o),l,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 y=this.length-o;if((d===void 0||d>y)&&(d=y),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 le(l,s,o){return s===0&&o===l.length?m.fromByteArray(l):m.fromByteArray(l.slice(s,o))}function ne(l,s,o){o=Math.min(l.length,o);let d=[],p=s;for(;p<o;){let y=l[p],P=null,U=y>239?4:y>223?3:y>191?2:1;if(p+U<=o){let Q,Y,H,X;switch(U){case 1:y<128&&(P=y);break;case 2:Q=l[p+1],(Q&192)===128&&(X=(y&31)<<6|Q&63,X>127&&(P=X));break;case 3:Q=l[p+1],Y=l[p+2],(Q&192)===128&&(Y&192)===128&&(X=(y&15)<<12|(Q&63)<<6|Y&63,X>2047&&(X<55296||X>57343)&&(P=X));break;case 4:Q=l[p+1],Y=l[p+2],H=l[p+3],(Q&192)===128&&(Y&192)===128&&(H&192)===128&&(X=(y&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 me(d)}let oe=4096;function me(l){let s=l.length;if(s<=oe)return String.fromCharCode.apply(String,l);let o="",d=0;for(;d<s;)o+=String.fromCharCode.apply(String,l.slice(d,d+=oe));return o}function Ae(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]&127);return d}function be(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]);return d}function Te(l,s,o){let d=l.length;(!s||s<0)&&(s=0),(!o||o<0||o>d)&&(o=d);let p="";for(let y=s;y<o;++y)p+=ca[l[y]];return p}function de(l,s,o){let d=l.slice(s,o),p="";for(let y=0;y<d.length-1;y+=2)p+=String.fromCharCode(d[y]+d[y+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 G(l,s,o){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+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||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s+--o],y=1;for(;o>0&&(y*=256);)p+=this[s+--o]*y;return p},c.prototype.readUint8=c.prototype.readUInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||G(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||G(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=Ne(function(s){s=s>>>0,tt(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,y=this[++s]+this[++s]*2**8+this[++s]*2**16+d*2**24;return BigInt(p)+(BigInt(y)<<BigInt(32))}),c.prototype.readBigUInt64BE=Ne(function(s){s=s>>>0,tt(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],y=this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d;return(BigInt(p)<<BigInt(32))+BigInt(y)}),c.prototype.readIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return y*=128,p>=y&&(p-=Math.pow(2,8*o)),p},c.prototype.readIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=o,y=1,P=this[s+--p];for(;p>0&&(y*=256);)P+=this[s+--p]*y;return y*=128,P>=y&&(P-=Math.pow(2,8*o)),P},c.prototype.readInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||G(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||G(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||G(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||G(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=Ne(function(s){s=s>>>0,tt(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=Ne(function(s){s=s>>>0,tt(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||G(s,4,this.length),a.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||G(s,4,this.length),a.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!1,52,8)};function $(l,s,o,d,p,y){if(!c.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>p||s<y)throw new RangeError('"value" argument is out of bounds');if(o+d>l.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 y=1,P=0;for(this[o]=s&255;++P<d&&(y*=256);)this[o+P]=s/y&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 y=d-1,P=1;for(this[o+y]=s&255;--y>=0&&(P*=256);)this[o+y]=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(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,o}function Yn(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o+7]=y,y=y>>8,l[o+6]=y,y=y>>8,l[o+5]=y,y=y>>8,l[o+4]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o+3]=P,P=P>>8,l[o+2]=P,P=P>>8,l[o+1]=P,P=P>>8,l[o]=P,o+8}c.prototype.writeBigUInt64LE=Ne(function(s,o=0){return Gt(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ne(function(s,o=0){return Yn(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 y=0,P=1,U=0;for(this[o]=s&255;++y<d&&(P*=256);)s<0&&U===0&&this[o+y-1]!==0&&(U=1),this[o+y]=(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 y=d-1,P=1,U=0;for(this[o+y]=s&255;--y>=0&&(P*=256);)s<0&&U===0&&this[o+y+1]!==0&&(U=1),this[o+y]=(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=Ne(function(s,o=0){return Gt(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ne(function(s,o=0){return Yn(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Jn(l,s,o,d,p,y){if(o+d>l.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function Kn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,4),a.write(l,s,o,d,23,4),o+4}c.prototype.writeFloatLE=function(s,o,d){return Kn(this,s,o,!0,d)},c.prototype.writeFloatBE=function(s,o,d){return Kn(this,s,o,!1,d)};function Qn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,8),a.write(l,s,o,d,52,8),o+8}c.prototype.writeDoubleLE=function(s,o,d){return Qn(this,s,o,!0,d)},c.prototype.writeDoubleBE=function(s,o,d){return Qn(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 y=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),y},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 y;if(typeof s=="number")for(y=o;y<d;++y)this[y]=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(y=0;y<d-o;++y)this[y+o]=P[y%U]}return this};let et={};function Cn(l,s,o){et[l]=class extends o{constructor(){super(),Object.defineProperty(this,"message",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(p){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:p,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}Cn("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Cn("ERR_INVALID_ARG_TYPE",function(l,s){return`The "${l}" argument must be of type number. Received type ${typeof s}`},TypeError),Cn("ERR_OUT_OF_RANGE",function(l,s,o){let d=`The value of "${l}" is out of range.`,p=o;return Number.isInteger(o)&&Math.abs(o)>2**32?p=Hn(String(o)):typeof o=="bigint"&&(p=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(p=Hn(p)),p+="n"),d+=` It must be ${s}. Received ${p}`,d},RangeError);function Hn(l){let s="",o=l.length,d=l[0]==="-"?1:0;for(;o>=d+4;o-=3)s=`_${l.slice(o-3,o)}${s}`;return`${l.slice(0,o)}${s}`}function aa(l,s,o){tt(s,"offset"),(l[s]===void 0||l[s+o]===void 0)&&dt(s,l.length-(o+1))}function zn(l,s,o,d,p,y){if(l>o||l<s){let P=typeof s=="bigint"?"n":"",U;throw s===0||s===BigInt(0)?U=`>= 0${P} and < 2${P} ** ${(y+1)*8}${P}`:U=`>= -(2${P} ** ${(y+1)*8-1}${P}) and < 2 ** ${(y+1)*8-1}${P}`,new et.ERR_OUT_OF_RANGE("value",U,l)}aa(d,p,y)}function tt(l,s){if(typeof l!="number")throw new et.ERR_INVALID_ARG_TYPE(s,"number",l)}function dt(l,s,o){throw Math.floor(l)!==l?(tt(l,o),new et.ERR_OUT_OF_RANGE("offset","an integer",l)):s<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${s}`,l)}let ra=/[^+/0-9A-Za-z-_]/g;function sa(l){if(l=l.split("=")[0],l=l.trim().replace(ra,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function In(l,s){s=s||1/0;let o,d=l.length,p=null,y=[];for(let P=0;P<d;++P){if(o=l.charCodeAt(P),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&y.push(239,191,189);continue}else if(P+1===d){(s-=3)>-1&&y.push(239,191,189);continue}p=o;continue}if(o<56320){(s-=3)>-1&&y.push(239,191,189),p=o;continue}o=(p-55296<<10|o-56320)+65536}else p&&(s-=3)>-1&&y.push(239,191,189);if(p=null,o<128){if((s-=1)<0)break;y.push(o)}else if(o<2048){if((s-=2)<0)break;y.push(o>>6|192,o&63|128)}else if(o<65536){if((s-=3)<0)break;y.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((s-=4)<0)break;y.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return y}function oa(l){let s=[];for(let o=0;o<l.length;++o)s.push(l.charCodeAt(o)&255);return s}function Aa(l,s){let o,d,p,y=[];for(let P=0;P<l.length&&!((s-=2)<0);++P)o=l.charCodeAt(P),d=o>>8,p=o%256,y.push(p),y.push(d);return y}function jn(l){return m.toByteArray(sa(l))}function Et(l,s,o,d){let p;for(p=0;p<d&&!(p+o>=s.length||p>=l.length);++p)s[p+o]=l[p];return p}function Me(l,s){return l instanceof s||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===s.name}function Rn(l){return l!==l}let ca=function(){let l="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]=l[o]+l[p]}return s}();function Ne(l){return typeof BigInt>"u"?ua:l}function ua(){throw new Error("BigInt not supported")}return He}var ze=ti();ze.Buffer;ze.SlowBuffer;ze.INSPECT_MAX_BYTES;ze.kMaxLength;var S=ze.Buffer,qr=ze.INSPECT_MAX_BYTES,$r=ze.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},ss={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},os={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{errorCode;constructor(a,i){super(i),this.errorCode=a}},D=class extends q{constructor(a){super("SdkError",a)}},Zt=class extends q{constructor(a){super("InvalidAmountError",a)}},nt=class extends q{constructor(a){super("AmountNotEnoughError",a)}},Fe=class extends q{constructor(a){super("InsufficientPoolLiquidityError",a)}},ie=class extends q{constructor(a){super("JupiterError",a)}},gt=class extends q{constructor(a){super("InvalidGasFeePaymentOptionError",a)}},ni=class extends q{constructor(a){super("InvalidMessengerOptionError",a)}},ue=class extends q{constructor(a){super("MethodNotSupportedError",a)}},ft=class extends q{constructor(a){super("VerifyTxError",a)}},it=class extends q{constructor(a){super("InvalidTxError",a)}},_t=class extends q{constructor(a){super("ExtraGasMaxLimitExceededError",a)}},Nt=class extends q{constructor(a,i,r){super("ArgumentInvalidDecimalsError",`Argument '${a}' decimals '${i}' cannot be greater than '${r}'`)}},ht=class extends q{constructor(a){super("TimeoutError",a)}},Vt=class extends q{constructor(a){super("NodeRpcUrlNotInitializedError",`For chain '${a}' Node RPC URL not initialized`)}},Se=class extends q{constructor(a){super("CCTPDoesNotSupportedError",a)}},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")}},da=(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))(da||{});var we=(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))(we||{}),ee=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))(ee||{});var pa={EVM:18,SOLANA:9,TRX:6,SRB:7},ga={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 m={...ga};return{addChainsProperties(a){m={...m,...a}},getChainProperty(a){let i=m[a];if(!i)throw new D(`Cannot find chain properties for ${a}`);return i},getChainsProperties(){return m},getChainDecimalsByType(a){return pa[a]}}})();import Pa from"axios";var ii="3.20.0-alpha.2";import{Big as v}from"big.js";import kn from"bn.js";function Mn(m,a){return v(100).minus(v(100).times(a).div(m)).toNumber()}function je(m,a){return Ve(m,a,3).round(0,v.roundDown)}function pe(m,a){return Ve(m,3,a)}function Ve(m,a,i){let r=v(i).minus(a).toNumber();return v(m).times(yt(r))}function yt(m){return v(10).pow(m)}function O(m,a){return v(m).times(yt(a))}function N(m,a){let i=v(m);return i.eq(0)?v(0):v(i).div(yt(a))}function ge(m){return N(v(m.tokenBalance).minus(m.vUsdBalance).toFixed(),3).div(2).toFixed()}function ve(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return"0";let u=A.times(a),c=A.minus(u),g=je(c,i),f=v(r.tokenBalance).plus(g),h=xe(f,r.aValue,r.dValue);return v(r.vUsdBalance).minus(h).round(0,v.roundDown).toFixed()}function bt(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return v(0).toFixed();let u=A.plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=pe(v(r.tokenBalance).minus(c),i),f=v(g).times(a);return v(g).minus(f).round(0,v.roundDown).toFixed()}function ai(m,a){let i=v(m);if(i.lte(0))return a;let r=i.plus(a.vUsdBalance),A=xe(r,a.aValue,a.dValue);return{aValue:a.aValue,dValue:a.dValue,tokenBalance:A.toFixed(0),vUsdBalance:r.toFixed(0)}}function ri(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(r.vUsdBalance).minus(m);if(A.lte(0))throw new Fe;let u=xe(A,r.aValue,r.dValue),c=v(u).minus(r.tokenBalance),g=pe(c,i),f=v(a).div(v(1).minus(a)),h=v(g).times(f).round(0,v.roundUp);return v(g).plus(h).round(0,v.roundDown)}function si(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(a).div(v(1).minus(a)),u=v(m).times(A).round(0,v.roundUp),c=v(m).plus(u),g=je(c,i),f=v(r.tokenBalance).minus(g);if(f.lte(0))throw new Fe;let h=xe(f,r.aValue,r.dValue);return v(h).minus(r.vUsdBalance).round(0,v.roundDown)}function xe(m,a,i){let r=v(4).times(a).times(v(i).minus(m)).minus(i),A=v(i).pow(3),u=r.pow(2),c=v(m).times(v(m).times(u).plus(v(4).times(a).times(A))).sqrt().round(0,v.roundDown),g=v(8).times(a).times(m),f=r.times(m).plus(c).div(g).round(0,v.roundDown);return f.eq(0)?v(0):f.plus(1)}function oi(m,a,i,r){let A=new kn(m),u=new kn(i),c=new kn(a);return A.mul(u).shrn(r).sub(c).toString()}function Ai(m){return v(m).gt(0)?`${Number(v(m).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function ci(m,a,i){let r=v(a).times(i),A=v(a).plus(i),u=v(8).times(m).times(r).times(A),c=r.times(v(16).times(m).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),h=g.plus(f),b=v(h).sqrt(),T=v(Math.cbrt(+u.plus(b).toFixed())),B=v(Math.cbrt(+u.minus(b).toFixed()));return T.plus(B).toFixed()}var vn=(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))(vn||{});var Ge=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ge||{});function ui(m){return Object.entries(m).reduce((a,i)=>{let r=i[0],A=i[1],u=Ta(r,A);return u&&(a[r]=u),a},{})}function li(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens){let c=at({chainSymbol:A,poolAddress:u.poolAddress}),g=ge(u.poolInfo);a[c]={...u.poolInfo,imbalance:g}}}return a}function fa(m,a){let{name:i,...r}=m,{poolInfo:A,...u}=a;return{...u,...r,chainName:i}}function ha(m){switch(m){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ya(m){return Object.entries(m).reduce((a,[i,r])=>(a[i]=ba(r),a),{})}function ba(m){return Object.entries(m).reduce((a,[i,r])=>{let A=ha(i);return A&&(a[A]=r),a},{})}function Ta(m,a){let i=V.getChainsProperties()[m];if(!i)return null;let r={...i,allbridgeChainId:a.chainId,bridgeAddress:a.bridgeAddress,transferTime:ya(a.transferTime),txCostAmount:a.txCostAmount,confirmations:a.confirmations};return{...r,tokens:a.tokens.map(A=>fa(r,A))}}function at(m){return m.chainSymbol+"_"+m.poolAddress}function mi(m){let a=[];for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens)a.push({chainSymbol:A,poolAddress:u.poolAddress})}return a}function di(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let[u,c]of Object.entries(r))c.imbalance=ge(c),a[at({chainSymbol:A,poolAddress:u})]=c}return a}var Xt=class{api;constructor(a){this.api=Pa.create({baseURL:a.coreApiUrl,headers:{Accept:"application/json",...a.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ii},params:a.coreApiQueryParams})}async getTokenInfo(){let{data:a}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:ui(a),poolInfoMap:li(a)}}async getPendingInfo(){let{data:a}=await this.api.get("/pending-info");return a}async getGasBalance(a,i){let{data:r}=await this.api.get(`/check/${a}/${i}`);return r}async getTransferStatus(a,i){let{data:r}=await this.api.get(`/chain/${a}/${i}`);return r}async getReceiveTransactionCost(a){let{data:i}=await this.api.post("/receive-fee",a,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(a){let i=a instanceof Array?a:[a],{data:r}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return di(r)}};import Lt from"timed-cache";var xn=20*1e3,Sa=55*1e3,Yt=class{constructor(a){this.apiClient=a;this.tokenInfoCache=new Lt({defaultTtl:Sa}),this.receivedTransactionCache=new Lt({defaultTtl:xn}),this.pendingInfoCache=new Lt({defaultTtl:xn}),this.gasBalanceCache=new Lt({defaultTtl:xn})}tokenInfoCache;pendingInfoCache;gasBalanceCache;receivedTransactionCache;getTokenInfo(){let a="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(a);if(i)return i;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(a,r),r}async getGasBalance(a,i){let r=`GAS_BALANCE_${a}_${i}`,A=this.gasBalanceCache.get(r);if(A)return A;let u=this.apiClient.getGasBalance(a,i);return this.gasBalanceCache.put(r,u),u}async getPendingInfo(){let a="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(a);if(i)return i;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(a,r),r}async getReceiveTransactionCost(a){let i=`RECEIVE_TX_COST_${a.sourceChainId}_${a.destinationChainId}_${a.messenger}`,r=this.receivedTransactionCache.get(i);if(r)return r;let A=await this.apiClient.getReceiveTransactionCost(a);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(a,i){return this.apiClient.getTransferStatus(a,i)}async getPoolInfoMap(a){return this.apiClient.getPoolInfoMap(a)}};var Jt=class{constructor(a){this.apiClient=a}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let a=await this.getChainDetailsMap();return Object.values(a).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(a,i){return this.apiClient.getGasBalance(a,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(a,i){return await this.apiClient.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.apiClient.getReceiveTransactionCost(a)}async getPoolInfoMap(a){return await this.apiClient.getPoolInfoMap(a)}};var Kt=class{constructor(a,i){this.client=a;this.isStaging=i.coreApiQueryParams?.staging==="true"}isStaging;async getChainDetailsMap(a){let i=await this.client.getChainDetailsMap(),r={};for(let A in i){let u=i[A];u&&(r[A]={...u,tokens:pi(u.tokens,a,this.isStaging)})}return r}async tokens(a){return pi(await this.client.tokens(),a,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getTransferStatus(a,i){return await this.client.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.client.getReceiveTransactionCost(a)}cachePut(a,i){return this.client.cachePut(a,i)}getPoolInfoByKey(a){return this.client.getPoolInfoByKey(a)}refreshPoolInfo(a){return this.client.refreshPoolInfo(a)}};function pi(m,a,i){return m.filter(r=>i?!0:r.flags[a]).map(wa)}function wa(m){let{flags:a,...i}=m;return i}import Ba from"timed-cache";var Ca=55*1e3,Qt=class{constructor(a){this.client=a;this.poolInfoCache=new Wn}poolInfoCache;async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(a,i){return this.client.getTransferStatus(a,i)}getReceiveTransactionCost(a){return this.client.getReceiveTransactionCost(a)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getPoolInfoByKey(a){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(a);if(i)return i;{let r=await this.client.getPoolInfoMap(a);this.poolInfoCache.putAll(r);let A=r[at(a)];if(A)return A;throw new D("Cannot find pool info for "+a.poolAddress+" on chain "+a.chainSymbol)}}async refreshPoolInfo(a){let i;if(a)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(a);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(mi(r.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(a,i){this.poolInfoCache.put(at(a),i)}},Wn=class{cache;constructor(){this.cache=new Ba({defaultTtl:Ca})}putAll(a){for(let[i,r]of Object.entries(a))this.cache.put(i,r)}putAllIfNotExists(a){for(let[i,r]of Object.entries(a))this.cache.get(i)||this.cache.put(i,r)}put(a,i){this.cache.put(a,i)}get(a){let i=at(a);return this.cache.get(i)}};import{TronWeb as nr}from"tronweb";import{Web3 as ir}from"web3";import{Big as gi}from"big.js";async function te(m,a){return await m.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}function L(m){if(gi(m).lte(0))throw new Zt("Amount must be greater than zero")}function J(m,a,i){let r=gi(a).toFixed(),[A,u]=r.split(".");if(u&&u.length>i)throw new Nt(m,u.length,i)}async function Ht(m,a,i){return await Promise.race([m,new Promise((r,A)=>{setTimeout(()=>A(new ht(a)),i)})])}async function Fn(m,a,i,r){if(i<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${i} was received.`);let A=0;for(;;)try{return await Ht(m(),a,r)}catch{if(++A>=i)throw new ht(a)}}async function fi(m,a,i,r=1.5,A=!1){let u=[],c=0,g=await m();if(u.push(g),!a(g))return u;let f=new Date(Date.now()+i*1e3).valueOf(),h=1e3,b=h;for(;Date.now()<f;){let T=u[u.length-1];if(T===void 0||!a(T))break;c++,A&&console.info(`Waiting ${h}ms before trying again (bringing the total wait time to ${b}ms so far, of total ${i*1e3}ms)`),await new Promise(w=>setTimeout(w,h)),h=h*r,new Date(Date.now()+h).valueOf()>f&&(h=f-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${h}ms`)),b=h+b;let B=await m(T);u.push(B),A&&a(B)&&console.info(`${c}. Called ${m.name}; ${u.length} prev attempts. Most recent: ${JSON.stringify(u[u.length-1],null,2)}`)}return u}import*as $t from"@project-serum/anchor";import{PublicKey as xi}from"@solana/web3.js";import{Big as Za}from"big.js";var Ia={abi:[{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"}]},hi=Ia;var Ra={abi:[{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"}]},yi=Ra;import*as re from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(m,a){return re.utils.token.associatedAddress({mint:a,owner:m})}async function Oe(m){let[a]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("config")],m);return a}async function bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("lock"),Uint8Array.from(m)],a);return i}async function Tt(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([m])],a);return i}async function rt(m){let a=await Oe(m),[i]=await ce.findProgramAddress([a.toBuffer()],m);return i}async function Ti(m,a){let[i]=await ce.findProgramAddress([m.toBuffer()],a);return i}async function st(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}async function Pi(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("other_bridge_token"),S.from([m]),a],i);return r}async function Gn(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([m])],a);return i}async function En(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([m])],a);return i}async function Si(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("sent_message"),m],a);return i}async function Dn(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("user_deposit"),a.toBytes(),m.toBytes()],i);return r}async function wi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("cctp_bridge"),m.toBytes()],a);return i}async function Bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}function Ci(m,a){let[i]=ce.findProgramAddressSync([re.utils.bytes.utf8.encode("lock"),a.toBuffer()],m);return i}function Ii(m,a,i,r){let A=qe("message_transmitter",i),u=qe("token_messenger",r),c=qe("__event_authority",r),g=qe("token_minter",r),f=qe("local_token",r,[a]),h=qe("remote_token_messenger",r,[m.toString()]),b=qe("sender_authority",r);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:h,authorityPda:b}}function qe(m,a,i=[]){let r=[S.from(re.utils.bytes.utf8.encode(m))];for(let u of i)typeof u=="string"?r.push(S.from(re.utils.bytes.utf8.encode(u))):Array.isArray(u)?r.push(S.from(Uint8Array.from(u))):S.isBuffer(u)?r.push(S.from(Uint8Array.from(u))):r.push(S.from(Uint8Array.from(u.toBuffer())));return ce.findProgramAddressSync(r,a)[0]}import{AnchorProvider as ka}from"@project-serum/anchor";import{Connection as Ma,PublicKey as va}from"@solana/web3.js";function Xe(m,a){let i=new Ma(m,"confirmed"),r=new va(a);return new ka(i,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as xa}from"@solana/web3.js";import{Address as Wa}from"@stellar/stellar-sdk";import{Big as Ee}from"big.js";import ki from"randombytes";import{utils as Ri}from"tronweb";function De(m,a,i){let r;switch(a){case"EVM":{r=Fa(m);break}case"SOLANA":{r=new xa(m).toBuffer();break}case"TRX":{r=Ga(m);break}case"SRB":{r=new Wa(m).toBuffer();break}}switch(i){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r;case"SRB":return r.toJSON().data}}function Mi(m){return S.from(m.replace(/^0x/i,""),"hex")}function Fa(m){let i=Mi(m);return S.concat([S.alloc(32-i.length,0),i],32)}function Ga(m){let a=zt(m),i=Mi(a);return Ea(i,32)}function zt(m){let a=Ri.crypto.decodeBase58Address(m);return a?Ri.bytes.byteArray2hexStr(a).replace(/^41/,"0x"):""}function Ea(m,a){if(m.length>=a)return m;let i=S.alloc(a,0);return m.copy(i,a-m.length),i}function jt(){return ki(32)}function Pt(){let m=ki(32).readBigInt64BE();return m<0?m*-1n:m}function Le(m,a){let i={},r=a.sourceToken;return i.amount=O(a.amount,r.decimals).toFixed(),i.contractAddress=r.bridgeAddress,i.fromAccountAddress=a.fromAccountAddress,i.fromTokenAddress=De(r.tokenAddress,m,m),i.toAccountAddress=a.toAccountAddress,i.toTokenAddress=De(a.destinationToken.tokenAddress,m,m),i.minimumReceiveAmount=a.minimumReceiveAmount?O(a.minimumReceiveAmount,a.destinationToken.decimals).toFixed():"0",i}async function Ue(m,a,i){let r={};r.fromChainId=a.sourceToken.allbridgeChainId,r.fromChainSymbol=a.sourceToken.chainSymbol;let A=V.getChainProperty(a.destinationToken.chainSymbol).chainType;r.fromTokenAddress=a.sourceToken.tokenAddress,r.toChainId=a.destinationToken.allbridgeChainId,r.toTokenAddress=a.destinationToken.tokenAddress,a.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let u=a.sourceToken;if(a.messenger===3){if(!u.cctpAddress||!a.destinationToken.cctpAddress)throw new Se("Such route does not support CCTP protocol");r.contractAddress=u.cctpAddress}else r.contractAddress=u.bridgeAddress;r.messenger=a.messenger,r.fromAccountAddress=a.fromAccountAddress,r.amount=O(a.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=a;if(!c){let T=(await Un(r.fromChainId,a.sourceToken.chainType,r.toChainId,u.decimals,r.messenger,i))[r.gasFeePaymentMethod];if(!T)throw new gt;c=T.int,g="int"}if(g=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=O(c,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.fee=O(c,u.decimals).toFixed(0);break}else r.fee=c;let{extraGas:f,extraGasFormat:h}=a;if(f&&+f>0){if(h=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=O(f,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.extraGas=O(f,u.decimals).toFixed(0);break}else r.extraGas=f;await Ua(r.extraGas,r.gasFeePaymentMethod,u,a.destinationToken,i)}return r.fromTokenAddress=De(r.fromTokenAddress,m,m),r.toAccountAddress=De(a.toAccountAddress,A,m),r.toTokenAddress=De(r.toTokenAddress,A,m),r.gasFeePaymentMethod=="stablecoin"&&Da(r.amount,u.decimals,r.fee,r.extraGas),r}function Da(m,a,i,r){let A=Ee(m).minus(i).minus(r??0);if(A.lte(0))throw new nt(`Amount not enough to pay fee, ${N(Ee(A).minus(1).neg(),a).toFixed()} stables is missing`)}async function Un(m,a,i,r,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:m,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:N(c.fee,V.getChainDecimalsByType(a)).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ve(new Ee(c.fee).mul(c.sourceNativeTokenPrice),V.getChainDecimalsByType(a),r).toFixed(0,Ee.roundUp);g.stablecoin={int:f,float:N(f,r).toFixed()}}return g}async function Ua(m,a,i,r,A){let c=(await Zn(i,r,A)).extraGasMax[a];if(!c)throw new gt(`Impossible to pay extra gas by '${a}' payment method`);let g=c.int;if(Ee(m).gt(g))throw new _t(`Extra gas ${m} in int format, exceeded limit ${g} for '${a}' payment method`)}async function Zn(m,a,i){let r={},A=await i.getReceiveTransactionCost({sourceChainId:m.allbridgeChainId,destinationChainId:a.allbridgeChainId,messenger:1}),u=a.txCostAmount.maxAmount,c=N(u,V.getChainDecimalsByType(a.chainType)).toFixed(),g=Ee(c).div(A.exchangeRate).toFixed(V.getChainDecimalsByType(m.chainType),Ee.roundDown),f=O(g,V.getChainDecimalsByType(m.chainType)).toFixed(0);if(r.native={int:f,float:g},A.sourceNativeTokenPrice){let h=Ee(g).mul(A.sourceNativeTokenPrice).toFixed(m.decimals,Ee.roundDown);r.stablecoin={int:O(h,m.decimals).toFixed(0),float:h}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:a.txCostAmount.swap,float:N(a.txCostAmount.swap,V.getChainDecimalsByType(a.chainType)).toFixed()},transfer:{int:a.txCostAmount.transfer,float:N(a.txCostAmount.transfer,V.getChainDecimalsByType(a.chainType)).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function vi(m){return m.sourceToken.chainSymbol!==m.destinationToken.chainSymbol}var St=class extends Ce{constructor(i,r,A){super();this.web3=i;this.api=r;this.nodeRpcUrlsConfig=A}chainType="EVM";async send(i){let r=await this.buildRawTransactionSend(i);return this.sendRawTransaction(r)}async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:h}=i,T=this.getBridgeContract(A).methods.swap(r,c,f,g,h);return Promise.resolve({from:u,to:A,data:T.encodeABI()})}async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:h,toTokenAddress:b,messenger:T,fee:B,gasFeePaymentMethod:w,extraGas:C}=r,M="0x"+jt().toString("hex"),I,W,x=B;if(C&&(x=Za(x).plus(C).toFixed()),T===3){let F=await this.buildRawTransactionCctpSend(i,r,x);I=F.sendMethod,W=F.value}else{let F=this.getBridgeContract(u);w==="stablecoin"?(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,x),W="0"):(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,0),W=x)}return Promise.resolve({from:c,to:u,value:W,data:I.encodeABI()})}async buildRawTransactionCctpSend(i,r,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:h}=r,b=this.getCctpBridgeContract(c),T,B;if(i.destinationToken.chainType==="SOLANA"){let w,C=new xi(i.toAccountAddress),M=new xi(i.destinationToken.tokenAddress),I=await Be(C,M),W=Xe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);$t.setProvider(W);let x=await $t.Spl.token(W).account.token.fetchNullable(I);if(x?.authority.equals(C))w=De(I.toBase58(),"SOLANA",this.chainType);else{let F=await W.connection.getTokenAccountsByOwner(C,{mint:M});if(F.value.length===0&&!x)w=De(I.toBase58(),"SOLANA",this.chainType);else if(F.value.length>0){let Z=F.value[0];if(!Z?.pubkey)throw new D("First token account or its public key is undefined");w=De(Z.pubkey.toBase58(),"SOLANA",this.chainType)}else throw new D("Associated account has wrong owner")}h==="stablecoin"?(T=b.methods.bridgeWithWalletAddress(u,w,f,g,A),B="0"):(T=b.methods.bridgeWithWalletAddress(u,w,f,g,0),B=A)}else h==="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 r=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:r,...A});return{txId:u.toString()}}getBridgeContract(i){return new this.web3.eth.Contract(hi.abi,i)}getCctpBridgeContract(i){return new this.web3.eth.Contract(yi.abi,i)}};var en=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){let r,A;i?(r=a,A=i):A=a;let u=wt(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},r)}async send(a,i){return L(a.amount),J("amount",a.amount,a.sourceToken.decimals),vi(a)?tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(a):tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(a)}};import{BN as ut,Program as Vn,Spl as Qa,web3 as Ye}from"@project-serum/anchor";import{Keypair as Xi,PublicKey as K,SystemProgram as Ha}from"@solana/web3.js";import{Big as Ie}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 Wi={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 _a}from"@project-serum/anchor";import Na from"big.js";import{Web3 as nn}from"web3";async function At(m,a){return await _a.token(a).account.token.fetch(m)}async function Fi(m,a,i){let r=await a.account.pool.fetch(i),A=r.decimals,u=Na(r.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:r.a.toString(),dValue:r.d.toString(),totalLpAmount:r.totalLpAmount.toString(),tokenBalance:r.tokenBalance.toString(),vUsdBalance:r.vUsdBalance.toString(),accRewardPerShareP:r.accRewardPerShareP.toString()};return ve(m,{decimals:A,feeShare:u},c)}function Gi(m){let a=m.amount,i="0x"+m.recipient.toString("hex"),r=m.sourceChainId,A=m.destinationChainId,u="0x"+m.receiveToken.toString("hex"),c="0x"+m.nonce.toString("hex"),g=1,f="0x"+m.chainBridge.toString("hex"),h=nn.utils.encodePacked({t:"uint256",v:a},{t:"bytes32",v:i},{t:"uint256",v:r},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!h)throw new D("message cannot be undefined");let b=nn.utils.keccak256(S.from(h.replace("0x",""),"hex")),T=S.from(b.replace("0x",""),"hex");T[0]=r,T[1]=A;let B=nn.utils.encodePacked({t:"bytes32",v:"0x"+T.toString("hex")},{t:"bytes32",v:f});if(!B)throw new it("messageWithSigner cannot be undefined");let w=nn.utils.keccak256(S.from(B.replace("0x",""),"hex")),C=S.from(w.replace("0x",""),"hex");return C[0]=T[0],C[1]=T[1],C}import{ComputeBudgetInstruction as Di,ComputeBudgetProgram as an,Connection as Ui,TransactionMessage as Va}from"@solana/web3.js";import{Big as Oa}from"big.js";import{AddressLookupTableAccount as Ei}from"@solana/web3.js";async function $e(m,a){return await Promise.all(m.message.addressTableLookups.map(async i=>new Ei({key:i.accountKey,state:Ei.deserialize(await a.getAccountInfo(i.accountKey).then(r=>{if(!r)throw new D("Cannot get AccountInfo");return r.data}))})))}var _n="AUTO";async function ct(m,a,i){let r=new Ui(i,"confirmed"),A=(await r.simulateTransaction(m)).value.unitsConsumed;await _i(m.instructions,A,a,r)}async function Zi(m,a,i){let r=new Ui(i,"confirmed"),A=await $e(m,r),u=Va.decompile(m.message,{addressLookupTableAccounts:A});if(m.serialize().length>1232)throw new Ot;await _i(u.instructions,769230,a,r),m.message=u.compileToV0Message(A)}async function _i(m,a,i,r){if(a>0){let A=Xa(a,m);if(i?.solana){let u=i.solana;if(u===_n)await Nn(m,r);else if("pricePerUnitInMicroLamports"in u)await Nn(m,r,u.pricePerUnitInMicroLamports);else{let c=Oa(u.extraFeeInLamports).div(A).mul(yt(6)).toFixed(0);await Nn(m,r,c)}}}}function Xa(m,a){let i=a.findIndex(u=>u.programId.equals(an.programId)&&Di.decodeInstructionType(u)==="SetComputeUnitLimit"),r=Number((m*1.3).toFixed(0)),A=an.setComputeUnitLimit({units:r});return i>=0?a[i]=A:a.push(A),r.toString()}async function Nn(m,a,i){let r=m.findIndex(c=>c.programId.equals(an.programId)&&Di.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await La(a)),u=an.setComputeUnitPrice({microLamports:A});return r>=0?m[r]=u:m.push(u),A.toString()}async function La(m){let a=await m.getRecentPrioritizationFees(),i=0;for(let r of a)i+=r.prioritizationFee;return(i/a.length).toFixed(0)}import{NATIVE_MINT as Ya}from"@solana/spl-token";import{Connection as Ja,TransactionMessage as Ni,VersionedTransaction as Ka}from"@solana/web3.js";import Vi,{AxiosError as Oi}from"axios";var rn=class{connection;jupiterUrl;constructor(a,i){this.connection=new Ja(a),this.jupiterUrl=i.replace(/\/$/,"")}async getJupiterSwapTx(a,i,r,A){let u;try{let T=A?"ExactOut":"ExactIn";u=await Vi.get(`${this.jupiterUrl}/quote?inputMint=${i}
|
|
2
2
|
&outputMint=${Ya.toString()}
|
|
3
3
|
&amount=${r}
|
|
4
4
|
&swapMode=${T}
|