UNPKG

@saros-finance/sdk

Version:

Saros swap - A DeFi Super-Network Built on Solana

27 lines (22 loc) 762 B
/* eslint-disable no-undef */ import { HashService } from './hashService' export class BorshService { static anchorSerialize (method, layout, data, maxSpan) { const prefix = HashService.sha256(`global:${method}`) const truncatedPrefix = prefix.slice(0, 8) const buffer = Buffer.alloc(maxSpan) const span = layout.encode(data, buffer) return Buffer.from([...truncatedPrefix, ...buffer.slice(0, span)]) } static anchorDeserialize (layout, data) { return layout.decode(data.slice(8)) } static deserialize (layout, data) { return layout.decode(data) } static serialize (layout, data, maxSpan) { const buffer = Buffer.alloc(maxSpan) const span = layout.encode(data, buffer) return buffer.slice(0, span) } }