Gnosis-py includes a set of libraries to work with Ethereum and Gnosis projects

Overview

Gnosis-py

Github Actions CI build Coveralls Python 3.9 Django 2.2 Pypi package Documentation Status

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

See contributors

Comments
  • estimate_tx_gas failing on xDai with AttributeError: 'str' object has no attribute 'keys'

    estimate_tx_gas failing on xDai with AttributeError: 'str' object has no attribute 'keys'

    Describe the bug

    The estimation of gas fees for Safe transactions fails on xDai with the following exception: AttributeError: 'str' object has no attribute 'keys'. This error is also occurring in the relayer breaking all estimates.

    To Reproduce

    Use the following code to reproduce:

    from gnosis.eth import EthereumClient
    from gnosis.safe import Safe
    
    ethereum_client = EthereumClient('https://xdai.poanetwork.dev')
    safe = Safe('0x9a0bbbbd3789f184CA88f2F6A40F42406cb842AC', ethereum_client)
    result = safe.estimate_tx_gas('0x333d72F54CF17BA7A1971e7C7E9acB91C8B709d2', 0, '0xa2e62045', 0)
    print(result)
    

    Executing this code throws the following exception:

    Traceback (most recent call last):
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/gnosis/safe/safe.py", line 436, in estimate_tx_gas_with_safe
        result: HexBytes = self.w3.eth.call(tx, block_identifier=block_identifier)
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/web3/module.py", line 58, in caller
        result = w3.manager.request_blocking(method_str, params, error_formatters)
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/web3/manager.py", line 158, in request_blocking
        raise ValueError(response["error"])
    ValueError: {'code': -32015, 'message': 'VM execution error.', 'data': 'revert: \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00??'}
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "test.py", line 14, in <module>
        result = safe.estimate_tx_gas('0x333d72F54CF17BA7A1971e7C7E9acB91C8B709d2', 0, '0xa2e62045', 0)
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/gnosis/safe/safe.py", line 521, in estimate_tx_gas
        return self.estimate_tx_gas_by_trying(to, value, data, operation) + PROXY_GAS + OLD_CALL_GAS
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/gnosis/safe/safe.py", line 490, in estimate_tx_gas_by_trying
        gas_estimated = self.estimate_tx_gas_with_safe(to, value, data, operation)
      File "/home/adz/.pyenv/versions/safe-estimate-issue/lib/python3.8/site-packages/gnosis/safe/safe.py", line 456, in estimate_tx_gas_with_safe
        key = list(data_dict.keys())[0]
    AttributeError: 'str' object has no attribute 'keys'
    

    Expected behavior

    The revert is happening as expected but seems to be not parseable in the catch phrase. I assume that the revert message looks slightly different on xDai than on mainnet?

    Some more observations

    • The code in gnosis-py checks for an capitalized "Reverted ..." data message, the xdai response is lowercase and "revert: ..."? https://github.com/gnosis/gnosis-py/blob/master/gnosis/safe/safe.py#L451
    • The returned bytecode in data contains invalid values (here it is ??).
    bug 
    opened by adzialocha 18
  • Fix memory leak cache for get_contract

    Fix memory leak cache for get_contract

    closes #322

    • define maxsize to 1024*100 (Would be enough?)
    • add cachetools to requirements
    • replaces @cache with @cached defining that the key to storage the cache is the safe_address
    • add a test to check that currsize have correct values
    • cache maxsize defined in environment var
    opened by moisses89 15
  • setup_service.py is not finding EthereumNetwork.VELAS_MAINNET  on gnosis-py

    setup_service.py is not finding EthereumNetwork.VELAS_MAINNET on gnosis-py

    What is needed?

    I request to add Velas network on gnosys-py on this PR: https://github.com/gnosis/gnosis-py/pull/220

    Background

    I'm using an instance of transaction service here: https://transaction.staging.velasafe.com/ repo: https://github.com/protofire/velas-transaction-service branch: staging

    Related issues

    When I try to setup the transaction service, the service worker is not running ok due this error:

    Traceback (most recent call last): File "/app/manage.py", line 30, in execute_from_command_line(sys.argv) File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 419, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 257, in fetch_command klass = load_command_class(app_name, subcommand) File "/usr/local/lib/python3.10/site-packages/django/core/management/init.py", line 39, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "/usr/local/lib/python3.10/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1050, in _gcd_import File "", line 1027, in _find_and_load File "", line 1006, in _find_and_load_unlocked File "", line 688, in _load_unlocked File "", line 883, in exec_module File "", line 241, in _call_with_frames_removed File "/app/safe_transaction_service/history/management/commands/setup_service.py", line 217, in EthereumNetwork.VELAS_MAINNET: [ File "/usr/local/lib/python3.10/enum.py", line 437, in getattr raise AttributeError(name) from None AttributeError: VELAS_MAINNET. Did you mean: 'EVMOS_MAINNET'?

    I've the last version of gnosis-py (3.9.2)with the Velas network added there, but it appears that setup_service.py is not finding the correct network, and because of that I can't update the master copies and proxy factory addresses. Do I have to update gnosis-py on other dependency? Thank you.

    CC: @Uxio0

    enhancement 
    opened by datradito 14
  • Fix threshold test in Safe.create()

    Fix threshold test in Safe.create()

    Safe.create() currently asserts that the threshold is equal or greater than the list of owners, which is nonsensical. The Safe threshold can be any number of signers, logically up to the maximum number defined.

    opened by DefiDebauchery 10
  • Feat: Add Superfluid Oracle token adapter

    Feat: Add Superfluid Oracle token adapter

    As a continuation from here: https://github.com/safe-global/safe-transaction-service/issues/772#issuecomment-1087463359

    This work contributes towards adding a price data for Superfluid Super Tokens with the price data of their underlying tokens. This PR adds the Superfluid Oracle token adapter and related test.

    Related Issue: https://github.com/safe-global/safe-transaction-service/issues/772

    Original issue: https://github.com/superfluid-finance/protocol-monorepo/issues/732

    opened by brymut 7
  • Bump web3 from 5.19.0 to 5.23.0

    Bump web3 from 5.19.0 to 5.23.0

    Bumps web3 from 5.19.0 to 5.21.0.

    Changelog

    Sourced from web3's changelog.

    v5.21.0 (2021-07-12)

    Web3 5.21.0 (2021-07-12)

    Features

    
    - Adds support for EIP 1559 transaction keys: `maxFeePerGas` and `maxPriorityFeePerGas` (`[#2060](https://github.com/ethereum/web3.py/issues/2060) <https://github.com/ethereum/web3.py/issues/2060>`__)
    

    Bugfixes

    • Bugfix where an error response got passed to a function expecting a block identifier.

      Split out null result formatters from the error formatters and added some tests. ([#2022](https://github.com/ethereum/web3.py/issues/2022) <https://github.com/ethereum/web3.py/issues/2022>__)

    • Fix broken tests and use the new 1559 params for most of our test transactions. ([#2053](https://github.com/ethereum/web3.py/issues/2053) <https://github.com/ethereum/web3.py/issues/2053>__)

    • Set a default maxFeePerGas value consistent with Geth ([#2055](https://github.com/ethereum/web3.py/issues/2055) <https://github.com/ethereum/web3.py/issues/2055>__)

    • Fix bug in geth PoA middleware where a None response should throw a BlockNotFound error, but was instead throwing an AttributeError ([#2064](https://github.com/ethereum/web3.py/issues/2064) <https://github.com/ethereum/web3.py/issues/2064>__)

    Improved Documentation

    
    - Added general documentation on unit and integration testing and how to contribute to our test suite. (`[#2053](https://github.com/ethereum/web3.py/issues/2053) <https://github.com/ethereum/web3.py/issues/2053>`__)
    

    v5.20.1 (2021-07-01)

    Web3 5.20.1 (2021-07-01)

    Bugfixes

    
    - Have the geth dev IPC auto connection check for the ``WEB3_PROVIDER_URI`` environment variable. (`[#2023](https://github.com/ethereum/web3.py/issues/2023) &lt;https://github.com/ethereum/web3.py/issues/2023&gt;`__)
    

    Improved Documentation </code></pre> <ul> <li>Remove reference to allowing multiple providers in docs (<code>#2018 &lt;https://github.com/ethereum/web3.py/issues/2018&gt;</code>)</li> <li>Update &quot;Contract Deployment Example&quot; docs to use <code>py-solc-x</code> as <code>solc</code> is no longer maintained. (<code>#2020 &lt;https://github.com/ethereum/web3.py/issues/2020&gt;</code>)</li> <li>Detail using unreleased Geth builds in CI (<code>#2037 &lt;https://github.com/ethereum/web3.py/issues/2037&gt;</code>)</li> <li>Clarify that a missing trie node error could occur when using <code>block_identifier</code> with <code>.call()</code> on a node that isn't running in archive mode (<code>#2048 &lt;https://github.com/ethereum/web3.py/issues/2048&gt;</code>)</li> </ul> <p>Misc</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary>

    <ul> <li><a href="https://github.com/ethereum/web3.py/commit/e2cd3a48f945d0d586fdc3ad232446fc40b1f41b"><code>e2cd3a4</code></a> Bump version: 5.20.1 → 5.21.0</li> <li><a href="https://github.com/ethereum/web3.py/commit/54d2097ac011e04ce15410f64f8910dab38f8314"><code>54d2097</code></a> Compile release notes</li> <li><a href="https://github.com/ethereum/web3.py/commit/b963ab201cd3543506c4e309caf3433cf43a9727"><code>b963ab2</code></a> Removed a news fragment that is no longer relevant.</li> <li><a href="https://github.com/ethereum/web3.py/commit/240e5665a052ee46b46137798fa56f4571622c79"><code>240e566</code></a> Split out null result formatters from error formatters, (<a href="https://github-redirect.dependabot.com/ethereum/web3.py/issues/2022">#2022</a>)</li> <li><a href="https://github.com/ethereum/web3.py/commit/2d89615527f820b947924c9e4e554ac4f71acc87"><code>2d89615</code></a> london / EIP-1559 support for modify_transaction and updated docs.</li> <li><a href="https://github.com/ethereum/web3.py/commit/a74245b417392a5bbb0d9d206b336932c1ce6e51"><code>a74245b</code></a> Clean up some older london setup. Turned a test back on.</li> <li><a href="https://github.com/ethereum/web3.py/commit/01c15f4ade2169f1d0cfd9c18305253e9325ab7a"><code>01c15f4</code></a> async support for London changes.</li> <li><a href="https://github.com/ethereum/web3.py/commit/a32cc1540440a975631c19336dedfce2bc1a0ebd"><code>a32cc15</code></a> Fixed some tests and turned some tests back on.</li> <li><a href="https://github.com/ethereum/web3.py/commit/d428d63294f12f6d2182359221f0cb5fe5c7292a"><code>d428d63</code></a> Fix failing tests and use 1559 defaults for test params</li> <li><a href="https://github.com/ethereum/web3.py/commit/7201d18f389c2eb10a930b2dc3022fb98d84f2cc"><code>7201d18</code></a> Added the de-compiled math contract code so that it is available for debuggin...</li> <li>Additional commits viewable in <a href="https://github.com/ethereum/web3.py/compare/v5.19.0...v5.21.0">compare view</a></li> </ul> </details>

    <br />

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 7
  • SafeTx excute: Fail with error 'GS001'

    SafeTx excute: Fail with error 'GS001'

    Describe the bug I built the SafeTx object locally, multi-signed and executed, but I have a problem with the tx. the tx hash is here.

    To Reproduce Steps to reproduce the behavior: execute function "send_multiSig_transaction"

    Expected behavior The query result is a successful hash.

    Additional context python==3.8.5 safe-eth-py==4.1.0

    code:

    
    from eth_typing import URI
    from gnosis.eth import EthereumClient
    from gnosis.safe.safe_tx import SafeTx
    
    def send_multiSig_transaction():
        eth_client = EthereumClient(ethereum_node_url=URI('https://rinkeby.infura.io/v3/60b1533909b84f0e8ac61adbf44f2e38'))
        safe_tx = SafeTx(
            ethereum_client=eth_client,
            safe_address='0xC6bB445360B5122F4ED52F5CF206ff6388201573',
            to='0xf385FFD916ab0fB2DAd83e613d20970515f4844B',
            value=0,  
     data=b'0xa9059cbb0000000000000000000000001ab96c8568c5226efcb95ac5e5437f3ec48ade620000000000000000000000000000000000000000000000000000000000000001',
            operation=0,
            safe_tx_gas=200000,
            base_gas=21000,
            gas_price=1200000000,
            gas_token='0x0000000000000000000000000000000000000000',
            refund_receiver='0x0000000000000000000000000000000000000000',
            # signatures=b'',
            # safe_nonce=0,
            # safe_version='',
            # chain_id=4
    
        )
        # owner1
        safe_tx.sign('owner1 secret')
        # owner2
        safe_tx.sign('owner2 secret')
        data = safe_tx.execute(tx_sender_private_key='owner2 secret',
                               tx_gas_price=2000000000, tx_gas=200000)
        return data
    
    bug 
    opened by zaneran9 6
  • safe retrieval fails on nethermind

    safe retrieval fails on nethermind

    The implementation of retrieve_all_info makes an Eth RPC call to specific functions to get nonce, threshold, owners, etc.

    To do this it provides the safe address as the 'from'. This is not accepted on the Nethermind Eth client.

    To reproduce:

    Here is an example of posting a call to VERSION() on the Rinkeby network:

    nethermind> node.switch('https://rinkeby.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161')                                                                                           
    nethermind>  eth.call({"to": "0xe8b541b0E9a3981E3aC0e324B987940c4eF4069B", "data": "0xffa1ad74", "from": "0xe8b541b0E9a3981E3aC0e324B987940c4eF4069B"}, "latest")                  
    "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005312e332e30000000000000000000000000000000000000000000000000000000"
    

    '312e332e30' is ASCII for "1.3.0", the contract version.

    Trying the same kind of call against a Nethermind client is rejected (see source, line 191) however it works fine when provided any other kind of address, even 0x0.

    nethermind> node.switch('https://rpc.testnet.shyft.network/')
    nethermind> eth.call({"to": "0xc5847FcB4A4270DC77800a1487Ce29cB9922bD41", "data": "0xffa1ad74", "from": "0xc5847FcB4A4270DC77800a1487Ce29cB9922bD41"}, "latest")                   
    VM execution error. | sender has deployed code
    
    nethermind> eth.call({"to": "0xc5847FcB4A4270DC77800a1487Ce29cB9922bD41", "data": "0xffa1ad74", "from": "0x0000000000000000000000000000000000000000"}, "latest")                   
    "0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000005312e332e30000000000000000000000000000000000000000000000000000000"
    
    bug 
    opened by svanegmond 6
  • add ethereumpow and ethereumfair

    add ethereumpow and ethereumfair

    Network Name: Ethereum Pow New RPC URL: https://mainnet.ethereumpow.org/ Chain ID: 10001 Currency Symbol (Optional): ETHW Block Explorer URL: https://www.oklink.com/en/ethw/

    Network Name: Ethereum Fair New RPC URL: https://rpc.etherfair.org/ Chain ID: 513100 Currency Symbol (Optional): ETF Block Explorer URL: https://explorer.etherfair.org/

    opened by benjamintshi 5
  • Introduce method `SafeTx.api_post_data`

    Introduce method `SafeTx.api_post_data`

    Currently, in order to post Safe transactions to the web interface (with this project as a dependency), we have to manually construct the post_data dictionary out of all the fields already contained in safe_tx. Since a SafeTx already contains the relevant info to build the post_data, it would be nice if there were some exposed method that would return the required format.

    For example, the content of this method (taken from safe-cli) which constructs the post data would be nice to include here in this project:

    https://github.com/5afe/safe-cli/blob/7a70a18c36b163ee91d5c763208ba1b1c9571317/safe_cli/api/transaction_service_api.py#L198-L222

    enhancement 
    opened by bh2smith 5
  • Adding Velas network mainnet&testnet support

    Adding Velas network mainnet&testnet support

    opened by datradito 5
  • Bump django from 4.1.4 to 4.1.5

    Bump django from 4.1.4 to 4.1.5

    Bumps django from 4.1.4 to 4.1.5.

    Commits
    • eba81c8 [4.1.x] Bumped version for 4.1.5 release.
    • 7bcf84d [4.1.x] Added release date for 4.1.5.
    • a9ed890 [4.1.x] Disabled auto-created table of contents entries on Sphinx 5.2+.
    • 46b28bb [4.1.x] Updated translations from Transifex.
    • f92ecd5 [4.1.x] Refs DEP 12 -- Renamed TB to Steering Council wherever mentioned.
    • 78bb8f9 [4.1.x] Fixed typo in docs/topics/async.txt.
    • 54bdc99 [4.1.x] Fixed typo in docs/topics/http/sessions.txt.
    • 2d15678 [4.1.x] Fixed #34213 -- Updated PostgreSQL package names in installing PostGI...
    • 1106c99 [4.1.x] Removed KyngChaos packages from docs.
    • af3cfc8 [4.1.x] Fixed #34205 -- Fixed Meta.constraints validation crash with ArrayFie...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump coverage from 6.5.0 to 7.0.4

    Bump coverage from 6.5.0 to 7.0.4

    Bumps coverage from 6.5.0 to 7.0.4.

    Changelog

    Sourced from coverage's changelog.

    Version 7.0.4 — 2023-01-07

    • Performance: an internal cache of file names was accidentally disabled, resulting in sometimes drastic reductions in performance. This is now fixed, closing issue 1527_. Thanks to Ivan Ciuvalschii for the reproducible test case.

    .. _issue 1527: nedbat/coveragepy#1527

    .. _changes_7-0-3:

    Version 7.0.3 — 2023-01-03

    • Fix: when using pytest-cov or pytest-xdist, or perhaps both, the combining step could fail with assert row is not None using 7.0.2. This was due to a race condition that has always been possible and is still possible. In 7.0.1 and before, the error was silently swallowed by the combining code. Now it will produce a message "Couldn't combine data file" and ignore the data file as it used to do before 7.0.2. Closes issue 1522_.

    .. _issue 1522: nedbat/coveragepy#1522

    .. _changes_7-0-2:

    Version 7.0.2 — 2023-01-02

    • Fix: when using the [run] relative_files = True setting, a relative [paths] pattern was still being made absolute. This is now fixed, closing issue 1519_.

    • Fix: if Python doesn't provide tomllib, then TOML configuration files can only be read if coverage.py is installed with the [toml] extra. Coverage.py will raise an error if TOML support is not installed when it sees your settings are in a .toml file. But it didn't understand that [tools.coverage] was a valid section header, so the error wasn't reported if you used that header, and settings were silently ignored. This is now fixed, closing issue 1516_.

    • Fix: adjusted how decorators are traced on PyPy 7.3.10, fixing issue 1515_.

    • Fix: the coverage lcov report did not properly implement the --fail-under=MIN option. This has been fixed.

    • Refactor: added many type annotations, including a number of refactorings. This should not affect outward behavior, but they were a bit invasive in some

    ... (truncated)

    Commits
    • f4c27c7 docs: sample html report for 7.0.4
    • 2b95dba docs: prep for 7.0.4
    • 61ccfb8 test(benchmark): more reasonable numeric displays
    • 2fa45d6 refactor(benchmark): move benchmark.py to its own directory
    • 4d6ac8b test(perf): randomize the order of benchmark runs
    • 405fae8 build: add .git-blame-ignore-revs
    • 9554e50 style(perf): blacken lab/benchmark.py
    • dc4f0c1 test(perf): more experiments for #1527
    • b3b05bd perf: the file mapping cache was off by mistake. #1527
    • d00f1dd mypy: debug.py
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • eip712_encode_hash encode string bytes and string uint256

    eip712_encode_hash encode string bytes and string uint256

    What is needed?

    String bytes feature

    I would like that eip712_encode_hash encode string bytes also like the following example: "Message": [ {"name": "oneByte", "type": "bytes1"} ] "message": {"oneByte": "0x01"}

    Currently this is not possible because eip712_encode_hash is using eth_abi that expects python bytes.

    String uint256 feature

    I would like that eip712_encode_hash encode string uint also like the following example: "Message": [ {"name": "stringNum", "type": "uint256"} ] "message": {"stringNum": "1234"}

    Possible solution

    Check in _encode_field(name, typ, value) if is bytes type the value is an instance of str and in that case convert to bytes bytes.fromhex(string). Similar solution for uint but converting it from string to python int.

    Related issues

    enhancement 
    opened by moisses89 0
  • DomainSeparator is wrong calculated for version < 1.3.0

    DomainSeparator is wrong calculated for version < 1.3.0

    Describe the bug For versions < v1.3.0 the chainId is not included in the domainseparator. domainSeparator = keccak256(abi.encode(DOMAIN_SEPARATOR_TYPEHASH, this));

    Expected behavior DomainSeparator function should return correct hash for old versions.

    bug 
    opened by moisses89 0
  • Bump py-evm from 0.5.0a3 to 0.6.1a2

    Bump py-evm from 0.5.0a3 to 0.6.1a2

    Bumps py-evm from 0.5.0a3 to 0.6.1a2.

    Changelog

    Sourced from py-evm's changelog.

    Release notes

    .. towncrier release notes start

    py-evm 0.6.1-alpha.2 (2022-12-16)

    Miscellaneous internal changes

    
    - `[#2090](https://github.com/ethereum/py-evm/issues/2090) <https://github.com/ethereum/py-evm/issues/2090>`__
    

    py-evm 0.6.1-alpha.1 (2022-11-14)

    Features

    
    - Support for the ``paris`` fork a.k.a. &quot;the merge&quot;. (`[#2080](https://github.com/ethereum/py-evm/issues/2080) &lt;https://github.com/ethereum/py-evm/issues/2080&gt;`__)
    

    Bugfixes

    • Use the DIFFICULTY_MINIMUM more appropriately as the lower limit in all difficulty calculations. ([#2084](https://github.com/ethereum/py-evm/issues/2084) &lt;https://github.com/ethereum/py-evm/issues/2084&gt;__)

    Internal Changes - for Contributors

    • Update towncrier version to remove double headers. ([#2077](https://github.com/ethereum/py-evm/issues/2077) <https://github.com/ethereum/py-evm/issues/2077>__)
    • Update openssl config on circleci builds to re-introduce ripemd160 function by default. ([#2087](https://github.com/ethereum/py-evm/issues/2087) <https://github.com/ethereum/py-evm/issues/2087>__)

    Miscellaneous internal changes

    
    - `[#2078](https://github.com/ethereum/py-evm/issues/2078) <https://github.com/ethereum/py-evm/issues/2078>`__, `[#2082](https://github.com/ethereum/py-evm/issues/2082) <https://github.com/ethereum/py-evm/issues/2082>`__, `[#2085](https://github.com/ethereum/py-evm/issues/2085) <https://github.com/ethereum/py-evm/issues/2085>`__
    

    py-evm 0.6.0-alpha.1 (2022-08-22)

    Features

    
    - Gray glacier support without ``Merge`` transition since ``Merge`` is not yet supported (`[#2072](https://github.com/ethereum/py-evm/issues/2072) &lt;https://github.com/ethereum/py-evm/issues/2072&gt;`__)
    

    &lt;/tr&gt;&lt;/table&gt; </code></pre> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary>

    <ul> <li><a href="https://github.com/ethereum/py-evm/commit/0e5cae5ae82ea1a960a18db4c26833ec2512fdb2"><code>0e5cae5</code></a> Bump version: 0.6.1-alpha.1 → 0.6.1-alpha.2</li> <li><a href="https://github.com/ethereum/py-evm/commit/6c965954ac6fcc1da3e8c757e8618f1963c7e2cd"><code>6c96595</code></a> Compile release notes</li> <li><a href="https://github.com/ethereum/py-evm/commit/5388f0a17c3042cd039ce6379ff6136195f2dc28"><code>5388f0a</code></a> Remove upper pin on eth-bloom, minor updates to get tox running (<a href="https://github-redirect.dependabot.com/ethereum/py-evm/issues/2090">#2090</a>)</li> <li><a href="https://github.com/ethereum/py-evm/commit/2e44b8a7c71d1ed67cd3a95320f0612dfb76307d"><code>2e44b8a</code></a> Bump version: 0.6.0-alpha.1 → 0.6.1-alpha.1</li> <li><a href="https://github.com/ethereum/py-evm/commit/0d701efabff7562daf067057098269fbcf86ec61"><code>0d701ef</code></a> Compile release notes</li> <li><a href="https://github.com/ethereum/py-evm/commit/40b98811d8cc3f5c8f8f9ddc96dc345b39e2a6b3"><code>40b9881</code></a> Add a <code>max_length</code> of <code>0</code> for uncles in a Paris block</li> <li><a href="https://github.com/ethereum/py-evm/commit/445d1d0de0bb018ec89b63e6926b8562f7f79efc"><code>445d1d0</code></a> Address comments I made on PR <a href="https://github-redirect.dependabot.com/ethereum/py-evm/issues/2080">#2080</a></li> <li><a href="https://github.com/ethereum/py-evm/commit/6feb4333cbf233f44c02831913ec17659094cf3a"><code>6feb433</code></a> Better clarify some EIP-161 nuances.</li> <li><a href="https://github.com/ethereum/py-evm/commit/655719f9d216b6666d33229c27019fc5a00ac484"><code>655719f</code></a> Turn on ArrowGlacier to Merge transition tests</li> <li><a href="https://github.com/ethereum/py-evm/commit/7319a024a497f54c0ec4cb3b3fdea43a33017860"><code>7319a02</code></a> Turn on more tests + use PosConsensus for ParisVM</li> <li>Additional commits viewable in <a href="https://github.com/ethereum/py-evm/compare/v0.5.0-alpha.3...v0.6.1-alpha.2">compare view</a></li> </ul> </details>

    <br />

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
Releases(v4.8.2)
  • v4.8.2(Dec 15, 2022)

    What's Changed

    • Fix gnosis chain tx service url by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/414

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.8.1...v4.8.2

    Source code(tar.gz)
    Source code(zip)
  • v4.8.1(Dec 13, 2022)

    What's Changed

    • Add Arbitrum Goerli and Nova explorers by @gzeoneth in https://github.com/safe-global/safe-eth-py/pull/409
    • Increase web3 gas estimation offset by @JacqueGM in https://github.com/safe-global/safe-eth-py/pull/411
    • Bump web3 from 5.31.1 to 5.31.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/412
    • Bump pytest from 7.1.3 to 7.2.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/389
    • Set version 4.8.1 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/413

    New Contributors

    • @JacqueGM made their first contribution in https://github.com/safe-global/safe-eth-py/pull/411

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.8.0...v4.8.1

    Source code(tar.gz)
    Source code(zip)
  • v4.8.0(Dec 7, 2022)

    What's Changed

    • Bump faker from 15.1.1 to 15.3.2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/402
    • Bump faker from 15.3.2 to 15.3.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/403
    • Bump pytest-sugar from 0.9.5 to 0.9.6 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/393
    • Bump faker from 15.3.3 to 15.3.4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/405
    • Bump pytest-rerunfailures from 10.2 to 10.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/404
    • Bump django from 3.2.16 to 4.1.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/392
    • Add Arbitrum Goerli 421613 by @gzeoneth in https://github.com/safe-global/safe-eth-py/pull/406
    • Bump django from 4.1.3 to 4.1.4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/407
    • Set version 4.8.0 by @moisses89 in https://github.com/safe-global/safe-eth-py/pull/408

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.7.1...v4.8.0

    Source code(tar.gz)
    Source code(zip)
  • v4.7.1(Nov 17, 2022)

    What's Changed

    • Cache precommit on Github actions by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/395
    • Overwrite value to string for keccak256field by @moisses89 in https://github.com/safe-global/safe-eth-py/pull/399
    • Set version 4.7.1 by @moisses89 in https://github.com/safe-global/safe-eth-py/pull/400

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.7.0...v4.7.1

    Source code(tar.gz)
    Source code(zip)
  • v4.7.0(Nov 9, 2022)

    What's Changed

    • Deprecate python 3.7 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/391
    • Stop using eip712_structs by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/394
    • Capture EIP712 exceptions by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/397
    • Set version 4.7.0 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/396

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.6.0...v4.7.0

    Source code(tar.gz)
    Source code(zip)
  • v4.6.0(Oct 31, 2022)

    What's Changed

    • Bump faker from 15.0.0 to 15.1.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/378
    • Add milkomeda a1 mainnet in list of chains by @pkakelas in https://github.com/safe-global/safe-eth-py/pull/380
    • Add metis goerli testnet by @t0mcr8se in https://github.com/safe-global/safe-eth-py/pull/379
    • Feat: Add Superfluid Oracle token adapter by @brymut in https://github.com/safe-global/safe-eth-py/pull/381
    • Bump Django by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/382
    • Use Goerli instead of Rinkeby for Cowswap tests by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/385
    • Update tx service urls gnosis.io -> safe.global by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/384
    • Fix tests by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/386
    • Add BOBA_AVAX_L2 network by @dirtycajunrice in https://github.com/safe-global/safe-eth-py/pull/368
    • Add PublicMint mainNet and testNet by @rafaeltorres-seegno in https://github.com/safe-global/safe-eth-py/pull/377
    • Bump psycopg2-binary from 2.9.4 to 2.9.5 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/390
    • Fix superfluid oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/388
    • Implement Safe EIP1271 message signing by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/383
    • Set version 4.6.0 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/387

    New Contributors

    • @t0mcr8se made their first contribution in https://github.com/safe-global/safe-eth-py/pull/379
    • @brymut made their first contribution in https://github.com/safe-global/safe-eth-py/pull/381
    • @dirtycajunrice made their first contribution in https://github.com/safe-global/safe-eth-py/pull/368
    • @rafaeltorres-seegno made their first contribution in https://github.com/safe-global/safe-eth-py/pull/377

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.5.2...v4.6.0

    Source code(tar.gz)
    Source code(zip)
  • v4.5.2(Oct 11, 2022)

    What's Changed

    • Bump faker from 14.2.0 to 15.0.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/364
    • Bump web3 from 5.31.0 to 5.31.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/371
    • Bump coverage from 6.4.4 to 6.5.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/363
    • Bump psycopg2-binary from 2.9.3 to 2.9.4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/373
    • Check liquidity for tokens in UniswapV3 oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/367
    • Add kcc mainnet and testnet by @mhxw in https://github.com/safe-global/safe-eth-py/pull/374
    • Added Rabbit Network by @amankumarp in https://github.com/safe-global/safe-eth-py/pull/375
    • Set version 4.5.2 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/376

    New Contributors

    • @mhxw made their first contribution in https://github.com/safe-global/safe-eth-py/pull/374
    • @amankumarp made their first contribution in https://github.com/safe-global/safe-eth-py/pull/375

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.5.1...v4.5.2

    Source code(tar.gz)
    Source code(zip)
  • v4.5.1(Sep 28, 2022)

    What's Changed

    • Bump djangorestframework from 3.13.1 to 3.14.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/360
    • Bump web3 from 5.30.0 to 5.31.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/359
    • Add Bobabeam Mainnet by @datradito in https://github.com/safe-global/safe-eth-py/pull/362
    • Check liquidity for Uniswap V3 oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/361

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.5.0...v4.5.1

    Source code(tar.gz)
    Source code(zip)
  • v4.5.0(Sep 23, 2022)

    What's Changed

    • Add Uniswap V3 Oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/342
    • Cache get_decimals for every oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/345
    • feat: register cronos etherscan urls by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/349
    • Bump faker from 14.1.0 to 14.2.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/348
    • Support other networks than Mainnet for Sushiswap by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/344
    • Bump pytest from 7.1.2 to 7.1.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/347
    • feat: register astar blockscout url by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/351
    • Add Cowswap oracle by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/353
    • feat: register acala, karura, and mandala etherscan urls by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/352
    • feat: register moonbeam, moonriver, and moonbase etherscan urls by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/350
    • feat: register evmos blockscout urls by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/355
    • Add method to check if Oracle is available for network by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/356
    • Migrate setup.py to setup.cfg by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/357

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.4.0...v4.5.0

    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Aug 25, 2022)

    What's Changed

    • Fix validation error for EthereumAddressField serializer by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/316
    • Add support for Multisend call only by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/314
    • Bump coverage from 6.4.2 to 6.4.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/321
    • Bump hexbytes from 0.2.2 to 0.2.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/326
    • Add Arbitrum Nova 42170 by @gzeoneth in https://github.com/safe-global/safe-eth-py/pull/328
    • Bump faker from 13.15.1 to 14.0.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/327
    • Bump Django from 3.2.14 to 3.2.15 by @moisses89 in https://github.com/safe-global/safe-eth-py/pull/329
    • Bump cla-assistant/github-action from 2.2.0 to 2.2.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/319
    • Bump faker from 14.0.0 to 14.1.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/332
    • Add Milkomeda Algorand testnet by @pkakelas in https://github.com/safe-global/safe-eth-py/pull/318
    • Bump coverage from 6.4.3 to 6.4.4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/330
    • Fix cache memory leaks by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/339
    • Set version 4.4.0 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/340

    New Contributors

    • @gzeoneth made their first contribution in https://github.com/safe-global/safe-eth-py/pull/328
    • @moisses89 made their first contribution in https://github.com/safe-global/safe-eth-py/pull/329
    • @pkakelas made their first contribution in https://github.com/safe-global/safe-eth-py/pull/318

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.3.2...v4.4.0

    Source code(tar.gz)
    Source code(zip)
  • v4.3.2(Aug 4, 2022)

    What's Changed

    • Set version 4.3.2 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/315

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.3.1...v4.3.2

    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Aug 1, 2022)

    What's Changed

    • Bump cla-assistant/github-action from 2.1.3.pre.beta to 2.2.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/311
    • Bump faker from 13.15.0 to 13.15.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/312
    • Return tx-hash as part of SafeTx in SafeTxApi by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/309
    • Fix None values for HexField by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/313
    • Add missing EthereumNetworks by @hectorgomezv in https://github.com/safe-global/safe-eth-py/pull/310

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.3.0...v4.3.1

    Source code(tar.gz)
    Source code(zip)
  • v4.3.0(Jul 22, 2022)

    What's Changed

    • Parse SafeTx numeric parameters to int by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/288
    • Add classes to interact with Safe APIs by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/292
    • Bump coverage from 6.4.1 to 6.4.2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/305
    • Add a Django Form Field for Hexadecimals by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/291
    • Update precommit by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/304
    • add klaytn mainnet cypress and testnet baobab by @toniya-klaytn in https://github.com/safe-global/safe-eth-py/pull/306
    • Set version 4.3.0 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/307

    New Contributors

    • @toniya-klaytn made their first contribution in https://github.com/safe-global/safe-eth-py/pull/306

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.2.0...v4.3.0

    Source code(tar.gz)
    Source code(zip)
  • v4.2.0(Jul 13, 2022)

    What's Changed

    • Bump pytest-sugar from 0.9.4 to 0.9.5 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/298
    • Bump faker from 13.14.0 to 13.15.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/295
    • Bump web3 from 5.29.2 to 5.30.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/297
    • Fix threshold test in Safe.create() by @DefiDebauchery in https://github.com/safe-global/safe-eth-py/pull/274
    • Use all for exporting modules by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/300
    • Detect MultiSend addresses by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/299
    • add-hectorgomezv-and-moisses89-to-cla by @hectorgomezv in https://github.com/safe-global/safe-eth-py/pull/301
    • Limit batch requests by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/302

    New Contributors

    • @DefiDebauchery made their first contribution in https://github.com/safe-global/safe-eth-py/pull/274
    • @hectorgomezv made their first contribution in https://github.com/safe-global/safe-eth-py/pull/301

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.1.3...v4.2.0

    Source code(tar.gz)
    Source code(zip)
  • v4.1.3(Jul 7, 2022)

    What's Changed

    • Lock py-evm==0.5.0a3 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/293

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.1.2...v4.1.3

    Source code(tar.gz)
    Source code(zip)
  • v4.1.2(Jul 6, 2022)

    What's Changed

    • feat: add godwoken mainnet by @Kuzirashi in https://github.com/safe-global/safe-eth-py/pull/278
    • Fix gnosis protocol test by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/280
    • Bump requests from 2.28.0 to 2.28.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/281
    • Log and raise a better exception for Ethereum RPC errors by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/279
    • Fix some tests for Erigon by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/287
    • Bump django from 3.2.13 to 3.2.14 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/289
    • Set version 4.1.2 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/290

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.1.1...v4.1.2

    Source code(tar.gz)
    Source code(zip)
  • v4.1.1(Jun 28, 2022)

    What's Changed

    • feat: add support for cronos mainnet and testnet by @the-amazing-ultraton in https://github.com/safe-global/safe-eth-py/pull/272
    • adding venidium testnet and mainnet networks by @itsfridaythen in https://github.com/safe-global/safe-eth-py/pull/271
    • Bump actions/setup-python from 3 to 4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/266
    • Add caching for missing w3 instance by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/275
    • Fix tests by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/276
    • Bump django-filter from 21.1 to 22.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/270
    • Bump faker from 13.13.0 to 13.14.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/277

    New Contributors

    • @the-amazing-ultraton made their first contribution in https://github.com/safe-global/safe-eth-py/pull/272
    • @itsfridaythen made their first contribution in https://github.com/safe-global/safe-eth-py/pull/271

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.1.0...v4.1.1

    Source code(tar.gz)
    Source code(zip)
  • v4.1.0(Jun 16, 2022)

    What's Changed

    • feat: add godwoken v1 testnet by @Kuzirashi in https://github.com/safe-global/safe-eth-py/pull/258
    • feat: adding support for Astar and Shiden chains by @nick8319 in https://github.com/safe-global/safe-eth-py/pull/265
    • Bump faker from 13.11.1 to 13.13.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/268
    • Bump web3 from 5.29.1 to 5.29.2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/262
    • Bump coverage from 6.4 to 6.4.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/263
    • Bump requests from 2.27.1 to 2.28.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/267
    • Make project use pyproject.toml by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/252
    • Optimize to_checksum_address function by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/269

    New Contributors

    • @Kuzirashi made their first contribution in https://github.com/safe-global/safe-eth-py/pull/258
    • @nick8319 made their first contribution in https://github.com/safe-global/safe-eth-py/pull/265

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.0.1...v4.1.0

    Source code(tar.gz)
    Source code(zip)
  • v4.0.1(May 25, 2022)

    What's Changed

    • Bump web3 from 5.29.0 to 5.29.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/257
    • Bump coverage from 6.3.3 to 6.4 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/256
    • add meter mainnet and testnet by @philipappiah in https://github.com/safe-global/safe-eth-py/pull/255
    • Exclude ABIs from coverage report by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/251
    • Update CODEOWNERS by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/253
    • Set version v4.0.1 by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/259

    New Contributors

    • @philipappiah made their first contribution in https://github.com/safe-global/safe-eth-py/pull/255

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v4.0.0...v4.0.1

    Source code(tar.gz)
    Source code(zip)
  • v4.0.0(May 16, 2022)

    Notice

    Migrate from gnosis-py to safe-eth-py if you haven't!

    What's Changed

    • Bump pytest from 7.1.1 to 7.1.2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/237
    • Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/240
    • Bump coverage from 6.3.2 to 6.3.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/245
    • Test every network for GnosisProtocolAPI by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/243
    • Bump faker from 13.3.4 to 13.11.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/244
    • Bump django from 3.2.12 to 3.2.13 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/246
    • Rename package from gnosis-py to safe-eth-py by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/249

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v3.9.4...v4.0.0

    What's Changed

    • Bump pytest from 7.1.1 to 7.1.2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/237
    • Bump github/codeql-action from 1 to 2 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/240
    • Bump coverage from 6.3.2 to 6.3.3 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/245
    • Test every network for GnosisProtocolAPI by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/243
    • Bump faker from 13.3.4 to 13.11.0 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/244
    • Bump django from 3.2.12 to 3.2.13 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/246
    • Rename package from gnosis-py to safe-eth-py by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/249
    • Bump faker from 13.11.0 to 13.11.1 by @dependabot in https://github.com/safe-global/safe-eth-py/pull/248
    • Fix README by @Uxio0 in https://github.com/safe-global/safe-eth-py/pull/250

    Full Changelog: https://github.com/safe-global/safe-eth-py/compare/v3.9.4...v4.0.0

    Source code(tar.gz)
    Source code(zip)
  • v3.9.4(May 11, 2022)

    What's Changed

    • Cache some web3 queries that shouldn't change by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/235
    • Fix slow timeout typo by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/242

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.9.3...v3.9.4

    Source code(tar.gz)
    Source code(zip)
  • v3.9.3(Apr 21, 2022)

    What's Changed

    • Adding Velas network mainnet&testnet support by @datradito in https://github.com/gnosis/gnosis-py/pull/220
    • Validate linting on CI on parallel by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/223
    • Remove conflicting EthereumNetwork by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/226
    • Bump faker from 13.3.3 to 13.3.4 by @dependabot in https://github.com/gnosis/gnosis-py/pull/227
    • Added Eurus mainnet and testnet network ID. by @EU99 in https://github.com/gnosis/gnosis-py/pull/229
    • Bump web3 from 5.28.0 to 5.29.0 by @dependabot in https://github.com/gnosis/gnosis-py/pull/232
    • Fix enzyme and sushiswap tests by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/234
    • Always use cached chainId by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/233

    New Contributors

    • @datradito made their first contribution in https://github.com/gnosis/gnosis-py/pull/220
    • @EU99 made their first contribution in https://github.com/gnosis/gnosis-py/pull/229

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.9.2...v3.9.3

    Source code(tar.gz)
    Source code(zip)
  • v3.9.2(Apr 1, 2022)

    What's Changed

    • Update pre-commit by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/222
    • chore: add rei testnet and mainnet by @bijianing97 in https://github.com/gnosis/gnosis-py/pull/221
    • Set version 3.9.2 by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/224

    New Contributors

    • @bijianing97 made their first contribution in https://github.com/gnosis/gnosis-py/pull/221

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.9.1...v3.9.2

    Source code(tar.gz)
    Source code(zip)
  • v3.9.1(Mar 28, 2022)

    What's Changed

    • Ignore invalid padding for Safe tx signatures by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/215
    • Fix default gas for ether sending by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/216
    • Bump actions/cache from 2 to 3 by @dependabot in https://github.com/gnosis/gnosis-py/pull/218
    • Bump faker from 13.3.2 to 13.3.3 by @dependabot in https://github.com/gnosis/gnosis-py/pull/217
    • fix chain id by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/219

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.9.0...v3.9.1

    Source code(tar.gz)
    Source code(zip)
  • v3.9.0(Mar 22, 2022)

    What's Changed

    • Add support for FUSE block explorer by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/210
    • Update ganache to v7 by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/212
    • Bump pytest from 7.0.1 to 7.1.1 by @dependabot in https://github.com/gnosis/gnosis-py/pull/214
    • Bump faker from 13.3.1 to 13.3.2 by @dependabot in https://github.com/gnosis/gnosis-py/pull/213
    • Bump web3 from 5.24.0 to 5.28.0 by @dependabot in https://github.com/gnosis/gnosis-py/pull/194

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.8.3...v3.9.0

    Source code(tar.gz)
    Source code(zip)
  • v3.8.3(Mar 16, 2022)

    What's Changed

    • Make EthereumClient timeouts configurable via envvars by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/209

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.8.2...v3.8.3

    Source code(tar.gz)
    Source code(zip)
  • v3.8.2(Mar 15, 2022)

    What's Changed

    • Update Django to v3.2.12 by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/196
    • Bump faker from 12.3.0 to 13.2.0 by @dependabot in https://github.com/gnosis/gnosis-py/pull/199
    • Bump pytest from 6.2.5 to 7.0.1 by @dependabot in https://github.com/gnosis/gnosis-py/pull/197
    • Fix Gnosis protocol tests by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/207
    • Bump faker from 13.2.0 to 13.3.1 by @dependabot in https://github.com/gnosis/gnosis-py/pull/206
    • Bump actions/setup-python from 2 to 3 by @dependabot in https://github.com/gnosis/gnosis-py/pull/204
    • Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/gnosis/gnosis-py/pull/203
    • Bump coverage from 6.3.1 to 6.3.2 by @dependabot in https://github.com/gnosis/gnosis-py/pull/200
    • Support django admin search for binary fields by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/208

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.8.1...v3.8.2

    Source code(tar.gz)
    Source code(zip)
  • v3.8.1(Feb 16, 2022)

    What's Changed

    • Fix decoding ERC20/721 Transfer events by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/195

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.8.0...v3.8.1

    Source code(tar.gz)
    Source code(zip)
  • v3.8.0(Feb 14, 2022)

    What's Changed

    • Rename NEAR chain -> Aurora by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/178
    • Set safe-services team as CODEOWNERS by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/179
    • refactor: replace deprecated pyethereum library by @banteg in https://github.com/gnosis/gnosis-py/pull/181
    • Bump faker from 11.3.0 to 12.1.0 by @dependabot in https://github.com/gnosis/gnosis-py/pull/187
    • Bump coverage from 6.2 to 6.3.1 by @dependabot in https://github.com/gnosis/gnosis-py/pull/185
    • Fix getting tx signers when no signatures are provided by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/183
    • Update pre-commit config by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/182
    • add Shyft mainnet and testnet ID by @svanegmond in https://github.com/gnosis/gnosis-py/pull/189
    • Fix typing and defaults on SafeTx by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/188
    • Handle exception for get_signing_address to get previous behaviour by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/190
    • Bump faker from 12.1.0 to 12.3.0 by @dependabot in https://github.com/gnosis/gnosis-py/pull/193
    • Bump version 3.8.0 by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/191

    New Contributors

    • @svanegmond made their first contribution in https://github.com/gnosis/gnosis-py/pull/189

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.7.7...v3.8.0

    Source code(tar.gz)
    Source code(zip)
  • v3.7.7(Jan 18, 2022)

    What's Changed

    • Bump psycopg2-binary from 2.9.2 to 2.9.3 by @dependabot in https://github.com/gnosis/gnosis-py/pull/170
    • Add CLA to github actions by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/172
    • Adding the Evmos network information by @Piquinikis in https://github.com/gnosis/gnosis-py/pull/174
    • Bump djangorestframework from 3.12.4 to 3.13.1 by @dependabot in https://github.com/gnosis/gnosis-py/pull/171
    • Bump django from 3.2.10 to 3.2.11 by @dependabot in https://github.com/gnosis/gnosis-py/pull/175
    • Ignore ERC721 token uris and owners on exceptions by @Uxio0 in https://github.com/gnosis/gnosis-py/pull/176

    New Contributors

    • @Piquinikis made their first contribution in https://github.com/gnosis/gnosis-py/pull/174

    Full Changelog: https://github.com/gnosis/gnosis-py/compare/v3.7.6...v3.7.7

    Source code(tar.gz)
    Source code(zip)
Owner
Gnosis
Gnosis builds new market mechanisms for decentralized finance.
Gnosis
A Telegram UserBot to Play Radio in Voice Chats. This is also the source code of the userbot which is being used for playing Radio in @AsmSafone Channel.

Telegram Radio Player UserBot A Telegram UserBot to Play Radio in Channel or Group Voice Chats. This is also the source code of the userbot which is b

SAF ONE 44 Nov 12, 2022
in-progress decompilation of Gauntlet Legends decompression code on the N64

Gauntlet-Legends A in-progress decompilation of Gauntlet-Legends (N64) decompression code. This project currently supports the US release. Building (L

6 Jul 23, 2022
Script Crack Facebook, and Instagram 🚶‍♂

in-mbf Script Crack Facebook, and Instagram 🚶‍♂ Bukti Install Script $ pkg update && pkg upgrade $ pkg install git $ pkg install python2 $ pip2 insta

Yumasaa 5 Dec 27, 2021
A head unit UI designed to replace the RTx/SMEG/RNEG/NG4/RCC/NAC

HeadUnit UI (Come discuss about it on our Discord!) Intro This is the UI part of a headunit project from OpenLeo, based on python and kivy, it looks l

OpenLeo 6 Nov 23, 2022
Kali Kush - Account Nuker Tool

Kali Kush - Account Nuker Tool This is a discord tool made by me, and SSL :) antho#1731 How to use? pip3 install -r requirements.txt -py kalikush.py -

ryan 3 Dec 21, 2021
A Discord bot that allows you to rapidly deploy Minecraft servers seamlessly and painlessly from Discord.

Lyra - rapidly and painlessly deploy Minecraft servers from Discord Lyra lets you deploy Minecraft server instances via Docker with control through a

1 Dec 23, 2021
A client interface for Scrapinghub's API

Client interface for Scrapinghub API The scrapinghub is a Python library for communicating with the Scrapinghub API. Requirements Python 2.7 or above

Scrapinghub 184 Sep 28, 2022
❤️ Hi There Im EzilaX ❤️ A next gen powerful telegram group manager bot 😱 for manage your groups and have fun with other cool modules Made By Sadew Jayasekara 🔥

❤️ EzilaX v1 ❤️ Unmaintained. The new repo of @EzilaXBot is Public. (It is no longer based on this source code. The completely rewritten bot available

Sadew Jayasekara 18 Nov 24, 2021
Lambda-function - Python codes that allow notification of changes made to some services using the AWS Lambda Function

AWS Lambda Function This repository contains python codes that allow notificatio

Elif Apaydın 3 Feb 11, 2022
Covid19 API. (Currently Scrapes: worldometers)

Covid19-API An opensource Covid19 API (currently uses worldometer only) Output Examples Covid19 Every Country Data Request URL your-ip/api/all Resp

Amresh Prasad Sinha 14 Oct 03, 2022
Weee - Advanced project's versions bumper

Weee - Advanced project's versions bumper

Yan Kurbatov 2 Jun 06, 2022
The wrapper you need for the osu!api v2

oppy (op.py) oppy is the wrapper for use on the osu! v2 API. Version 1.0.0 Installation To install please use pip to install oppy pip install op.py To

Wayde 2 May 01, 2022
D(HE)ater is a security tool can perform DoS attack by enforcing the DHE key exchange.

D(HE)ater D(HE)ater is an attacking tool based on CPU heating in that it forces the ephemeral variant of Diffie-Hellman key exchange (DHE) in given cr

Balasys 138 Dec 15, 2022
Widevine CDM API

wvproxy Widevine CDM API Setup Install Python 3.6 or newer and Poetry Install Python package dependencies using poetry install Activate the virtual en

24 Dec 09, 2022
Spotify Top Lists - get the current top lists of a user from the Spotify API and display them in a Flask app

Spotify Top Lists This is a simple script that will get the current top lists of a user from the Spotify API and display them in a Flask app. Requirem

Yasin 0 Oct 16, 2022
a list of disposable and temporary email address domains

List of disposable email domains This repo contains a list of disposable and temporary email address domains often used to register dummy users in ord

1.6k Jan 08, 2023
可基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本(支持多账号使用)签到列表: |爱奇艺|全民K歌|腾讯视频|有道云笔记|网易云音乐|一加手机社区官方论坛|百度贴吧|Bilibili|V2EX|咔叽网单|什么值得买|AcFun|天翼云盘|WPS|吾爱破解|芒果TV|联通营业厅|Fa米家|小米运动|百度搜索资源平台|每日天气预报|每日一句|哔咔漫画|和彩云|智友邦|微博|CSDN|王者营地|

每日签到集合 基于【腾讯云函数】/【GitHub Actions】/【Docker】的每日签到脚本 支持多账号使用 特别声明: 本仓库发布的脚本及其中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

87 Nov 12, 2022
You can connect with Sanila Ranatunga using this bot😉😉

Sanila-Ranatunga-s-Assistant-Bot You can connect with Sanila Ranatunga using this bot 😉 😉 Reach me on Telegram Sanila's Assistant Bot What is Telegr

Sanila Ranatunga 5 Feb 01, 2022
A Telegram Bot to Play Audio in Voice Chats With Youtube and Deezer support. Supports Live streaming from youtube Supports Mega Radio Fm Streamings

Bot To Stream Musics on PyTGcalls with Channel Support. A Telegram Bot to Play Audio in Voice Chats With Supports Live streaming from youtube and Mega

Shamil Habeeb 37 Dec 15, 2022
Smilecreator4 - This site is for people who want to hack or want to learn it!

smilecreator4 This site is for people who want to hack or want to learn it! Furthermore, this program does not work without turning off Antivirus or W

1 Jan 04, 2022