UNPKG

@ledgerhq/coin-celo

Version:
38 lines 1.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createRevokeVoteMutation = void 0; const invariant_1 = __importDefault(require("invariant")); const index_1 = require("@ledgerhq/cryptoassets/index"); const parseCurrencyUnit_1 = require("@ledgerhq/coin-framework/currencies/parseCurrencyUnit"); const currency = (0, index_1.getCryptoCurrencyById)("celo"); const minimalAmount = (0, parseCurrencyUnit_1.parseCurrencyUnit)(currency.units[0], "0.001"); const createRevokeVoteMutation = () => ({ name: "Celo: RevokeVote", feature: "staking", maxRun: 1, transaction: ({ account, bridge, maxSpendable }) => { (0, invariant_1.default)(maxSpendable.gt(minimalAmount), "Celo: Revoke Vote | balance is too low"); const { celoResources } = account; (0, invariant_1.default)(celoResources?.registrationStatus, "Celo: RevokeVote | Account is not registered"); const revokableVote = celoResources?.votes?.find(vote => vote.revokable); (0, invariant_1.default)(!!revokableVote, "Celo: RevokeVote | Revokable vote not found"); return { transaction: bridge.createTransaction(account), updates: [ { mode: "revoke", recipient: revokableVote.validatorGroup, group: revokableVote.validatorGroup, address: account.celoResources?.electionAddress, index: revokableVote.index, amount: revokableVote.amount, }, ], }; }, }); exports.createRevokeVoteMutation = createRevokeVoteMutation; //# sourceMappingURL=createRevokeVoteMutation.js.map