Ed25519ProgramLayout.fromBuffer constructor
Constructs the layout from raw bytes.
Implementation
factory Ed25519ProgramLayout.fromBuffer(List<int> data) {
final decode =
ProgramLayout.decodeAndValidateStruct(layout: _layout, bytes: data);
final int publicKeyOffset = decode['publicKeyOffset'];
final int signatureOffset = decode['signatureOffset'];
final int messageOffset = decode['messageDataOffset'];
final int messageSize = decode['messageDataSize'];
final pubKey = data.sublist(
publicKeyOffset, publicKeyOffset + Ed25519KeysConst.pubKeyByteLen);
final signature = data.sublist(
signatureOffset, signatureOffset + Ed25519ProgramConst.signatureLen);
final message = data.sublist(messageOffset, messageOffset + messageSize);
return Ed25519ProgramLayout._(
numSignatures: decode['numSignatures'],
padding: decode['padding'],
signatureOffset: signatureOffset,
signatureInstructionIndex: decode['signatureInstructionIndex'],
publicKeyOffset: publicKeyOffset,
publicKeyInstructionIndex: decode['publicKeyInstructionIndex'],
messageDataOffset: messageOffset,
messageDataSize: messageSize,
messageInstructionIndex: decode['messageInstructionIndex'],
message: message,
publicKey: SolanaPublicKey.fromBytes(pubKey),
signature: signature,
);
}