@provenanceio/wallet-utils
Version:
Typescript Utilities for Provenance Blockchain Wallet
96 lines (74 loc) • 4.35 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.msgSubmitGovProposal = void 0;
var _types = require("../../../../types");
var _cancelSoftwareUpgradeProposal = require("./cancelSoftwareUpgradeProposal");
var _instantiateCodeProposal = require("./instantiateCodeProposal");
var _parameterChangeProposal = require("./parameterChangeProposal");
var _softwareUpgradeProposal = require("./softwareUpgradeProposal");
var _storeCodeProposal = require("./storeCodeProposal");
var _textProposal = require("./textProposal");
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; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
/**
* Formats MsgSubmitProposal (gov) messages for display
* @param message of type MsgSubmitProposal (gov)
* @returns object with MsgSubmitProposal fields
*/
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(_types.MESSAGE_PROTOS[typeName].deserializeBinary, typeName);
var subMessage = unpackedMsg.getContent();
var subMessageTypeName = subMessage === null || subMessage === void 0 ? void 0 : subMessage.getTypeName();
if (_types.MESSAGE_PROTOS[subMessageTypeName]) {
var msgContent = subMessage === null || subMessage === void 0 ? void 0 : subMessage.unpack(_types.MESSAGE_PROTOS[subMessageTypeName].deserializeBinary, subMessageTypeName);
switch (subMessageTypeName) {
case 'cosmos.gov.v1beta1.TextProposal':
return (0, _textProposal.textProposal)(msgContent);
case 'cosmos.upgrade.v1beta1.SoftwareUpgradeProposal':
return (0, _softwareUpgradeProposal.softwareUpgradeProposal)(msgContent);
case 'cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal':
return (0, _cancelSoftwareUpgradeProposal.cancelSoftwareUpgradeProposal)(msgContent);
case 'cosmwasm.wasm.v1.StoreCodeProposal':
return (0, _storeCodeProposal.storeCodeProposal)(msgContent);
case 'cosmwasm.wasm.v1.InstantiateCodeProposal':
return (0, _instantiateCodeProposal.instantiateCodeProposal)(msgContent);
case 'cosmos.params.v1beta1.ParameterChangeProposal':
return (0, _parameterChangeProposal.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
};
}
})
};
};
exports.msgSubmitGovProposal = msgSubmitGovProposal;