@allbridge/bridge-core-sdk 3.15.3-alpha.1 → 3.15.3
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 +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +2 -2
- 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 +1 -1
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Tt={},or=!1;function wi(){if(or)return Tt;or=!0,Tt.byteLength=p,Tt.toByteArray=f,Tt.fromByteArray=R;for(var u=[],t=[],n=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,A=r.length;s<A;++s)u[s]=r[s],t[r.charCodeAt(s)]=s;t[45]=62,t[95]=63;function o(w){var P=w.length;if(P%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=w.indexOf("=");M===-1&&(M=P);var S=M===P?0:4-M%4;return[M,S]}function p(w){var P=o(w),M=P[0],S=P[1];return(M+S)*3/4-S}function d(w,P,M){return(P+M)*3/4-M}function f(w){var P,M=o(w),S=M[0],k=M[1],v=new n(d(w,S,k)),E=0,N=k>0?S-4:S,D;for(D=0;D<N;D+=4)P=t[w.charCodeAt(D)]<<18|t[w.charCodeAt(D+1)]<<12|t[w.charCodeAt(D+2)]<<6|t[w.charCodeAt(D+3)],v[E++]=P>>16&255,v[E++]=P>>8&255,v[E++]=P&255;return k===2&&(P=t[w.charCodeAt(D)]<<2|t[w.charCodeAt(D+1)]>>4,v[E++]=P&255),k===1&&(P=t[w.charCodeAt(D)]<<10|t[w.charCodeAt(D+1)]<<4|t[w.charCodeAt(D+2)]>>2,v[E++]=P>>8&255,v[E++]=P&255),v}function T(w){return u[w>>18&63]+u[w>>12&63]+u[w>>6&63]+u[w&63]}function b(w,P,M){for(var S,k=[],v=P;v<M;v+=3)S=(w[v]<<16&16711680)+(w[v+1]<<8&65280)+(w[v+2]&255),k.push(T(S));return k.join("")}function R(w){for(var P,M=w.length,S=M%3,k=[],v=16383,E=0,N=M-S;E<N;E+=v)k.push(b(w,E,E+v>N?N:E+v));return S===1?(P=w[M-1],k.push(u[P>>2]+u[P<<4&63]+"==")):S===2&&(P=(w[M-2]<<8)+w[M-1],k.push(u[P>>10]+u[P>>4&63]+u[P<<2&63]+"=")),k.join("")}return Tt}var Lt={},Ar=!1;function Pi(){if(Ar)return Lt;Ar=!0;return Lt.read=function(u,t,n,r,s){var A,o,p=s*8-r-1,d=(1<<p)-1,f=d>>1,T=-7,b=n?s-1:0,R=n?-1:1,w=u[t+b];for(b+=R,A=w&(1<<-T)-1,w>>=-T,T+=p;T>0;A=A*256+u[t+b],b+=R,T-=8);for(o=A&(1<<-T)-1,A>>=-T,T+=r;T>0;o=o*256+u[t+b],b+=R,T-=8);if(A===0)A=1-f;else{if(A===d)return o?NaN:(w?-1:1)*(1/0);o=o+Math.pow(2,r),A=A-f}return(w?-1:1)*o*Math.pow(2,A-r)},Lt.write=function(u,t,n,r,s,A){var o,p,d,f=A*8-s-1,T=(1<<f)-1,b=T>>1,R=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:A-1,P=r?1:-1,M=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(p=isNaN(t)?1:0,o=T):(o=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-o))<1&&(o--,d*=2),o+b>=1?t+=R/d:t+=R*Math.pow(2,1-b),t*d>=2&&(o++,d/=2),o+b>=T?(p=0,o=T):o+b>=1?(p=(t*d-1)*Math.pow(2,s),o=o+b):(p=t*Math.pow(2,b-1)*Math.pow(2,s),o=0));s>=8;u[n+w]=p&255,w+=P,p/=256,s-=8);for(o=o<<s|p,f+=s;f>0;u[n+w]=o&255,w+=P,o/=256,f-=8);u[n+w-P]|=M*128},Lt}var $e={},cr=!1;function Si(){if(cr)return $e;cr=!0;let u=wi(),t=Pi(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;$e.Buffer=o,$e.SlowBuffer=k,$e.INSPECT_MAX_BYTES=50;let r=2147483647;$e.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=s(),!o.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 s(){try{let c=new Uint8Array(1),i={foo:function(){return 42}};return Object.setPrototypeOf(i,Uint8Array.prototype),Object.setPrototypeOf(c,i),c.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function A(c){if(c>r)throw new RangeError('The value "'+c+'" is invalid for option "size"');let i=new Uint8Array(c);return Object.setPrototypeOf(i,o.prototype),i}function o(c,i,a){if(typeof c=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return T(c)}return p(c,i,a)}o.poolSize=8192;function p(c,i,a){if(typeof c=="string")return b(c,i);if(ArrayBuffer.isView(c))return w(c);if(c==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof c);if(xe(c,ArrayBuffer)||c&&xe(c.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(xe(c,SharedArrayBuffer)||c&&xe(c.buffer,SharedArrayBuffer)))return P(c,i,a);if(typeof c=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let m=c.valueOf&&c.valueOf();if(m!=null&&m!==c)return o.from(m,i,a);let l=M(c);if(l)return l;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof c[Symbol.toPrimitive]=="function")return o.from(c[Symbol.toPrimitive]("string"),i,a);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof c)}o.from=function(c,i,a){return p(c,i,a)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function d(c){if(typeof c!="number")throw new TypeError('"size" argument must be of type number');if(c<0)throw new RangeError('The value "'+c+'" is invalid for option "size"')}function f(c,i,a){return d(c),c<=0?A(c):i!==void 0?typeof a=="string"?A(c).fill(i,a):A(c).fill(i):A(c)}o.alloc=function(c,i,a){return f(c,i,a)};function T(c){return d(c),A(c<0?0:S(c)|0)}o.allocUnsafe=function(c){return T(c)},o.allocUnsafeSlow=function(c){return T(c)};function b(c,i){if((typeof i!="string"||i==="")&&(i="utf8"),!o.isEncoding(i))throw new TypeError("Unknown encoding: "+i);let a=v(c,i)|0,m=A(a),l=m.write(c,i);return l!==a&&(m=m.slice(0,l)),m}function R(c){let i=c.length<0?0:S(c.length)|0,a=A(i);for(let m=0;m<i;m+=1)a[m]=c[m]&255;return a}function w(c){if(xe(c,Uint8Array)){let i=new Uint8Array(c);return P(i.buffer,i.byteOffset,i.byteLength)}return R(c)}function P(c,i,a){if(i<0||c.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(c.byteLength<i+(a||0))throw new RangeError('"length" is outside of buffer bounds');let m;return i===void 0&&a===void 0?m=new Uint8Array(c):a===void 0?m=new Uint8Array(c,i):m=new Uint8Array(c,i,a),Object.setPrototypeOf(m,o.prototype),m}function M(c){if(o.isBuffer(c)){let i=S(c.length)|0,a=A(i);return a.length===0||c.copy(a,0,0,i),a}if(c.length!==void 0)return typeof c.length!="number"||En(c.length)?A(0):R(c);if(c.type==="Buffer"&&Array.isArray(c.data))return R(c.data)}function S(c){if(c>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return c|0}function k(c){return+c!=c&&(c=0),o.alloc(+c)}o.isBuffer=function(i){return i!=null&&i._isBuffer===!0&&i!==o.prototype},o.compare=function(i,a){if(xe(i,Uint8Array)&&(i=o.from(i,i.offset,i.byteLength)),xe(a,Uint8Array)&&(a=o.from(a,a.offset,a.byteLength)),!o.isBuffer(i)||!o.isBuffer(a))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(i===a)return 0;let m=i.length,l=a.length;for(let g=0,y=Math.min(m,l);g<y;++g)if(i[g]!==a[g]){m=i[g],l=a[g];break}return m<l?-1:l<m?1:0},o.isEncoding=function(i){switch(String(i).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}},o.concat=function(i,a){if(!Array.isArray(i))throw new TypeError('"list" argument must be an Array of Buffers');if(i.length===0)return o.alloc(0);let m;if(a===void 0)for(a=0,m=0;m<i.length;++m)a+=i[m].length;let l=o.allocUnsafe(a),g=0;for(m=0;m<i.length;++m){let y=i[m];if(xe(y,Uint8Array))g+y.length>l.length?(o.isBuffer(y)||(y=o.from(y)),y.copy(l,g)):Uint8Array.prototype.set.call(l,y,g);else if(o.isBuffer(y))y.copy(l,g);else throw new TypeError('"list" argument must be an Array of Buffers');g+=y.length}return l};function v(c,i){if(o.isBuffer(c))return c.length;if(ArrayBuffer.isView(c)||xe(c,ArrayBuffer))return c.byteLength;if(typeof c!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof c);let a=c.length,m=arguments.length>2&&arguments[2]===!0;if(!m&&a===0)return 0;let l=!1;for(;;)switch(i){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":return xn(c).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a*2;case"hex":return a>>>1;case"base64":return sr(c).length;default:if(l)return m?-1:xn(c).length;i=(""+i).toLowerCase(),l=!0}}o.byteLength=v;function E(c,i,a){let m=!1;if((i===void 0||i<0)&&(i=0),i>this.length||((a===void 0||a>this.length)&&(a=this.length),a<=0)||(a>>>=0,i>>>=0,a<=i))return"";for(c||(c="utf8");;)switch(c){case"hex":return Pe(this,i,a);case"utf8":case"utf-8":return te(this,i,a);case"ascii":return oe(this,i,a);case"latin1":case"binary":return we(this,i,a);case"base64":return pe(this,i,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ge(this,i,a);default:if(m)throw new TypeError("Unknown encoding: "+c);c=(c+"").toLowerCase(),m=!0}}o.prototype._isBuffer=!0;function N(c,i,a){let m=c[i];c[i]=c[a],c[a]=m}o.prototype.swap16=function(){let i=this.length;if(i%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let a=0;a<i;a+=2)N(this,a,a+1);return this},o.prototype.swap32=function(){let i=this.length;if(i%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let a=0;a<i;a+=4)N(this,a,a+3),N(this,a+1,a+2);return this},o.prototype.swap64=function(){let i=this.length;if(i%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let a=0;a<i;a+=8)N(this,a,a+7),N(this,a+1,a+6),N(this,a+2,a+5),N(this,a+3,a+4);return this},o.prototype.toString=function(){let i=this.length;return i===0?"":arguments.length===0?te(this,0,i):E.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(i){if(!o.isBuffer(i))throw new TypeError("Argument must be a Buffer");return this===i?!0:o.compare(this,i)===0},o.prototype.inspect=function(){let i="",a=$e.INSPECT_MAX_BYTES;return i=this.toString("hex",0,a).replace(/(.{2})/g,"$1 ").trim(),this.length>a&&(i+=" ... "),"<Buffer "+i+">"},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(i,a,m,l,g){if(xe(i,Uint8Array)&&(i=o.from(i,i.offset,i.byteLength)),!o.isBuffer(i))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(a===void 0&&(a=0),m===void 0&&(m=i?i.length:0),l===void 0&&(l=0),g===void 0&&(g=this.length),a<0||m>i.length||l<0||g>this.length)throw new RangeError("out of range index");if(l>=g&&a>=m)return 0;if(l>=g)return-1;if(a>=m)return 1;if(a>>>=0,m>>>=0,l>>>=0,g>>>=0,this===i)return 0;let y=g-l,F=m-a,K=Math.min(y,F),L=this.slice(l,g),Q=i.slice(a,m);for(let V=0;V<K;++V)if(L[V]!==Q[V]){y=L[V],F=Q[V];break}return y<F?-1:F<y?1:0};function D(c,i,a,m,l){if(c.length===0)return-1;if(typeof a=="string"?(m=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,En(a)&&(a=l?0:c.length-1),a<0&&(a=c.length+a),a>=c.length){if(l)return-1;a=c.length-1}else if(a<0)if(l)a=0;else return-1;if(typeof i=="string"&&(i=o.from(i,m)),o.isBuffer(i))return i.length===0?-1:U(c,i,a,m,l);if(typeof i=="number")return i=i&255,typeof Uint8Array.prototype.indexOf=="function"?l?Uint8Array.prototype.indexOf.call(c,i,a):Uint8Array.prototype.lastIndexOf.call(c,i,a):U(c,[i],a,m,l);throw new TypeError("val must be string, number or Buffer")}function U(c,i,a,m,l){let g=1,y=c.length,F=i.length;if(m!==void 0&&(m=String(m).toLowerCase(),m==="ucs2"||m==="ucs-2"||m==="utf16le"||m==="utf-16le")){if(c.length<2||i.length<2)return-1;g=2,y/=2,F/=2,a/=2}function K(Q,V){return g===1?Q[V]:Q.readUInt16BE(V*g)}let L;if(l){let Q=-1;for(L=a;L<y;L++)if(K(c,L)===K(i,Q===-1?0:L-Q)){if(Q===-1&&(Q=L),L-Q+1===F)return Q*g}else Q!==-1&&(L-=L-Q),Q=-1}else for(a+F>y&&(a=y-F),L=a;L>=0;L--){let Q=!0;for(let V=0;V<F;V++)if(K(c,L+V)!==K(i,V)){Q=!1;break}if(Q)return L}return-1}o.prototype.includes=function(i,a,m){return this.indexOf(i,a,m)!==-1},o.prototype.indexOf=function(i,a,m){return D(this,i,a,m,!0)},o.prototype.lastIndexOf=function(i,a,m){return D(this,i,a,m,!1)};function ae(c,i,a,m){a=Number(a)||0;let l=c.length-a;m?(m=Number(m),m>l&&(m=l)):m=l;let g=i.length;m>g/2&&(m=g/2);let y;for(y=0;y<m;++y){let F=parseInt(i.substr(y*2,2),16);if(En(F))return y;c[a+y]=F}return y}function Y(c,i,a,m){return _t(xn(i,c.length-a),c,a,m)}function Te(c,i,a,m){return _t(yi(i),c,a,m)}function be(c,i,a,m){return _t(sr(i),c,a,m)}function Ce(c,i,a,m){return _t(hi(i,c.length-a),c,a,m)}o.prototype.write=function(i,a,m,l){if(a===void 0)l="utf8",m=this.length,a=0;else if(m===void 0&&typeof a=="string")l=a,m=this.length,a=0;else if(isFinite(a))a=a>>>0,isFinite(m)?(m=m>>>0,l===void 0&&(l="utf8")):(l=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let g=this.length-a;if((m===void 0||m>g)&&(m=g),i.length>0&&(m<0||a<0)||a>this.length)throw new RangeError("Attempt to write outside buffer bounds");l||(l="utf8");let y=!1;for(;;)switch(l){case"hex":return ae(this,i,a,m);case"utf8":case"utf-8":return Y(this,i,a,m);case"ascii":case"latin1":case"binary":return Te(this,i,a,m);case"base64":return be(this,i,a,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ce(this,i,a,m);default:if(y)throw new TypeError("Unknown encoding: "+l);l=(""+l).toLowerCase(),y=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function pe(c,i,a){return i===0&&a===c.length?u.fromByteArray(c):u.fromByteArray(c.slice(i,a))}function te(c,i,a){a=Math.min(c.length,a);let m=[],l=i;for(;l<a;){let g=c[l],y=null,F=g>239?4:g>223?3:g>191?2:1;if(l+F<=a){let K,L,Q,V;switch(F){case 1:g<128&&(y=g);break;case 2:K=c[l+1],(K&192)===128&&(V=(g&31)<<6|K&63,V>127&&(y=V));break;case 3:K=c[l+1],L=c[l+2],(K&192)===128&&(L&192)===128&&(V=(g&15)<<12|(K&63)<<6|L&63,V>2047&&(V<55296||V>57343)&&(y=V));break;case 4:K=c[l+1],L=c[l+2],Q=c[l+3],(K&192)===128&&(L&192)===128&&(Q&192)===128&&(V=(g&15)<<18|(K&63)<<12|(L&63)<<6|Q&63,V>65535&&V<1114112&&(y=V))}}y===null?(y=65533,F=1):y>65535&&(y-=65536,m.push(y>>>10&1023|55296),y=56320|y&1023),m.push(y),l+=F}return de(m)}let se=4096;function de(c){let i=c.length;if(i<=se)return String.fromCharCode.apply(String,c);let a="",m=0;for(;m<i;)a+=String.fromCharCode.apply(String,c.slice(m,m+=se));return a}function oe(c,i,a){let m="";a=Math.min(c.length,a);for(let l=i;l<a;++l)m+=String.fromCharCode(c[l]&127);return m}function we(c,i,a){let m="";a=Math.min(c.length,a);for(let l=i;l<a;++l)m+=String.fromCharCode(c[l]);return m}function Pe(c,i,a){let m=c.length;(!i||i<0)&&(i=0),(!a||a<0||a>m)&&(a=m);let l="";for(let g=i;g<a;++g)l+=Ti[c[g]];return l}function ge(c,i,a){let m=c.slice(i,a),l="";for(let g=0;g<m.length-1;g+=2)l+=String.fromCharCode(m[g]+m[g+1]*256);return l}o.prototype.slice=function(i,a){let m=this.length;i=~~i,a=a===void 0?m:~~a,i<0?(i+=m,i<0&&(i=0)):i>m&&(i=m),a<0?(a+=m,a<0&&(a=0)):a>m&&(a=m),a<i&&(a=i);let l=this.subarray(i,a);return Object.setPrototypeOf(l,o.prototype),l};function x(c,i,a){if(c%1!==0||c<0)throw new RangeError("offset is not uint");if(c+i>a)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i],g=1,y=0;for(;++y<a&&(g*=256);)l+=this[i+y]*g;return l},o.prototype.readUintBE=o.prototype.readUIntBE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i+--a],g=1;for(;a>0&&(g*=256);)l+=this[i+--a]*g;return l},o.prototype.readUint8=o.prototype.readUInt8=function(i,a){return i=i>>>0,a||x(i,1,this.length),this[i]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(i,a){return i=i>>>0,a||x(i,2,this.length),this[i]|this[i+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(i,a){return i=i>>>0,a||x(i,2,this.length),this[i]<<8|this[i+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(i,a){return i=i>>>0,a||x(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+this[i+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]*16777216+(this[i+1]<<16|this[i+2]<<8|this[i+3])},o.prototype.readBigUInt64LE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24,g=this[++i]+this[++i]*2**8+this[++i]*2**16+m*2**24;return BigInt(l)+(BigInt(g)<<BigInt(32))}),o.prototype.readBigUInt64BE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=a*2**24+this[++i]*2**16+this[++i]*2**8+this[++i],g=this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+m;return(BigInt(l)<<BigInt(32))+BigInt(g)}),o.prototype.readIntLE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i],g=1,y=0;for(;++y<a&&(g*=256);)l+=this[i+y]*g;return g*=128,l>=g&&(l-=Math.pow(2,8*a)),l},o.prototype.readIntBE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=a,g=1,y=this[i+--l];for(;l>0&&(g*=256);)y+=this[i+--l]*g;return g*=128,y>=g&&(y-=Math.pow(2,8*a)),y},o.prototype.readInt8=function(i,a){return i=i>>>0,a||x(i,1,this.length),this[i]&128?(255-this[i]+1)*-1:this[i]},o.prototype.readInt16LE=function(i,a){i=i>>>0,a||x(i,2,this.length);let m=this[i]|this[i+1]<<8;return m&32768?m|4294901760:m},o.prototype.readInt16BE=function(i,a){i=i>>>0,a||x(i,2,this.length);let m=this[i+1]|this[i]<<8;return m&32768?m|4294901760:m},o.prototype.readInt32LE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},o.prototype.readInt32BE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},o.prototype.readBigInt64LE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=this[i+4]+this[i+5]*2**8+this[i+6]*2**16+(m<<24);return(BigInt(l)<<BigInt(32))+BigInt(a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24)}),o.prototype.readBigInt64BE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=(a<<24)+this[++i]*2**16+this[++i]*2**8+this[++i];return(BigInt(l)<<BigInt(32))+BigInt(this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+m)}),o.prototype.readFloatLE=function(i,a){return i=i>>>0,a||x(i,4,this.length),t.read(this,i,!0,23,4)},o.prototype.readFloatBE=function(i,a){return i=i>>>0,a||x(i,4,this.length),t.read(this,i,!1,23,4)},o.prototype.readDoubleLE=function(i,a){return i=i>>>0,a||x(i,8,this.length),t.read(this,i,!0,52,8)},o.prototype.readDoubleBE=function(i,a){return i=i>>>0,a||x(i,8,this.length),t.read(this,i,!1,52,8)};function j(c,i,a,m,l,g){if(!o.isBuffer(c))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>l||i<g)throw new RangeError('"value" argument is out of bounds');if(a+m>c.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(i,a,m,l){if(i=+i,a=a>>>0,m=m>>>0,!l){let F=Math.pow(2,8*m)-1;j(this,i,a,m,F,0)}let g=1,y=0;for(this[a]=i&255;++y<m&&(g*=256);)this[a+y]=i/g&255;return a+m},o.prototype.writeUintBE=o.prototype.writeUIntBE=function(i,a,m,l){if(i=+i,a=a>>>0,m=m>>>0,!l){let F=Math.pow(2,8*m)-1;j(this,i,a,m,F,0)}let g=m-1,y=1;for(this[a+g]=i&255;--g>=0&&(y*=256);)this[a+g]=i/y&255;return a+m},o.prototype.writeUint8=o.prototype.writeUInt8=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,1,255,0),this[a]=i&255,a+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,65535,0),this[a]=i&255,this[a+1]=i>>>8,a+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,65535,0),this[a]=i>>>8,this[a+1]=i&255,a+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,4294967295,0),this[a+3]=i>>>24,this[a+2]=i>>>16,this[a+1]=i>>>8,this[a]=i&255,a+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,4294967295,0),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4};function Gt(c,i,a,m,l){ar(i,m,l,c,a,7);let g=Number(i&BigInt(4294967295));c[a++]=g,g=g>>8,c[a++]=g,g=g>>8,c[a++]=g,g=g>>8,c[a++]=g;let y=Number(i>>BigInt(32)&BigInt(4294967295));return c[a++]=y,y=y>>8,c[a++]=y,y=y>>8,c[a++]=y,y=y>>8,c[a++]=y,a}function er(c,i,a,m,l){ar(i,m,l,c,a,7);let g=Number(i&BigInt(4294967295));c[a+7]=g,g=g>>8,c[a+6]=g,g=g>>8,c[a+5]=g,g=g>>8,c[a+4]=g;let y=Number(i>>BigInt(32)&BigInt(4294967295));return c[a+3]=y,y=y>>8,c[a+2]=y,y=y>>8,c[a+1]=y,y=y>>8,c[a]=y,a+8}o.prototype.writeBigUInt64LE=Ze(function(i,a=0){return Gt(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Ze(function(i,a=0){return er(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(i,a,m,l){if(i=+i,a=a>>>0,!l){let K=Math.pow(2,8*m-1);j(this,i,a,m,K-1,-K)}let g=0,y=1,F=0;for(this[a]=i&255;++g<m&&(y*=256);)i<0&&F===0&&this[a+g-1]!==0&&(F=1),this[a+g]=(i/y>>0)-F&255;return a+m},o.prototype.writeIntBE=function(i,a,m,l){if(i=+i,a=a>>>0,!l){let K=Math.pow(2,8*m-1);j(this,i,a,m,K-1,-K)}let g=m-1,y=1,F=0;for(this[a+g]=i&255;--g>=0&&(y*=256);)i<0&&F===0&&this[a+g+1]!==0&&(F=1),this[a+g]=(i/y>>0)-F&255;return a+m},o.prototype.writeInt8=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,1,127,-128),i<0&&(i=255+i+1),this[a]=i&255,a+1},o.prototype.writeInt16LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,32767,-32768),this[a]=i&255,this[a+1]=i>>>8,a+2},o.prototype.writeInt16BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,32767,-32768),this[a]=i>>>8,this[a+1]=i&255,a+2},o.prototype.writeInt32LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,2147483647,-2147483648),this[a]=i&255,this[a+1]=i>>>8,this[a+2]=i>>>16,this[a+3]=i>>>24,a+4},o.prototype.writeInt32BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4},o.prototype.writeBigInt64LE=Ze(function(i,a=0){return Gt(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Ze(function(i,a=0){return er(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function tr(c,i,a,m,l,g){if(a+m>c.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function nr(c,i,a,m,l){return i=+i,a=a>>>0,l||tr(c,i,a,4),t.write(c,i,a,m,23,4),a+4}o.prototype.writeFloatLE=function(i,a,m){return nr(this,i,a,!0,m)},o.prototype.writeFloatBE=function(i,a,m){return nr(this,i,a,!1,m)};function rr(c,i,a,m,l){return i=+i,a=a>>>0,l||tr(c,i,a,8),t.write(c,i,a,m,52,8),a+8}o.prototype.writeDoubleLE=function(i,a,m){return rr(this,i,a,!0,m)},o.prototype.writeDoubleBE=function(i,a,m){return rr(this,i,a,!1,m)},o.prototype.copy=function(i,a,m,l){if(!o.isBuffer(i))throw new TypeError("argument should be a Buffer");if(m||(m=0),!l&&l!==0&&(l=this.length),a>=i.length&&(a=i.length),a||(a=0),l>0&&l<m&&(l=m),l===m||i.length===0||this.length===0)return 0;if(a<0)throw new RangeError("targetStart out of bounds");if(m<0||m>=this.length)throw new RangeError("Index out of range");if(l<0)throw new RangeError("sourceEnd out of bounds");l>this.length&&(l=this.length),i.length-a<l-m&&(l=i.length-a+m);let g=l-m;return this===i&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(a,m,l):Uint8Array.prototype.set.call(i,this.subarray(m,l),a),g},o.prototype.fill=function(i,a,m,l){if(typeof i=="string"){if(typeof a=="string"?(l=a,a=0,m=this.length):typeof m=="string"&&(l=m,m=this.length),l!==void 0&&typeof l!="string")throw new TypeError("encoding must be a string");if(typeof l=="string"&&!o.isEncoding(l))throw new TypeError("Unknown encoding: "+l);if(i.length===1){let y=i.charCodeAt(0);(l==="utf8"&&y<128||l==="latin1")&&(i=y)}}else typeof i=="number"?i=i&255:typeof i=="boolean"&&(i=Number(i));if(a<0||this.length<a||this.length<m)throw new RangeError("Out of range index");if(m<=a)return this;a=a>>>0,m=m===void 0?this.length:m>>>0,i||(i=0);let g;if(typeof i=="number")for(g=a;g<m;++g)this[g]=i;else{let y=o.isBuffer(i)?i:o.from(i,l),F=y.length;if(F===0)throw new TypeError('The value "'+i+'" is invalid for argument "value"');for(g=0;g<m-a;++g)this[g+a]=y[g%F]}return this};let it={};function vn(c,i,a){it[c]=class extends a{constructor(){super(),Object.defineProperty(this,"message",{value:i.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${c}]`,this.stack,delete this.name}get code(){return c}set code(l){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:l,writable:!0})}toString(){return`${this.name} [${c}]: ${this.message}`}}}vn("ERR_BUFFER_OUT_OF_BOUNDS",function(c){return c?`${c} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),vn("ERR_INVALID_ARG_TYPE",function(c,i){return`The "${c}" argument must be of type number. Received type ${typeof i}`},TypeError),vn("ERR_OUT_OF_RANGE",function(c,i,a){let m=`The value of "${c}" is out of range.`,l=a;return Number.isInteger(a)&&Math.abs(a)>2**32?l=ir(String(a)):typeof a=="bigint"&&(l=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(l=ir(l)),l+="n"),m+=` It must be ${i}. Received ${l}`,m},RangeError);function ir(c){let i="",a=c.length,m=c[0]==="-"?1:0;for(;a>=m+4;a-=3)i=`_${c.slice(a-3,a)}${i}`;return`${c.slice(0,a)}${i}`}function di(c,i,a){at(i,"offset"),(c[i]===void 0||c[i+a]===void 0)&&ht(i,c.length-(a+1))}function ar(c,i,a,m,l,g){if(c>a||c<i){let y=typeof i=="bigint"?"n":"",F;throw g>3?i===0||i===BigInt(0)?F=`>= 0${y} and < 2${y} ** ${(g+1)*8}${y}`:F=`>= -(2${y} ** ${(g+1)*8-1}${y}) and < 2 ** ${(g+1)*8-1}${y}`:F=`>= ${i}${y} and <= ${a}${y}`,new it.ERR_OUT_OF_RANGE("value",F,c)}di(m,l,g)}function at(c,i){if(typeof c!="number")throw new it.ERR_INVALID_ARG_TYPE(i,"number",c)}function ht(c,i,a){throw Math.floor(c)!==c?(at(c,a),new it.ERR_OUT_OF_RANGE(a||"offset","an integer",c)):i<0?new it.ERR_BUFFER_OUT_OF_BOUNDS:new it.ERR_OUT_OF_RANGE(a||"offset",`>= ${a?1:0} and <= ${i}`,c)}let gi=/[^+/0-9A-Za-z-_]/g;function fi(c){if(c=c.split("=")[0],c=c.trim().replace(gi,""),c.length<2)return"";for(;c.length%4!==0;)c=c+"=";return c}function xn(c,i){i=i||1/0;let a,m=c.length,l=null,g=[];for(let y=0;y<m;++y){if(a=c.charCodeAt(y),a>55295&&a<57344){if(!l){if(a>56319){(i-=3)>-1&&g.push(239,191,189);continue}else if(y+1===m){(i-=3)>-1&&g.push(239,191,189);continue}l=a;continue}if(a<56320){(i-=3)>-1&&g.push(239,191,189),l=a;continue}a=(l-55296<<10|a-56320)+65536}else l&&(i-=3)>-1&&g.push(239,191,189);if(l=null,a<128){if((i-=1)<0)break;g.push(a)}else if(a<2048){if((i-=2)<0)break;g.push(a>>6|192,a&63|128)}else if(a<65536){if((i-=3)<0)break;g.push(a>>12|224,a>>6&63|128,a&63|128)}else if(a<1114112){if((i-=4)<0)break;g.push(a>>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else throw new Error("Invalid code point")}return g}function yi(c){let i=[];for(let a=0;a<c.length;++a)i.push(c.charCodeAt(a)&255);return i}function hi(c,i){let a,m,l,g=[];for(let y=0;y<c.length&&!((i-=2)<0);++y)a=c.charCodeAt(y),m=a>>8,l=a%256,g.push(l),g.push(m);return g}function sr(c){return u.toByteArray(fi(c))}function _t(c,i,a,m){let l;for(l=0;l<m&&!(l+a>=i.length||l>=c.length);++l)i[l+a]=c[l];return l}function xe(c,i){return c instanceof i||c!=null&&c.constructor!=null&&c.constructor.name!=null&&c.constructor.name===i.name}function En(c){return c!==c}let Ti=function(){let c="0123456789abcdef",i=new Array(256);for(let a=0;a<16;++a){let m=a*16;for(let l=0;l<16;++l)i[m+l]=c[a]+c[l]}return i}();function Ze(c){return typeof BigInt>"u"?bi:c}function bi(){throw new Error("BigInt not supported")}return $e}var et=Si();et.Buffer;et.SlowBuffer;et.INSPECT_MAX_BYTES;et.kMaxLength;var h=et.Buffer,ss=et.INSPECT_MAX_BYTES,os=et.kMaxLength;var ds={coreApiUrl:"https://core-dev.a11bd.net",coreApiQueryParams:{},coreApiHeaders:{},wormholeMessengerProgramId:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",solanaLookUpTable:"C3jAxHRTZjM2Bs7EqPir4nvrT8zKtpcW7RvGR9R2qKtN",sorobanNetworkPassphrase:"Test SDF Network ; September 2015",tronJsonRpc:"https://nile.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{SPL:0,ARB:3,AMO:7}}},gs={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},fs={SOL:"https://api.devnet.solana.com",TRX:"https://nile.trongrid.io",SRB:"https://soroban-testnet.stellar.org",STLR:"https://horizon-testnet.stellar.org"};var Zt={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},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}}},ws={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},Ps={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 Ue}from"big.js";var Xt=class{constructor(t){this.apiClient=t}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let t=await this.getChainDetailsMap();return Object.values(t).flatMap(n=>n.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(t,n){return this.apiClient.getGasBalance(t,n)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(t,n){return await this.apiClient.getTransferStatus(t,n)}async getReceiveTransactionCost(t){return await this.apiClient.getReceiveTransactionCost(t)}async getPoolInfoMap(t){return await this.apiClient.getPoolInfoMap(t)}};import vi from"axios";var ur="3.15.3-alpha.1";var Ee=(k=>(k.GRL="GRL",k.SPL="SPL",k.HOL="HOL",k.BSC="BSC",k.ETH="ETH",k.BAS="BAS",k.SOL="SOL",k.TRX="TRX",k.POL="POL",k.MUM="MUM",k.AMO="AMO",k.ARB="ARB",k.CEL="CEL",k.AVA="AVA",k.SRB="SRB",k.STLR="STLR",k.OPT="OPT",k))(Ee||{}),q=(s=>(s.EVM="EVM",s.SOLANA="SOLANA",s.TRX="TRX",s.SRB="SRB",s))(q||{}),$={EVM:18,SOLANA:9,TRX:6,SRB:7},ce={GRL:{chainSymbol:"GRL",chainId:"0x5",name:"Goerli",chainType:"EVM"},SPL:{chainSymbol:"SPL",chainId:"0xaa36a7",name:"Sepolia",chainType:"EVM"},HOL:{chainSymbol:"HOL",chainId:"0x4268",name:"Hole\u0161ky",chainType:"EVM"},BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},MUM:{chainSymbol:"MUM",chainId:"0x13881",name:"Mumbai",chainType:"EVM"},AMO:{chainSymbol:"AMO",chainId:"0x13882",name:"Amoy",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"}};import{Big as I}from"big.js";import Dn from"bn.js";var H=class extends Error{constructor(t,n){super(n),this.errorCode=t}},G=class extends H{constructor(t){super("SdkError",t)}},Kt=class extends H{constructor(t){super("InvalidAmountError",t)}},st=class extends H{constructor(t){super("AmountNotEnoughError",t)}},We=class extends H{constructor(t){super("InsufficientPoolLiquidityError",t)}},ue=class extends H{constructor(t){super("JupiterError",t)}},bt=class extends H{constructor(t){super("InvalidGasFeePaymentOptionError",t)}},mr=class extends H{constructor(t){super("InvalidMessengerOptionError",t)}},me=class extends H{constructor(t){super("MethodNotSupportedError",t)}},wt=class extends H{constructor(t){super("VerifyTxError",t)}},ot=class extends H{constructor(t){super("InvalidTxError",t)}},Qt=class extends H{constructor(t){super("ExtraGasMaxLimitExceededError",t)}},Yt=class extends H{constructor(t,n,r){super("ArgumentInvalidDecimalsError",`Argument '${t}' decimals '${n}' cannot be greater than '${r}'`)}},Pt=class extends H{constructor(t){super("TimeoutError",t)}},Jt=class extends H{constructor(t){super("NodeRpcUrlNotInitializedError",`For chain '${t}' Node RPC URL not initialized`)}},Be=class extends H{constructor(t){super("CCTPDoesNotSupportedError",t)}},Ht=class extends H{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},Ci=(S=>(S.SDK_ERROR="SdkError",S.INVALID_AMOUNT_ERROR="InvalidAmountError",S.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",S.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",S.JUPITER_ERROR="JupiterError",S.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",S.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",S.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",S.VERIFY_TX_ERROR="VerifyTxError",S.INVALID_TX_ERROR="InvalidTxError",S.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",S.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",S.TIMEOUT_ERROR="TimeoutError",S.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",S.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",S.TX_TOO_LARGE="TxTooLargeError",S))(Ci||{});function Fn(u,t){return I(100).minus(I(100).times(t).div(u)).toNumber()}function tt(u,t){return Xe(u,t,3).round(0,I.roundDown)}function fe(u,t){return Xe(u,3,t)}function Xe(u,t,n){let r=I(n).minus(t).toNumber();return I(u).times(St(r))}function St(u){return I(10).pow(u)}function O(u,t){return I(u).times(St(t))}function W(u,t){let n=I(u);return n.eq(0)?I(0):I(n).div(St(t))}function ye(u){return W(I(u.tokenBalance).minus(u.vUsdBalance).toFixed(),3).div(2).toFixed()}function De(u,{feeShare:t,decimals:n},r){let s=I(u);if(s.lte(0))return"0";let A=s.times(t),o=s.minus(A),p=tt(o,n),d=I(r.tokenBalance).plus(p),f=Fe(d,r.aValue,r.dValue);return I(r.vUsdBalance).minus(f).round(0,I.roundDown).toFixed()}function Ct(u,{feeShare:t,decimals:n},r){let s=I(u);if(s.lte(0))return I(0).toFixed();let A=s.plus(r.vUsdBalance),o=Fe(A,r.aValue,r.dValue),p=fe(I(r.tokenBalance).minus(o),n),d=I(p).times(t);return I(p).minus(d).round(0,I.roundDown).toFixed()}function lr(u,t){let n=I(u);if(n.lte(0))return t;let r=n.plus(t.vUsdBalance),s=Fe(r,t.aValue,t.dValue);return{aValue:t.aValue,dValue:t.dValue,tokenBalance:s.toFixed(0),vUsdBalance:r.toFixed(0)}}function pr(u,{feeShare:t,decimals:n},r){if(I(u).lte(0))return I(0);let s=I(r.vUsdBalance).minus(u);if(s.lte(0))throw new We;let A=Fe(s,r.aValue,r.dValue),o=I(A).minus(r.tokenBalance),p=fe(o,n),d=I(t).div(I(1).minus(t)),f=I(p).times(d).round(0,I.roundUp);return I(p).plus(f).round(0,I.roundDown)}function dr(u,{feeShare:t,decimals:n},r){if(I(u).lte(0))return I(0);let s=I(t).div(I(1).minus(t)),A=I(u).times(s).round(0,I.roundUp),o=I(u).plus(A),p=tt(o,n),d=I(r.tokenBalance).minus(p);if(d.lte(0))throw new We;let f=Fe(d,r.aValue,r.dValue);return I(f).minus(r.vUsdBalance).round(0,I.roundDown)}function Fe(u,t,n){let r=I(4).times(t).times(I(n).minus(u)).minus(n),s=I(n).pow(3),A=r.pow(2),o=I(u).times(I(u).times(A).plus(I(4).times(t).times(s))).sqrt().round(0,I.roundDown),p=I(8).times(t).times(u),d=r.times(u).plus(o).div(p).round(0,I.roundDown);return d.eq(0)?I(0):d.plus(1)}function gr(u,t,n,r){let s=new Dn(u),A=new Dn(n),o=new Dn(t);return s.mul(A).shrn(r).sub(o).toString()}function fr(u){return u*100>0?`${Number(I(u).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function yr(u,t,n){let r=I(t).times(n),s=I(t).plus(n),A=I(8).times(u).times(r).times(s),o=r.times(I(16).times(u).minus(4)).div(3),p=A.times(A),d=o.times(o).times(o),f=p.plus(d),T=I(f).sqrt(),b=I(Math.cbrt(+A.plus(T).toFixed())),R=I(Math.cbrt(+A.minus(T).toFixed()));return b.plus(R).toFixed()}var Un=(o=>(o.OK="OK",o.INVALID="INVALID",o.FORBIDDEN="FORBIDDEN",o.UNINITIALIZED="UNINITIALIZED",o.CONTRACT_ADDRESS="CONTRACT_ADDRESS",o.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",o))(Un||{});var Ne=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ne||{});function hr(u){return Object.entries(u).reduce((t,n)=>{let r=n[0],s=n[1],A=Ii(r,s);return A&&(t[r]=A),t},{})}function Tr(u){let t={};for(let[n,r]of Object.entries(u)){let s=n;for(let A of r.tokens){let o=At({chainSymbol:s,poolAddress:A.poolAddress}),p=ye(A.poolInfo);t[o]={...A.poolInfo,imbalance:p}}}return t}function Bi(u,t){let{name:n,...r}=u,{poolInfo:s,...A}=t;return{...A,...r,chainName:n}}function ki(u){switch(u){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function Mi(u){return Object.entries(u).reduce((t,[n,r])=>(t[n]=Ri(r),t),{})}function Ri(u){return Object.entries(u).reduce((t,[n,r])=>{let s=ki(n);return s&&(t[s]=r),t},{})}function Ii(u,t){let n=ce[u];if(!n)return null;let r={...n,allbridgeChainId:t.chainId,bridgeAddress:t.bridgeAddress,transferTime:Mi(t.transferTime),txCostAmount:t.txCostAmount,confirmations:t.confirmations};return{...r,tokens:t.tokens.map(s=>Bi(r,s))}}function At(u){return u.chainSymbol+"_"+u.poolAddress}function br(u){let t=[];for(let[n,r]of Object.entries(u)){let s=n;for(let A of r.tokens)t.push({chainSymbol:s,poolAddress:A.poolAddress})}return t}function wr(u){let t={};for(let[n,r]of Object.entries(u)){let s=n;for(let[A,o]of Object.entries(r))o.imbalance=ye(o),t[At({chainSymbol:s,poolAddress:A})]=o}return t}var zt=class{constructor(t){this.api=vi.create({baseURL:t.coreApiUrl,headers:{Accept:"application/json",...t.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ur},params:t.coreApiQueryParams})}async getTokenInfo(){let{data:t}=await this.api.get("/token-info");return{chainDetailsMap:hr(t),poolInfoMap:Tr(t)}}async getPendingInfo(){let{data:t}=await this.api.get("/pending-info");return t}async getGasBalance(t,n){let{data:r}=await this.api.get(`/check/${t}/${n}`);return r}async getTransferStatus(t,n){let{data:r}=await this.api.get(`/chain/${t}/${n}`);return r}async getReceiveTransactionCost(t){let{data:n}=await this.api.post("/receive-fee",t,{headers:{"Content-Type":"application/json"}});return{exchangeRate:n.exchangeRate,fee:n.fee,sourceNativeTokenPrice:n.sourceNativeTokenPrice}}async getPoolInfoMap(t){let n=t instanceof Array?t:[t],{data:r}=await this.api.post("/pool-info",{pools:n},{headers:{"Content-Type":"application/json"}});return wr(r)}};import jt from"timed-cache";var Wn=20*1e3,xi=55*1e3,qt=class{constructor(t){this.apiClient=t;this.tokenInfoCache=new jt({defaultTtl:xi}),this.receivedTransactionCache=new jt({defaultTtl:Wn}),this.pendingInfoCache=new jt({defaultTtl:Wn}),this.gasBalanceCache=new jt({defaultTtl:Wn})}getTokenInfo(){let t="TOKEN_INFO_CACHE_KEY",n=this.tokenInfoCache.get(t);if(n)return n;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(t,r),r}async getGasBalance(t,n){let r=`GAS_BALANCE_${t}_${n}`,s=this.gasBalanceCache.get(r);if(s)return s;let A=this.apiClient.getGasBalance(t,n);return this.gasBalanceCache.put(r,A),A}async getPendingInfo(){let t="PENDING_INFO_CACHE_KEY",n=this.pendingInfoCache.get(t);if(n)return n;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(t,r),r}async getReceiveTransactionCost(t){let n=`RECEIVE_TX_COST_${t.sourceChainId}_${t.destinationChainId}_${t.messenger}`,r=this.receivedTransactionCache.get(n);if(r)return r;let s=await this.apiClient.getReceiveTransactionCost(t);return this.receivedTransactionCache.put(n,s),s}async getTransferStatus(t,n){return this.apiClient.getTransferStatus(t,n)}async getPoolInfoMap(t){return this.apiClient.getPoolInfoMap(t)}};import Ei from"timed-cache";var Di=55*1e3,$t=class{constructor(t){this.client=t;this.poolInfoCache=new Nn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(t,n){return this.client.getTransferStatus(t,n)}getReceiveTransactionCost(t){return this.client.getReceiveTransactionCost(t)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(t,n){return this.client.getGasBalance(t,n)}async getPoolInfoByKey(t){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let n=this.poolInfoCache.get(t);if(n)return n;{let r=await this.client.getPoolInfoMap(t);return this.poolInfoCache.putAll(r),r[At(t)]}}async refreshPoolInfo(t){let n;if(t)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),n=await this.client.getPoolInfoMap(t);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();n=await this.client.getPoolInfoMap(br(r.chainDetailsMap))}this.poolInfoCache.putAll(n)}cachePut(t,n){this.poolInfoCache.put(At(t),n)}},Nn=class{constructor(){this.cache=new Ei({defaultTtl:Di})}putAll(t){for(let[n,r]of Object.entries(t))this.cache.put(n,r)}putAllIfNotExists(t){for(let[n,r]of Object.entries(t))this.cache.get(n)||this.cache.put(n,r)}put(t,n){this.cache.put(t,n)}get(t){let n=At(t);return this.cache.get(n)}};import Ta from"tronweb";import ba from"web3";import{Big as Pr}from"big.js";async function ee(u,t){return await u.getPoolInfoByKey({chainSymbol:t.chainSymbol,poolAddress:t.poolAddress})}function _(u){if(Pr(u).lte(0))throw new Kt("Amount must be greater than zero")}function Z(u,t,n){let r=Pr(t).toFixed();if(r.split(".").length==2&&r.split(".")[1].length>n)throw new Yt(u,r.split(".")[1].length,n)}async function en(u,t,n){return await Promise.race([u,new Promise((r,s)=>{setTimeout(()=>s(new Pt(t)),n)})])}async function On(u,t,n,r){if(n<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${n} was received.`);let s=0;for(;;)try{return await en(u(),t,r)}catch{if(++s>=n)throw new Pt(t)}}async function Sr(u,t,n,r=1.5,s=!1){let A=[],o=0;if(A.push(await u()),!t(A[A.length-1]))return A;let p=new Date(Date.now()+n*1e3).valueOf(),d=1e3,f=d;for(;Date.now()<p&&t(A[A.length-1]);)o++,s&&console.info(`Waiting ${d}ms before trying again (bringing the total wait time to ${f}ms so far, of total ${n*1e3}ms)`),await new Promise(T=>setTimeout(T,d)),d=d*r,new Date(Date.now()+d).valueOf()>p&&(d=p-Date.now(),s&&console.info(`was gonna wait too long; new waitTime: ${d}ms`)),f=d+f,A.push(await u(A[A.length-1])),s&&t(A[A.length-1])&&console.info(`${o}. Called ${u.name}; ${A.length} prev attempts. Most recent: ${JSON.stringify(A[A.length-1],null,2)}`);return A}import*as nn from"@project-serum/anchor";import{PublicKey as Or}from"@solana/web3.js";import{Big as Qi}from"big.js";var Cr=[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var Br=[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];import*as ie from"@project-serum/anchor";import{PublicKey as Ae}from"@solana/web3.js";async function ke(u,t){return ie.utils.token.associatedAddress({mint:t,owner:u})}async function Ke(u){let[t]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("config")],u);return t}async function kr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("lock"),Uint8Array.from(u)],t);return n}async function Bt(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([u])],t);return n}async function ct(u){let t=await Ke(u),[n]=await Ae.findProgramAddress([t.toBuffer()],u);return n}async function Mr(u,t){let[n]=await Ae.findProgramAddress([u.toBuffer()],t);return n}async function ut(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("token"),u.toBytes()],t);return n}async function Rr(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("other_bridge_token"),h.from([u]),t],n);return r}async function Vn(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([u])],t);return n}async function Gn(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([u])],t);return n}async function Ir(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("sent_message"),u],t);return n}async function _n(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("user_deposit"),t.toBytes(),u.toBytes()],n);return r}async function vr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("cctp_bridge"),u.toBytes()],t);return n}async function xr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("token"),u.toBytes()],t);return n}function Er(u,t){let[n]=Ae.findProgramAddressSync([ie.utils.bytes.utf8.encode("lock"),t.toBuffer()],u);return n}function Dr(u,t,n,r){let s=nt("message_transmitter",n),A=nt("token_messenger",r),o=nt("__event_authority",r),p=nt("token_minter",r),d=nt("local_token",r,[t]),f=nt("remote_token_messenger",r,[u.toString()]),T=nt("sender_authority",r);return{messageTransmitterAccount:s,tokenMessenger:A,tokenMessengerEventAuthority:o,tokenMinter:p,localToken:d,remoteTokenMessengerKey:f,authorityPda:T}}function nt(u,t,n=[]){let r=[h.from(ie.utils.bytes.utf8.encode(u))];for(let A of n)typeof A=="string"?r.push(h.from(ie.utils.bytes.utf8.encode(A))):Array.isArray(A)?r.push(h.from(A)):h.isBuffer(A)?r.push(A):r.push(A.toBuffer());return Ae.findProgramAddressSync(r,t)[0]}import{AnchorProvider as Wi}from"@project-serum/anchor";import{Connection as Ni,PublicKey as Oi}from"@solana/web3.js";function Qe(u,t){let n=new Ni(u,"confirmed"),r=new Oi(t);return new Wi(n,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Me=class{};import{PublicKey as Vi}from"@solana/web3.js";import{Big as Oe}from"big.js";import Fr from"randombytes";import{Address as Gi}from"stellar-sdk";import*as Ur from"tronweb";function Ve(u,t,n){let r;switch(t){case"EVM":{r=_i(u);break}case"SOLANA":{r=new Vi(u).toBuffer();break}case"TRX":{r=Li(u);break}case"SRB":{r=new Gi(u).toBuffer();break}}switch(n){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r.toJSON().data;case"SRB":return r.toJSON().data}}function Wr(u){return h.from(u.replace(/^0x/i,""),"hex")}function _i(u){let n=Wr(u);return h.concat([h.alloc(32-n.length,0),n],32)}function Li(u){let t=kt(u),n=Wr(t);return Zi(n,32)}function kt(u){return h.from(Ur.utils.crypto.decodeBase58Address(u)).toString("hex").replace(/^41/,"0x")}function Zi(u,t){if(u.length>=t)return u;let n=h.alloc(t,0);return u.copy(n,t-u.length),n}function mt(){return Fr(32)}function Ln(){let u=Fr(32).readBigInt64BE();return u<0?u*-1n:u}function Ye(u,t){let n={},r=t.sourceToken;return n.amount=O(t.amount,r.decimals).toFixed(),n.contractAddress=r.bridgeAddress,n.fromAccountAddress=t.fromAccountAddress,n.fromTokenAddress=Ve(r.tokenAddress,u,u),n.toAccountAddress=t.toAccountAddress,n.toTokenAddress=Ve(t.destinationToken.tokenAddress,u,u),n.minimumReceiveAmount=t.minimumReceiveAmount?O(t.minimumReceiveAmount,t.destinationToken.decimals).toFixed():"0",n}async function Ge(u,t,n){let r={};r.fromChainId=t.sourceToken.allbridgeChainId,r.fromChainSymbol=t.sourceToken.chainSymbol;let s=ce[t.destinationToken.chainSymbol].chainType;r.fromTokenAddress=t.sourceToken.tokenAddress,r.toChainId=t.destinationToken.allbridgeChainId,r.toTokenAddress=t.destinationToken.tokenAddress,t.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let A=t.sourceToken;if(t.messenger===3){if(!A.cctpAddress||!t.destinationToken.cctpAddress)throw new Be("Such route does not support CCTP protocol");r.contractAddress=A.cctpAddress}else r.contractAddress=A.bridgeAddress;r.messenger=t.messenger,r.fromAccountAddress=t.fromAccountAddress,r.amount=O(t.amount,A.decimals).toFixed();let{fee:o,feeFormat:p}=t;if(!o){let b=(await Zn(r.fromChainId,t.sourceToken.chainType,r.toChainId,A.decimals,r.messenger,n))[r.gasFeePaymentMethod];if(!b)throw new bt;o=b.int,p="int"}if(p=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=O(o,$[A.chainType]).toFixed(0);break;case"stablecoin":r.fee=O(o,A.decimals).toFixed(0);break}else r.fee=o;let{extraGas:d,extraGasFormat:f}=t;if(d&&+d>0){if(f=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=O(d,$[A.chainType]).toFixed(0);break;case"stablecoin":r.extraGas=O(d,A.decimals).toFixed(0);break}else r.extraGas=d;await Ki(r.extraGas,r.gasFeePaymentMethod,A,t.destinationToken,n)}return r.fromTokenAddress=Ve(r.fromTokenAddress,u,u),r.toAccountAddress=Ve(t.toAccountAddress,s,u),r.toTokenAddress=Ve(r.toTokenAddress,s,u),r.gasFeePaymentMethod=="stablecoin"&&Xi(r.amount,A.decimals,r.fee,r.extraGas),r}function Xi(u,t,n,r){let s=Oe(u).minus(n).minus(r??0);if(s.lte(0))throw new st(`Amount not enough to pay fee, ${W(Oe(s).minus(1).neg(),t).toFixed()} stables is missing`)}async function Zn(u,t,n,r,s,A){let o=await A.getReceiveTransactionCost({sourceChainId:u,destinationChainId:n,messenger:s}),p={native:{int:o.fee,float:W(o.fee,$[t]).toFixed()}};if(o.sourceNativeTokenPrice){let d=Xe(new Oe(o.fee).mul(o.sourceNativeTokenPrice),$[t],r).toFixed(0,Oe.roundUp);p.stablecoin={int:d,float:W(d,r).toFixed()}}return p}async function Ki(u,t,n,r,s){let o=(await Xn(n,r,s)).extraGasMax[t];if(!o)throw new bt(`Impossible to pay extra gas by '${t}' payment method`);let p=o.int;if(Oe(u).gt(p))throw new Qt(`Extra gas ${u} in int format, exceeded limit ${p} for '${t}' payment method`)}async function Xn(u,t,n){let r={},s=await n.getReceiveTransactionCost({sourceChainId:u.allbridgeChainId,destinationChainId:t.allbridgeChainId,messenger:1}),A=t.txCostAmount.maxAmount,o=W(A,$[t.chainType]).toFixed(),p=Oe(o).div(s.exchangeRate).toFixed($[u.chainType],Oe.roundDown),d=O(p,$[u.chainType]).toFixed(0);if(r.native={int:d,float:p},s.sourceNativeTokenPrice){let f=Oe(p).mul(s.sourceNativeTokenPrice).toFixed(u.decimals,Oe.roundDown);r.stablecoin={int:O(f,u.decimals).toFixed(0),float:f}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:A,float:o},swap:{int:t.txCostAmount.swap,float:W(t.txCostAmount.swap,$[t.chainType]).toFixed()},transfer:{int:t.txCostAmount.transfer,float:W(t.txCostAmount.transfer,$[t.chainType]).toFixed()}},exchangeRate:s.exchangeRate,sourceNativeTokenPrice:s.sourceNativeTokenPrice}}function Nr(u){return u.sourceToken.chainSymbol!==u.destinationToken.chainSymbol}var Mt=class extends Me{constructor(n,r,s){super();this.web3=n;this.api=r;this.nodeRpcUrlsConfig=s;this.chainType="EVM"}async send(n){let r=await this.buildRawTransactionSend(n);return this.sendRawTransaction(r)}async buildRawTransactionSwap(n){let r=Ye(this.chainType,n);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(n){let{amount:r,contractAddress:s,fromAccountAddress:A,fromTokenAddress:o,toAccountAddress:p,toTokenAddress:d,minimumReceiveAmount:f}=n,b=this.getBridgeContract(s).methods.swap(r,o,d,p,f);return Promise.resolve({from:A,to:s,data:b.encodeABI()})}async buildRawTransactionSend(n){let r=await Ge(this.chainType,n,this.api),{amount:s,contractAddress:A,fromAccountAddress:o,fromTokenAddress:p,toChainId:d,toAccountAddress:f,toTokenAddress:T,messenger:b,fee:R,gasFeePaymentMethod:w,extraGas:P}=r,M="0x"+mt().toString("hex"),S,k,v=R;if(P&&(v=Qi(v).plus(P).toFixed()),b===3){let E=await this.buildRawTransactionCctpSend(n,r,v);S=E.sendMethod,k=E.value}else{let E=this.getBridgeContract(A);w==="stablecoin"?(S=E.methods.swapAndBridge(p,s,f,d,T,M,b,v),k="0"):(S=E.methods.swapAndBridge(p,s,f,d,T,M,b,0),k=v)}return Promise.resolve({from:o,to:A,value:k,data:S.encodeABI()})}async buildRawTransactionCctpSend(n,r,s){let{amount:A,contractAddress:o,toChainId:p,toAccountAddress:d,gasFeePaymentMethod:f}=r,T=this.getContract(Br,o),b,R;if(n.destinationToken.chainType==="SOLANA"){let w,P=new Or(n.toAccountAddress),M=new Or(n.destinationToken.tokenAddress),S=await ke(P,M),k=Qe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),n.toAccountAddress);nn.setProvider(k);let v=await nn.Spl.token(k).account.token.fetchNullable(S);if(v?.authority.equals(P))w=Ve(S.toBase58(),"SOLANA",this.chainType);else{let E=await k.connection.getTokenAccountsByOwner(P,{mint:M});if(E.value.length===0&&!v)w=Ve(S.toBase58(),"SOLANA",this.chainType);else if(E.value.length>0)w=Ve(E.value[0].pubkey.toBase58(),"SOLANA",this.chainType);else throw new G("Associated account has wrong owner")}f==="stablecoin"?(b=T.methods.bridgeWithWalletAddress(A,w,d,p,s),R="0"):(b=T.methods.bridgeWithWalletAddress(A,w,d,p,0),R=s)}else f==="stablecoin"?(b=T.methods.bridge(A,d,p,s),R="0"):(b=T.methods.bridge(A,d,p,0),R=s);return{sendMethod:b,value:R}}async sendRawTransaction(n){let r=await this.web3.eth.estimateGas(n),s={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:A}=await this.web3.eth.sendTransaction({...n,gas:r,...s});return{txId:A}}getContract(n,r){return new this.web3.eth.Contract(n,r)}getBridgeContract(n){return this.getContract(Cr,n)}};var rn=class{constructor(t,n,r,s){this.api=t;this.nodeRpcUrlsConfig=n;this.params=r;this.tokenService=s}async approve(t,n){let r,s;n?(r=t,s=n):s=t;let A=Rt(s.token,s.messenger);return this.tokenService.buildRawTransactionApprove({...s,spender:A},r)}async send(t,n){return _(t.amount),Z("amount",t.amount,t.sourceToken.decimals),Nr(t)?an(t.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,n).buildRawTransactionSend(t):an(t.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,n).buildRawTransactionSwap(t)}};import{BN as gt,Program as Yn,Spl as na,web3 as Je}from"@project-serum/anchor";import{Keypair as zr,PublicKey as X,SystemProgram as ra}from"@solana/web3.js";import{Big as He}from"big.js";var It={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 Vr={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 Yi}from"@project-serum/anchor";import Ji from"big.js";import sn from"web3";async function pt(u,t){return await Yi.token(t).account.token.fetch(u)}async function Gr(u,t,n){let r=await t.account.pool.fetch(n),s=r.decimals,A=Ji(r.feeShareBp.toString()).div(1e4).toFixed(),o={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 De(u,{decimals:s,feeShare:A},o)}function _r(u){let t=u.amount,n="0x"+u.recipient.toString("hex"),r=u.sourceChainId,s=u.destinationChainId,A="0x"+u.receiveToken.toString("hex"),o="0x"+u.nonce.toString("hex"),p=1,d="0x"+u.chainBridge.toString("hex"),f=sn.utils.encodePacked({t:"uint256",v:t},{t:"bytes32",v:n},{t:"uint256",v:r},{t:"bytes32",v:A},{t:"uint256",v:o},{t:"uint8",v:p});if(!f)throw new G("message cannot be undefined");let T=sn.utils.keccak256(h.from(f.replace("0x",""),"hex")),b=h.from(T.replace("0x",""),"hex");b[0]=r,b[1]=s;let R=sn.utils.encodePacked({t:"bytes32",v:"0x"+b.toString("hex")},{t:"bytes32",v:d});if(!R)throw new ot("messageWithSigner cannot be undefined");let w=sn.utils.keccak256(h.from(R.replace("0x",""),"hex")),P=h.from(w.replace("0x",""),"hex");return P[0]=b[0],P[1]=b[1],P}import{ComputeBudgetInstruction as Zr,ComputeBudgetProgram as on,Connection as Xr,TransactionMessage as Hi}from"@solana/web3.js";import{Big as zi}from"big.js";import{AddressLookupTableAccount as Lr}from"@solana/web3.js";async function rt(u,t){return await Promise.all(u.message.addressTableLookups.map(async n=>new Lr({key:n.accountKey,state:Lr.deserialize(await t.getAccountInfo(n.accountKey).then(r=>{if(!r)throw new G("Cannot get AccountInfo");return r.data}))})))}var Kn="AUTO";async function dt(u,t,n){let r=new Xr(n,"confirmed"),s=(await r.simulateTransaction(u)).value.unitsConsumed;await Qr(u.instructions,s,t,r)}async function Kr(u,t,n){let r=new Xr(n,"confirmed"),s=await rt(u,r),A=Hi.decompile(u.message,{addressLookupTableAccounts:s});if(u.serialize().length>1232)throw new Ht;await Qr(A.instructions,769230,t,r),u.message=A.compileToV0Message(s)}async function Qr(u,t,n,r){if(t>0){let s=ji(t,u);if(n?.solana){let A=n.solana;if(A===Kn)await Qn(u,r);else if("pricePerUnitInMicroLamports"in A)await Qn(u,r,A.pricePerUnitInMicroLamports);else{let o=zi(A.extraFeeInLamports).div(s).mul(St(6)).toFixed(0);await Qn(u,r,o)}}}}function ji(u,t){let n=t.findIndex(A=>A.programId.equals(on.programId)&&Zr.decodeInstructionType(A)==="SetComputeUnitLimit"),r=Number((u*1.3).toFixed(0)),s=on.setComputeUnitLimit({units:r});return n>=0?t[n]=s:t.push(s),r.toString()}async function Qn(u,t,n){let r=u.findIndex(o=>o.programId.equals(on.programId)&&Zr.decodeInstructionType(o)==="SetComputeUnitPrice"),s=BigInt(n||await qi(t)),A=on.setComputeUnitPrice({microLamports:s});return r>=0?u[r]=A:u.push(A),s.toString()}async function qi(u){let t=await u.getRecentPrioritizationFees(),n=0;for(let r of t)n+=r.prioritizationFee;return(n/t.length).toFixed(0)}import{NATIVE_MINT as $i}from"@solana/spl-token";import{Connection as ea,TransactionMessage as Yr,VersionedTransaction as ta}from"@solana/web3.js";import Jr,{AxiosError as Hr}from"axios";var An=class{constructor(t){this.connection=new ea(t)}async getJupiterSwapTx(t,n,r){let s;try{s=await Jr.get(`https://quote-api.jup.ag/v6/quote?inputMint=${n}
|
|
1
|
+
var Tt={},or=!1;function wi(){if(or)return Tt;or=!0,Tt.byteLength=p,Tt.toByteArray=f,Tt.fromByteArray=R;for(var u=[],t=[],n=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,A=r.length;s<A;++s)u[s]=r[s],t[r.charCodeAt(s)]=s;t[45]=62,t[95]=63;function o(w){var P=w.length;if(P%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=w.indexOf("=");M===-1&&(M=P);var S=M===P?0:4-M%4;return[M,S]}function p(w){var P=o(w),M=P[0],S=P[1];return(M+S)*3/4-S}function d(w,P,M){return(P+M)*3/4-M}function f(w){var P,M=o(w),S=M[0],k=M[1],v=new n(d(w,S,k)),E=0,N=k>0?S-4:S,D;for(D=0;D<N;D+=4)P=t[w.charCodeAt(D)]<<18|t[w.charCodeAt(D+1)]<<12|t[w.charCodeAt(D+2)]<<6|t[w.charCodeAt(D+3)],v[E++]=P>>16&255,v[E++]=P>>8&255,v[E++]=P&255;return k===2&&(P=t[w.charCodeAt(D)]<<2|t[w.charCodeAt(D+1)]>>4,v[E++]=P&255),k===1&&(P=t[w.charCodeAt(D)]<<10|t[w.charCodeAt(D+1)]<<4|t[w.charCodeAt(D+2)]>>2,v[E++]=P>>8&255,v[E++]=P&255),v}function T(w){return u[w>>18&63]+u[w>>12&63]+u[w>>6&63]+u[w&63]}function b(w,P,M){for(var S,k=[],v=P;v<M;v+=3)S=(w[v]<<16&16711680)+(w[v+1]<<8&65280)+(w[v+2]&255),k.push(T(S));return k.join("")}function R(w){for(var P,M=w.length,S=M%3,k=[],v=16383,E=0,N=M-S;E<N;E+=v)k.push(b(w,E,E+v>N?N:E+v));return S===1?(P=w[M-1],k.push(u[P>>2]+u[P<<4&63]+"==")):S===2&&(P=(w[M-2]<<8)+w[M-1],k.push(u[P>>10]+u[P>>4&63]+u[P<<2&63]+"=")),k.join("")}return Tt}var Lt={},Ar=!1;function Pi(){if(Ar)return Lt;Ar=!0;return Lt.read=function(u,t,n,r,s){var A,o,p=s*8-r-1,d=(1<<p)-1,f=d>>1,T=-7,b=n?s-1:0,R=n?-1:1,w=u[t+b];for(b+=R,A=w&(1<<-T)-1,w>>=-T,T+=p;T>0;A=A*256+u[t+b],b+=R,T-=8);for(o=A&(1<<-T)-1,A>>=-T,T+=r;T>0;o=o*256+u[t+b],b+=R,T-=8);if(A===0)A=1-f;else{if(A===d)return o?NaN:(w?-1:1)*(1/0);o=o+Math.pow(2,r),A=A-f}return(w?-1:1)*o*Math.pow(2,A-r)},Lt.write=function(u,t,n,r,s,A){var o,p,d,f=A*8-s-1,T=(1<<f)-1,b=T>>1,R=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:A-1,P=r?1:-1,M=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(p=isNaN(t)?1:0,o=T):(o=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-o))<1&&(o--,d*=2),o+b>=1?t+=R/d:t+=R*Math.pow(2,1-b),t*d>=2&&(o++,d/=2),o+b>=T?(p=0,o=T):o+b>=1?(p=(t*d-1)*Math.pow(2,s),o=o+b):(p=t*Math.pow(2,b-1)*Math.pow(2,s),o=0));s>=8;u[n+w]=p&255,w+=P,p/=256,s-=8);for(o=o<<s|p,f+=s;f>0;u[n+w]=o&255,w+=P,o/=256,f-=8);u[n+w-P]|=M*128},Lt}var $e={},cr=!1;function Si(){if(cr)return $e;cr=!0;let u=wi(),t=Pi(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;$e.Buffer=o,$e.SlowBuffer=k,$e.INSPECT_MAX_BYTES=50;let r=2147483647;$e.kMaxLength=r,o.TYPED_ARRAY_SUPPORT=s(),!o.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 s(){try{let c=new Uint8Array(1),i={foo:function(){return 42}};return Object.setPrototypeOf(i,Uint8Array.prototype),Object.setPrototypeOf(c,i),c.foo()===42}catch{return!1}}Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.buffer}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){if(o.isBuffer(this))return this.byteOffset}});function A(c){if(c>r)throw new RangeError('The value "'+c+'" is invalid for option "size"');let i=new Uint8Array(c);return Object.setPrototypeOf(i,o.prototype),i}function o(c,i,a){if(typeof c=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return T(c)}return p(c,i,a)}o.poolSize=8192;function p(c,i,a){if(typeof c=="string")return b(c,i);if(ArrayBuffer.isView(c))return w(c);if(c==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof c);if(xe(c,ArrayBuffer)||c&&xe(c.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(xe(c,SharedArrayBuffer)||c&&xe(c.buffer,SharedArrayBuffer)))return P(c,i,a);if(typeof c=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let m=c.valueOf&&c.valueOf();if(m!=null&&m!==c)return o.from(m,i,a);let l=M(c);if(l)return l;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof c[Symbol.toPrimitive]=="function")return o.from(c[Symbol.toPrimitive]("string"),i,a);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof c)}o.from=function(c,i,a){return p(c,i,a)},Object.setPrototypeOf(o.prototype,Uint8Array.prototype),Object.setPrototypeOf(o,Uint8Array);function d(c){if(typeof c!="number")throw new TypeError('"size" argument must be of type number');if(c<0)throw new RangeError('The value "'+c+'" is invalid for option "size"')}function f(c,i,a){return d(c),c<=0?A(c):i!==void 0?typeof a=="string"?A(c).fill(i,a):A(c).fill(i):A(c)}o.alloc=function(c,i,a){return f(c,i,a)};function T(c){return d(c),A(c<0?0:S(c)|0)}o.allocUnsafe=function(c){return T(c)},o.allocUnsafeSlow=function(c){return T(c)};function b(c,i){if((typeof i!="string"||i==="")&&(i="utf8"),!o.isEncoding(i))throw new TypeError("Unknown encoding: "+i);let a=v(c,i)|0,m=A(a),l=m.write(c,i);return l!==a&&(m=m.slice(0,l)),m}function R(c){let i=c.length<0?0:S(c.length)|0,a=A(i);for(let m=0;m<i;m+=1)a[m]=c[m]&255;return a}function w(c){if(xe(c,Uint8Array)){let i=new Uint8Array(c);return P(i.buffer,i.byteOffset,i.byteLength)}return R(c)}function P(c,i,a){if(i<0||c.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(c.byteLength<i+(a||0))throw new RangeError('"length" is outside of buffer bounds');let m;return i===void 0&&a===void 0?m=new Uint8Array(c):a===void 0?m=new Uint8Array(c,i):m=new Uint8Array(c,i,a),Object.setPrototypeOf(m,o.prototype),m}function M(c){if(o.isBuffer(c)){let i=S(c.length)|0,a=A(i);return a.length===0||c.copy(a,0,0,i),a}if(c.length!==void 0)return typeof c.length!="number"||En(c.length)?A(0):R(c);if(c.type==="Buffer"&&Array.isArray(c.data))return R(c.data)}function S(c){if(c>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return c|0}function k(c){return+c!=c&&(c=0),o.alloc(+c)}o.isBuffer=function(i){return i!=null&&i._isBuffer===!0&&i!==o.prototype},o.compare=function(i,a){if(xe(i,Uint8Array)&&(i=o.from(i,i.offset,i.byteLength)),xe(a,Uint8Array)&&(a=o.from(a,a.offset,a.byteLength)),!o.isBuffer(i)||!o.isBuffer(a))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(i===a)return 0;let m=i.length,l=a.length;for(let g=0,y=Math.min(m,l);g<y;++g)if(i[g]!==a[g]){m=i[g],l=a[g];break}return m<l?-1:l<m?1:0},o.isEncoding=function(i){switch(String(i).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}},o.concat=function(i,a){if(!Array.isArray(i))throw new TypeError('"list" argument must be an Array of Buffers');if(i.length===0)return o.alloc(0);let m;if(a===void 0)for(a=0,m=0;m<i.length;++m)a+=i[m].length;let l=o.allocUnsafe(a),g=0;for(m=0;m<i.length;++m){let y=i[m];if(xe(y,Uint8Array))g+y.length>l.length?(o.isBuffer(y)||(y=o.from(y)),y.copy(l,g)):Uint8Array.prototype.set.call(l,y,g);else if(o.isBuffer(y))y.copy(l,g);else throw new TypeError('"list" argument must be an Array of Buffers');g+=y.length}return l};function v(c,i){if(o.isBuffer(c))return c.length;if(ArrayBuffer.isView(c)||xe(c,ArrayBuffer))return c.byteLength;if(typeof c!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof c);let a=c.length,m=arguments.length>2&&arguments[2]===!0;if(!m&&a===0)return 0;let l=!1;for(;;)switch(i){case"ascii":case"latin1":case"binary":return a;case"utf8":case"utf-8":return xn(c).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return a*2;case"hex":return a>>>1;case"base64":return sr(c).length;default:if(l)return m?-1:xn(c).length;i=(""+i).toLowerCase(),l=!0}}o.byteLength=v;function E(c,i,a){let m=!1;if((i===void 0||i<0)&&(i=0),i>this.length||((a===void 0||a>this.length)&&(a=this.length),a<=0)||(a>>>=0,i>>>=0,a<=i))return"";for(c||(c="utf8");;)switch(c){case"hex":return Pe(this,i,a);case"utf8":case"utf-8":return te(this,i,a);case"ascii":return oe(this,i,a);case"latin1":case"binary":return we(this,i,a);case"base64":return pe(this,i,a);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ge(this,i,a);default:if(m)throw new TypeError("Unknown encoding: "+c);c=(c+"").toLowerCase(),m=!0}}o.prototype._isBuffer=!0;function N(c,i,a){let m=c[i];c[i]=c[a],c[a]=m}o.prototype.swap16=function(){let i=this.length;if(i%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let a=0;a<i;a+=2)N(this,a,a+1);return this},o.prototype.swap32=function(){let i=this.length;if(i%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let a=0;a<i;a+=4)N(this,a,a+3),N(this,a+1,a+2);return this},o.prototype.swap64=function(){let i=this.length;if(i%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let a=0;a<i;a+=8)N(this,a,a+7),N(this,a+1,a+6),N(this,a+2,a+5),N(this,a+3,a+4);return this},o.prototype.toString=function(){let i=this.length;return i===0?"":arguments.length===0?te(this,0,i):E.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(i){if(!o.isBuffer(i))throw new TypeError("Argument must be a Buffer");return this===i?!0:o.compare(this,i)===0},o.prototype.inspect=function(){let i="",a=$e.INSPECT_MAX_BYTES;return i=this.toString("hex",0,a).replace(/(.{2})/g,"$1 ").trim(),this.length>a&&(i+=" ... "),"<Buffer "+i+">"},n&&(o.prototype[n]=o.prototype.inspect),o.prototype.compare=function(i,a,m,l,g){if(xe(i,Uint8Array)&&(i=o.from(i,i.offset,i.byteLength)),!o.isBuffer(i))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof i);if(a===void 0&&(a=0),m===void 0&&(m=i?i.length:0),l===void 0&&(l=0),g===void 0&&(g=this.length),a<0||m>i.length||l<0||g>this.length)throw new RangeError("out of range index");if(l>=g&&a>=m)return 0;if(l>=g)return-1;if(a>=m)return 1;if(a>>>=0,m>>>=0,l>>>=0,g>>>=0,this===i)return 0;let y=g-l,F=m-a,K=Math.min(y,F),L=this.slice(l,g),Q=i.slice(a,m);for(let V=0;V<K;++V)if(L[V]!==Q[V]){y=L[V],F=Q[V];break}return y<F?-1:F<y?1:0};function D(c,i,a,m,l){if(c.length===0)return-1;if(typeof a=="string"?(m=a,a=0):a>2147483647?a=2147483647:a<-2147483648&&(a=-2147483648),a=+a,En(a)&&(a=l?0:c.length-1),a<0&&(a=c.length+a),a>=c.length){if(l)return-1;a=c.length-1}else if(a<0)if(l)a=0;else return-1;if(typeof i=="string"&&(i=o.from(i,m)),o.isBuffer(i))return i.length===0?-1:U(c,i,a,m,l);if(typeof i=="number")return i=i&255,typeof Uint8Array.prototype.indexOf=="function"?l?Uint8Array.prototype.indexOf.call(c,i,a):Uint8Array.prototype.lastIndexOf.call(c,i,a):U(c,[i],a,m,l);throw new TypeError("val must be string, number or Buffer")}function U(c,i,a,m,l){let g=1,y=c.length,F=i.length;if(m!==void 0&&(m=String(m).toLowerCase(),m==="ucs2"||m==="ucs-2"||m==="utf16le"||m==="utf-16le")){if(c.length<2||i.length<2)return-1;g=2,y/=2,F/=2,a/=2}function K(Q,V){return g===1?Q[V]:Q.readUInt16BE(V*g)}let L;if(l){let Q=-1;for(L=a;L<y;L++)if(K(c,L)===K(i,Q===-1?0:L-Q)){if(Q===-1&&(Q=L),L-Q+1===F)return Q*g}else Q!==-1&&(L-=L-Q),Q=-1}else for(a+F>y&&(a=y-F),L=a;L>=0;L--){let Q=!0;for(let V=0;V<F;V++)if(K(c,L+V)!==K(i,V)){Q=!1;break}if(Q)return L}return-1}o.prototype.includes=function(i,a,m){return this.indexOf(i,a,m)!==-1},o.prototype.indexOf=function(i,a,m){return D(this,i,a,m,!0)},o.prototype.lastIndexOf=function(i,a,m){return D(this,i,a,m,!1)};function ae(c,i,a,m){a=Number(a)||0;let l=c.length-a;m?(m=Number(m),m>l&&(m=l)):m=l;let g=i.length;m>g/2&&(m=g/2);let y;for(y=0;y<m;++y){let F=parseInt(i.substr(y*2,2),16);if(En(F))return y;c[a+y]=F}return y}function Y(c,i,a,m){return _t(xn(i,c.length-a),c,a,m)}function Te(c,i,a,m){return _t(yi(i),c,a,m)}function be(c,i,a,m){return _t(sr(i),c,a,m)}function Ce(c,i,a,m){return _t(hi(i,c.length-a),c,a,m)}o.prototype.write=function(i,a,m,l){if(a===void 0)l="utf8",m=this.length,a=0;else if(m===void 0&&typeof a=="string")l=a,m=this.length,a=0;else if(isFinite(a))a=a>>>0,isFinite(m)?(m=m>>>0,l===void 0&&(l="utf8")):(l=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let g=this.length-a;if((m===void 0||m>g)&&(m=g),i.length>0&&(m<0||a<0)||a>this.length)throw new RangeError("Attempt to write outside buffer bounds");l||(l="utf8");let y=!1;for(;;)switch(l){case"hex":return ae(this,i,a,m);case"utf8":case"utf-8":return Y(this,i,a,m);case"ascii":case"latin1":case"binary":return Te(this,i,a,m);case"base64":return be(this,i,a,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Ce(this,i,a,m);default:if(y)throw new TypeError("Unknown encoding: "+l);l=(""+l).toLowerCase(),y=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function pe(c,i,a){return i===0&&a===c.length?u.fromByteArray(c):u.fromByteArray(c.slice(i,a))}function te(c,i,a){a=Math.min(c.length,a);let m=[],l=i;for(;l<a;){let g=c[l],y=null,F=g>239?4:g>223?3:g>191?2:1;if(l+F<=a){let K,L,Q,V;switch(F){case 1:g<128&&(y=g);break;case 2:K=c[l+1],(K&192)===128&&(V=(g&31)<<6|K&63,V>127&&(y=V));break;case 3:K=c[l+1],L=c[l+2],(K&192)===128&&(L&192)===128&&(V=(g&15)<<12|(K&63)<<6|L&63,V>2047&&(V<55296||V>57343)&&(y=V));break;case 4:K=c[l+1],L=c[l+2],Q=c[l+3],(K&192)===128&&(L&192)===128&&(Q&192)===128&&(V=(g&15)<<18|(K&63)<<12|(L&63)<<6|Q&63,V>65535&&V<1114112&&(y=V))}}y===null?(y=65533,F=1):y>65535&&(y-=65536,m.push(y>>>10&1023|55296),y=56320|y&1023),m.push(y),l+=F}return de(m)}let se=4096;function de(c){let i=c.length;if(i<=se)return String.fromCharCode.apply(String,c);let a="",m=0;for(;m<i;)a+=String.fromCharCode.apply(String,c.slice(m,m+=se));return a}function oe(c,i,a){let m="";a=Math.min(c.length,a);for(let l=i;l<a;++l)m+=String.fromCharCode(c[l]&127);return m}function we(c,i,a){let m="";a=Math.min(c.length,a);for(let l=i;l<a;++l)m+=String.fromCharCode(c[l]);return m}function Pe(c,i,a){let m=c.length;(!i||i<0)&&(i=0),(!a||a<0||a>m)&&(a=m);let l="";for(let g=i;g<a;++g)l+=Ti[c[g]];return l}function ge(c,i,a){let m=c.slice(i,a),l="";for(let g=0;g<m.length-1;g+=2)l+=String.fromCharCode(m[g]+m[g+1]*256);return l}o.prototype.slice=function(i,a){let m=this.length;i=~~i,a=a===void 0?m:~~a,i<0?(i+=m,i<0&&(i=0)):i>m&&(i=m),a<0?(a+=m,a<0&&(a=0)):a>m&&(a=m),a<i&&(a=i);let l=this.subarray(i,a);return Object.setPrototypeOf(l,o.prototype),l};function x(c,i,a){if(c%1!==0||c<0)throw new RangeError("offset is not uint");if(c+i>a)throw new RangeError("Trying to access beyond buffer length")}o.prototype.readUintLE=o.prototype.readUIntLE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i],g=1,y=0;for(;++y<a&&(g*=256);)l+=this[i+y]*g;return l},o.prototype.readUintBE=o.prototype.readUIntBE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i+--a],g=1;for(;a>0&&(g*=256);)l+=this[i+--a]*g;return l},o.prototype.readUint8=o.prototype.readUInt8=function(i,a){return i=i>>>0,a||x(i,1,this.length),this[i]},o.prototype.readUint16LE=o.prototype.readUInt16LE=function(i,a){return i=i>>>0,a||x(i,2,this.length),this[i]|this[i+1]<<8},o.prototype.readUint16BE=o.prototype.readUInt16BE=function(i,a){return i=i>>>0,a||x(i,2,this.length),this[i]<<8|this[i+1]},o.prototype.readUint32LE=o.prototype.readUInt32LE=function(i,a){return i=i>>>0,a||x(i,4,this.length),(this[i]|this[i+1]<<8|this[i+2]<<16)+this[i+3]*16777216},o.prototype.readUint32BE=o.prototype.readUInt32BE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]*16777216+(this[i+1]<<16|this[i+2]<<8|this[i+3])},o.prototype.readBigUInt64LE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24,g=this[++i]+this[++i]*2**8+this[++i]*2**16+m*2**24;return BigInt(l)+(BigInt(g)<<BigInt(32))}),o.prototype.readBigUInt64BE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=a*2**24+this[++i]*2**16+this[++i]*2**8+this[++i],g=this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+m;return(BigInt(l)<<BigInt(32))+BigInt(g)}),o.prototype.readIntLE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=this[i],g=1,y=0;for(;++y<a&&(g*=256);)l+=this[i+y]*g;return g*=128,l>=g&&(l-=Math.pow(2,8*a)),l},o.prototype.readIntBE=function(i,a,m){i=i>>>0,a=a>>>0,m||x(i,a,this.length);let l=a,g=1,y=this[i+--l];for(;l>0&&(g*=256);)y+=this[i+--l]*g;return g*=128,y>=g&&(y-=Math.pow(2,8*a)),y},o.prototype.readInt8=function(i,a){return i=i>>>0,a||x(i,1,this.length),this[i]&128?(255-this[i]+1)*-1:this[i]},o.prototype.readInt16LE=function(i,a){i=i>>>0,a||x(i,2,this.length);let m=this[i]|this[i+1]<<8;return m&32768?m|4294901760:m},o.prototype.readInt16BE=function(i,a){i=i>>>0,a||x(i,2,this.length);let m=this[i+1]|this[i]<<8;return m&32768?m|4294901760:m},o.prototype.readInt32LE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]|this[i+1]<<8|this[i+2]<<16|this[i+3]<<24},o.prototype.readInt32BE=function(i,a){return i=i>>>0,a||x(i,4,this.length),this[i]<<24|this[i+1]<<16|this[i+2]<<8|this[i+3]},o.prototype.readBigInt64LE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=this[i+4]+this[i+5]*2**8+this[i+6]*2**16+(m<<24);return(BigInt(l)<<BigInt(32))+BigInt(a+this[++i]*2**8+this[++i]*2**16+this[++i]*2**24)}),o.prototype.readBigInt64BE=Ze(function(i){i=i>>>0,at(i,"offset");let a=this[i],m=this[i+7];(a===void 0||m===void 0)&&ht(i,this.length-8);let l=(a<<24)+this[++i]*2**16+this[++i]*2**8+this[++i];return(BigInt(l)<<BigInt(32))+BigInt(this[++i]*2**24+this[++i]*2**16+this[++i]*2**8+m)}),o.prototype.readFloatLE=function(i,a){return i=i>>>0,a||x(i,4,this.length),t.read(this,i,!0,23,4)},o.prototype.readFloatBE=function(i,a){return i=i>>>0,a||x(i,4,this.length),t.read(this,i,!1,23,4)},o.prototype.readDoubleLE=function(i,a){return i=i>>>0,a||x(i,8,this.length),t.read(this,i,!0,52,8)},o.prototype.readDoubleBE=function(i,a){return i=i>>>0,a||x(i,8,this.length),t.read(this,i,!1,52,8)};function j(c,i,a,m,l,g){if(!o.isBuffer(c))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>l||i<g)throw new RangeError('"value" argument is out of bounds');if(a+m>c.length)throw new RangeError("Index out of range")}o.prototype.writeUintLE=o.prototype.writeUIntLE=function(i,a,m,l){if(i=+i,a=a>>>0,m=m>>>0,!l){let F=Math.pow(2,8*m)-1;j(this,i,a,m,F,0)}let g=1,y=0;for(this[a]=i&255;++y<m&&(g*=256);)this[a+y]=i/g&255;return a+m},o.prototype.writeUintBE=o.prototype.writeUIntBE=function(i,a,m,l){if(i=+i,a=a>>>0,m=m>>>0,!l){let F=Math.pow(2,8*m)-1;j(this,i,a,m,F,0)}let g=m-1,y=1;for(this[a+g]=i&255;--g>=0&&(y*=256);)this[a+g]=i/y&255;return a+m},o.prototype.writeUint8=o.prototype.writeUInt8=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,1,255,0),this[a]=i&255,a+1},o.prototype.writeUint16LE=o.prototype.writeUInt16LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,65535,0),this[a]=i&255,this[a+1]=i>>>8,a+2},o.prototype.writeUint16BE=o.prototype.writeUInt16BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,65535,0),this[a]=i>>>8,this[a+1]=i&255,a+2},o.prototype.writeUint32LE=o.prototype.writeUInt32LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,4294967295,0),this[a+3]=i>>>24,this[a+2]=i>>>16,this[a+1]=i>>>8,this[a]=i&255,a+4},o.prototype.writeUint32BE=o.prototype.writeUInt32BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,4294967295,0),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4};function Gt(c,i,a,m,l){ar(i,m,l,c,a,7);let g=Number(i&BigInt(4294967295));c[a++]=g,g=g>>8,c[a++]=g,g=g>>8,c[a++]=g,g=g>>8,c[a++]=g;let y=Number(i>>BigInt(32)&BigInt(4294967295));return c[a++]=y,y=y>>8,c[a++]=y,y=y>>8,c[a++]=y,y=y>>8,c[a++]=y,a}function er(c,i,a,m,l){ar(i,m,l,c,a,7);let g=Number(i&BigInt(4294967295));c[a+7]=g,g=g>>8,c[a+6]=g,g=g>>8,c[a+5]=g,g=g>>8,c[a+4]=g;let y=Number(i>>BigInt(32)&BigInt(4294967295));return c[a+3]=y,y=y>>8,c[a+2]=y,y=y>>8,c[a+1]=y,y=y>>8,c[a]=y,a+8}o.prototype.writeBigUInt64LE=Ze(function(i,a=0){return Gt(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeBigUInt64BE=Ze(function(i,a=0){return er(this,i,a,BigInt(0),BigInt("0xffffffffffffffff"))}),o.prototype.writeIntLE=function(i,a,m,l){if(i=+i,a=a>>>0,!l){let K=Math.pow(2,8*m-1);j(this,i,a,m,K-1,-K)}let g=0,y=1,F=0;for(this[a]=i&255;++g<m&&(y*=256);)i<0&&F===0&&this[a+g-1]!==0&&(F=1),this[a+g]=(i/y>>0)-F&255;return a+m},o.prototype.writeIntBE=function(i,a,m,l){if(i=+i,a=a>>>0,!l){let K=Math.pow(2,8*m-1);j(this,i,a,m,K-1,-K)}let g=m-1,y=1,F=0;for(this[a+g]=i&255;--g>=0&&(y*=256);)i<0&&F===0&&this[a+g+1]!==0&&(F=1),this[a+g]=(i/y>>0)-F&255;return a+m},o.prototype.writeInt8=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,1,127,-128),i<0&&(i=255+i+1),this[a]=i&255,a+1},o.prototype.writeInt16LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,32767,-32768),this[a]=i&255,this[a+1]=i>>>8,a+2},o.prototype.writeInt16BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,2,32767,-32768),this[a]=i>>>8,this[a+1]=i&255,a+2},o.prototype.writeInt32LE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,2147483647,-2147483648),this[a]=i&255,this[a+1]=i>>>8,this[a+2]=i>>>16,this[a+3]=i>>>24,a+4},o.prototype.writeInt32BE=function(i,a,m){return i=+i,a=a>>>0,m||j(this,i,a,4,2147483647,-2147483648),i<0&&(i=4294967295+i+1),this[a]=i>>>24,this[a+1]=i>>>16,this[a+2]=i>>>8,this[a+3]=i&255,a+4},o.prototype.writeBigInt64LE=Ze(function(i,a=0){return Gt(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),o.prototype.writeBigInt64BE=Ze(function(i,a=0){return er(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function tr(c,i,a,m,l,g){if(a+m>c.length)throw new RangeError("Index out of range");if(a<0)throw new RangeError("Index out of range")}function nr(c,i,a,m,l){return i=+i,a=a>>>0,l||tr(c,i,a,4),t.write(c,i,a,m,23,4),a+4}o.prototype.writeFloatLE=function(i,a,m){return nr(this,i,a,!0,m)},o.prototype.writeFloatBE=function(i,a,m){return nr(this,i,a,!1,m)};function rr(c,i,a,m,l){return i=+i,a=a>>>0,l||tr(c,i,a,8),t.write(c,i,a,m,52,8),a+8}o.prototype.writeDoubleLE=function(i,a,m){return rr(this,i,a,!0,m)},o.prototype.writeDoubleBE=function(i,a,m){return rr(this,i,a,!1,m)},o.prototype.copy=function(i,a,m,l){if(!o.isBuffer(i))throw new TypeError("argument should be a Buffer");if(m||(m=0),!l&&l!==0&&(l=this.length),a>=i.length&&(a=i.length),a||(a=0),l>0&&l<m&&(l=m),l===m||i.length===0||this.length===0)return 0;if(a<0)throw new RangeError("targetStart out of bounds");if(m<0||m>=this.length)throw new RangeError("Index out of range");if(l<0)throw new RangeError("sourceEnd out of bounds");l>this.length&&(l=this.length),i.length-a<l-m&&(l=i.length-a+m);let g=l-m;return this===i&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(a,m,l):Uint8Array.prototype.set.call(i,this.subarray(m,l),a),g},o.prototype.fill=function(i,a,m,l){if(typeof i=="string"){if(typeof a=="string"?(l=a,a=0,m=this.length):typeof m=="string"&&(l=m,m=this.length),l!==void 0&&typeof l!="string")throw new TypeError("encoding must be a string");if(typeof l=="string"&&!o.isEncoding(l))throw new TypeError("Unknown encoding: "+l);if(i.length===1){let y=i.charCodeAt(0);(l==="utf8"&&y<128||l==="latin1")&&(i=y)}}else typeof i=="number"?i=i&255:typeof i=="boolean"&&(i=Number(i));if(a<0||this.length<a||this.length<m)throw new RangeError("Out of range index");if(m<=a)return this;a=a>>>0,m=m===void 0?this.length:m>>>0,i||(i=0);let g;if(typeof i=="number")for(g=a;g<m;++g)this[g]=i;else{let y=o.isBuffer(i)?i:o.from(i,l),F=y.length;if(F===0)throw new TypeError('The value "'+i+'" is invalid for argument "value"');for(g=0;g<m-a;++g)this[g+a]=y[g%F]}return this};let it={};function vn(c,i,a){it[c]=class extends a{constructor(){super(),Object.defineProperty(this,"message",{value:i.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${c}]`,this.stack,delete this.name}get code(){return c}set code(l){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:l,writable:!0})}toString(){return`${this.name} [${c}]: ${this.message}`}}}vn("ERR_BUFFER_OUT_OF_BOUNDS",function(c){return c?`${c} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),vn("ERR_INVALID_ARG_TYPE",function(c,i){return`The "${c}" argument must be of type number. Received type ${typeof i}`},TypeError),vn("ERR_OUT_OF_RANGE",function(c,i,a){let m=`The value of "${c}" is out of range.`,l=a;return Number.isInteger(a)&&Math.abs(a)>2**32?l=ir(String(a)):typeof a=="bigint"&&(l=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(l=ir(l)),l+="n"),m+=` It must be ${i}. Received ${l}`,m},RangeError);function ir(c){let i="",a=c.length,m=c[0]==="-"?1:0;for(;a>=m+4;a-=3)i=`_${c.slice(a-3,a)}${i}`;return`${c.slice(0,a)}${i}`}function di(c,i,a){at(i,"offset"),(c[i]===void 0||c[i+a]===void 0)&&ht(i,c.length-(a+1))}function ar(c,i,a,m,l,g){if(c>a||c<i){let y=typeof i=="bigint"?"n":"",F;throw g>3?i===0||i===BigInt(0)?F=`>= 0${y} and < 2${y} ** ${(g+1)*8}${y}`:F=`>= -(2${y} ** ${(g+1)*8-1}${y}) and < 2 ** ${(g+1)*8-1}${y}`:F=`>= ${i}${y} and <= ${a}${y}`,new it.ERR_OUT_OF_RANGE("value",F,c)}di(m,l,g)}function at(c,i){if(typeof c!="number")throw new it.ERR_INVALID_ARG_TYPE(i,"number",c)}function ht(c,i,a){throw Math.floor(c)!==c?(at(c,a),new it.ERR_OUT_OF_RANGE(a||"offset","an integer",c)):i<0?new it.ERR_BUFFER_OUT_OF_BOUNDS:new it.ERR_OUT_OF_RANGE(a||"offset",`>= ${a?1:0} and <= ${i}`,c)}let gi=/[^+/0-9A-Za-z-_]/g;function fi(c){if(c=c.split("=")[0],c=c.trim().replace(gi,""),c.length<2)return"";for(;c.length%4!==0;)c=c+"=";return c}function xn(c,i){i=i||1/0;let a,m=c.length,l=null,g=[];for(let y=0;y<m;++y){if(a=c.charCodeAt(y),a>55295&&a<57344){if(!l){if(a>56319){(i-=3)>-1&&g.push(239,191,189);continue}else if(y+1===m){(i-=3)>-1&&g.push(239,191,189);continue}l=a;continue}if(a<56320){(i-=3)>-1&&g.push(239,191,189),l=a;continue}a=(l-55296<<10|a-56320)+65536}else l&&(i-=3)>-1&&g.push(239,191,189);if(l=null,a<128){if((i-=1)<0)break;g.push(a)}else if(a<2048){if((i-=2)<0)break;g.push(a>>6|192,a&63|128)}else if(a<65536){if((i-=3)<0)break;g.push(a>>12|224,a>>6&63|128,a&63|128)}else if(a<1114112){if((i-=4)<0)break;g.push(a>>18|240,a>>12&63|128,a>>6&63|128,a&63|128)}else throw new Error("Invalid code point")}return g}function yi(c){let i=[];for(let a=0;a<c.length;++a)i.push(c.charCodeAt(a)&255);return i}function hi(c,i){let a,m,l,g=[];for(let y=0;y<c.length&&!((i-=2)<0);++y)a=c.charCodeAt(y),m=a>>8,l=a%256,g.push(l),g.push(m);return g}function sr(c){return u.toByteArray(fi(c))}function _t(c,i,a,m){let l;for(l=0;l<m&&!(l+a>=i.length||l>=c.length);++l)i[l+a]=c[l];return l}function xe(c,i){return c instanceof i||c!=null&&c.constructor!=null&&c.constructor.name!=null&&c.constructor.name===i.name}function En(c){return c!==c}let Ti=function(){let c="0123456789abcdef",i=new Array(256);for(let a=0;a<16;++a){let m=a*16;for(let l=0;l<16;++l)i[m+l]=c[a]+c[l]}return i}();function Ze(c){return typeof BigInt>"u"?bi:c}function bi(){throw new Error("BigInt not supported")}return $e}var et=Si();et.Buffer;et.SlowBuffer;et.INSPECT_MAX_BYTES;et.kMaxLength;var h=et.Buffer,ss=et.INSPECT_MAX_BYTES,os=et.kMaxLength;var ds={coreApiUrl:"https://core-dev.a11bd.net",coreApiQueryParams:{},coreApiHeaders:{},wormholeMessengerProgramId:"3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",solanaLookUpTable:"C3jAxHRTZjM2Bs7EqPir4nvrT8zKtpcW7RvGR9R2qKtN",sorobanNetworkPassphrase:"Test SDF Network ; September 2015",tronJsonRpc:"https://nile.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{SPL:0,ARB:3,AMO:7}}},gs={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},fs={SOL:"https://api.devnet.solana.com",TRX:"https://nile.trongrid.io",SRB:"https://soroban-testnet.stellar.org",STLR:"https://horizon-testnet.stellar.org"};var Zt={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},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}}},ws={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},Ps={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 Ue}from"big.js";var Xt=class{constructor(t){this.apiClient=t}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let t=await this.getChainDetailsMap();return Object.values(t).flatMap(n=>n.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(t,n){return this.apiClient.getGasBalance(t,n)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(t,n){return await this.apiClient.getTransferStatus(t,n)}async getReceiveTransactionCost(t){return await this.apiClient.getReceiveTransactionCost(t)}async getPoolInfoMap(t){return await this.apiClient.getPoolInfoMap(t)}};import vi from"axios";var ur="3.15.3";var Ee=(k=>(k.GRL="GRL",k.SPL="SPL",k.HOL="HOL",k.BSC="BSC",k.ETH="ETH",k.BAS="BAS",k.SOL="SOL",k.TRX="TRX",k.POL="POL",k.MUM="MUM",k.AMO="AMO",k.ARB="ARB",k.CEL="CEL",k.AVA="AVA",k.SRB="SRB",k.STLR="STLR",k.OPT="OPT",k))(Ee||{}),q=(s=>(s.EVM="EVM",s.SOLANA="SOLANA",s.TRX="TRX",s.SRB="SRB",s))(q||{}),$={EVM:18,SOLANA:9,TRX:6,SRB:7},ce={GRL:{chainSymbol:"GRL",chainId:"0x5",name:"Goerli",chainType:"EVM"},SPL:{chainSymbol:"SPL",chainId:"0xaa36a7",name:"Sepolia",chainType:"EVM"},HOL:{chainSymbol:"HOL",chainId:"0x4268",name:"Hole\u0161ky",chainType:"EVM"},BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},MUM:{chainSymbol:"MUM",chainId:"0x13881",name:"Mumbai",chainType:"EVM"},AMO:{chainSymbol:"AMO",chainId:"0x13882",name:"Amoy",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"}};import{Big as I}from"big.js";import Dn from"bn.js";var H=class extends Error{constructor(t,n){super(n),this.errorCode=t}},G=class extends H{constructor(t){super("SdkError",t)}},Kt=class extends H{constructor(t){super("InvalidAmountError",t)}},st=class extends H{constructor(t){super("AmountNotEnoughError",t)}},We=class extends H{constructor(t){super("InsufficientPoolLiquidityError",t)}},ue=class extends H{constructor(t){super("JupiterError",t)}},bt=class extends H{constructor(t){super("InvalidGasFeePaymentOptionError",t)}},mr=class extends H{constructor(t){super("InvalidMessengerOptionError",t)}},me=class extends H{constructor(t){super("MethodNotSupportedError",t)}},wt=class extends H{constructor(t){super("VerifyTxError",t)}},ot=class extends H{constructor(t){super("InvalidTxError",t)}},Qt=class extends H{constructor(t){super("ExtraGasMaxLimitExceededError",t)}},Yt=class extends H{constructor(t,n,r){super("ArgumentInvalidDecimalsError",`Argument '${t}' decimals '${n}' cannot be greater than '${r}'`)}},Pt=class extends H{constructor(t){super("TimeoutError",t)}},Jt=class extends H{constructor(t){super("NodeRpcUrlNotInitializedError",`For chain '${t}' Node RPC URL not initialized`)}},Be=class extends H{constructor(t){super("CCTPDoesNotSupportedError",t)}},Ht=class extends H{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},Ci=(S=>(S.SDK_ERROR="SdkError",S.INVALID_AMOUNT_ERROR="InvalidAmountError",S.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",S.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",S.JUPITER_ERROR="JupiterError",S.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",S.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",S.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",S.VERIFY_TX_ERROR="VerifyTxError",S.INVALID_TX_ERROR="InvalidTxError",S.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",S.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",S.TIMEOUT_ERROR="TimeoutError",S.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",S.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",S.TX_TOO_LARGE="TxTooLargeError",S))(Ci||{});function Fn(u,t){return I(100).minus(I(100).times(t).div(u)).toNumber()}function tt(u,t){return Xe(u,t,3).round(0,I.roundDown)}function fe(u,t){return Xe(u,3,t)}function Xe(u,t,n){let r=I(n).minus(t).toNumber();return I(u).times(St(r))}function St(u){return I(10).pow(u)}function O(u,t){return I(u).times(St(t))}function W(u,t){let n=I(u);return n.eq(0)?I(0):I(n).div(St(t))}function ye(u){return W(I(u.tokenBalance).minus(u.vUsdBalance).toFixed(),3).div(2).toFixed()}function De(u,{feeShare:t,decimals:n},r){let s=I(u);if(s.lte(0))return"0";let A=s.times(t),o=s.minus(A),p=tt(o,n),d=I(r.tokenBalance).plus(p),f=Fe(d,r.aValue,r.dValue);return I(r.vUsdBalance).minus(f).round(0,I.roundDown).toFixed()}function Ct(u,{feeShare:t,decimals:n},r){let s=I(u);if(s.lte(0))return I(0).toFixed();let A=s.plus(r.vUsdBalance),o=Fe(A,r.aValue,r.dValue),p=fe(I(r.tokenBalance).minus(o),n),d=I(p).times(t);return I(p).minus(d).round(0,I.roundDown).toFixed()}function lr(u,t){let n=I(u);if(n.lte(0))return t;let r=n.plus(t.vUsdBalance),s=Fe(r,t.aValue,t.dValue);return{aValue:t.aValue,dValue:t.dValue,tokenBalance:s.toFixed(0),vUsdBalance:r.toFixed(0)}}function pr(u,{feeShare:t,decimals:n},r){if(I(u).lte(0))return I(0);let s=I(r.vUsdBalance).minus(u);if(s.lte(0))throw new We;let A=Fe(s,r.aValue,r.dValue),o=I(A).minus(r.tokenBalance),p=fe(o,n),d=I(t).div(I(1).minus(t)),f=I(p).times(d).round(0,I.roundUp);return I(p).plus(f).round(0,I.roundDown)}function dr(u,{feeShare:t,decimals:n},r){if(I(u).lte(0))return I(0);let s=I(t).div(I(1).minus(t)),A=I(u).times(s).round(0,I.roundUp),o=I(u).plus(A),p=tt(o,n),d=I(r.tokenBalance).minus(p);if(d.lte(0))throw new We;let f=Fe(d,r.aValue,r.dValue);return I(f).minus(r.vUsdBalance).round(0,I.roundDown)}function Fe(u,t,n){let r=I(4).times(t).times(I(n).minus(u)).minus(n),s=I(n).pow(3),A=r.pow(2),o=I(u).times(I(u).times(A).plus(I(4).times(t).times(s))).sqrt().round(0,I.roundDown),p=I(8).times(t).times(u),d=r.times(u).plus(o).div(p).round(0,I.roundDown);return d.eq(0)?I(0):d.plus(1)}function gr(u,t,n,r){let s=new Dn(u),A=new Dn(n),o=new Dn(t);return s.mul(A).shrn(r).sub(o).toString()}function fr(u){return u*100>0?`${Number(I(u).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function yr(u,t,n){let r=I(t).times(n),s=I(t).plus(n),A=I(8).times(u).times(r).times(s),o=r.times(I(16).times(u).minus(4)).div(3),p=A.times(A),d=o.times(o).times(o),f=p.plus(d),T=I(f).sqrt(),b=I(Math.cbrt(+A.plus(T).toFixed())),R=I(Math.cbrt(+A.minus(T).toFixed()));return b.plus(R).toFixed()}var Un=(o=>(o.OK="OK",o.INVALID="INVALID",o.FORBIDDEN="FORBIDDEN",o.UNINITIALIZED="UNINITIALIZED",o.CONTRACT_ADDRESS="CONTRACT_ADDRESS",o.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",o))(Un||{});var Ne=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ne||{});function hr(u){return Object.entries(u).reduce((t,n)=>{let r=n[0],s=n[1],A=Ii(r,s);return A&&(t[r]=A),t},{})}function Tr(u){let t={};for(let[n,r]of Object.entries(u)){let s=n;for(let A of r.tokens){let o=At({chainSymbol:s,poolAddress:A.poolAddress}),p=ye(A.poolInfo);t[o]={...A.poolInfo,imbalance:p}}}return t}function Bi(u,t){let{name:n,...r}=u,{poolInfo:s,...A}=t;return{...A,...r,chainName:n}}function ki(u){switch(u){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function Mi(u){return Object.entries(u).reduce((t,[n,r])=>(t[n]=Ri(r),t),{})}function Ri(u){return Object.entries(u).reduce((t,[n,r])=>{let s=ki(n);return s&&(t[s]=r),t},{})}function Ii(u,t){let n=ce[u];if(!n)return null;let r={...n,allbridgeChainId:t.chainId,bridgeAddress:t.bridgeAddress,transferTime:Mi(t.transferTime),txCostAmount:t.txCostAmount,confirmations:t.confirmations};return{...r,tokens:t.tokens.map(s=>Bi(r,s))}}function At(u){return u.chainSymbol+"_"+u.poolAddress}function br(u){let t=[];for(let[n,r]of Object.entries(u)){let s=n;for(let A of r.tokens)t.push({chainSymbol:s,poolAddress:A.poolAddress})}return t}function wr(u){let t={};for(let[n,r]of Object.entries(u)){let s=n;for(let[A,o]of Object.entries(r))o.imbalance=ye(o),t[At({chainSymbol:s,poolAddress:A})]=o}return t}var zt=class{constructor(t){this.api=vi.create({baseURL:t.coreApiUrl,headers:{Accept:"application/json",...t.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ur},params:t.coreApiQueryParams})}async getTokenInfo(){let{data:t}=await this.api.get("/token-info");return{chainDetailsMap:hr(t),poolInfoMap:Tr(t)}}async getPendingInfo(){let{data:t}=await this.api.get("/pending-info");return t}async getGasBalance(t,n){let{data:r}=await this.api.get(`/check/${t}/${n}`);return r}async getTransferStatus(t,n){let{data:r}=await this.api.get(`/chain/${t}/${n}`);return r}async getReceiveTransactionCost(t){let{data:n}=await this.api.post("/receive-fee",t,{headers:{"Content-Type":"application/json"}});return{exchangeRate:n.exchangeRate,fee:n.fee,sourceNativeTokenPrice:n.sourceNativeTokenPrice}}async getPoolInfoMap(t){let n=t instanceof Array?t:[t],{data:r}=await this.api.post("/pool-info",{pools:n},{headers:{"Content-Type":"application/json"}});return wr(r)}};import jt from"timed-cache";var Wn=20*1e3,xi=55*1e3,qt=class{constructor(t){this.apiClient=t;this.tokenInfoCache=new jt({defaultTtl:xi}),this.receivedTransactionCache=new jt({defaultTtl:Wn}),this.pendingInfoCache=new jt({defaultTtl:Wn}),this.gasBalanceCache=new jt({defaultTtl:Wn})}getTokenInfo(){let t="TOKEN_INFO_CACHE_KEY",n=this.tokenInfoCache.get(t);if(n)return n;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(t,r),r}async getGasBalance(t,n){let r=`GAS_BALANCE_${t}_${n}`,s=this.gasBalanceCache.get(r);if(s)return s;let A=this.apiClient.getGasBalance(t,n);return this.gasBalanceCache.put(r,A),A}async getPendingInfo(){let t="PENDING_INFO_CACHE_KEY",n=this.pendingInfoCache.get(t);if(n)return n;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(t,r),r}async getReceiveTransactionCost(t){let n=`RECEIVE_TX_COST_${t.sourceChainId}_${t.destinationChainId}_${t.messenger}`,r=this.receivedTransactionCache.get(n);if(r)return r;let s=await this.apiClient.getReceiveTransactionCost(t);return this.receivedTransactionCache.put(n,s),s}async getTransferStatus(t,n){return this.apiClient.getTransferStatus(t,n)}async getPoolInfoMap(t){return this.apiClient.getPoolInfoMap(t)}};import Ei from"timed-cache";var Di=55*1e3,$t=class{constructor(t){this.client=t;this.poolInfoCache=new Nn}async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(t,n){return this.client.getTransferStatus(t,n)}getReceiveTransactionCost(t){return this.client.getReceiveTransactionCost(t)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(t,n){return this.client.getGasBalance(t,n)}async getPoolInfoByKey(t){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let n=this.poolInfoCache.get(t);if(n)return n;{let r=await this.client.getPoolInfoMap(t);return this.poolInfoCache.putAll(r),r[At(t)]}}async refreshPoolInfo(t){let n;if(t)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),n=await this.client.getPoolInfoMap(t);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();n=await this.client.getPoolInfoMap(br(r.chainDetailsMap))}this.poolInfoCache.putAll(n)}cachePut(t,n){this.poolInfoCache.put(At(t),n)}},Nn=class{constructor(){this.cache=new Ei({defaultTtl:Di})}putAll(t){for(let[n,r]of Object.entries(t))this.cache.put(n,r)}putAllIfNotExists(t){for(let[n,r]of Object.entries(t))this.cache.get(n)||this.cache.put(n,r)}put(t,n){this.cache.put(t,n)}get(t){let n=At(t);return this.cache.get(n)}};import Ta from"tronweb";import ba from"web3";import{Big as Pr}from"big.js";async function ee(u,t){return await u.getPoolInfoByKey({chainSymbol:t.chainSymbol,poolAddress:t.poolAddress})}function _(u){if(Pr(u).lte(0))throw new Kt("Amount must be greater than zero")}function Z(u,t,n){let r=Pr(t).toFixed();if(r.split(".").length==2&&r.split(".")[1].length>n)throw new Yt(u,r.split(".")[1].length,n)}async function en(u,t,n){return await Promise.race([u,new Promise((r,s)=>{setTimeout(()=>s(new Pt(t)),n)})])}async function On(u,t,n,r){if(n<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${n} was received.`);let s=0;for(;;)try{return await en(u(),t,r)}catch{if(++s>=n)throw new Pt(t)}}async function Sr(u,t,n,r=1.5,s=!1){let A=[],o=0;if(A.push(await u()),!t(A[A.length-1]))return A;let p=new Date(Date.now()+n*1e3).valueOf(),d=1e3,f=d;for(;Date.now()<p&&t(A[A.length-1]);)o++,s&&console.info(`Waiting ${d}ms before trying again (bringing the total wait time to ${f}ms so far, of total ${n*1e3}ms)`),await new Promise(T=>setTimeout(T,d)),d=d*r,new Date(Date.now()+d).valueOf()>p&&(d=p-Date.now(),s&&console.info(`was gonna wait too long; new waitTime: ${d}ms`)),f=d+f,A.push(await u(A[A.length-1])),s&&t(A[A.length-1])&&console.info(`${o}. Called ${u.name}; ${A.length} prev attempts. Most recent: ${JSON.stringify(A[A.length-1],null,2)}`);return A}import*as nn from"@project-serum/anchor";import{PublicKey as Or}from"@solana/web3.js";import{Big as Qi}from"big.js";var Cr=[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var Br=[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];import*as ie from"@project-serum/anchor";import{PublicKey as Ae}from"@solana/web3.js";async function ke(u,t){return ie.utils.token.associatedAddress({mint:t,owner:u})}async function Ke(u){let[t]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("config")],u);return t}async function kr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("lock"),Uint8Array.from(u)],t);return n}async function Bt(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([u])],t);return n}async function ct(u){let t=await Ke(u),[n]=await Ae.findProgramAddress([t.toBuffer()],u);return n}async function Mr(u,t){let[n]=await Ae.findProgramAddress([u.toBuffer()],t);return n}async function ut(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("token"),u.toBytes()],t);return n}async function Rr(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("other_bridge_token"),h.from([u]),t],n);return r}async function Vn(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([u])],t);return n}async function Gn(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([u])],t);return n}async function Ir(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("sent_message"),u],t);return n}async function _n(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("user_deposit"),t.toBytes(),u.toBytes()],n);return r}async function vr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("cctp_bridge"),u.toBytes()],t);return n}async function xr(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("token"),u.toBytes()],t);return n}function Er(u,t){let[n]=Ae.findProgramAddressSync([ie.utils.bytes.utf8.encode("lock"),t.toBuffer()],u);return n}function Dr(u,t,n,r){let s=nt("message_transmitter",n),A=nt("token_messenger",r),o=nt("__event_authority",r),p=nt("token_minter",r),d=nt("local_token",r,[t]),f=nt("remote_token_messenger",r,[u.toString()]),T=nt("sender_authority",r);return{messageTransmitterAccount:s,tokenMessenger:A,tokenMessengerEventAuthority:o,tokenMinter:p,localToken:d,remoteTokenMessengerKey:f,authorityPda:T}}function nt(u,t,n=[]){let r=[h.from(ie.utils.bytes.utf8.encode(u))];for(let A of n)typeof A=="string"?r.push(h.from(ie.utils.bytes.utf8.encode(A))):Array.isArray(A)?r.push(h.from(A)):h.isBuffer(A)?r.push(A):r.push(A.toBuffer());return Ae.findProgramAddressSync(r,t)[0]}import{AnchorProvider as Wi}from"@project-serum/anchor";import{Connection as Ni,PublicKey as Oi}from"@solana/web3.js";function Qe(u,t){let n=new Ni(u,"confirmed"),r=new Oi(t);return new Wi(n,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Me=class{};import{PublicKey as Vi}from"@solana/web3.js";import{Big as Oe}from"big.js";import Fr from"randombytes";import{Address as Gi}from"stellar-sdk";import*as Ur from"tronweb";function Ve(u,t,n){let r;switch(t){case"EVM":{r=_i(u);break}case"SOLANA":{r=new Vi(u).toBuffer();break}case"TRX":{r=Li(u);break}case"SRB":{r=new Gi(u).toBuffer();break}}switch(n){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r.toJSON().data;case"SRB":return r.toJSON().data}}function Wr(u){return h.from(u.replace(/^0x/i,""),"hex")}function _i(u){let n=Wr(u);return h.concat([h.alloc(32-n.length,0),n],32)}function Li(u){let t=kt(u),n=Wr(t);return Zi(n,32)}function kt(u){return h.from(Ur.utils.crypto.decodeBase58Address(u)).toString("hex").replace(/^41/,"0x")}function Zi(u,t){if(u.length>=t)return u;let n=h.alloc(t,0);return u.copy(n,t-u.length),n}function mt(){return Fr(32)}function Ln(){let u=Fr(32).readBigInt64BE();return u<0?u*-1n:u}function Ye(u,t){let n={},r=t.sourceToken;return n.amount=O(t.amount,r.decimals).toFixed(),n.contractAddress=r.bridgeAddress,n.fromAccountAddress=t.fromAccountAddress,n.fromTokenAddress=Ve(r.tokenAddress,u,u),n.toAccountAddress=t.toAccountAddress,n.toTokenAddress=Ve(t.destinationToken.tokenAddress,u,u),n.minimumReceiveAmount=t.minimumReceiveAmount?O(t.minimumReceiveAmount,t.destinationToken.decimals).toFixed():"0",n}async function Ge(u,t,n){let r={};r.fromChainId=t.sourceToken.allbridgeChainId,r.fromChainSymbol=t.sourceToken.chainSymbol;let s=ce[t.destinationToken.chainSymbol].chainType;r.fromTokenAddress=t.sourceToken.tokenAddress,r.toChainId=t.destinationToken.allbridgeChainId,r.toTokenAddress=t.destinationToken.tokenAddress,t.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let A=t.sourceToken;if(t.messenger===3){if(!A.cctpAddress||!t.destinationToken.cctpAddress)throw new Be("Such route does not support CCTP protocol");r.contractAddress=A.cctpAddress}else r.contractAddress=A.bridgeAddress;r.messenger=t.messenger,r.fromAccountAddress=t.fromAccountAddress,r.amount=O(t.amount,A.decimals).toFixed();let{fee:o,feeFormat:p}=t;if(!o){let b=(await Zn(r.fromChainId,t.sourceToken.chainType,r.toChainId,A.decimals,r.messenger,n))[r.gasFeePaymentMethod];if(!b)throw new bt;o=b.int,p="int"}if(p=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=O(o,$[A.chainType]).toFixed(0);break;case"stablecoin":r.fee=O(o,A.decimals).toFixed(0);break}else r.fee=o;let{extraGas:d,extraGasFormat:f}=t;if(d&&+d>0){if(f=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=O(d,$[A.chainType]).toFixed(0);break;case"stablecoin":r.extraGas=O(d,A.decimals).toFixed(0);break}else r.extraGas=d;await Ki(r.extraGas,r.gasFeePaymentMethod,A,t.destinationToken,n)}return r.fromTokenAddress=Ve(r.fromTokenAddress,u,u),r.toAccountAddress=Ve(t.toAccountAddress,s,u),r.toTokenAddress=Ve(r.toTokenAddress,s,u),r.gasFeePaymentMethod=="stablecoin"&&Xi(r.amount,A.decimals,r.fee,r.extraGas),r}function Xi(u,t,n,r){let s=Oe(u).minus(n).minus(r??0);if(s.lte(0))throw new st(`Amount not enough to pay fee, ${W(Oe(s).minus(1).neg(),t).toFixed()} stables is missing`)}async function Zn(u,t,n,r,s,A){let o=await A.getReceiveTransactionCost({sourceChainId:u,destinationChainId:n,messenger:s}),p={native:{int:o.fee,float:W(o.fee,$[t]).toFixed()}};if(o.sourceNativeTokenPrice){let d=Xe(new Oe(o.fee).mul(o.sourceNativeTokenPrice),$[t],r).toFixed(0,Oe.roundUp);p.stablecoin={int:d,float:W(d,r).toFixed()}}return p}async function Ki(u,t,n,r,s){let o=(await Xn(n,r,s)).extraGasMax[t];if(!o)throw new bt(`Impossible to pay extra gas by '${t}' payment method`);let p=o.int;if(Oe(u).gt(p))throw new Qt(`Extra gas ${u} in int format, exceeded limit ${p} for '${t}' payment method`)}async function Xn(u,t,n){let r={},s=await n.getReceiveTransactionCost({sourceChainId:u.allbridgeChainId,destinationChainId:t.allbridgeChainId,messenger:1}),A=t.txCostAmount.maxAmount,o=W(A,$[t.chainType]).toFixed(),p=Oe(o).div(s.exchangeRate).toFixed($[u.chainType],Oe.roundDown),d=O(p,$[u.chainType]).toFixed(0);if(r.native={int:d,float:p},s.sourceNativeTokenPrice){let f=Oe(p).mul(s.sourceNativeTokenPrice).toFixed(u.decimals,Oe.roundDown);r.stablecoin={int:O(f,u.decimals).toFixed(0),float:f}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:A,float:o},swap:{int:t.txCostAmount.swap,float:W(t.txCostAmount.swap,$[t.chainType]).toFixed()},transfer:{int:t.txCostAmount.transfer,float:W(t.txCostAmount.transfer,$[t.chainType]).toFixed()}},exchangeRate:s.exchangeRate,sourceNativeTokenPrice:s.sourceNativeTokenPrice}}function Nr(u){return u.sourceToken.chainSymbol!==u.destinationToken.chainSymbol}var Mt=class extends Me{constructor(n,r,s){super();this.web3=n;this.api=r;this.nodeRpcUrlsConfig=s;this.chainType="EVM"}async send(n){let r=await this.buildRawTransactionSend(n);return this.sendRawTransaction(r)}async buildRawTransactionSwap(n){let r=Ye(this.chainType,n);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(n){let{amount:r,contractAddress:s,fromAccountAddress:A,fromTokenAddress:o,toAccountAddress:p,toTokenAddress:d,minimumReceiveAmount:f}=n,b=this.getBridgeContract(s).methods.swap(r,o,d,p,f);return Promise.resolve({from:A,to:s,data:b.encodeABI()})}async buildRawTransactionSend(n){let r=await Ge(this.chainType,n,this.api),{amount:s,contractAddress:A,fromAccountAddress:o,fromTokenAddress:p,toChainId:d,toAccountAddress:f,toTokenAddress:T,messenger:b,fee:R,gasFeePaymentMethod:w,extraGas:P}=r,M="0x"+mt().toString("hex"),S,k,v=R;if(P&&(v=Qi(v).plus(P).toFixed()),b===3){let E=await this.buildRawTransactionCctpSend(n,r,v);S=E.sendMethod,k=E.value}else{let E=this.getBridgeContract(A);w==="stablecoin"?(S=E.methods.swapAndBridge(p,s,f,d,T,M,b,v),k="0"):(S=E.methods.swapAndBridge(p,s,f,d,T,M,b,0),k=v)}return Promise.resolve({from:o,to:A,value:k,data:S.encodeABI()})}async buildRawTransactionCctpSend(n,r,s){let{amount:A,contractAddress:o,toChainId:p,toAccountAddress:d,gasFeePaymentMethod:f}=r,T=this.getContract(Br,o),b,R;if(n.destinationToken.chainType==="SOLANA"){let w,P=new Or(n.toAccountAddress),M=new Or(n.destinationToken.tokenAddress),S=await ke(P,M),k=Qe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),n.toAccountAddress);nn.setProvider(k);let v=await nn.Spl.token(k).account.token.fetchNullable(S);if(v?.authority.equals(P))w=Ve(S.toBase58(),"SOLANA",this.chainType);else{let E=await k.connection.getTokenAccountsByOwner(P,{mint:M});if(E.value.length===0&&!v)w=Ve(S.toBase58(),"SOLANA",this.chainType);else if(E.value.length>0)w=Ve(E.value[0].pubkey.toBase58(),"SOLANA",this.chainType);else throw new G("Associated account has wrong owner")}f==="stablecoin"?(b=T.methods.bridgeWithWalletAddress(A,w,d,p,s),R="0"):(b=T.methods.bridgeWithWalletAddress(A,w,d,p,0),R=s)}else f==="stablecoin"?(b=T.methods.bridge(A,d,p,s),R="0"):(b=T.methods.bridge(A,d,p,0),R=s);return{sendMethod:b,value:R}}async sendRawTransaction(n){let r=await this.web3.eth.estimateGas(n),s={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:A}=await this.web3.eth.sendTransaction({...n,gas:r,...s});return{txId:A}}getContract(n,r){return new this.web3.eth.Contract(n,r)}getBridgeContract(n){return this.getContract(Cr,n)}};var rn=class{constructor(t,n,r,s){this.api=t;this.nodeRpcUrlsConfig=n;this.params=r;this.tokenService=s}async approve(t,n){let r,s;n?(r=t,s=n):s=t;let A=Rt(s.token,s.messenger);return this.tokenService.buildRawTransactionApprove({...s,spender:A},r)}async send(t,n){return _(t.amount),Z("amount",t.amount,t.sourceToken.decimals),Nr(t)?an(t.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,n).buildRawTransactionSend(t):an(t.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,n).buildRawTransactionSwap(t)}};import{BN as gt,Program as Yn,Spl as na,web3 as Je}from"@project-serum/anchor";import{Keypair as zr,PublicKey as X,SystemProgram as ra}from"@solana/web3.js";import{Big as He}from"big.js";var It={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 Vr={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 Yi}from"@project-serum/anchor";import Ji from"big.js";import sn from"web3";async function pt(u,t){return await Yi.token(t).account.token.fetch(u)}async function Gr(u,t,n){let r=await t.account.pool.fetch(n),s=r.decimals,A=Ji(r.feeShareBp.toString()).div(1e4).toFixed(),o={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 De(u,{decimals:s,feeShare:A},o)}function _r(u){let t=u.amount,n="0x"+u.recipient.toString("hex"),r=u.sourceChainId,s=u.destinationChainId,A="0x"+u.receiveToken.toString("hex"),o="0x"+u.nonce.toString("hex"),p=1,d="0x"+u.chainBridge.toString("hex"),f=sn.utils.encodePacked({t:"uint256",v:t},{t:"bytes32",v:n},{t:"uint256",v:r},{t:"bytes32",v:A},{t:"uint256",v:o},{t:"uint8",v:p});if(!f)throw new G("message cannot be undefined");let T=sn.utils.keccak256(h.from(f.replace("0x",""),"hex")),b=h.from(T.replace("0x",""),"hex");b[0]=r,b[1]=s;let R=sn.utils.encodePacked({t:"bytes32",v:"0x"+b.toString("hex")},{t:"bytes32",v:d});if(!R)throw new ot("messageWithSigner cannot be undefined");let w=sn.utils.keccak256(h.from(R.replace("0x",""),"hex")),P=h.from(w.replace("0x",""),"hex");return P[0]=b[0],P[1]=b[1],P}import{ComputeBudgetInstruction as Zr,ComputeBudgetProgram as on,Connection as Xr,TransactionMessage as Hi}from"@solana/web3.js";import{Big as zi}from"big.js";import{AddressLookupTableAccount as Lr}from"@solana/web3.js";async function rt(u,t){return await Promise.all(u.message.addressTableLookups.map(async n=>new Lr({key:n.accountKey,state:Lr.deserialize(await t.getAccountInfo(n.accountKey).then(r=>{if(!r)throw new G("Cannot get AccountInfo");return r.data}))})))}var Kn="AUTO";async function dt(u,t,n){let r=new Xr(n,"confirmed"),s=(await r.simulateTransaction(u)).value.unitsConsumed;await Qr(u.instructions,s,t,r)}async function Kr(u,t,n){let r=new Xr(n,"confirmed"),s=await rt(u,r),A=Hi.decompile(u.message,{addressLookupTableAccounts:s});if(u.serialize().length>1232)throw new Ht;await Qr(A.instructions,769230,t,r),u.message=A.compileToV0Message(s)}async function Qr(u,t,n,r){if(t>0){let s=ji(t,u);if(n?.solana){let A=n.solana;if(A===Kn)await Qn(u,r);else if("pricePerUnitInMicroLamports"in A)await Qn(u,r,A.pricePerUnitInMicroLamports);else{let o=zi(A.extraFeeInLamports).div(s).mul(St(6)).toFixed(0);await Qn(u,r,o)}}}}function ji(u,t){let n=t.findIndex(A=>A.programId.equals(on.programId)&&Zr.decodeInstructionType(A)==="SetComputeUnitLimit"),r=Number((u*1.3).toFixed(0)),s=on.setComputeUnitLimit({units:r});return n>=0?t[n]=s:t.push(s),r.toString()}async function Qn(u,t,n){let r=u.findIndex(o=>o.programId.equals(on.programId)&&Zr.decodeInstructionType(o)==="SetComputeUnitPrice"),s=BigInt(n||await qi(t)),A=on.setComputeUnitPrice({microLamports:s});return r>=0?u[r]=A:u.push(A),s.toString()}async function qi(u){let t=await u.getRecentPrioritizationFees(),n=0;for(let r of t)n+=r.prioritizationFee;return(n/t.length).toFixed(0)}import{NATIVE_MINT as $i}from"@solana/spl-token";import{Connection as ea,TransactionMessage as Yr,VersionedTransaction as ta}from"@solana/web3.js";import Jr,{AxiosError as Hr}from"axios";var An=class{constructor(t){this.connection=new ea(t)}async getJupiterSwapTx(t,n,r){let s;try{s=await Jr.get(`https://quote-api.jup.ag/v6/quote?inputMint=${n}
|
|
2
2
|
&outputMint=${$i.toString()}
|
|
3
3
|
&amount=${r}
|
|
4
4
|
&slippageBps=100
|