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