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 6.12 kB
"use strict";var q=Object.create;var b=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var G=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var z=(n,e)=>{for(var r in e)b(n,r,{get:e[r],enumerable:!0})},k=(n,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of F(e))!j.call(n,s)&&s!==r&&b(n,s,{get:()=>e[s],enumerable:!(o=R(e,s))||o.enumerable});return n};var M=(n,e,r)=>(r=n!=null?q(G(n)):{},k(e||!n||!n.__esModule?b(r,"default",{value:n,enumerable:!0}):r,n)),O=n=>k(b({},"__esModule",{value:!0}),n);var Ge={};z(Ge,{BNLayout:()=>i,BitStructure:()=>H,Blob:()=>_,Layout:()=>p,OptionLayout:()=>h,Structure:()=>T,UInt:()=>m,Union:()=>S,WideBits:()=>w,WrappedLayout:()=>a,array:()=>qe,bits:()=>g,blob:()=>x,bool:()=>Ee,cstr:()=>Se,decodeBool:()=>V,encodeBool:()=>v,f32:()=>le,f32be:()=>ge,f64:()=>Le,f64be:()=>he,greedy:()=>J,i128:()=>De,i64:()=>Ce,i8:()=>ke,ns64:()=>pe,ns64be:()=>me,nu64:()=>$,nu64be:()=>oe,offset:()=>L,option:()=>Ne,publicKey:()=>Ie,rustEnum:()=>Ke,s16:()=>ue,s16be:()=>Pe,s24:()=>ae,s24be:()=>de,s32:()=>ie,s32be:()=>xe,s40:()=>ye,s40be:()=>fe,s48:()=>ce,s48be:()=>be,s8:()=>se,seq:()=>U,str:()=>ve,struct:()=>f,tagged:()=>Ve,u128:()=>Ue,u16:()=>Q,u16be:()=>W,u24:()=>X,u24be:()=>ee,u32:()=>Be,u32be:()=>te,u40:()=>Y,u40be:()=>ne,u48:()=>Z,u48be:()=>re,u64:()=>A,u8:()=>we,union:()=>Re,unionLayoutDiscriminator:()=>Te,utf8:()=>_e,vec:()=>Ae,vecU8:()=>K,zeros:()=>Fe});module.exports=O(Ge);var E=require("@solana/web3.js"),P=M(require("bn.js"));var t=require("@solana/buffer-layout"),p=t.Layout,C=t.Structure,D=t.Union,H=t.BitStructure,m=t.UInt,_=t.Blob,J=t.greedy,l=t.u8,Q=t.u16,X=t.u24,d=t.u32,Y=t.u40,Z=t.u48,$=t.nu64,W=t.u16be,ee=t.u24be,te=t.u32be,ne=t.u40be,re=t.u48be,oe=t.nu64be,se=t.s8,ue=t.s16,ae=t.s24,ie=t.s32,ye=t.s40,ce=t.s48,pe=t.ns64,Pe=t.s16be,de=t.s24be,xe=t.s32be,fe=t.s40be,be=t.s48be,me=t.ns64be,le=t.f32,ge=t.f32be,Le=t.f64,he=t.f64be;var I=t.seq,N=t.union,Te=t.unionLayoutDiscriminator,x=t.blob,Se=t.cstr,_e=t.utf8,g=t.bits,L=t.offset;var i=class extends p{constructor(e,r,o){super(e,o),this.blob=x(e),this.signed=r}decode(e,r=0){let o=new P.default(this.blob.decode(e,r),10,"le");return this.signed?o.fromTwos(this.span*8).clone():o}encode(e,r,o=0){return typeof e=="number"&&(e=new P.default(e)),this.signed&&(e=e.toTwos(this.span*8)),this.blob.encode(e.toArrayLike(Buffer,"le",this.span),r,o)}},w=class extends p{constructor(e){super(8,e),this._lower=g(d(),!1),this._upper=g(d(),!1)}addBoolean(e){this._lower.fields.length<32?this._lower.addBoolean(e):this._upper.addBoolean(e)}decode(e,r=0){let o=this._lower.decode(e,r),s=this._upper.decode(e,r+this._lower.span);return{...o,...s}}encode(e,r,o=0){return this._lower.encode(e,r,o)+this._upper.encode(e,r,o+this._lower.span)}};function we(n){return new m(1,n)}function Be(n){return new m(4,n)}function A(n){return new i(8,!1,n)}function Ue(n){return new i(16,!1,n)}function ke(n){return new i(1,!0,n)}function Ce(n){return new i(8,!0,n)}function De(n){return new i(16,!0,n)}var a=class extends p{constructor(e,r,o,s){super(e.span,s),this.layout=e,this.decoder=r,this.encoder=o}decode(e,r){return this.decoder(this.layout.decode(e,r))}encode(e,r,o){return this.layout.encode(this.encoder(e),r,o)}getSpan(e,r){return this.layout.getSpan(e,r)}};function Ie(n){return new a(x(32),e=>new E.PublicKey(e),e=>e.toBuffer(),n)}var h=class extends p{constructor(e,r){super(-1,r),this.layout=e,this.discriminator=l()}encode(e,r,o=0){return e==null?this.discriminator.encode(0,r,o):(this.discriminator.encode(1,r,o),this.layout.encode(e,r,o+1)+1)}decode(e,r=0){let o=this.discriminator.decode(e,r);if(o===0)return null;if(o===1)return this.layout.decode(e,r+1);throw new Error("Invalid option "+this.property)}getSpan(e,r=0){let o=this.discriminator.decode(e,r);if(o===0)return 1;if(o===1)return this.layout.getSpan(e,r+1)+1;throw new Error("Invalid option "+this.property)}};function Ne(n,e){return new h(n,e)}function Ee(n){return new a(l(),V,v,n)}function V(n){if(n===0)return!1;if(n===1)return!0;throw new Error("Invalid bool: "+n)}function v(n){return n?1:0}function Ae(n,e){let r=d("length"),o=f([r,U(n,L(r,-r.span),"values")]);return new a(o,({values:s})=>s,s=>({values:s}),e)}function Ve(n,e,r){let o=f([A("tag"),e.replicate("data")]);function s({tag:u,data:y}){if(!u.eq(n))throw new Error("Invalid tag, expected: "+n.toString("hex")+", got: "+u.toString("hex"));return y}return new a(o,s,u=>({tag:n,data:u}),r)}function K(n){let e=d("length"),r=f([e,x(L(e,-e.span),"data")]);return new a(r,({data:o})=>o,o=>({data:o}),n)}function ve(n){return new a(K(),e=>e.toString("utf-8"),e=>Buffer.from(e,"utf-8"),n)}function Ke(n,e){let r=N(l(),e);return n.forEach((o,s)=>r.addVariant(s,o,o.property)),r}function qe(n,e,r){let o=f([U(n,e,"values")]);return new a(o,({values:s})=>s,s=>({values:s}),r)}var T=class extends C{decode(e,r){return super.decode(e,r)}};function f(n,e,r){return new T(n,e,r)}var S=class extends D{encodeInstruction(e){let r=Math.max(...Object.values(this.registry).map(s=>s.span)),o=Buffer.alloc(r);return o.slice(0,this.encode(e,o))}decodeInstruction(e){return this.decode(e)}};function Re(n,e,r){return new S(n,e,r)}var B=class extends _{decode(e,r){let o=super.decode(e,r);if(!o.every(s=>s===0))throw new Error("nonzero padding bytes");return o}};function Fe(n){return new B(n)}function U(n,e,r){let o,s=typeof e=="number"?e:(0,P.isBN)(e)?e.toNumber():new Proxy(e,{get(u,y){if(!o){let c=Reflect.get(u,"count");o=(0,P.isBN)(c)?c.toNumber():c,Reflect.set(u,"count",o)}return Reflect.get(u,y)},set(u,y,c){return y==="count"&&(o=c),Reflect.set(u,y,c)}});return I(n,s,r)}0&&(module.exports={BNLayout,BitStructure,Blob,Layout,OptionLayout,Structure,UInt,Union,WideBits,WrappedLayout,array,bits,blob,bool,cstr,decodeBool,encodeBool,f32,f32be,f64,f64be,greedy,i128,i64,i8,ns64,ns64be,nu64,nu64be,offset,option,publicKey,rustEnum,s16,s16be,s24,s24be,s32,s32be,s40,s40be,s48,s48be,s8,seq,str,struct,tagged,u128,u16,u16be,u24,u24be,u32,u32be,u40,u40be,u48,u48be,u64,u8,union,unionLayoutDiscriminator,utf8,vec,vecU8,zeros}); //# sourceMappingURL=index.js.map