UNPKG

@trezor/connect

Version:

High-level javascript interface for Trezor hardware wallet.

78 lines 4.04 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.modifyAuxiliaryDataForBackwardsCompatibility = exports.transformAuxiliaryData = void 0; const schema_utils_1 = require("@trezor/schema-utils"); const cardanoAddressParameters_1 = require("./cardanoAddressParameters"); const constants_1 = require("../../constants"); const cardano_1 = require("../../types/api/cardano"); const pathUtils_1 = require("../../utils/pathUtils"); const MAX_DELEGATION_COUNT = 32; const transformDelegation = (delegation) => { if (delegation.votingPublicKey) { console.warn('Please use votePublicKey instead of votingPublicKey.'); delegation.votePublicKey = delegation.votingPublicKey; } (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationDelegation, delegation); return { vote_public_key: delegation.votePublicKey, weight: delegation.weight, }; }; const transformCvoteRegistrationParameters = (cVoteRegistrationParameters) => { if (cVoteRegistrationParameters.votingPublicKey) { console.warn('Please use votePublicKey instead of votingPublicKey.'); cVoteRegistrationParameters.votePublicKey = cVoteRegistrationParameters.votingPublicKey; } if (cVoteRegistrationParameters.rewardAddressParameters) { console.warn('Please use paymentAddressParameters instead of rewardAddressParameters.'); cVoteRegistrationParameters.paymentAddressParameters = cVoteRegistrationParameters.rewardAddressParameters; } (0, schema_utils_1.Assert)(cardano_1.CardanoCVoteRegistrationParameters, cVoteRegistrationParameters); const { paymentAddressParameters } = cVoteRegistrationParameters; if (paymentAddressParameters) { (0, cardanoAddressParameters_1.validateAddressParameters)(paymentAddressParameters); } const { delegations } = cVoteRegistrationParameters; if (delegations && delegations.length > MAX_DELEGATION_COUNT) { throw constants_1.ERRORS.TypedError('Method_InvalidParameter', `At most ${MAX_DELEGATION_COUNT} delegations are allowed in a CIP-36 registration`); } return { vote_public_key: cVoteRegistrationParameters.votePublicKey, staking_path: (0, pathUtils_1.validatePath)(cVoteRegistrationParameters.stakingPath, 3), payment_address_parameters: paymentAddressParameters ? (0, cardanoAddressParameters_1.addressParametersToProto)(paymentAddressParameters) : undefined, nonce: cVoteRegistrationParameters.nonce, format: cVoteRegistrationParameters.format, delegations: delegations?.map(transformDelegation), voting_purpose: cVoteRegistrationParameters.votingPurpose, payment_address: cVoteRegistrationParameters.paymentAddress, }; }; const transformAuxiliaryData = (auxiliaryData) => { (0, schema_utils_1.Assert)(cardano_1.CardanoAuxiliaryData, auxiliaryData); let cVoteRegistrationParameters; if (auxiliaryData.cVoteRegistrationParameters) { cVoteRegistrationParameters = transformCvoteRegistrationParameters(auxiliaryData.cVoteRegistrationParameters); } return { hash: auxiliaryData.hash, cvote_registration_parameters: cVoteRegistrationParameters, }; }; exports.transformAuxiliaryData = transformAuxiliaryData; const modifyAuxiliaryDataForBackwardsCompatibility = (auxiliary_data) => { const { cvote_registration_parameters } = auxiliary_data; if (cvote_registration_parameters?.payment_address_parameters) { cvote_registration_parameters.payment_address_parameters = (0, cardanoAddressParameters_1.modifyAddressParametersForBackwardsCompatibility)(cvote_registration_parameters.payment_address_parameters); return { ...auxiliary_data, cvote_registration_parameters, }; } return auxiliary_data; }; exports.modifyAuxiliaryDataForBackwardsCompatibility = modifyAuxiliaryDataForBackwardsCompatibility; //# sourceMappingURL=cardanoAuxiliaryData.js.map