UNPKG

solay

Version:

A powerful layout and serialization library for Solana smart contracts. Enhanced type-safe buffer layout with Solana-specific types support.

2 lines 5.3 kB
import{PublicKey as Te}from"@solana/web3.js";import U,{isBN as k}from"bn.js";import{bits as I,BitStructure as N,blob as E,Blob as A,cstr as V,f32 as v,f32be as K,f64 as q,f64be as R,greedy as F,Layout as G,ns64 as j,ns64be as z,nu64 as M,nu64be as O,offset as H,s16 as J,s16be as Q,s24 as X,s24be as Y,s32 as Z,s32be as $,s40 as W,s40be as ee,s48 as te,s48be as ne,s8 as re,seq as oe,struct as ke,Structure as se,u16 as ue,u16be as ae,u24 as ie,u24be as ye,u32 as ce,u32be as pe,u40 as Pe,u40be as de,u48 as xe,u48be as fe,u8 as be,UInt as me,union as le,Union as ge,unionLayoutDiscriminator as Le,utf8 as he}from"@solana/buffer-layout";var c=G,T=se,S=ge,Ce=N,f=me,_=A,De=F,P=be,Ie=ue,Ne=ie,p=ce,Ee=Pe,Ae=xe,Ve=M,ve=ae,Ke=ye,qe=pe,Re=de,Fe=fe,Ge=O,je=re,ze=J,Me=X,Oe=Z,He=W,Je=te,Qe=j,Xe=Q,Ye=Y,Ze=$,$e=ee,We=ne,et=z,tt=v,nt=K,rt=q,ot=R;var w=oe,B=le,st=Le,d=E,ut=V,at=he,b=I,m=H;var a=class extends c{constructor(e,t,r){super(e,r),this.blob=d(e),this.signed=t}decode(e,t=0){let r=new U(this.blob.decode(e,t),10,"le");return this.signed?r.fromTwos(this.span*8).clone():r}encode(e,t,r=0){return typeof e=="number"&&(e=new U(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),t,r)}},C=class extends c{constructor(e){super(8,e),this._lower=b(p(),!1),this._upper=b(p(),!1)}addBoolean(e){this._lower.fields.length<32?this._lower.addBoolean(e):this._upper.addBoolean(e)}decode(e,t=0){let r=this._lower.decode(e,t),o=this._upper.decode(e,t+this._lower.span);return{...r,...o}}encode(e,t,r=0){return this._lower.encode(e,t,r)+this._upper.encode(e,t,r+this._lower.span)}};function Pt(n){return new f(1,n)}function dt(n){return new f(4,n)}function Se(n){return new a(8,!1,n)}function xt(n){return new a(16,!1,n)}function ft(n){return new a(1,!0,n)}function bt(n){return new a(8,!0,n)}function mt(n){return new a(16,!0,n)}var u=class extends c{constructor(e,t,r,o){super(e.span,o),this.layout=e,this.decoder=t,this.encoder=r}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,r){return this.layout.encode(this.encoder(e),t,r)}getSpan(e,t){return this.layout.getSpan(e,t)}};function lt(n){return new u(d(32),e=>new Te(e),e=>e.toBuffer(),n)}var l=class extends c{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=P()}encode(e,t,r=0){return e==null?this.discriminator.encode(0,t,r):(this.discriminator.encode(1,t,r),this.layout.encode(e,t,r+1)+1)}decode(e,t=0){let r=this.discriminator.decode(e,t);if(r===0)return null;if(r===1)return this.layout.decode(e,t+1);throw new Error("Invalid option "+this.property)}getSpan(e,t=0){let r=this.discriminator.decode(e,t);if(r===0)return 1;if(r===1)return this.layout.getSpan(e,t+1)+1;throw new Error("Invalid option "+this.property)}};function gt(n,e){return new l(n,e)}function Lt(n){return new u(P(),_e,we,n)}function _e(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function we(n){return n?1:0}function ht(n,e){let t=p("length"),r=x([t,D(n,m(t,-t.span),"values")]);return new u(r,({values:o})=>o,o=>({values:o}),e)}function Tt(n,e,t){let r=x([Se("tag"),e.replicate("data")]);function o({tag:s,data:i}){if(!s.eq(n))throw new Error("Invalid tag, expected: "+n.toString("hex")+", got: "+s.toString("hex"));return i}return new u(r,o,s=>({tag:n,data:s}),t)}function Be(n){let e=p("length"),t=x([e,d(m(e,-e.span),"data")]);return new u(t,({data:r})=>r,r=>({data:r}),n)}function St(n){return new u(Be(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),n)}function _t(n,e){let t=B(P(),e);return n.forEach((r,o)=>t.addVariant(o,r,r.property)),t}function wt(n,e,t){let r=x([D(n,e,"values")]);return new u(r,({values:o})=>o,o=>({values:o}),t)}var g=class extends T{decode(e,t){return super.decode(e,t)}};function x(n,e,t){return new g(n,e,t)}var L=class extends S{encodeInstruction(e){let t=Math.max(...Object.values(this.registry).map(o=>o.span)),r=Buffer.alloc(t);return r.slice(0,this.encode(e,r))}decodeInstruction(e){return this.decode(e)}};function Bt(n,e,t){return new L(n,e,t)}var h=class extends _{decode(e,t){let r=super.decode(e,t);if(!r.every(o=>o===0))throw new Error("nonzero padding bytes");return r}};function Ut(n){return new h(n)}function D(n,e,t){let r,o=typeof e=="number"?e:k(e)?e.toNumber():new Proxy(e,{get(s,i){if(!r){let y=Reflect.get(s,"count");r=k(y)?y.toNumber():y,Reflect.set(s,"count",r)}return Reflect.get(s,i)},set(s,i,y){return i==="count"&&(r=y),Reflect.set(s,i,y)}});return w(n,o,t)}export{a as BNLayout,Ce as BitStructure,_ as Blob,c as Layout,l as OptionLayout,g as Structure,f as UInt,L as Union,C as WideBits,u as WrappedLayout,wt as array,b as bits,d as blob,Lt as bool,ut as cstr,_e as decodeBool,we as encodeBool,tt as f32,nt as f32be,rt as f64,ot as f64be,De as greedy,mt as i128,bt as i64,ft as i8,Qe as ns64,et as ns64be,Ve as nu64,Ge as nu64be,m as offset,gt as option,lt as publicKey,_t as rustEnum,ze as s16,Xe as s16be,Me as s24,Ye as s24be,Oe as s32,Ze as s32be,He as s40,$e as s40be,Je as s48,We as s48be,je as s8,D as seq,St as str,x as struct,Tt as tagged,xt as u128,Ie as u16,ve as u16be,Ne as u24,Ke as u24be,dt as u32,qe as u32be,Ee as u40,Re as u40be,Ae as u48,Fe as u48be,Se as u64,Pt as u8,Bt as union,st as unionLayoutDiscriminator,at as utf8,ht as vec,Be as vecU8,Ut as zeros}; //# sourceMappingURL=index.mjs.map