@allbridge/bridge-core-sdk 3.15.0 → 3.15.1-alpha.1
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 +2 -1
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var Tt={},sr=!1;function bi(){if(sr)return Tt;sr=!0,Tt.byteLength=p,Tt.toByteArray=f,Tt.fromByteArray=M;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 R=w.indexOf("=");R===-1&&(R=P);var S=R===P?0:4-R%4;return[R,S]}function p(w){var P=o(w),R=P[0],S=P[1];return(R+S)*3/4-S}function d(w,P,R){return(P+R)*3/4-R}function f(w){var P,R=o(w),S=R[0],k=R[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,R){for(var S,k=[],v=P;v<R;v+=3)S=(w[v]<<16&16711680)+(w[v+1]<<8&65280)+(w[v+2]&255),k.push(T(S));return k.join("")}function M(w){for(var P,R=w.length,S=R%3,k=[],v=16383,E=0,N=R-S;E<N;E+=v)k.push(b(w,E,E+v>N?N:E+v));return S===1?(P=w[R-1],k.push(u[P>>2]+u[P<<4&63]+"==")):S===2&&(P=(w[R-2]<<8)+w[R-1],k.push(u[P>>10]+u[P>>4&63]+u[P<<2&63]+"=")),k.join("")}return Tt}var Lt={},or=!1;function wi(){if(or)return Lt;or=!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,M=n?-1:1,w=u[t+b];for(b+=M,A=w&(1<<-T)-1,w>>=-T,T+=p;T>0;A=A*256+u[t+b],b+=M,T-=8);for(o=A&(1<<-T)-1,A>>=-T,T+=r;T>0;o=o*256+u[t+b],b+=M,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,M=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:A-1,P=r?1:-1,R=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+=M/d:t+=M*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]|=R*128},Lt}var qe={},Ar=!1;function Pi(){if(Ar)return qe;Ar=!0;let u=bi(),t=wi(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;qe.Buffer=o,qe.SlowBuffer=k,qe.INSPECT_MAX_BYTES=50;let r=2147483647;qe.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=R(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 M(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 M(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 R(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):M(c);if(c.type==="Buffer"&&Array.isArray(c.data))return M(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,h=Math.min(m,l);g<h;++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 h=i[m];if(xe(h,Uint8Array))g+h.length>l.length?(o.isBuffer(h)||(h=o.from(h)),h.copy(l,g)):Uint8Array.prototype.set.call(l,h,g);else if(o.isBuffer(h))h.copy(l,g);else throw new TypeError('"list" argument must be an Array of Buffers');g+=h.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 ar(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=qe.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 h=g-l,F=m-a,K=Math.min(h,F),L=this.slice(l,g),Q=i.slice(a,m);for(let V=0;V<K;++V)if(L[V]!==Q[V]){h=L[V],F=Q[V];break}return h<F?-1:F<h?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,h=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,h/=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<h;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>h&&(a=h-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 h;for(h=0;h<m;++h){let F=parseInt(i.substr(h*2,2),16);if(En(F))return h;c[a+h]=F}return h}function Y(c,i,a,m){return _t(xn(i,c.length-a),c,a,m)}function Te(c,i,a,m){return _t(fi(i),c,a,m)}function be(c,i,a,m){return _t(ar(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 h=!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(h)throw new TypeError("Unknown encoding: "+l);l=(""+l).toLowerCase(),h=!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],h=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&&(h=g);break;case 2:K=c[l+1],(K&192)===128&&(V=(g&31)<<6|K&63,V>127&&(h=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)&&(h=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&&(h=V))}}h===null?(h=65533,F=1):h>65535&&(h-=65536,m.push(h>>>10&1023|55296),h=56320|h&1023),m.push(h),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+=yi[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,h=0;for(;++h<a&&(g*=256);)l+=this[i+h]*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)&&yt(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)&&yt(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,h=0;for(;++h<a&&(g*=256);)l+=this[i+h]*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,h=this[i+--l];for(;l>0&&(g*=256);)h+=this[i+--l]*g;return g*=128,h>=g&&(h-=Math.pow(2,8*a)),h},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)&&yt(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)&&yt(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,h=0;for(this[a]=i&255;++h<m&&(g*=256);)this[a+h]=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,h=1;for(this[a+g]=i&255;--g>=0&&(h*=256);)this[a+g]=i/h&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){ir(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 h=Number(i>>BigInt(32)&BigInt(4294967295));return c[a++]=h,h=h>>8,c[a++]=h,h=h>>8,c[a++]=h,h=h>>8,c[a++]=h,a}function $n(c,i,a,m,l){ir(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 h=Number(i>>BigInt(32)&BigInt(4294967295));return c[a+3]=h,h=h>>8,c[a+2]=h,h=h>>8,c[a+1]=h,h=h>>8,c[a]=h,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 $n(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,h=1,F=0;for(this[a]=i&255;++g<m&&(h*=256);)i<0&&F===0&&this[a+g-1]!==0&&(F=1),this[a+g]=(i/h>>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,h=1,F=0;for(this[a+g]=i&255;--g>=0&&(h*=256);)i<0&&F===0&&this[a+g+1]!==0&&(F=1),this[a+g]=(i/h>>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 $n(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function er(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 tr(c,i,a,m,l){return i=+i,a=a>>>0,l||er(c,i,a,4),t.write(c,i,a,m,23,4),a+4}o.prototype.writeFloatLE=function(i,a,m){return tr(this,i,a,!0,m)},o.prototype.writeFloatBE=function(i,a,m){return tr(this,i,a,!1,m)};function nr(c,i,a,m,l){return i=+i,a=a>>>0,l||er(c,i,a,8),t.write(c,i,a,m,52,8),a+8}o.prototype.writeDoubleLE=function(i,a,m){return nr(this,i,a,!0,m)},o.prototype.writeDoubleBE=function(i,a,m){return nr(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 h=i.charCodeAt(0);(l==="utf8"&&h<128||l==="latin1")&&(i=h)}}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 h=o.isBuffer(i)?i:o.from(i,l),F=h.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]=h[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=rr(String(a)):typeof a=="bigint"&&(l=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(l=rr(l)),l+="n"),m+=` It must be ${i}. Received ${l}`,m},RangeError);function rr(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 pi(c,i,a){at(i,"offset"),(c[i]===void 0||c[i+a]===void 0)&&yt(i,c.length-(a+1))}function ir(c,i,a,m,l,g){if(c>a||c<i){let h=typeof i=="bigint"?"n":"",F;throw g>3?i===0||i===BigInt(0)?F=`>= 0${h} and < 2${h} ** ${(g+1)*8}${h}`:F=`>= -(2${h} ** ${(g+1)*8-1}${h}) and < 2 ** ${(g+1)*8-1}${h}`:F=`>= ${i}${h} and <= ${a}${h}`,new it.ERR_OUT_OF_RANGE("value",F,c)}pi(m,l,g)}function at(c,i){if(typeof c!="number")throw new it.ERR_INVALID_ARG_TYPE(i,"number",c)}function yt(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 di=/[^+/0-9A-Za-z-_]/g;function gi(c){if(c=c.split("=")[0],c=c.trim().replace(di,""),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 h=0;h<m;++h){if(a=c.charCodeAt(h),a>55295&&a<57344){if(!l){if(a>56319){(i-=3)>-1&&g.push(239,191,189);continue}else if(h+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 fi(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 h=0;h<c.length&&!((i-=2)<0);++h)a=c.charCodeAt(h),m=a>>8,l=a%256,g.push(l),g.push(m);return g}function ar(c){return u.toByteArray(gi(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 yi=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"?Ti:c}function Ti(){throw new Error("BigInt not supported")}return qe}var $e=Pi();$e.Buffer;$e.SlowBuffer;$e.INSPECT_MAX_BYTES;$e.kMaxLength;var y=$e.Buffer,is=$e.INSPECT_MAX_BYTES,as=$e.kMaxLength;var ls={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}}},ps={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},ds={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}}},Ts={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},bs={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 checkAddress(t,n,r){return this.apiClient.checkAddress(t,n,r)}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 Ii from"axios";var cr="3.15.0";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)}},ur=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")}},Si=(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))(Si||{});function Fn(u,t){return I(100).minus(I(100).times(t).div(u)).toNumber()}function et(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 he(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=et(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 mr(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 lr(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 pr(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=et(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 dr(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 gr(u){return u*100>0?`${Number(I(u).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function fr(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())),M=I(Math.cbrt(+A.minus(T).toFixed()));return b.plus(M).toFixed()}var hr=(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))(hr||{});var Ne=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ne||{});function yr(u){return Object.entries(u).reduce((t,n)=>{let r=n[0],s=n[1],A=Mi(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=he(A.poolInfo);t[o]={...A.poolInfo,imbalance:p}}}return t}function Ci(u,t){let{name:n,...r}=u,{poolInfo:s,...A}=t;return{...A,...r,chainName:n}}function Bi(u){switch(u){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ki(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=Bi(n);return s&&(t[s]=r),t},{})}function Mi(u,t){let n=ce[u];if(!n)return null;let r={...n,allbridgeChainId:t.chainId,bridgeAddress:t.bridgeAddress,transferTime:ki(t.transferTime),txCostAmount:t.txCostAmount,confirmations:t.confirmations};return{...r,tokens:t.tokens.map(s=>Ci(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=he(o),t[At({chainSymbol:s,poolAddress:A})]=o}return t}var zt=class{constructor(t){this.api=Ii.create({baseURL:t.coreApiUrl,headers:{Accept:"application/json",...t.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+cr},params:t.coreApiQueryParams})}async getTokenInfo(){let{data:t}=await this.api.get("/token-info");return{chainDetailsMap:yr(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 checkAddress(t,n,r){if(r){let{data:A}=await this.api.get(`/check/${t}/${n}`,{params:{token:r,...this.api.defaults.params}});return A}let{data:s}=await this.api.get(`/check/${t}/${n}`);return s}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 Un=20*1e3,vi=55*1e3,qt=class{constructor(t){this.apiClient=t;this.tokenInfoCache=new jt({defaultTtl:vi}),this.receivedTransactionCache=new jt({defaultTtl:Un}),this.pendingInfoCache=new jt({defaultTtl:Un}),this.gasBalanceCache=new jt({defaultTtl:Un})}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 checkAddress(t,n,r){return this.apiClient.checkAddress(t,n,r)}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 xi from"timed-cache";var Ei=55*1e3,$t=class{constructor(t){this.client=t;this.poolInfoCache=new Wn}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)}checkAddress(t,n,r){return this.client.checkAddress(t,n,r)}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)}},Wn=class{constructor(){this.cache=new xi({defaultTtl:Ei})}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 ya from"tronweb";import Ta 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 Nn(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 Ki}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 Rr(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 Mr(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("other_bridge_token"),y.from([u]),t],n);return r}async function On(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([u])],t);return n}async function Vn(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 Gn(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=tt("message_transmitter",n),A=tt("token_messenger",r),o=tt("__event_authority",r),p=tt("token_minter",r),d=tt("local_token",r,[t]),f=tt("remote_token_messenger",r,[u.toString()]),T=tt("sender_authority",r);return{messageTransmitterAccount:s,tokenMessenger:A,tokenMessengerEventAuthority:o,tokenMinter:p,localToken:d,remoteTokenMessengerKey:f,authorityPda:T}}function tt(u,t,n=[]){let r=[y.from(ie.utils.bytes.utf8.encode(u))];for(let A of n)typeof A=="string"?r.push(y.from(ie.utils.bytes.utf8.encode(A))):Array.isArray(A)?r.push(y.from(A)):y.isBuffer(A)?r.push(A):r.push(A.toBuffer());return Ae.findProgramAddressSync(r,t)[0]}import{AnchorProvider as Ui}from"@project-serum/anchor";import{Connection as Wi,PublicKey as Ni}from"@solana/web3.js";function Qe(u,t){let n=new Wi(u,"confirmed"),r=new Ni(t);return new Ui(n,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Re=class{};import{PublicKey as Oi}from"@solana/web3.js";import{Big as Oe}from"big.js";import Fr from"randombytes";import{Address as Vi}from"stellar-sdk";import*as Ur from"tronweb";function Ve(u,t,n){let r;switch(t){case"EVM":{r=Gi(u);break}case"SOLANA":{r=new Oi(u).toBuffer();break}case"TRX":{r=_i(u);break}case"SRB":{r=new Vi(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 y.from(u.replace(/^0x/i,""),"hex")}function Gi(u){let n=Wr(u);return y.concat([y.alloc(32-n.length,0),n],32)}function _i(u){let t=kt(u),n=Wr(t);return Li(n,32)}function kt(u){return y.from(Ur.utils.crypto.decodeBase58Address(u)).toString("hex").replace(/^41/,"0x")}function Li(u,t){if(u.length>=t)return u;let n=y.alloc(t,0);return u.copy(n,t-u.length),n}function mt(){return Fr(32)}function _n(){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 Ln(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 Xi(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"&&Zi(r.amount,A.decimals,r.fee,r.extraGas),r}function Zi(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 Ln(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 Xi(u,t,n,r,s){let o=(await Zn(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 Zn(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 Rt=class extends Re{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:M,gasFeePaymentMethod:w,extraGas:P}=r,R="0x"+mt().toString("hex"),S,k,v=M;if(P&&(v=Ki(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,R,b,v),k="0"):(S=E.methods.swapAndBridge(p,s,f,d,T,R,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,M;if(n.destinationToken.chainType==="SOLANA"){let w,P=new Or(n.toAccountAddress),R=new Or(n.destinationToken.tokenAddress),S=await ke(P,R),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:R});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),M="0"):(b=T.methods.bridgeWithWalletAddress(A,w,d,p,0),M=s)}else f==="stablecoin"?(b=T.methods.bridge(A,d,p,s),M="0"):(b=T.methods.bridge(A,d,p,0),M=s);return{sendMethod:b,value:M}}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=Mt(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 Qn,Spl as ta,web3 as Je}from"@project-serum/anchor";import{Keypair as zr,PublicKey as X,SystemProgram as na}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 Qi}from"@project-serum/anchor";import Yi from"big.js";import sn from"web3";async function pt(u,t){return await Qi.token(t).account.token.fetch(u)}async function Gr(u,t,n){let r=await t.account.pool.fetch(n),s=r.decimals,A=Yi(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(y.from(f.replace("0x",""),"hex")),b=y.from(T.replace("0x",""),"hex");b[0]=r,b[1]=s;let M=sn.utils.encodePacked({t:"bytes32",v:"0x"+b.toString("hex")},{t:"bytes32",v:d});if(!M)throw new ot("messageWithSigner cannot be undefined");let w=sn.utils.keccak256(y.from(M.replace("0x",""),"hex")),P=y.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 Ji}from"@solana/web3.js";import{Big as Hi}from"big.js";import{AddressLookupTableAccount as Lr}from"@solana/web3.js";async function nt(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 Xn="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 nt(u,r),A=Ji.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=zi(t,u);if(n?.solana){let A=n.solana;if(A===Xn)await Kn(u,r);else if("pricePerUnitInMicroLamports"in A)await Kn(u,r,A.pricePerUnitInMicroLamports);else{let o=Hi(A.extraFeeInLamports).div(s).mul(St(6)).toFixed(0);await Kn(u,r,o)}}}}function zi(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 Kn(u,t,n){let r=u.findIndex(o=>o.programId.equals(on.programId)&&Zr.decodeInstructionType(o)==="SetComputeUnitPrice"),s=BigInt(n||await ji(t)),A=on.setComputeUnitPrice({microLamports:s});return r>=0?u[r]=A:u.push(A),s.toString()}async function ji(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 qi}from"@solana/spl-token";import{Connection as $i,TransactionMessage as Yr,VersionedTransaction as ea}from"@solana/web3.js";import Jr,{AxiosError as Hr}from"axios";var An=class{constructor(t){this.connection=new $i(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={},sr=!1;function bi(){if(sr)return Tt;sr=!0,Tt.byteLength=p,Tt.toByteArray=f,Tt.fromByteArray=M;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 R=w.indexOf("=");R===-1&&(R=P);var S=R===P?0:4-R%4;return[R,S]}function p(w){var P=o(w),R=P[0],S=P[1];return(R+S)*3/4-S}function d(w,P,R){return(P+R)*3/4-R}function f(w){var P,R=o(w),S=R[0],k=R[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,R){for(var S,k=[],v=P;v<R;v+=3)S=(w[v]<<16&16711680)+(w[v+1]<<8&65280)+(w[v+2]&255),k.push(T(S));return k.join("")}function M(w){for(var P,R=w.length,S=R%3,k=[],v=16383,E=0,N=R-S;E<N;E+=v)k.push(b(w,E,E+v>N?N:E+v));return S===1?(P=w[R-1],k.push(u[P>>2]+u[P<<4&63]+"==")):S===2&&(P=(w[R-2]<<8)+w[R-1],k.push(u[P>>10]+u[P>>4&63]+u[P<<2&63]+"=")),k.join("")}return Tt}var Lt={},or=!1;function wi(){if(or)return Lt;or=!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,M=n?-1:1,w=u[t+b];for(b+=M,A=w&(1<<-T)-1,w>>=-T,T+=p;T>0;A=A*256+u[t+b],b+=M,T-=8);for(o=A&(1<<-T)-1,A>>=-T,T+=r;T>0;o=o*256+u[t+b],b+=M,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,M=s===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:A-1,P=r?1:-1,R=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+=M/d:t+=M*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]|=R*128},Lt}var qe={},Ar=!1;function Pi(){if(Ar)return qe;Ar=!0;let u=bi(),t=wi(),n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;qe.Buffer=o,qe.SlowBuffer=k,qe.INSPECT_MAX_BYTES=50;let r=2147483647;qe.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=R(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 M(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 M(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 R(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):M(c);if(c.type==="Buffer"&&Array.isArray(c.data))return M(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,h=Math.min(m,l);g<h;++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 h=i[m];if(xe(h,Uint8Array))g+h.length>l.length?(o.isBuffer(h)||(h=o.from(h)),h.copy(l,g)):Uint8Array.prototype.set.call(l,h,g);else if(o.isBuffer(h))h.copy(l,g);else throw new TypeError('"list" argument must be an Array of Buffers');g+=h.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 ar(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=qe.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 h=g-l,F=m-a,K=Math.min(h,F),L=this.slice(l,g),Q=i.slice(a,m);for(let V=0;V<K;++V)if(L[V]!==Q[V]){h=L[V],F=Q[V];break}return h<F?-1:F<h?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,h=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,h/=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<h;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>h&&(a=h-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 h;for(h=0;h<m;++h){let F=parseInt(i.substr(h*2,2),16);if(En(F))return h;c[a+h]=F}return h}function Y(c,i,a,m){return _t(xn(i,c.length-a),c,a,m)}function Te(c,i,a,m){return _t(fi(i),c,a,m)}function be(c,i,a,m){return _t(ar(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 h=!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(h)throw new TypeError("Unknown encoding: "+l);l=(""+l).toLowerCase(),h=!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],h=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&&(h=g);break;case 2:K=c[l+1],(K&192)===128&&(V=(g&31)<<6|K&63,V>127&&(h=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)&&(h=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&&(h=V))}}h===null?(h=65533,F=1):h>65535&&(h-=65536,m.push(h>>>10&1023|55296),h=56320|h&1023),m.push(h),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+=yi[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,h=0;for(;++h<a&&(g*=256);)l+=this[i+h]*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)&&yt(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)&&yt(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,h=0;for(;++h<a&&(g*=256);)l+=this[i+h]*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,h=this[i+--l];for(;l>0&&(g*=256);)h+=this[i+--l]*g;return g*=128,h>=g&&(h-=Math.pow(2,8*a)),h},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)&&yt(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)&&yt(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,h=0;for(this[a]=i&255;++h<m&&(g*=256);)this[a+h]=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,h=1;for(this[a+g]=i&255;--g>=0&&(h*=256);)this[a+g]=i/h&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){ir(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 h=Number(i>>BigInt(32)&BigInt(4294967295));return c[a++]=h,h=h>>8,c[a++]=h,h=h>>8,c[a++]=h,h=h>>8,c[a++]=h,a}function $n(c,i,a,m,l){ir(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 h=Number(i>>BigInt(32)&BigInt(4294967295));return c[a+3]=h,h=h>>8,c[a+2]=h,h=h>>8,c[a+1]=h,h=h>>8,c[a]=h,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 $n(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,h=1,F=0;for(this[a]=i&255;++g<m&&(h*=256);)i<0&&F===0&&this[a+g-1]!==0&&(F=1),this[a+g]=(i/h>>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,h=1,F=0;for(this[a+g]=i&255;--g>=0&&(h*=256);)i<0&&F===0&&this[a+g+1]!==0&&(F=1),this[a+g]=(i/h>>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 $n(this,i,a,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function er(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 tr(c,i,a,m,l){return i=+i,a=a>>>0,l||er(c,i,a,4),t.write(c,i,a,m,23,4),a+4}o.prototype.writeFloatLE=function(i,a,m){return tr(this,i,a,!0,m)},o.prototype.writeFloatBE=function(i,a,m){return tr(this,i,a,!1,m)};function nr(c,i,a,m,l){return i=+i,a=a>>>0,l||er(c,i,a,8),t.write(c,i,a,m,52,8),a+8}o.prototype.writeDoubleLE=function(i,a,m){return nr(this,i,a,!0,m)},o.prototype.writeDoubleBE=function(i,a,m){return nr(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 h=i.charCodeAt(0);(l==="utf8"&&h<128||l==="latin1")&&(i=h)}}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 h=o.isBuffer(i)?i:o.from(i,l),F=h.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]=h[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=rr(String(a)):typeof a=="bigint"&&(l=String(a),(a>BigInt(2)**BigInt(32)||a<-(BigInt(2)**BigInt(32)))&&(l=rr(l)),l+="n"),m+=` It must be ${i}. Received ${l}`,m},RangeError);function rr(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 pi(c,i,a){at(i,"offset"),(c[i]===void 0||c[i+a]===void 0)&&yt(i,c.length-(a+1))}function ir(c,i,a,m,l,g){if(c>a||c<i){let h=typeof i=="bigint"?"n":"",F;throw g>3?i===0||i===BigInt(0)?F=`>= 0${h} and < 2${h} ** ${(g+1)*8}${h}`:F=`>= -(2${h} ** ${(g+1)*8-1}${h}) and < 2 ** ${(g+1)*8-1}${h}`:F=`>= ${i}${h} and <= ${a}${h}`,new it.ERR_OUT_OF_RANGE("value",F,c)}pi(m,l,g)}function at(c,i){if(typeof c!="number")throw new it.ERR_INVALID_ARG_TYPE(i,"number",c)}function yt(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 di=/[^+/0-9A-Za-z-_]/g;function gi(c){if(c=c.split("=")[0],c=c.trim().replace(di,""),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 h=0;h<m;++h){if(a=c.charCodeAt(h),a>55295&&a<57344){if(!l){if(a>56319){(i-=3)>-1&&g.push(239,191,189);continue}else if(h+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 fi(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 h=0;h<c.length&&!((i-=2)<0);++h)a=c.charCodeAt(h),m=a>>8,l=a%256,g.push(l),g.push(m);return g}function ar(c){return u.toByteArray(gi(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 yi=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"?Ti:c}function Ti(){throw new Error("BigInt not supported")}return qe}var $e=Pi();$e.Buffer;$e.SlowBuffer;$e.INSPECT_MAX_BYTES;$e.kMaxLength;var y=$e.Buffer,is=$e.INSPECT_MAX_BYTES,as=$e.kMaxLength;var ls={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}}},ps={solanaRpcUrl:"https://api.devnet.solana.com",tronRpcUrl:"https://nile.trongrid.io"},ds={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}}},Ts={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},bs={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 checkAddress(t,n,r){return this.apiClient.checkAddress(t,n,r)}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 Ii from"axios";var cr="3.15.1-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)}},ur=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")}},Si=(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))(Si||{});function Fn(u,t){return I(100).minus(I(100).times(t).div(u)).toNumber()}function et(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 he(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=et(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 mr(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 lr(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 pr(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=et(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 dr(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 gr(u){return u*100>0?`${Number(I(u).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function fr(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())),M=I(Math.cbrt(+A.minus(T).toFixed()));return b.plus(M).toFixed()}var hr=(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))(hr||{});var Ne=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ne||{});function yr(u){return Object.entries(u).reduce((t,n)=>{let r=n[0],s=n[1],A=Mi(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=he(A.poolInfo);t[o]={...A.poolInfo,imbalance:p}}}return t}function Ci(u,t){let{name:n,...r}=u,{poolInfo:s,...A}=t;return{...A,...r,chainName:n}}function Bi(u){switch(u){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ki(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=Bi(n);return s&&(t[s]=r),t},{})}function Mi(u,t){let n=ce[u];if(!n)return null;let r={...n,allbridgeChainId:t.chainId,bridgeAddress:t.bridgeAddress,transferTime:ki(t.transferTime),txCostAmount:t.txCostAmount,confirmations:t.confirmations};return{...r,tokens:t.tokens.map(s=>Ci(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=he(o),t[At({chainSymbol:s,poolAddress:A})]=o}return t}var zt=class{constructor(t){this.api=Ii.create({baseURL:t.coreApiUrl,headers:{Accept:"application/json",...t.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+cr},params:t.coreApiQueryParams})}async getTokenInfo(){let{data:t}=await this.api.get("/token-info");return{chainDetailsMap:yr(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 checkAddress(t,n,r){if(r){let{data:A}=await this.api.get(`/check/${t}/${n}`,{params:{token:r,...this.api.defaults.params}});return A}let{data:s}=await this.api.get(`/check/${t}/${n}`);return s}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 Un=20*1e3,vi=55*1e3,qt=class{constructor(t){this.apiClient=t;this.tokenInfoCache=new jt({defaultTtl:vi}),this.receivedTransactionCache=new jt({defaultTtl:Un}),this.pendingInfoCache=new jt({defaultTtl:Un}),this.gasBalanceCache=new jt({defaultTtl:Un})}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 checkAddress(t,n,r){return this.apiClient.checkAddress(t,n,r)}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 xi from"timed-cache";var Ei=55*1e3,$t=class{constructor(t){this.client=t;this.poolInfoCache=new Wn}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)}checkAddress(t,n,r){return this.client.checkAddress(t,n,r)}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)}},Wn=class{constructor(){this.cache=new xi({defaultTtl:Ei})}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 ya from"tronweb";import Ta 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 Nn(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 Ki}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 Rr(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 Mr(u,t,n){let[r]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("other_bridge_token"),y.from([u]),t],n);return r}async function On(u,t){let[n]=await Ae.findProgramAddress([ie.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([u])],t);return n}async function Vn(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 Gn(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=tt("message_transmitter",n),A=tt("token_messenger",r),o=tt("__event_authority",r),p=tt("token_minter",r),d=tt("local_token",r,[t]),f=tt("remote_token_messenger",r,[u.toString()]),T=tt("sender_authority",r);return{messageTransmitterAccount:s,tokenMessenger:A,tokenMessengerEventAuthority:o,tokenMinter:p,localToken:d,remoteTokenMessengerKey:f,authorityPda:T}}function tt(u,t,n=[]){let r=[y.from(ie.utils.bytes.utf8.encode(u))];for(let A of n)typeof A=="string"?r.push(y.from(ie.utils.bytes.utf8.encode(A))):Array.isArray(A)?r.push(y.from(A)):y.isBuffer(A)?r.push(A):r.push(A.toBuffer());return Ae.findProgramAddressSync(r,t)[0]}import{AnchorProvider as Ui}from"@project-serum/anchor";import{Connection as Wi,PublicKey as Ni}from"@solana/web3.js";function Qe(u,t){let n=new Wi(u,"confirmed"),r=new Ni(t);return new Ui(n,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Re=class{};import{PublicKey as Oi}from"@solana/web3.js";import{Big as Oe}from"big.js";import Fr from"randombytes";import{Address as Vi}from"stellar-sdk";import*as Ur from"tronweb";function Ve(u,t,n){let r;switch(t){case"EVM":{r=Gi(u);break}case"SOLANA":{r=new Oi(u).toBuffer();break}case"TRX":{r=_i(u);break}case"SRB":{r=new Vi(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 y.from(u.replace(/^0x/i,""),"hex")}function Gi(u){let n=Wr(u);return y.concat([y.alloc(32-n.length,0),n],32)}function _i(u){let t=kt(u),n=Wr(t);return Li(n,32)}function kt(u){return y.from(Ur.utils.crypto.decodeBase58Address(u)).toString("hex").replace(/^41/,"0x")}function Li(u,t){if(u.length>=t)return u;let n=y.alloc(t,0);return u.copy(n,t-u.length),n}function mt(){return Fr(32)}function _n(){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 Ln(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 Xi(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"&&Zi(r.amount,A.decimals,r.fee,r.extraGas),r}function Zi(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 Ln(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 Xi(u,t,n,r,s){let o=(await Zn(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 Zn(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 Rt=class extends Re{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:M,gasFeePaymentMethod:w,extraGas:P}=r,R="0x"+mt().toString("hex"),S,k,v=M;if(P&&(v=Ki(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,R,b,v),k="0"):(S=E.methods.swapAndBridge(p,s,f,d,T,R,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,M;if(n.destinationToken.chainType==="SOLANA"){let w,P=new Or(n.toAccountAddress),R=new Or(n.destinationToken.tokenAddress),S=await ke(P,R),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:R});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),M="0"):(b=T.methods.bridgeWithWalletAddress(A,w,d,p,0),M=s)}else f==="stablecoin"?(b=T.methods.bridge(A,d,p,s),M="0"):(b=T.methods.bridge(A,d,p,0),M=s);return{sendMethod:b,value:M}}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=Mt(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 Qn,Spl as ta,web3 as Je}from"@project-serum/anchor";import{Keypair as zr,PublicKey as X,SystemProgram as na}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 Qi}from"@project-serum/anchor";import Yi from"big.js";import sn from"web3";async function pt(u,t){return await Qi.token(t).account.token.fetch(u)}async function Gr(u,t,n){let r=await t.account.pool.fetch(n),s=r.decimals,A=Yi(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(y.from(f.replace("0x",""),"hex")),b=y.from(T.replace("0x",""),"hex");b[0]=r,b[1]=s;let M=sn.utils.encodePacked({t:"bytes32",v:"0x"+b.toString("hex")},{t:"bytes32",v:d});if(!M)throw new ot("messageWithSigner cannot be undefined");let w=sn.utils.keccak256(y.from(M.replace("0x",""),"hex")),P=y.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 Ji}from"@solana/web3.js";import{Big as Hi}from"big.js";import{AddressLookupTableAccount as Lr}from"@solana/web3.js";async function nt(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 Xn="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 nt(u,r),A=Ji.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=zi(t,u);if(n?.solana){let A=n.solana;if(A===Xn)await Kn(u,r);else if("pricePerUnitInMicroLamports"in A)await Kn(u,r,A.pricePerUnitInMicroLamports);else{let o=Hi(A.extraFeeInLamports).div(s).mul(St(6)).toFixed(0);await Kn(u,r,o)}}}}function zi(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 Kn(u,t,n){let r=u.findIndex(o=>o.programId.equals(on.programId)&&Zr.decodeInstructionType(o)==="SetComputeUnitPrice"),s=BigInt(n||await ji(t)),A=on.setComputeUnitPrice({microLamports:s});return r>=0?u[r]=A:u.push(A),s.toString()}async function ji(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 qi}from"@solana/spl-token";import{Connection as $i,TransactionMessage as Yr,VersionedTransaction as ea}from"@solana/web3.js";import Jr,{AxiosError as Hr}from"axios";var An=class{constructor(t){this.connection=new $i(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=${qi.toString()}
|
|
3
3
|
&amount=${r}
|
|
4
4
|
&slippageBps=100
|