12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- // @ts-nocheck
- import * as B from "@native-to-anchor/buffer-layout";
- import { Idl, InstructionCoder } from "@coral-xyz/anchor";
- export class SplBinaryOraclePairInstructionCoder implements InstructionCoder {
- constructor(_idl: Idl) {}
- encode(ixName: string, ix: any): Buffer {
- switch (ixName) {
- case "initPool": {
- return encodeInitPool(ix);
- }
- case "deposit": {
- return encodeDeposit(ix);
- }
- case "withdraw": {
- return encodeWithdraw(ix);
- }
- case "decide": {
- return encodeDecide(ix);
- }
- default: {
- throw new Error(`Invalid instruction: ${ixName}`);
- }
- }
- }
- encodeState(_ixName: string, _ix: any): Buffer {
- throw new Error("SplBinaryOraclePair does not have state");
- }
- }
- function encodeInitPool({ mintEndSlot, decideEndSlot, bumpSeed }: any): Buffer {
- return encodeData(
- { initPool: { mintEndSlot, decideEndSlot, bumpSeed } },
- 1 + 8 + 8 + 1
- );
- }
- function encodeDeposit({ arg }: any): Buffer {
- return encodeData({ deposit: { arg } }, 1 + 8);
- }
- function encodeWithdraw({ arg }: any): Buffer {
- return encodeData({ withdraw: { arg } }, 1 + 8);
- }
- function encodeDecide({ arg }: any): Buffer {
- return encodeData({ decide: { arg } }, 1 + 1);
- }
- const LAYOUT = B.union(B.u8("instruction"));
- LAYOUT.addVariant(
- 0,
- B.struct([B.u64("mintEndSlot"), B.u64("decideEndSlot"), B.u8("bumpSeed")]),
- "initPool"
- );
- LAYOUT.addVariant(1, B.struct([B.u64("arg")]), "deposit");
- LAYOUT.addVariant(2, B.struct([B.u64("arg")]), "withdraw");
- LAYOUT.addVariant(3, B.struct([B.bool("arg")]), "decide");
- function encodeData(ix: any, span: number): Buffer {
- const b = Buffer.alloc(span);
- LAYOUT.encode(ix, b);
- return b;
- }
|