void transfer(std::shared_ptr<WalletInfo> walletInfo) { std::cout << InformationMsg("Note: You can type cancel at any time to " "cancel the transaction") << std::endl << std::endl; uint64_t balance = walletInfo->wallet.getActualBalance(); auto maybeAddress = getDestinationAddress(); if (!maybeAddress.isJust) { std::cout << WarningMsg("Cancelling transaction.") << std::endl; return; } std::string address = maybeAddress.x; auto maybeAmount = getTransferAmount(); if (!maybeAmount.isJust) { std::cout << WarningMsg("Cancelling transaction.") << std::endl; return; } uint64_t amount = maybeAmount.x; if (balance < amount) { std::cout << WarningMsg("You don't have enough funds to cover this " "transaction!") << std::endl << InformationMsg("Funds needed: " + formatAmount(amount)) << std::endl << SuccessMsg("Funds available: " + formatAmount(balance)) << std::endl; return; } auto maybeFee = getFee(); if (!maybeFee.isJust) { std::cout << WarningMsg("Cancelling transaction.") << std::endl; return; } uint64_t fee = maybeFee.x; if (balance < amount + fee) { std::cout << WarningMsg("You don't have enough funds to cover this " "transaction!") << std::endl << InformationMsg("Funds needed: " + formatAmount(amount + fee)) << std::endl << SuccessMsg("Funds available: " + formatAmount(balance)) << std::endl; return; } auto maybeMixin = getMixin(); if (!maybeMixin.isJust) { std::cout << WarningMsg("Cancelling transaction.") << std::endl; return; } uint16_t mixin = maybeMixin.x; auto maybeExtra = getPaymentID(); if (!maybeExtra.isJust) { std::cout << WarningMsg("Cancelling transaction.") << std::endl; return; } std::string extra = maybeExtra.x; doTransfer(mixin, address, amount, fee, extra, walletInfo); }
void readConsole() { int a; char result[30]; if (status == 0) { printf("Ingrese Numero de Opcion:\n"); printf("1: Login\n"); printf("2: Registrarse\n"); printf("3: Cerrar\n"); scanf("%d", &a); if (a == 1) { printf( "Ingrese Usuario y Contraseña\nSeparados por ',' de la forma Usuario,Contraseña\n"); scanf("%30s", result); sendData(0, fillMessageData("login", "login", result), sizeof(Message)); getResponce(0); } else if (a == 2) { printf( "Ingrese Nombre, Usuario y Contraseña\nSeparados por ',' de la forma\nNombre,Usuario,Contraseña\n"); scanf("%30s", result); sendData(0, fillMessageData("login", "register", result), sizeof(Message)); getResponce(0); } else if( a == 3){ sendData(0, fillMessageData("client", "close", ""), sizeof(Message)); closeConnection(0); exit(0); } } else if (status == 1) { printf("Ingrese Numero de Opcion:\n"); printf("1: Enviar Email\n"); printf("2: Recibir Emails\n"); printf("3: Consultar Tarifacion\n"); printf("4: Log Out\n"); scanf("%d", &a); if (a == 1) { writeEmail(); } else if (a == 2) { grabNewEmails(); } else if( a == 3){ getFee(); } else if( a == 4){ logOut(); } } }