UNPKG

@provenanceio/wallet-utils

Version:

Typescript Utilities for Provenance Blockchain Wallet

158 lines (143 loc) 6.26 kB
import * as google_protobuf_any_pb from 'google-protobuf/google/protobuf/any_pb'; import { MsgExecuteContract, MsgInstantiateContract, MsgInstantiateContract2 } from '../../../proto/cosmwasm/wasm/v1/tx_pb'; import { Coin } from '../../../proto/cosmos/base/v1beta1/coin_pb'; import { MsgSend } from '../../../proto/cosmos/bank/v1beta1/tx_pb'; import { MsgDelegate } from '../../../proto/cosmos/staking/v1beta1/tx_pb'; import { MsgCreateGroup, MsgSubmitProposal as MsgSubmitGroupProposal, MsgVote as MsgGroupVote, MsgExec as MsgGroupExec } from '../../../proto/cosmos/group/v1/tx_pb'; import { MemberRequest } from '../../../proto/cosmos/group/v1/types_pb'; var encoder = new TextEncoder(); /** * builds the message for submission to the blockchain * @param type identifies the type of message being built * @param params the parameters of the message being built * @returns formatted message of the provided type */ export var buildMessage = function buildMessage(type, params) { switch (type) { case 'MsgDelegate': { var _ref = params, delegatorAddress = _ref.delegatorAddress, validatorAddress = _ref.validatorAddress, amount = _ref.amount; var msgDelegate = new MsgDelegate().setDelegatorAddress(delegatorAddress).setValidatorAddress(validatorAddress); if (amount) { msgDelegate.setAmount(new Coin().setAmount("".concat(amount.amount)).setDenom(amount.denom)); } return msgDelegate; } case 'MsgSend': { var _ref2 = params, fromAddress = _ref2.fromAddress, toAddress = _ref2.toAddress, amountList = _ref2.amountList; var msgSend = new MsgSend().setFromAddress(fromAddress).setToAddress(toAddress); amountList.forEach(function (_ref3) { var denom = _ref3.denom, amount = _ref3.amount; msgSend.addAmount(new Coin().setAmount("".concat(amount)).setDenom(denom)); }); return msgSend; } case 'MsgCreateGroup': { var _ref4 = params, admin = _ref4.admin, membersList = _ref4.membersList, metadata = _ref4.metadata; var msgCreateGroup = new MsgCreateGroup().setAdmin(admin).setMetadata(metadata); membersList.forEach(function (_ref5) { var address = _ref5.address, weight = _ref5.weight, metadata = _ref5.metadata; msgCreateGroup.addMembers(new MemberRequest().setAddress(address).setWeight(weight).setMetadata(metadata)); }); return msgCreateGroup; } case 'MsgSubmitGroupProposal': { var _ref6 = params, messagesList = _ref6.messagesList, exec = _ref6.exec, groupPolicyAddress = _ref6.groupPolicyAddress, _metadata = _ref6.metadata, proposersList = _ref6.proposersList; var messagesListAny = messagesList.map(function (message) { return new google_protobuf_any_pb.Any().setTypeUrl(message.typeUrl).setValue(message.value); }); var msgSubmitGroupProposal = new MsgSubmitGroupProposal().setExec(exec).setMetadata(_metadata).setGroupPolicyAddress(groupPolicyAddress).setProposersList(proposersList).setMessagesList(messagesListAny); return msgSubmitGroupProposal; } case 'MsgGroupVote': { var _ref7 = params, proposalId = _ref7.proposalId, voter = _ref7.voter, option = _ref7.option, _exec = _ref7.exec, _metadata2 = _ref7.metadata; var msgGroupVote = new MsgGroupVote().setProposalId(proposalId).setVoter(voter).setOption(option).setExec(_exec).setMetadata(_metadata2); return msgGroupVote; } case 'MsgExec': { var _ref8 = params, _proposalId = _ref8.proposalId, executor = _ref8.executor; var msgExec = new MsgGroupExec().setProposalId(_proposalId).setExecutor(executor); return msgExec; } case 'MsgInstantiateContract': { var _ref9 = params, sender = _ref9.sender, _admin = _ref9.admin, codeId = _ref9.codeId, label = _ref9.label, msg = _ref9.msg, fundsList = _ref9.fundsList; var msgInstantiateContract = new MsgInstantiateContract().setSender(sender).setAdmin(_admin).setCodeId(codeId).setLabel(label).setMsg(msg); fundsList.forEach(function (_ref10) { var denom = _ref10.denom, amount = _ref10.amount; msgInstantiateContract.addFunds(new Coin().setAmount("".concat(amount)).setDenom(denom)); }); return msgInstantiateContract; } case 'MsgInstantiateContract2': { var _ref11 = params, _sender = _ref11.sender, _admin2 = _ref11.admin, _codeId = _ref11.codeId, _label = _ref11.label, _msg = _ref11.msg, _fundsList = _ref11.fundsList, salt = _ref11.salt, fixMsg = _ref11.fixMsg; var _msgInstantiateContract = new MsgInstantiateContract2().setSender(_sender).setAdmin(_admin2).setCodeId(_codeId).setLabel(_label).setMsg(_msg).setSalt(salt).setFixMsg(fixMsg); _fundsList.forEach(function (_ref12) { var denom = _ref12.denom, amount = _ref12.amount; _msgInstantiateContract.addFunds(new Coin().setAmount("".concat(amount)).setDenom(denom)); }); return _msgInstantiateContract; } case 'MsgExecuteContract': { var _ref13 = params, _sender2 = _ref13.sender, contract = _ref13.contract, _msg2 = _ref13.msg, _fundsList2 = _ref13.fundsList; var msgExecuteContract = new MsgExecuteContract().setContract(contract).setSender(_sender2).setMsg(encoder.encode(JSON.stringify(_msg2))); if (_fundsList2) _fundsList2.forEach(function (_ref14) { var denom = _ref14.denom, amount = _ref14.amount; msgExecuteContract.addFunds(new Coin().setAmount("".concat(amount)).setDenom(denom)); }); return msgExecuteContract; } } };