Gnosis libraries for Python Projects
Project description
- 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 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(),
])
gnosis.eth.constants
NULL_ADDRESS (0x000...0)
SENTINEL_ADDRESS (0x000...1)
Maximum an minimum values for R, S and V in ethereum signatures
gnosis.eth.oracles
Price oracles for Uniswap, UniswapV2, Kyber and SushiSwap. 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 utils
Now django-eth is part of this package, available under gnosis.eth.django You can find a set of helpers for working with Ethereum using Django and Django Rest framework.
It includes:
Basic serializers (signature, transaction)
Serializer fields (Ethereum address field, hexadecimal field)
Model fields (Ethereum address, Ethereum big integer field)
Utils for testing
Contributors
Denís Graña (denis@gnosis.pm)
Giacomo Licari (giacomo.licari@gnosis.pm)
Uxío Fuentefría (uxio@gnosis.pm)
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
Hashes for gnosis_py-2.8.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bfebf1241007df93296634b2a07da7fb37d8fd773cbd1e92247834036aea4760 |
|
MD5 | 9786cdb3f0b76c9dc3799d7941635b4d |
|
BLAKE2b-256 | 8f7bd243aa9def97c31a5e9d7487847841f6c53ab4e5a348ca2b5596317d7154 |