import { Idl } from "../../idl.js"; import { BorshInstructionCoder } from "./instruction.js"; import { BorshAccountsCoder } from "./accounts.js"; import { BorshEventCoder } from "./event.js"; import { BorshStateCoder } from "./state.js"; import { Coder } from "../index.js"; export { BorshInstructionCoder } from "./instruction.js"; export { BorshAccountsCoder, BorshAccountHeader } from "./accounts.js"; export { BorshEventCoder, eventDiscriminator } from "./event.js"; export { BorshStateCoder, stateDiscriminator } from "./state.js"; /** * BorshCoder is the default Coder for Anchor programs implementing the * borsh based serialization interface. */ export class BorshCoder implements Coder { /** * Instruction coder. */ readonly instruction: BorshInstructionCoder; /** * Account coder. */ readonly accounts: BorshAccountsCoder; /** * Coder for state structs. */ readonly state: BorshStateCoder; /** * Coder for events. */ readonly events: BorshEventCoder; constructor(idl: Idl) { this.instruction = new BorshInstructionCoder(idl); this.accounts = new BorshAccountsCoder(idl); this.events = new BorshEventCoder(idl); if (idl.state) { this.state = new BorshStateCoder(idl); } } }