@flarenetwork/flare-stake-tool
Version:
Utilities for staking on the Flare network
309 lines • 11 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.prompts = void 0;
const chalk_1 = __importDefault(require("chalk"));
const inquirer_1 = __importDefault(require("inquirer"));
const screen_1 = require("../constants/screen");
/**
* Provides various prompts used in the CLI for user interaction.
*/
exports.prompts = {
connectWallet: async () => {
const questions = [
{
type: 'list',
name: 'wallet',
message: chalk_1.default.magenta('How do you want to connect your wallet?'),
choices: [...Object.values(screen_1.walletConstants)],
filter: (val) => {
const key = Object.keys(screen_1.walletConstants).find((key) => screen_1.walletConstants[key] == val);
return key;
}
}
];
return inquirer_1.default.prompt(questions);
},
derivationType: async () => {
const questions = [
{
type: 'list',
name: 'derivation',
message: chalk_1.default.magenta('Choose derivation path...'),
choices: [...Object.values(screen_1.derivationModeConstants)],
filter: (val) => {
const key = Object.keys(screen_1.derivationModeConstants).find((key) => screen_1.derivationModeConstants[key] == val);
return key;
}
}
];
return inquirer_1.default.prompt(questions);
},
pvtKeyPath: async () => {
const questions = [
{
type: 'input',
name: 'pvtKeyPath',
message: chalk_1.default.magenta('Enter Path to Private Key file') +
' ' +
chalk_1.default.yellow('(E.g. /home/wallet/pvtKeyFile)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
publicKey: async () => {
const questions = [
{
type: 'input',
name: 'publicKey',
message: chalk_1.default.magenta('Enter your secp256k1 curve public key') +
' ' +
chalk_1.default.yellow('(E.g. 0x02efe41c5d213089cb7a9e808505e9084bb9eb2bf3aa8050ea92a5ae9e20e5a692)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
amount: async (amountPurpose = '', defaultAmount) => {
const questions = [
{
type: 'input',
default: defaultAmount,
name: 'amount',
message: chalk_1.default.magenta(`Enter amount ${amountPurpose}`) + ' ' + chalk_1.default.magenta(`(in FLR):`)
}
];
return inquirer_1.default.prompt(questions);
},
// exportCP and importPC fees
fees: async (defaultFees) => {
const questions = [
{
type: 'input',
default: defaultFees,
name: 'fees',
message: chalk_1.default.magenta('Enter fees (in FLR):')
}
];
return inquirer_1.default.prompt(questions);
},
// base fee for exportCP and importPC txs with private key
baseFee: async (defaultBaseFee) => {
const questions = [
{
type: 'input',
default: defaultBaseFee,
name: 'baseFee',
message: chalk_1.default.magenta('Enter base fee (in nanoFLR):')
}
];
return inquirer_1.default.prompt(questions);
},
nodeId: async () => {
const questions = [
{
type: 'input',
name: 'id',
message: chalk_1.default.magenta('Enter NodeId') +
' ' +
chalk_1.default.yellow('(E.g. NodeID-FQKTLuZHEsjCxPeFTFgsojsucmdyNDsz1)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
unixTime: async (timeType) => {
const questions = [
{
type: 'input',
name: 'time',
message: chalk_1.default.magenta(`Enter ${timeType} time`) +
' ' +
chalk_1.default.yellow('(E.g. 1693185095)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
ctxFile: async () => {
const questions = [
{
type: 'list',
name: 'isContinue',
message: chalk_1.default.magenta('Do you wish to continue with this?'),
choices: ['Yes', 'No'],
filter: (val) => {
return val == 'Yes' ? true : false;
}
}
];
return inquirer_1.default.prompt(questions);
},
selectNetwork: async () => {
const questions = [
{
type: 'list',
name: 'network',
message: chalk_1.default.magenta('Which network do you want to connect to?'),
choices: [...Object.values(screen_1.networkConstants)],
filter: (val) => {
const key = Object.keys(screen_1.networkConstants).find((key) => screen_1.networkConstants[key] == val);
return key;
}
}
];
return inquirer_1.default.prompt(questions);
},
selectTask: async () => {
const questions = [
{
type: 'list',
name: 'task',
message: chalk_1.default.magenta('What do you want to do?'),
choices: [...Object.values(screen_1.taskConstants)],
filter: (val) => {
const key = Object.keys(screen_1.taskConstants).find((key) => screen_1.taskConstants[key] == val);
return key;
}
}
];
return inquirer_1.default.prompt(questions);
},
selectAddress: async (choiceList) => {
const questions = [
{
type: 'list',
name: 'address',
message: chalk_1.default.magenta('Which address do you want to use?'),
choices: [...choiceList],
filter: (val) => {
const address = val.split(' ')[1];
return address;
}
}
];
return inquirer_1.default.prompt(questions);
},
delegationFee: async () => {
const questions = [
{
type: 'input',
name: 'fee',
message: chalk_1.default.magenta('Enter delegation fee') +
' ' +
chalk_1.default.yellow('(E.g. 10)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
transactionId: async () => {
const questions = [
{
type: 'input',
name: 'id',
message: chalk_1.default.magenta('Enter Transaction Id') +
' ' +
chalk_1.default.yellow('(E.g. abc-txn)') +
chalk_1.default.magenta(':')
}
];
return inquirer_1.default.prompt(questions);
},
importTrxType: async () => {
const questions = [
{
type: 'list',
name: 'type',
message: chalk_1.default.magenta('Please select the destination chain to which you want to import your funds?'),
choices: ['P', 'C']
}
];
return inquirer_1.default.prompt(questions);
},
popBLSPublicKey: async () => {
const questions = [
{
type: 'input',
name: 'popBLSPublicKey',
message: chalk_1.default.magenta('Please enter the popBLSPublicKey:')
}
];
return inquirer_1.default.prompt(questions);
},
popBLSSignature: async () => {
const questions = [
{
type: 'input',
name: 'popBLSSignature',
message: chalk_1.default.magenta('Please enter the popBLSSignature:')
}
];
return inquirer_1.default.prompt(questions);
},
transferAddress: async () => {
const questions = [
{
type: 'input',
name: 'transferAddress',
message: chalk_1.default.magenta('Enter destination P-chain address:')
}
];
return inquirer_1.default.prompt(questions);
},
// wrap rewards when claiming staking rewards
wrapRewards: async () => {
const questions = [
{
type: 'list',
name: 'wrapRewards',
message: chalk_1.default.magenta('Should claimed rewards be wrapped?'),
choices: ['Yes', 'No'],
filter: (val) => {
return val == 'Yes' ? true : false;
}
}
];
return inquirer_1.default.prompt(questions);
},
// recipient address to receive claimed staking rewards
recipientAddress: async (defaultAddress) => {
const questions = [
{
type: 'input',
default: defaultAddress,
name: 'recipientAddress',
message: chalk_1.default.magenta('Please enter the recipient address (default address is reward owner):')
}
];
return inquirer_1.default.prompt(questions);
},
claimAmount: async () => {
const questions = [
{
type: 'input',
name: 'claimAmount',
message: chalk_1.default.magenta('Please enter the amount to claim:')
}
];
return inquirer_1.default.prompt(questions);
},
claimAllUnclaimed: async (totalUnclaimed, symbol) => {
const questions = [
{
type: 'list',
name: 'claimAllUnclaimed',
message: chalk_1.default.magenta(`Do you want to claim all unclaimed rewards?`, totalUnclaimed ? "(total unclaimed: " + totalUnclaimed + " " + symbol + ")" : ""),
choices: ['Yes', 'No'],
filter: (val) => {
return val == 'Yes' ? true : false;
}
}
];
return inquirer_1.default.prompt(questions);
}
};
//# sourceMappingURL=prompts.js.map