PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@vechain/sdk-core/src/vcdm/encoding/rlp/kind/hexblob
Просмотр файла: CompactFixedHexBlobKind.ts
import { Hex } from '../../../../Hex';
import {
assertCompactFixedHexBlobBuffer,
encodeCompactFixedHexBlob
} from '../../helpers';
import { type BufferOutput, type DataOutput, type RLPInput } from '../../types';
import { FixedHexBlobKind } from './FixedHexBlobKind';
/**
* Represents a fixed hex blob kind with zero trimming and padding functionality.
* This class extends the {@link FixedHexBlobKind} class.
*/
class CompactFixedHexBlobKind extends FixedHexBlobKind {
/**
* Encodes the input data into a Uint8Array, trimming leading zeros.
*
* @param data - The data to encode, expected to be a '0x' prefixed hex string.
* @param context - Context string for error handling.
* @returns An object containing an encode function which returns the encoded Uint8Array.
*/
public data(data: RLPInput, context: string): DataOutput {
const buffer: Uint8Array = super.data(data, context).encode();
return {
encode: () => encodeCompactFixedHexBlob(buffer) // Encode the buffer, trimming leading zeros.
};
}
/**
* Decodes the input buffer into a number or hexadecimal string, ensuring it meets the fixed size by padding with zeros.
*
* @param buffer - The buffer to decode, containing numeric data.
* @param context - Descriptive context for error messages, usually representing the caller's identity.
* @returns BufferOutput object with a decode function.
* @throws Will throw an error if buffer validation fails.
*/
public buffer(buffer: Uint8Array, context: string): BufferOutput {
assertCompactFixedHexBlobBuffer(buffer, context, this.bytes);
return {
decode: () =>
// Decode the buffer, returning a hex string with leading zeros.
Hex.of(buffer)
.fit(this.bytes * 2)
.toString()
};
}
}
export { CompactFixedHexBlobKind };
Выполнить команду
Для локальной разработки. Не используйте в интернете!