A liquidation bot for the voltz protocol to help the protocol utilise LPs funds and liquidate unhealthy positions
This project is a backend service only with no UI/UX. It involves 4 main components: account manager, risk engine, localstack dynamo db and sqs queue. Account manager is responsible for feeding dynamo db with position data fetched from The Graph. DynamoDB and SQS queue are implementations provided by localstack and used to hold the positions data and send notifications from account manager to the risk engine about the completion of the fetch. Risk engine is responsible for polling the queue and trying to liquidate positions on arrival of a message from account manager. Also a smart contract was written to keep rewards and make calls to/transact with the margin engine
This project uses localstack's DynamoDB to store data fetched from The Graph and SQS queue to notify risk engine about account manager's fetch completion. The risk engine and account manager are build in python utilising requests, boto3, botocore and web3.py libraries. Bot contract is written in solidity