UNPKG

@provenanceio/wallet-utils

Version:

Typescript Utilities for Provenance Blockchain Wallet

81 lines (68 loc) 3.86 kB
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty"; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } import { MESSAGE_PROTOS } from '../../../../types'; import { cancelSoftwareUpgradeProposal } from './cancelSoftwareUpgradeProposal'; import { instantiateCodeProposal } from './instantiateCodeProposal'; import { parameterChangeProposal } from './parameterChangeProposal'; import { softwareUpgradeProposal } from './softwareUpgradeProposal'; import { storeCodeProposal } from './storeCodeProposal'; import { textProposal } from './textProposal'; /** * Formats MsgSubmitProposal (gov) messages for display * @param message of type MsgSubmitProposal (gov) * @returns object with MsgSubmitProposal fields */ export var msgSubmitGovProposal = function msgSubmitGovProposal(message) { var messagesList = message.getMessagesList(); var depositList = message.getInitialDepositList(); return { typeName: 'MsgSubmitProposal', proposer: message.getProposer(), // If no deposits, show a 0 value initialDepositList: depositList.length > 0 ? depositList.map(function (coin) { return { denom: coin.getDenom(), amount: coin.getAmount() }; }) : { denom: 'nhash', amount: '0' }, messages: messagesList.map(function (msg) { var typeName = msg.getTypeName(); // Check if the msg type is legacy content if (typeName === 'cosmos.gov.v1.MsgExecLegacyContent') { var unpackedMsg = msg.unpack(MESSAGE_PROTOS[typeName].deserializeBinary, typeName); var subMessage = unpackedMsg.getContent(); var subMessageTypeName = subMessage === null || subMessage === void 0 ? void 0 : subMessage.getTypeName(); if (MESSAGE_PROTOS[subMessageTypeName]) { var msgContent = subMessage === null || subMessage === void 0 ? void 0 : subMessage.unpack(MESSAGE_PROTOS[subMessageTypeName].deserializeBinary, subMessageTypeName); switch (subMessageTypeName) { case 'cosmos.gov.v1beta1.TextProposal': return textProposal(msgContent); case 'cosmos.upgrade.v1beta1.SoftwareUpgradeProposal': return softwareUpgradeProposal(msgContent); case 'cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal': return cancelSoftwareUpgradeProposal(msgContent); case 'cosmwasm.wasm.v1.StoreCodeProposal': return storeCodeProposal(msgContent); case 'cosmwasm.wasm.v1.InstantiateCodeProposal': return instantiateCodeProposal(msgContent); case 'cosmos.params.v1beta1.ParameterChangeProposal': return parameterChangeProposal(msgContent); default: return _objectSpread({ proposalType: subMessageTypeName }, msgContent); } } } // If the typeName isn't supported, don't fail, just return the message unformatted else { return { typeName: typeName, msg: msg }; } }) }; };