- Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects:
EthereumClient, a wrapper over Web3.py Web3 client including utilities to deal with ERC20/721 tokens and tracing.
Gnosis Safe classes and utilities.
Price oracles for Uniswap, Kyber…
Django serializers, models and utils.
Quick start
Just run pip install gnosis-py or add it to your requirements.txt
If you want django ethereum utils (models, serializers, filters…) you need to run pip install gnosis-py[django]
If you have issues building coincurve maybe you are missing some libraries
Ethereum utils
gnosis.eth
class EthereumClient (ethereum_node_url: str): Class to connect and do operations with a ethereum node. Uses web3 and raw rpc calls for things not supported in web3. Only http/https urls are suppored for the node url.
EthereumClient has some utils that improve a lot performance using Ethereum nodes, like the possibility of doing batch_calls (a single request making read-only calls to multiple contracts):
from gnosis.eth import EthereumClient
from gnosis.eth.contracts import get_erc721_contract
ethereum_client = EthereumClient(ETHEREUM_NODE_URL)
erc721_contract = get_erc721_contract(self.w3, token_address)
name, symbol = ethereum_client.batch_call([
erc721_contract.functions.name(),
erc721_contract.functions.symbol(),
])
If you want to use the underlying web3.py library:
from gnosis.eth import EthereumClient
ethereum_client = EthereumClient(ETHEREUM_NODE_URL)
ethereum_client.w3.eth.get_block(57)
gnosis.eth.constants
NULL_ADDRESS (0x000...0): Solidity address(0).
SENTINEL_ADDRESS (0x000...1): Used for Gnosis Safe’s linked lists (modules, owners…).
Maximum an minimum values for R, S and V in ethereum signatures.
gnosis.eth.oracles
Price oracles for Uniswap, UniswapV2, Kyber, SushiSwap, Aave, Balancer, Curve, Mooniswap, Yearn… Example:
from gnosis.eth import EthereumClient
from gnosis.eth.oracles import UniswapV2Oracle
ethereum_client = EthereumClient(ETHEREUM_NODE_URL)
uniswap_oracle = UniswapV2Oracle(ethereum_client)
gno_token_mainnet_address = '0x6810e776880C02933D47DB1b9fc05908e5386b96'
weth_token_mainnet_address = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
price = uniswap_oracle.get_price(gno_token_mainnet_address, uniswap_oracle.weth_address)
gnosis.eth.utils
Contains utils for ethereum operations:
get_eth_address_with_key() -> Tuple[str, bytes]: Returns a tuple of a valid public ethereum checksumed address with the private key.
generate_address_2(from_: Union[str, bytes], salt: Union[str, bytes], init_code: [str, bytes]) -> str: Calculates the address of a new contract created using the new CREATE2 opcode.
Ethereum django (REST) utils
Django utils are available under gnosis.eth.django. You can find a set of helpers for working with Ethereum using Django and Django Rest framework.
It includes:
gnosis.eth.django.filters: EthereumAddressFilter.
gnosis.eth.django.models: Model fields (Ethereum address, Ethereum big integer field).
gnosis.eth.django.serializers: Serializer fields (Ethereum address field, hexadecimal field).
gnosis.eth.django.validators: Ethereum related validators.
gnosis.safe.serializers: Serializers for Gnosis Safe (signature, transaction…).
All the tests are written using Django Test suite.
Contributors
Denís Graña (denis@gnosis.pm)
Giacomo Licari (giacomo.licari@gnosis.pm)
Uxío Fuentefría (uxio@gnosis.pm)
Metadata
Release files for gnosis-yodaplus-py 3.1.19
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| gnosis-yodaplus-py-3.1.19.tar.gz | 542.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| gnosis_yodaplus_py-3.1.19-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.1 MB
Release files / gnosis-yodaplus-py-3.1.19.tar.gz
| Download URL | gnosis-yodaplus-py-3.1.19.tar.gz |
|---|---|
| Size | 542.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02b89c2afd8f38b9f1fee72d1d84c96e5d8819d53a72de29f6ed44117ae359c1
|
|
BLAKE2b-256 checksum How to use checksums |
b4d0cb23485ab6eef765d4bdbbb458631a21725e99caaff0243233e56455fdd3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|
Release files / gnosis_yodaplus_py-3.1.19-py3-none-any.whl
| Download URL | gnosis_yodaplus_py-3.1.19-py3-none-any.whl |
|---|---|
| Size | 596.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cf12ca4af7600705c2ba30bd8fcf6643d8fcfb0d83ab1bd2a311c4484344674e
|
|
BLAKE2b-256 checksum How to use checksums |
c6a7250416177a2c68d57d5e775c6242ff9ef27f90811d96f6a6a00d00e809b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
|