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 =
        SPLTokenProgramInstruction.getInstruction(decode["instruction"]);
    switch (instruction) {
      case SPLTokenProgramInstruction.amountToUiAmount:
        return SPLTokenAmountToUiAmountLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.approveChecked:
        return SPLTokenApproveCheckedLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.approve:
        return SPLTokenApproveLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.burnChecked:
        return SPLTokenBurnCheckedLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.burn:
        return SPLTokenBurnLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.closeAccount:
        return SPLTokenCloseAccountLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.createNativeMint:
        return SPLTokenCreateNativeMintLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.freezeAccount:
        return SPLTokenFreezAccountLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeAccount:
        return SPLTokenInitializeAccountLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeAccount2:
        return SPLTokenInitializeAccount2Layout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeAccount3:
        return SPLTokenInitializeAccount3Layout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeImmutableOwner:
        return SPLTokenInitializeImmutableOwnerLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeMintCloseAuthority:
        return SPLTokenInitializeMintCloseAuthorityLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeMint:
        return SPLTokenInitializeMintLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeMint2:
        return SPLTokenInitializeMint2Layout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeMultisig:
        return SPLTokenInitializeMultisigLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializeNonTransferableMint:
        return SPLTokenInitializeNonTransferableMintLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.initializePermanentDelegate:
        return SPLTokenInitializePermanentDelegateLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.mintToChecked:
        return SPLTokenMintToCheckedLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.mintTo:
        return SPLTokenMintToLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.reallocate:
        return SPLTokenReallocateLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.revoke:
        return SPLTokenRevokeLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.setAuthority:
        return SPLTokenSetAuthorityLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.syncNative:
        return SPLTokenSyncNativeLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.thawAccount:
        return SPLTokenThawAccountLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.transferChecked:
        return SPLTokenTransferCheckedLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.transfer:
        return SPLTokenTransferLayout.fromBuffer(data);
      case SPLTokenProgramInstruction.uiAmountToAmount:
        return SPLTokenUiAmountToAmountLayout.fromBuffer(data);
      default:
        return UnknownProgramLayout(data);
    }
  } catch (e) {
    return UnknownProgramLayout(data);
  }
}