Skip to main content

An extension of the legendary Ape Safe web3 package. Adding extra functions and making it protocol aware, saving time getting familiar with the source code of every individual smart contract.

Project description

brownie test

GreatApeSafe

This is an extension of the legendary Ape Safe, inheriting all the good stuff from ApeSafe, while adding some extra functions and making it protocol aware.

Instead of (re)writing protocol specific logic for every script, GreatApeSafe contains wrappers for each protocol's specific on-chain API. On top of that, all necessary addresses are hard-coded and loaded.

This prevents having to dive into documentation every time, either for figuring out the exact way to call the on-chain functions or finding deployed addresses.

For example, calling the AAVE lending pool's contract doesn't require any searching or address copypasting:

>>> safe.aave.pool.paused()
False

And making a deposit becomes as simple as:

safe.aave.deposit(usdc, usdc.balanceOf(safe))

Under the hood, the protocol class Aave solves what exact aToken we are dealing with, makes the necessary approval, calls the right functions and makes an on-fork assertion of successful execution:

class Aave():
    ...
    def deposit(self, underlying, mantissa, destination=None):
        # deposit `mantissa` amount of `underlying` into aave pool
        # https://docs.aave.com/developers/the-core-protocol/lendingpool#deposit
        destination = self.safe.address if not destination else destination
        atoken_addr = self.data.getReserveTokensAddresses(underlying)[0]
        atoken = self.safe.contract(atoken_addr)
        bal_before = atoken.balanceOf(destination)
        underlying.approve(self.pool, mantissa)
        self.pool.deposit(underlying, mantissa, destination, 0)
        assert atoken.balanceOf(destination) > bal_before

By no means complete, but included platforms currently are:

  • Aave
  • Compound
  • Convex
  • Curve

Installation

git clone git@github.com:gosuto-ai/great-ape-safe.git
pip install -r requirements-core.txt

And copy .env.example to .env and add your API keys to it if needed.

Running

brownie run example

Testing

brownie test

pngwing com

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

great_ape_safe-0.0.1.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

great_ape_safe-0.0.1-py2.py3-none-any.whl (22.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file great_ape_safe-0.0.1.tar.gz.

File metadata

  • Download URL: great_ape_safe-0.0.1.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.26.0

File hashes

Hashes for great_ape_safe-0.0.1.tar.gz
Algorithm Hash digest
SHA256 e0494fea8e3b30d9776200f7e7da928e3998deaf25d508bdeb0cdf86e741cef8
MD5 8447263090760fe3cb7df097675189f7
BLAKE2b-256 3b77751808051a34c4498e75bc405cf33146597b11d7c17f7153894938c9734c

See more details on using hashes here.

File details

Details for the file great_ape_safe-0.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for great_ape_safe-0.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 31f13e0915f036d4196d09f696dfd3ffb92e81d41fde222bd3c494f8998685d0
MD5 c92c67d63c783042446dc98056a499ef
BLAKE2b-256 f009c0ee4eb084584c2a195e6c6136eb7b42fed7ab645219d72684563a244d24

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page