Spaces:
Sleeping
Sleeping
File size: 746 Bytes
6655e35 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import { blob, Layout } from '@solana/buffer-layout';
import { PublicKey } from '@solana/web3.js';
import { encodeDecode } from './base';
export const publicKey = (property?: string): Layout<PublicKey> => {
const layout = blob(32, property);
const { encode, decode } = encodeDecode(layout);
const publicKeyLayout = layout as Layout<unknown> as Layout<PublicKey>;
publicKeyLayout.decode = (buffer: Buffer, offset: number) => {
const src = decode(buffer, offset);
return new PublicKey(src);
};
publicKeyLayout.encode = (publicKey: PublicKey, buffer: Buffer, offset: number) => {
const src = publicKey.toBuffer();
return encode(src, buffer, offset);
};
return publicKeyLayout;
};
|