UNPKG

@ethersphere/swarm-cli

Version:
102 lines (101 loc) 3.87 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Recover = void 0; const ethers_1 = require("ethers"); const furious_commander_1 = require("furious-commander"); const rpc_1 = require("../../utils/rpc"); const root_command_1 = require("../root-command"); const utility_1 = require("../utility"); class Recover extends root_command_1.RootCommand { constructor() { super(...arguments); Object.defineProperty(this, "name", { enumerable: true, configurable: true, writable: true, value: 'recover' }); Object.defineProperty(this, "description", { enumerable: true, configurable: true, writable: true, value: 'Recovers xBZZ from paused staking contracts' }); Object.defineProperty(this, "walletSource", { enumerable: true, configurable: true, writable: true, value: void 0 }); Object.defineProperty(this, "jsonRpcUrl", { enumerable: true, configurable: true, writable: true, value: void 0 }); } async run() { super.init(); const address = '0x445B848e16730988F871c4a09aB74526d27c2Ce8'; const abi = [ { inputs: [], name: 'migrateStake', outputs: [], stateMutability: 'nonpayable', type: 'function', }, { inputs: [], name: 'paused', outputs: [ { internalType: 'bool', name: '', type: 'bool', }, ], stateMutability: 'view', type: 'function', }, ]; const wallet = await (0, utility_1.createWallet)(this.walletSource, this.console); const { signer } = await (0, rpc_1.makeReadySigner)(wallet.getPrivateKeyString(), this.jsonRpcUrl); const contract = new ethers_1.Contract(address, abi, signer); const isPaused = await contract.paused(); if (!isPaused) { this.console.error('The contract is not paused. No need to recover xBZZ.'); return; } this.console.log('Recovering xBZZ from paused staking contract...'); await contract.migrateStake(); } } exports.Recover = Recover; __decorate([ (0, furious_commander_1.Argument)({ key: 'wallet-source', description: 'Wallet source (path or private key string)', required: true, autocompletePath: true, }), __metadata("design:type", String) ], Recover.prototype, "walletSource", void 0); __decorate([ (0, furious_commander_1.Option)({ key: 'json-rpc-url', type: 'string', description: 'Gnosis JSON-RPC URL', default: 'https://xdai.fairdatasociety.org', }), __metadata("design:type", String) ], Recover.prototype, "jsonRpcUrl", void 0);