Adapter for Retrieving Current APR
Task details
      POSTED
    
 
      Posted on Jan 4th, 2025
    
      STATUS
    
 
  Filled
      DURATION
    
  
    1 days
  
      VALUE
    
  
  $80.00
  
    per project
   
      LOCATION
    
  Remote
      TYPE
    
 
      One Time
    
      APPLICATIONS
    
 
  3
    Skills Required
  
 - Web Development
1. General Information
- Component Name: Adapter for Retrieving Current APR in the Aerodrome Project.
- Programming Language: Python.
- Purpose: To provide information on the current Annual Percentage Rate (APR) for a specified NFT position based on the emission of the AERO token through direct interaction with the smart contract.
2. Functional Requirements
- Input Parameters:- nft_position_id: A unique identifier for the NFT position for which the current APR is to be retrieved.
 
- Output Data:- An array containing:- nft_position_id: Identifier of the position.
- apr: Current APR in percentage for the specified position, derived from the emission of the AERO token.
 
 
- An array containing:
- Core Functions of the Adapter:- Establish a connection with the blockchain via RPC to interact with the Aerodrome smart contract.
- Retrieve position data directly from the smart contract.
- Calculate the current APR based on the retrieved data.
- Handle errors, including cases where data for the provided nft_position_id is unavailable.
 
- APR Calculation Methodology:- Obtain necessary data from the smart contract related to the AERO token emission for the specified position.
- Apply the APR calculation formula as provided by the Aerodrome project.
 
- Integration with Blockchain via RPC:- Utilize the web3.py library to establish an RPC connection with the blockchain.
- Specify the RPC node and the ABI of the corresponding smart contract.
 
3. Architectural Requirements
- Code Structure:- Modular design:- Module for establishing RPC connections and interacting with the smart contract.
- Module for processing and calculating APR.
- Module for handling input and output data.
 
- Logging of key operations and errors.
 
- Modular design:
- Documentation:- Comprehensive code documentation adhering to Python's docstring standards (e.g., Google Style).
 
- Testing:- Provide unit tests for all key functions.
- Tests should cover:- Accurate data retrieval from the smart contract.
- Error handling (e.g., invalid nft_position_id, connection issues).
- Correct APR calculation.
 
 
4. Development Stages
- Analysis and Design:- Clarify the methodology for retrieving position data and calculating APR with the Aerodrome team.
 
- Implementation:- Develop core modules and establish RPC connections.
 
- Testing:- Write and execute unit tests.
 
- Documentation:- Add a README file detailing installation, execution, and usage of the adapter.
 
- Deployment:- Prepare the final code for deployment.
 
5. Expected Outcome
A functional adapter that accepts nft_position_id as input and returns an array containing the nft_position_id and the current APR. The component should be ready for integration with other system modules.
6. Additional Requirements
- Document all external libraries used in a requirements.txt file.
- Employ Git for version control; the code should be hosted on GitHub.
- Ensure the code repository is accessible to the team.
Are you an employer? Post a similar job