Part 4: Transfer Wallet Balance Specification
Today, we will talk in detail, about the specification of transfer from customer wallet balance to other customer wallet.
As defined in the system features before, our application should provide a functionality for a customer to transfer his wallet balance to other customer wallets within the same currency, as well as to external blockchain addresses.
Before continuing, please consider to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building Crypto E-wallet Exchange System with Odoo regularly.
This is your one stop channel to become a full stack blockchain engineer, so stay tune.
Ok, now let's talk about the specification details.
First, we need a login system to enable registered Customer to login to his account. The username and password is the same as defined on Odoo user lists.
Then, we will build a front end dashboard user interface, to enable customer to see all his wallet and balance. The data is taken from Odoo backend.
On this dashboard, customer can see shortcut of all his favourite wallets and it's balances, as well as the list of crypto currency he is watching the price for, on the Your Watchlist section.
From this dashboard, he can also select the Market menu to see all coins supported by the system.
My Wallet menu is used to see all of the wallet he has in details.
And, News menu is used to read news related to crypto currency.
From this dashboard as well, he can select the favourite wallet which he want to Buy or Sell, Send (transfer or withdraw), and Receive (deposit), as well as the wallet's transaction history.
To transfer the wallet balance to another customer, he clicks the Send button. And, a transfer page will appear as follows.
In this page, Customer must enter the transfer destination address, either by pasting it from the clipboard, searching from his transfer contact, or scanning that address qr code.
When searching and selecting from the contact address, the list of his contact address will appear, where he can select one of them, add new contact, delete, or edit existing contact.
The address can be an internal Customer address, identified by email address or user ID, or an external blockchain address. If internal Customer address is selected, then no additional transfer fee is applied, as the money movement is just between one wallet to another internal wallet.
If it is an external blockchain address, then a transfer fee is applied, where the fee amount is depending on the blockchain network at that time of transfer, as we must submit the transaction into the blockchain network.
Next, enter the amount to transfer.
In this event, the system must check whether the sender wallet balance is available for this transfer amount.
If it is, then the Continue button is active, otherwise it remains inactive and a pop up message appear, informing the current wallet balance.
When the transfer transaction is confirmed by the customer, these procedure below is executed at the backend.
If it was an external blockchain address, then the system will execute a transfer transaction and submit it into the respective blockchain network. Then, wait for the transaction status to be successful.
Next, decrease the sender wallet for the transfer amount.
Finally, increase the receiver wallet for the transfer amount if the receiver is an internal Customer address.
If the destination address was an external blockchain network address, we just need to decrease the sender wallet balance once the blockchain transaction was successful.
So, those are the minimum feature specification for the transfer transaction management.
Don't forget to like, share, and subscribe our channel if you find it useful, as we will update the topics of Building Crypto E-wallet Exchange system with Odoo regularly.
Thanks for watching.