Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Library for fetching actual ethereum blockchain gasprice.

License

NotificationsYou must be signed in to change notification settings

Elastoo-Team/ethereum-gasprice-py

Repository files navigation

Ethereum gasprice: Actual gasprice for ethereum blockchain

PyPIBuild StatusDocumentation Status

Library for fetching actual ethereum blockchain gasprice from different sources:Etherscan Gas Tracker,Eth Gas Station,Etherchain Gasprice Oracle,Web3 RPC Method.

Read more about gas and fee fromthis article

Installation

poetry add ethereum-gasprice

or

pip3 install ethereum-gasprice

Quickstart

fromethereum_gaspriceimportGaspriceController,GaspriceStrategy,EthereumUnitfromethereum_gasprice.providersimportEtherscanProviderETHERSCAN_API_KEY="..."# Pass api key to GaspriceController to initialize providercontroller=GaspriceController(settings={EtherscanProvider.title:ETHERSCAN_API_KEY},)# Get gasprice by one of these strategies:gasprice=controller.get_gasprice_by_strategy(GaspriceStrategy.FAST)print(gasprice)# output: 69

Docs

Read base API references and other part documentationonethereum-gasprice.readthedocs.io

Usage

Gasprice controller

Main entrypoint to fetching gasprice from providers. Has sync and async implementations.

It is recommended to initialize controller withwith ... as controller: method

fromethereum_gaspriceimportGaspriceController,AsyncGaspriceController

Parameters:

  • return_unit - return gasprice in given ethereum unit. It is recommended to useEthereumUnit classfromethereum_gasprice.consts to choose unit
  • providers - tuple of providers what will be used in fetching gasprice. Order of providers is important
  • gasprice will be fetch in given priority. Providers must be a subclass ofBaseGaspriceProvider
  • settings - dict containing secrets for providers. Key is provider title slug, value is a secret for provider.
fromethereum_gasprice.constsimportEthereumUnitfromethereum_gasprice.providersimport (EtherscanProvider,EthGasStationProvider,AsyncEtherscanProvider,AsyncEthGasStationProvider)settings= {EtherscanProvider.title:"API_KEY",EthGasStationProvider.title:"API_KEY"}sync_providers= (EtherscanProvider,EthGasStationProvider)async_providers= (AsyncEtherscanProvider,AsyncEthGasStationProvider)withGaspriceStrategy(return_unit=EthereumUnit.GWEI,providers=sync_providers,settings=settings)ascontroller:# Do somethingpassasyncwithAsyncGaspriceController(return_unit=EthereumUnit.WEI,providers=async_providers,settings=settings)asasync_controller:# Do somethingpass

Methods:

  • .get_gasprice_by_strategy() - get gasprices from first available provider and return only one gasprice strategy.

available strategies: slow (GaspriceStrategy.SLOW), regular (GaspriceStrategy.REGULAR),fast (GaspriceStrategy.FAST), fastest (GaspriceStrategy.FASTEST).

Some providers does not have info for some strategies. For example, Etherscan does not provide gasprice for slowstrategy.

In any case method will return dict with these for strategies. If fail case strategy (when all provides is unavailable)dict withNone values will be returned.

fromethereum_gasprice.constsimportGaspriceStrategygasprice=controller.get_gasprice_by_strategy(GaspriceStrategy.FAST)# type: int, example: 69
  • .get_gasprices() - gets gasprices for all strategies from first available provider. Returns a dict.
gasprices=awaitasync_controller.get_gasprices()# type: dictprint(gasprices)# {'slow': None, 'regular': 17, 'fast': 19, 'fastest': 20}
  • .get_gasprice_from_all_sources() - get gasprices for all strategies from all available provider.

It can be useful to calculate an average gasprice value from all providers to get the most objective gasprice value.

gasprices=controller.get_gasprice_from_all_sources()# type: dictprint(gasprices)# {#   'etherscan': {'slow': None, 'regular': 17, 'fast': 19, 'fastest': 29},#   'ethgasstation': {'slow': 16, 'regular': 17, 'fast': 19, 'fastest': 20}# }

Providers

Provider wrapper

fromethereum_gasprice.providersimportEtherscanProvider,AsyncEtherscanProvider

Parameters:

Methods:

  • .request() - make request to api, returns status and response data.
  • .get_gasprice() - get gasprices from provider, returns gasprices in GWEI.
fromhttpximportClientprovider=EtherscanProvider(secret="API-KEY",client=Client())print(provider.get_gasprice())# {'slow': None, 'regular': 17, 'fast': 19, 'fastest': 20}

TODO

  • Initital release
  • Async implementation of controller, providers
  • Write documentation
  • Write unit tests with pytest
  • Integrate tests, docs and auto publishing to pypi in github pipeline

Changelog

see CHANGELOG.md file

License

Ethereum gasprice is licensed under the terms of the MIT License (see the file LICENSE).

Special thanks

About

Library for fetching actual ethereum blockchain gasprice.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors2

  •  
  •  

Languages


[8]ページ先頭

©2009-2025 Movatter.jp