test-raydium-sdk-v2
Version:
An SDK for building applications on top of Raydium.
2 lines • 5.79 kB
JavaScript
var X=Object.create;var h=Object.defineProperty;var Y=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var z=(e,t)=>{for(var o in t)h(e,o,{get:t[o],enumerable:!0})},E=(e,t,o,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let u of F(t))!j.call(e,u)&&u!==o&&h(e,u,{get:()=>t[u],enumerable:!(a=Y(t,u))||a.enumerable});return e};var G=(e,t,o)=>(o=e!=null?X(Z(e)):{},E(t||!e||!e.__esModule?h(o,"default",{value:e,enumerable:!0}):o,e)),O=e=>E(h({},"__esModule",{value:!0}),e);var ae={};z(ae,{DataElement:()=>v,MODEL_DATA_PUBKEY:()=>k,StableLayout:()=>_,formatLayout:()=>q,getDxByDyBaseIn:()=>se,getDyByDxBaseIn:()=>oe,getStablePrice:()=>ue,modelDataInfoLayout:()=>A});module.exports=O(ae);var R=require("@solana/web3.js");var H=require("@solana/web3.js"),L=G(require("bn.js"));var s=require("@solana/buffer-layout"),I=s.Layout,M=s.Structure;var N=s.seq;var C=s.blob;var T=class extends I{constructor(o,a,u){super(o,u);this.blob=C(o),this.signed=a}decode(o,a=0){let u=new L.default(this.blob.decode(o,a),10,"le");return this.signed?u.fromTwos(this.span*8).clone():u}encode(o,a,u=0){return typeof o=="number"&&(o=new L.default(o)),this.signed&&(o=o.toTwos(this.span*8)),this.blob.encode(o.toArrayLike(Buffer,"le",this.span),a,u)}};function f(e){return new T(8,!1,e)}var S=class extends M{decode(t,o){return super.decode(t,o)}};function B(e,t,o){return new S(e,t,o)}function D(e,t,o){let a,u=typeof t=="number"?t:(0,L.isBN)(t)?t.toNumber():new Proxy(t,{get(i,n){if(!a){let r=Reflect.get(i,"count");a=(0,L.isBN)(r)?r.toNumber():r,Reflect.set(i,"count",a)}return Reflect.get(i,n)},set(i,n,r){return n==="count"&&(a=r),Reflect.set(i,n,r)}});return N(e,u,o)}var k=new R.PublicKey("CDSr3ssLcRB6XYPJwAfFt18MZvEZp4LjHcvzBVZ45duo"),g=5e4,v=B([f("x"),f("y"),f("price")]),A=B([f("accountType"),f("status"),f("multiplier"),f("validDataCount"),D(v,g,"DataElement")]);function J(e,t){return[0,g-2]}function Q(e){return[0,g-2]}function W(e){return[0,g-2]}function $(e,t,o){let[a,u]=J(t,o),i=a,n=u,r=0,c=t*e.multiplier/o;for(;i<=n;){if(r=Math.floor((n+i)/2),r===0||r>=g-2)return[r,r,!1];let y=e.DataElement[r].x*e.multiplier/e.DataElement[r].y,p=e.DataElement[r-1].x*e.multiplier/e.DataElement[r-1].y,m=e.DataElement[r+1].x*e.multiplier/e.DataElement[r+1].y;if(c===y)return[r,r,!0];if(c===p)return[r-1,r-1,!0];if(c===m)return[r+1,r+1,!0];if(c<p)n=r-1;else{if(c>p&&c<y)return[r-1,r,!0];if(c>y&&c<m)return[r,r+1,!0];i=r+1}}return[r,r,!1]}function w(e,t,o){let[a,u,i]=$(e,t,o);if(!i)return 0;if(a===u){let n=e.DataElement[a].x;return t*e.multiplier/n}else{let n=e.DataElement[a].x,r=e.DataElement[a].y,c=e.DataElement[u].x,y=e.DataElement[u].y,p=o*(c*r-n*y),m=n*p,d=(c-n)*(t*r-n*o)*y,l=m+d;return t*e.multiplier*p/l}}function P(e,t,o){return t*e.multiplier/o}function V(e,t,o){return t*o/e.multiplier}function ee(e,t){let[o,a]=Q(t),u=o,i=a,n=0,r=t;for(;u<i;){if(n=Math.floor((i+u)/2),n<=0||n>g-2)return[n,n,!1];let c=e.DataElement[n].x,y=e.DataElement[n-1].x,p=e.DataElement[n+1].x;if(r===c)return[n,n,!0];if(r===y)return[n-1,n-1,!0];if(r===p)return[n+1,n+1,!0];if(r<y)i=n-1;else{if(r>y&&r<c)return[n-1,n,!0];if(r>c&&r<p)return[n,n+1,!0];u=n+1}}return[n,n,!1]}function te(e,t){let[o,a]=W(t),u=o,i=a,n=0,r=t;for(;u<=i;){if(n=Math.floor((i+u)/2),n<=0||n>=g-2)return[n,n,!1];let c=e.DataElement[n].y,y=e.DataElement[n-1].y,p=e.DataElement[n+1].y;if(r===c)return[n,n,!0];if(r===y)return[n-1,n-1,!0];if(r===p)return[n+1,n+1,!0];if(r<p)u=n+1;else{if(r<y&&r>c)return[n-1,n,!0];if(r<c&&r>p)return[n,n+1,!0];i=n-1}}return[n,n,!1]}function K(e,t,o,a){let u=a?t+o:t-o,[i,n,r]=ee(e,u);if(!r)return[0,0,!1,r];if(i===n)return[e.DataElement[n].price,e.DataElement[n].y,!1,r];{let c=e.DataElement[i].x,y=e.DataElement[n].x,p=e.DataElement[i].price,m=e.DataElement[n].price,d=e.DataElement[i].y,l=e.DataElement[n].y;if(t>=c&&t<=y)return a?[m,l,!0,r]:[p,d,!0,r];{let b,x;return a?(b=p+(m-p)*(t-c)/(y-c),x=d-(u-c)*e.multiplier/m):(b=p+(m-p)*(t-c)/(y-c),x=l+(y-u)*e.multiplier/p),[b,x,!1,r]}}}function ne(e,t,o,a){let u=a?t-o:t+o,[i,n,r]=te(e,u);if(!r)return[0,0,!1,r];if(i===n)return[e.DataElement[n].price,e.DataElement[n].x,!1,r];{let c=e.DataElement[i].x,y=e.DataElement[n].x,p=e.DataElement[i].price,m=e.DataElement[n].price,d=e.DataElement[i].y,l=e.DataElement[n].y;if(t>=l&&t<=d)return a?[m,y,!0,r]:[p,c,!0,r];{let b,x;return a?(b=p+(m-p)*(d-t)/(d-l),x=c+m*(d-u)/e.multiplier):(b=p+(m-p)*(d-t)/(d-l),x=y-p*(u-l)/e.multiplier),[b,x,!1,r]}}}function re(e,t){let o=K(e,t,0,!1);return o[3]?o[0]:0}function oe(e,t,o,a){let u=w(e,t,o),i=P(e,t,u),n=P(e,o,u),r=P(e,a,u),c=!0,[y,p,m,d]=K(e,i,r,c);if(!d)return 0;if(m)return a*e.multiplier/y;{let l=n-p;return V(e,l,u)}}function se(e,t,o,a){let u=w(e,t,o),i=P(e,t,u),n=P(e,o,u),r=P(e,a,u),c=!1,[y,p,m,d]=ne(e,n,r,c);if(!d)return 0;if(m)return a*y/e.multiplier;{let l=i-p;return V(e,l,u)}}function q(e){let t=A.decode(e);return{accountType:t.accountType.toNumber(),status:t.status.toNumber(),multiplier:t.multiplier.toNumber(),validDataCount:t.validDataCount.toNumber(),DataElement:t.DataElement.map(o=>({x:o.x.toNumber(),y:o.y.toNumber(),price:o.price.toNumber()}))}}function ue(e,t,o,a){let u=re(e,P(e,t,w(e,t,o)))/e.multiplier;return a?u:1/u}var _=class{constructor({connection:t}){this._layoutData={accountType:0,status:0,multiplier:0,validDataCount:0,DataElement:[]};this.connection=t}get stableModelData(){return this._layoutData}async initStableModelLayout(){if(this._layoutData.validDataCount===0&&this.connection){let t=await this.connection.getAccountInfo(k);t&&(this._layoutData=q(t==null?void 0:t.data))}}};0&&(module.exports={DataElement,MODEL_DATA_PUBKEY,StableLayout,formatLayout,getDxByDyBaseIn,getDyByDxBaseIn,getStablePrice,modelDataInfoLayout});
//# sourceMappingURL=stable.js.map