Skip to main content

Yodaplus libraries for Python Projects

Project description

Python 3.9 Django 2.2 Pypi package Documentation Status

Yodaplus-py, a fork of gnosis-py, includes a set of libraries to work with XDC and Yodaplus projects.
  • EthereumClient, a wrapper over Web3.py Web3 client including utilities to deal with ERC20/721 tokens and tracing.

  • Yplus Vault classes and utilities.

  • Django serializers, models and utils.

Quick start

Just run pip install yodaplus-py or add it to your requirements.txt

If you want django ethereum utils (models, serializers, filters…) you need to run pip install yodaplus-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.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.

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

yodaplus-py-0.9.1.tar.gz (541.7 kB view details)

Uploaded Source

Built Distribution

yodaplus_py-0.9.1-py3-none-any.whl (596.3 kB view details)

Uploaded Python 3

File details

Details for the file yodaplus-py-0.9.1.tar.gz.

File metadata

  • Download URL: yodaplus-py-0.9.1.tar.gz
  • Upload date:
  • Size: 541.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for yodaplus-py-0.9.1.tar.gz
Algorithm Hash digest
SHA256 5449f00680c09c38f7f7afff4ac19e9fdfd79458d7f6f032fd9386f0e341434c
MD5 8c6f093fee19561745578cce8e82daee
BLAKE2b-256 202616db00393bbbf965bfd9bf8a21456ea3cfde453ad71e78d2c51606a509fb

See more details on using hashes here.

File details

Details for the file yodaplus_py-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: yodaplus_py-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 596.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.10

File hashes

Hashes for yodaplus_py-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 742377d935e6b74cfb6bdd1c8d7629a23f258d10507edeb8bee874f8e944860c
MD5 e247ad2e5282bf0b80c7f633dce9dc0c
BLAKE2b-256 b2a0e6c07bf7b1ab8ce748d89610aad811d0f272733a48cfe8ce17585da7d8a4

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