@yoroi/portfolio
Version:
The Portfolio package of Yoroi SDK
32 lines • 1.32 kB
JavaScript
import { StorageReviverType, storageDeserializerMaker } from '@yoroi/common';
import { freeze } from 'immer';
import { parsePrimaryBreakdown } from '../validators/primary-breakdown';
import { parseTokenAmount } from '../validators/token-amount';
export const tokenDiscoveryReviverMapping = {
supply: StorageReviverType.AsBigInt
};
export const tokenAmountReviverMapping = {
quantity: StorageReviverType.AsBigInt
};
export const primaryBalanceBreakdownReviverMapping = {
availableRewards: StorageReviverType.AsBigInt,
totalFromTxs: StorageReviverType.AsBigInt,
lockedAsStorageCost: StorageReviverType.AsBigInt
};
const tokenAmountDeserializer = jsonString => {
if (jsonString == null) return null;
const record = storageDeserializerMaker(tokenAmountReviverMapping)(jsonString);
const parsed = parseTokenAmount(record);
return parsed ?? null;
};
const primaryBalanceBreakdownDeserializer = jsonString => {
if (jsonString == null) return null;
const record = storageDeserializerMaker(primaryBalanceBreakdownReviverMapping)(jsonString);
const parsed = parsePrimaryBreakdown(record);
return parsed ?? null;
};
export const deserializers = freeze({
tokenAmount: tokenAmountDeserializer,
primaryBreakdown: primaryBalanceBreakdownDeserializer
}, true);
//# sourceMappingURL=deserializers.js.map