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