123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- // @ts-nocheck
- import * as B from "@native-to-anchor/buffer-layout";
- import { Idl, InstructionCoder } from "@coral-xyz/anchor";
- export class SplFeatureProposalInstructionCoder implements InstructionCoder {
- constructor(_idl: Idl) {}
- encode(ixName: string, ix: any): Buffer {
- switch (ixName) {
- case "propose": {
- return encodePropose(ix);
- }
- case "tally": {
- return encodeTally(ix);
- }
- default: {
- throw new Error(`Invalid instruction: ${ixName}`);
- }
- }
- }
- encodeState(_ixName: string, _ix: any): Buffer {
- throw new Error("SplFeatureProposal does not have state");
- }
- }
- function encodePropose({ tokensToMint, acceptanceCriteria }: any): Buffer {
- return encodeData(
- { propose: { tokensToMint, acceptanceCriteria } },
- 1 + 8 + 8 + 8
- );
- }
- function encodeTally({}: any): Buffer {
- return encodeData({ tally: {} }, 1);
- }
- const LAYOUT = B.union(B.u8("instruction"));
- LAYOUT.addVariant(
- 0,
- B.struct([
- B.u64("tokensToMint"),
- B.struct(
- [B.u64("tokensRequired"), B.i64("deadline")],
- "acceptanceCriteria"
- ),
- ]),
- "propose"
- );
- LAYOUT.addVariant(1, B.struct([]), "tally");
- function encodeData(ix: any, span: number): Buffer {
- const b = Buffer.alloc(span);
- LAYOUT.encode(ix, b);
- return b;
- }
|