This ledger is a work in progress.
This ledger is the backend system that manages GamePayy's platform balances and transactions. It utilizes MYSQl as the database through PlanetScale. It is written in Go and utilizes the Gin framework to handle HTTP requests and build the documentation. It utilizes Redis for caching. It exposes a REST API for the GamePayy platform to interact with.
A user can earn rewards by completing tasks. These tasks are called "Challenges". Each action has a set of requirements that must be met in order for the user to earn the reward. Each requirement has a specific metric and a value that must be reached. Rewards can also be earned by competing in tournaments and matches. These are mediated by the GamePayy platform through the usage of Toornament APIs. The GamePayy platform will send a request to the ledger to create a new tournament or match. The ledger will then create a new tournament or match in the database. The GamePayy platform will then create a new tournament or match in the Toornament database. The GamePayy platform will then receive a request from arbitrators to the ledger to update the tournament or match with the results. The ledger will then update the tournament or match in the database. The GamePayy platform will then update the tournament or match in the Toornament database.
[ ] Swagger Documentation [x] DB Connection optimizations [x] Pending withdrawls database [x] Pending withdrawls API [x] Merkletree insertion at pending withdrawls - done via TS to preserve same logic [ ] Pending root hashes to chain CRON job - done via TS to preserve same logic [ ] Diagrams [ ] Explanatory Gitbook [ ] Middleware [ ] API key generator