UNPKG

@firmachain/firma-js

Version:

The Official FirmaChain Javascript SDK written in Typescript

776 lines (775 loc) 40.8 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FirmaGovService = void 0; var gov_1 = require("./firmachain/gov"); var FirmaUtil_1 = require("./FirmaUtil"); var any_1 = require("./firmachain/google/protobuf/any"); var gov_2 = require("cosmjs-types/cosmos/gov/v1beta1/gov"); var distribution_1 = require("cosmjs-types/cosmos/distribution/v1beta1/distribution"); var params_1 = require("cosmjs-types/cosmos/params/v1beta1/params"); var upgrade_1 = require("cosmjs-types/cosmos/upgrade/v1beta1/upgrade"); var long_1 = __importDefault(require("long")); var FirmaGovService = /** @class */ (function () { function FirmaGovService(config) { this.config = config; } FirmaGovService.prototype.getGasEstimationVote = function (wallet, proposalId, option, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var longId, txRaw, error_1; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); longId = long_1.default.fromInt(proposalId); return [4 /*yield*/, this.getSignedTxVote(wallet, longId, option, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_1 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_1); throw error_1; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationDeposit = function (wallet, proposalId, amount, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var longId, txRaw, error_2; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); longId = long_1.default.fromInt(proposalId); return [4 /*yield*/, this.getSignedTxDeposit(wallet, longId, amount, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_2 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_2); throw error_2; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationSubmitCancelSoftwareUpgradeProposal = function (wallet, title, description, initialDepositFCT, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, error_3; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitCancelSoftwareUpgradeProposal(wallet, title, description, initialDepositFCT, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_3 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_3); throw error_3; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationSubmitSoftwareUpgradeProposalByHeight = function (wallet, title, description, initialDepositFCT, upgradeName, height, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var upgradeHeight, plan, txRaw, error_4; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); upgradeHeight = long_1.default.fromInt(height); plan = { name: upgradeName, time: undefined, height: upgradeHeight, info: undefined, upgradedClientState: undefined }; return [4 /*yield*/, this.getSignedTxSubmitSoftwareUpgradeProposal(wallet, title, description, initialDepositFCT, plan, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_4 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_4); throw error_4; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationSubmitParameterChangeProposal = function (wallet, title, description, initialDepositFCT, paramList, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, error_5; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitParameterChangeProposal(wallet, title, description, initialDepositFCT, paramList, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_5 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_5); throw error_5; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationSubmitCommunityPoolSpendProposal = function (wallet, title, description, initialDepositFCT, amount, recipient, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, error_6; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitCommunityPoolSpendProposal(wallet, title, description, initialDepositFCT, amount, recipient, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_6 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_6); throw error_6; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getGasEstimationSubmitTextProposal = function (wallet, title, description, initialDepositFCT, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, error_7; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitTextProposal(wallet, title, description, initialDepositFCT, txMisc)]; case 1: txRaw = _a.sent(); return [4 /*yield*/, FirmaUtil_1.FirmaUtil.estimateGas(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_7 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_7); throw error_7; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxSubmitTextProposal = function (wallet, title, description, initialDepositFCT, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var sendAmount, proposal, content, proposer, message, txClient, error_8; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); sendAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(initialDepositFCT) }; proposal = gov_2.TextProposal.fromPartial({ title: title, description: description, }); content = any_1.Any.fromPartial({ typeUrl: "/cosmos.gov.v1beta1.TextProposal", value: Uint8Array.from(gov_2.TextProposal.encode(proposal).finish()), }); return [4 /*yield*/, wallet.getAddress()]; case 1: proposer = _a.sent(); message = gov_1.GovTxClient.msgSubmitProposal({ content: content, initialDeposit: [sendAmount], proposer: proposer }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_8 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_8); throw error_8; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxSubmitCancelSoftwareUpgradeProposal = function (wallet, title, description, initialDepositFCT, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var initialDepositAmount, proposal, content, proposer, message, txClient, error_9; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); initialDepositAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(initialDepositFCT) }; proposal = upgrade_1.CancelSoftwareUpgradeProposal.fromPartial({ title: title, description: description, }); content = any_1.Any.fromPartial({ typeUrl: "/cosmos.upgrade.v1beta1.CancelSoftwareUpgradeProposal", value: Uint8Array.from(upgrade_1.SoftwareUpgradeProposal.encode(proposal).finish()), }); return [4 /*yield*/, wallet.getAddress()]; case 1: proposer = _a.sent(); message = gov_1.GovTxClient.msgSubmitProposal({ content: content, initialDeposit: [initialDepositAmount], proposer: proposer }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_9 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_9); throw error_9; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxSubmitSoftwareUpgradeProposal = function (wallet, title, description, initialDepositFCT, plan, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var initialDepositAmount, proposal, content, proposer, message, txClient, error_10; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); initialDepositAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(initialDepositFCT) }; proposal = upgrade_1.SoftwareUpgradeProposal.fromPartial({ title: title, description: description, plan: plan, }); content = any_1.Any.fromPartial({ typeUrl: "/cosmos.upgrade.v1beta1.SoftwareUpgradeProposal", value: Uint8Array.from(upgrade_1.SoftwareUpgradeProposal.encode(proposal).finish()), }); return [4 /*yield*/, wallet.getAddress()]; case 1: proposer = _a.sent(); message = gov_1.GovTxClient.msgSubmitProposal({ content: content, initialDeposit: [initialDepositAmount], proposer: proposer }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_10 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_10); throw error_10; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxSubmitParameterChangeProposal = function (wallet, title, description, initialDepositFCT, paramList, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var initialDepositAmount, proposal, content, proposer, message, txClient, error_11; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); initialDepositAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(initialDepositFCT) }; proposal = params_1.ParameterChangeProposal.fromPartial({ title: title, description: description, changes: paramList, }); content = any_1.Any.fromPartial({ typeUrl: "/cosmos.params.v1beta1.ParameterChangeProposal", value: Uint8Array.from(params_1.ParameterChangeProposal.encode(proposal).finish()), }); return [4 /*yield*/, wallet.getAddress()]; case 1: proposer = _a.sent(); message = gov_1.GovTxClient.msgSubmitProposal({ content: content, initialDeposit: [initialDepositAmount], proposer: proposer }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_11 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_11); throw error_11; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxSubmitCommunityPoolSpendProposal = function (wallet, title, description, initialDepositFCT, amount, recipient, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var initialDepositAmount, sendAmount, proposal, content, proposer, message, txClient, error_12; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); initialDepositAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(initialDepositFCT) }; sendAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(amount) }; proposal = distribution_1.CommunityPoolSpendProposal.fromPartial({ title: title, description: description, recipient: recipient, amount: [sendAmount] }); content = any_1.Any.fromPartial({ typeUrl: "/cosmos.distribution.v1beta1.CommunityPoolSpendProposal", value: Uint8Array.from(distribution_1.CommunityPoolSpendProposal.encode(proposal).finish()), }); return [4 /*yield*/, wallet.getAddress()]; case 1: proposer = _a.sent(); message = gov_1.GovTxClient.msgSubmitProposal({ content: content, initialDeposit: [initialDepositAmount], proposer: proposer }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_12 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_12); throw error_12; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitCancelSoftwareUpgradeProposal = function (wallet, title, description, initialDeposit, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, txClient, error_13; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitCancelSoftwareUpgradeProposal(wallet, title, description, initialDeposit, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_13 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_13); throw error_13; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitSoftwareUpgradeProposalByHeight = function (wallet, title, description, initialDeposit, upgradeName, height, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var upgradeHeight, plan, txRaw, txClient, error_14; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); upgradeHeight = long_1.default.fromInt(height); plan = { name: upgradeName, time: undefined, height: upgradeHeight, info: undefined, upgradedClientState: undefined }; return [4 /*yield*/, this.getSignedTxSubmitSoftwareUpgradeProposal(wallet, title, description, initialDeposit, plan, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_14 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_14); throw error_14; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitSoftwareUpgradeProposalByTime = function (wallet, title, description, initialDeposit, upgradeName, upgradeTime, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var plan, txRaw, txClient, error_15; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); plan = { name: upgradeName, time: upgradeTime, height: undefined, info: undefined, upgradedClientState: undefined }; return [4 /*yield*/, this.getSignedTxSubmitSoftwareUpgradeProposal(wallet, title, description, initialDeposit, plan, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_15 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_15); throw error_15; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitParameterChangeProposal = function (wallet, title, description, initialDeposit, paramList, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, txClient, error_16; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitParameterChangeProposal(wallet, title, description, initialDeposit, paramList, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_16 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_16); throw error_16; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitCommunityPoolSpendProposal = function (wallet, title, description, initialDeposit, amount, recipient, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, txClient, error_17; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitCommunityPoolSpendProposal(wallet, title, description, initialDeposit, amount, recipient, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_17 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_17); throw error_17; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.submitTextProposal = function (wallet, title, description, initialDeposit, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var txRaw, txClient, error_18; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, this.getSignedTxSubmitTextProposal(wallet, title, description, initialDeposit, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_18 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_18); throw error_18; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxVote = function (wallet, proposalId, option, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var voter, txClient, message, error_19; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, wallet.getAddress()]; case 1: voter = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); message = gov_1.GovTxClient.msgVote({ proposalId: proposalId, voter: voter, option: option }); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_19 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_19); throw error_19; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.vote = function (wallet, proposalId, option, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var longId, txRaw, txClient, error_20; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); longId = long_1.default.fromInt(proposalId); return [4 /*yield*/, this.getSignedTxVote(wallet, longId, option, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_20 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_20); throw error_20; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getSignedTxDeposit = function (wallet, proposalId, amount, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var depositor, sendAmount, message, txClient, error_21; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); return [4 /*yield*/, wallet.getAddress()]; case 1: depositor = _a.sent(); sendAmount = { denom: this.config.denom, amount: FirmaUtil_1.FirmaUtil.getUFCTStringFromFCT(amount) }; message = gov_1.GovTxClient.msgDeposit({ proposalId: proposalId, depositor: depositor, amount: [sendAmount] }); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.sign([message], FirmaUtil_1.getSignAndBroadcastOption(this.config.denom, txMisc))]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_21 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_21); throw error_21; case 4: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.deposit = function (wallet, proposalId, amount, txMisc) { if (txMisc === void 0) { txMisc = FirmaUtil_1.DefaultTxMisc; } return __awaiter(this, void 0, void 0, function () { var longId, txRaw, txClient, error_22; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 3, , 4]); longId = long_1.default.fromInt(proposalId); return [4 /*yield*/, this.getSignedTxDeposit(wallet, longId, amount, txMisc)]; case 1: txRaw = _a.sent(); txClient = new gov_1.GovTxClient(wallet, this.config.rpcAddress); return [4 /*yield*/, txClient.broadcast(txRaw)]; case 2: return [2 /*return*/, _a.sent()]; case 3: error_22 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_22); throw error_22; case 4: return [2 /*return*/]; } }); }); }; //query FirmaGovService.prototype.getCurrentVoteInfo = function (id) { return __awaiter(this, void 0, void 0, function () { var queryClient, result, error_23; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); queryClient = new gov_1.GovQueryClient(this.config.restApiAddress); return [4 /*yield*/, queryClient.queryGetCurrentVoteInfo(id)]; case 1: result = _a.sent(); return [2 /*return*/, result]; case 2: error_23 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_23); throw error_23; case 3: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getParam = function () { return __awaiter(this, void 0, void 0, function () { var queryClient, result, error_24; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); queryClient = new gov_1.GovQueryClient(this.config.restApiAddress); return [4 /*yield*/, queryClient.queryGetParam()]; case 1: result = _a.sent(); return [2 /*return*/, result]; case 2: error_24 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_24); throw error_24; case 3: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getProposal = function (id) { return __awaiter(this, void 0, void 0, function () { var queryClient, result, error_25; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); queryClient = new gov_1.GovQueryClient(this.config.restApiAddress); return [4 /*yield*/, queryClient.queryGetProposal(id)]; case 1: result = _a.sent(); return [2 /*return*/, result]; case 2: error_25 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_25); throw error_25; case 3: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getProposalListByStatus = function (status) { return __awaiter(this, void 0, void 0, function () { var queryClient, result, error_26; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); queryClient = new gov_1.GovQueryClient(this.config.restApiAddress); return [4 /*yield*/, queryClient.queryGetProposalListByStatus(status)]; case 1: result = _a.sent(); return [2 /*return*/, result]; case 2: error_26 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_26); throw error_26; case 3: return [2 /*return*/]; } }); }); }; FirmaGovService.prototype.getProposalList = function () { return __awaiter(this, void 0, void 0, function () { var queryClient, result, error_27; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); queryClient = new gov_1.GovQueryClient(this.config.restApiAddress); return [4 /*yield*/, queryClient.queryGetProposalList()]; case 1: result = _a.sent(); return [2 /*return*/, result]; case 2: error_27 = _a.sent(); FirmaUtil_1.FirmaUtil.printLog(error_27); throw error_27; case 3: return [2 /*return*/]; } }); }); }; return FirmaGovService; }()); exports.FirmaGovService = FirmaGovService;