main.js 1.68 KB
Newer Older
XFT's avatar
XFT committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66

['config', 'crypto', 'sqlite', 'services', 'commands', 'cli'].forEach(i => require(`./controllers/${i}`));

const inquirer = require('inquirer');

const main = async () => {

    await sqlite.initialize();

    await cryptoController.loadFactories(); 
    if (process.argv.length > 3) commandlineController.execute(); 
    else mainMenu(); 
}

const mainMenu = async () => {

    let answers = await inquirer.prompt([{
        type: "list",
        name: "menu",    
        message: `
        XFT Anon CLI (Mainnet Edition)

        XFT Balance: ${parseInt(helpers.fromWei(cryptoController.account.balance))}

        \x1b[31m${serviceController.error}\x1b[0m
        
        Select an option:\n`,
        choices: [
            {
                value: 'c',
                name: "\tCONFIG",
                short: "\n\tEditing Config"
            },
            {
                value: 'd',
                name: "\tBURN XFT & CONVERT TO DEPOSIT NOTE",
                short: "\n\tMaking a Deposit"
            },
            {
                value: 'w',
                name: "\tBURN DEPOSIT NOTE & MINT ANON ASSET",
                short: "\n\tMaking a Withdrawal"
            },
            {
                value: 's',
                name: "\tSHIFT ANON ASSET TO XFT",
                short: "\n\tPerforming a Shift to XFT"
            },
            {
                value: 'b',
                name:'\tVIEW BALANCES',
                short: "\n\tViewing Token Balances"
            },
            {
                value: 'exit',
                name: "\tEXIT\n",
            }
        ]
    }])

    serviceController.error = "";
    await commandController[answers.menu]();
    mainMenu(); 
}

main();