UNPKG

@avalanche-sdk/interchain

Version:
56 lines 2.88 kB
import { Id, Bool, pvmSerial, utils, Short } from "@avalabs/avalanchejs"; import { parseAddressedCallPayload } from "../addressedCallPayload"; const warpManager = pvmSerial.warp.getWarpManager(); /** * Parses a L1ValidatorRegistrationMessage (AddressedCall payload) from a hex string. * * @param l1ValidatorRegistrationMessageHex - The hex string representing the L1ValidatorRegistrationMessage. * @returns The parsed L1ValidatorRegistrationMessage instance. {@link L1ValidatorRegistrationMessage} */ export function parseL1ValidatorRegistrationMessage(l1ValidatorRegistrationMessageHex) { try { const parsedL1ValidatorRegistrationMessage = warpManager.unpack(utils.hexToBuffer(l1ValidatorRegistrationMessageHex), pvmSerial.warp.AddressedCallPayloads.L1ValidatorRegistrationMessage); return new L1ValidatorRegistrationMessage(parsedL1ValidatorRegistrationMessage.validationId, parsedL1ValidatorRegistrationMessage.registered); } catch (error) { const addressedCallPayload = parseAddressedCallPayload(l1ValidatorRegistrationMessageHex); const l1ValidatorRegistrationMessage = parseL1ValidatorRegistrationMessage(addressedCallPayload.payload.toString('hex')); return l1ValidatorRegistrationMessage; } } /** * Creates a new L1ValidatorRegistrationMessage from values. * * @param validationId - The validation ID (base58check encoded). * @param registered - The registration status as a boolean. * @returns A new L1ValidatorRegistrationMessage instance. {@link L1ValidatorRegistrationMessage} */ export function newL1ValidatorRegistrationMessage(validationId, registered) { const validationIdBytes = utils.base58check.decode(validationId); return new L1ValidatorRegistrationMessage(new Id(validationIdBytes), new Bool(registered)); } /** * L1ValidatorRegistrationMessage class provides utility methods to build * and parse L1ValidatorRegistrationMessage from hex strings or values, and * access its properties. */ export class L1ValidatorRegistrationMessage extends pvmSerial.warp.AddressedCallPayloads.L1ValidatorRegistrationMessage { static fromHex(l1ValidatorRegistrationMessageHex) { return parseL1ValidatorRegistrationMessage(l1ValidatorRegistrationMessageHex); } static fromValues(validationId, registered) { return newL1ValidatorRegistrationMessage(validationId, registered); } toHex() { const bytesWithoutCodec = this.toBytes(pvmSerial.warp.codec); const codecBytes = new Short(0); return utils.bufferToHex(Buffer.concat([codecBytes.toBytes(), bytesWithoutCodec])); } /** * Do not use this method directly. */ static fromBytes(_bytes, _codec) { throw new Error('Do not use `L1ValidatorRegistrationMessage.fromBytes` method directly.'); } } //# sourceMappingURL=l1ValidatorRegistrationMessage.js.map