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
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0494fea8e3b30d9776200f7e7da928e3998deaf25d508bdeb0cdf86e741cef8 |
|
MD5 | 8447263090760fe3cb7df097675189f7 |
|
BLAKE2b-256 | 3b77751808051a34c4498e75bc405cf33146597b11d7c17f7153894938c9734c |
File details
Details for the file great_ape_safe-0.0.1-py2.py3-none-any.whl
.
File metadata
- Download URL: great_ape_safe-0.0.1-py2.py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.26.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31f13e0915f036d4196d09f696dfd3ffb92e81d41fde222bd3c494f8998685d0 |
|
MD5 | c92c67d63c783042446dc98056a499ef |
|
BLAKE2b-256 | f009c0ee4eb084584c2a195e6c6136eb7b42fed7ab645219d72684563a244d24 |