@provenanceio/wallet-utils
Version:
Typescript Utilities for Provenance Blockchain Wallet
81 lines (68 loc) • 3.86 kB
JavaScript
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
};
}
})
};
};