fromBytes static method

ProgramLayout fromBytes(
  1. List<int> data
)

Implementation

static ProgramLayout fromBytes(List<int> data) {
  try {
    final decode =
        ProgramLayout.decodeAndValidateStruct(layout: _layout, bytes: data);
    final instruction =
        SPLTokenSwapProgramInstruction.getInstruction(decode["instruction"]);
    switch (instruction) {
      case SPLTokenSwapProgramInstruction.initSwap:
        return SPLTokenSwapInitSwapLayout.fromBuffer(data);
      case SPLTokenSwapProgramInstruction.depositSingleToken:
        return SPLTokenSwapDepositSingleTokenLayout.fromBuffer(data);
      case SPLTokenSwapProgramInstruction.depositToken:
        return SPLTokenSwapDepositLayout.fromBuffer(data);
      case SPLTokenSwapProgramInstruction.withdrawToken:
        return SPLTokenSwapWithdrawLayout.fromBuffer(data);
      case SPLTokenSwapProgramInstruction.withdrawSingleToken:
        return SPLTokenSwapWithdrawSingleTokenLayout.fromBuffer(data);
      case SPLTokenSwapProgramInstruction.swap:
        return SPLTokenSwapSwapLayout.fromBuffer(data);
      default:
        return UnknownProgramLayout(data);
    }
  } catch (e) {
    return UnknownProgramLayout(data);
  }
}