def __init__(self, provider=empty, middlewares=None, modules=None, ens=empty): if modules is None: modules = { 'hls': (Hls, ), 'eth': (Hls, ), 'personal': (Personal, ), "net": (Net, ), "admin": (Admin, ), } else: modules['hls'] = (Hls, ) modules['eth'] = (Eth, ) modules['personal'] = (Personal, ) modules['net'] = (Net, ) modules['admin'] = (Admin, ) if middlewares is None: middlewares = [ (name_to_address_middleware(self), 'name_to_address'), (attrdict_middleware, 'attrdict'), (pythonic_middleware, 'pythonic'), (abi_middleware, 'abi'), ] super().__init__(provider=provider, middlewares=middlewares, modules=modules, ens=ens)
def new_default_middlewares(self, web3): return [ (request_parameter_normalizer, 'request_param_normalizer'), (gas_price_strategy_middleware, 'gas_price_strategy'), (name_to_address_middleware(web3), 'name_to_address'), (attrdict_middleware, 'attrdict'), (pythonic_middleware, 'pythonic'), (normalize_errors_middleware, 'normalize_errors'), (validation_middleware, 'validation'), (abi_middleware, 'abi'), ]
def default_middlewares(web3): ''' List the default middlewares for the request manager. Leaving ens unspecified will prevent the middleware from resolving names. ''' return [ (name_to_address_middleware(web3), 'name_to_address'), (attrdict_middleware, 'attrdict'), (pythonic_middleware, 'pythonic'), (abi_middleware, 'abi'), ]
def default_middlewares(web3): ''' List the default middlewares for the request manager. Leaving ens unspecified will prevent the middleware from resolving names. ''' return [ (gas_price_strategy_middleware, 'gas_price_strategy'), (name_to_address_middleware(web3), 'name_to_address'), (attrdict_middleware, 'attrdict'), (pythonic_middleware, 'pythonic'), (abi_middleware, 'abi'), ]
def default_middlewares(web3): ''' List the default middlewares for the request manager. Leaving ens unspecified will prevent the middleware from resolving names. ''' return [ (gas_price_strategy_middleware, 'gas_price_strategy'), (name_to_address_middleware(web3), 'name_to_address'), (attrdict_middleware, 'attrdict'), (pythonic_middleware, 'pythonic'), (normalize_errors_middleware, 'normalize_errors'), (validation_middleware, 'validation'), (abi_middleware, 'abi'), ]
def default_middlewares(web3: 'Web3') -> List[Tuple[Middleware, str]]: """ List the default middlewares for the request manager. Leaving ens unspecified will prevent the middleware from resolving names. """ return [ (request_parameter_normalizer, 'request_param_normalizer'), # Delete (gas_price_strategy_middleware, 'gas_price_strategy'), (name_to_address_middleware(web3), 'name_to_address'), # Add Async (attrdict_middleware, 'attrdict'), # Delete (pythonic_middleware, 'pythonic'), # Delete (validation_middleware, 'validation'), (abi_middleware, 'abi'), # Delete (buffered_gas_estimate_middleware, 'gas_estimate'), ]
def default_middlewares(web3): """ List the default middlewares for the request manager. Leaving ens unspecified will prevent the middleware from resolving names. """ return [ (request_parameter_normalizer, 'request_param_normalizer'), # Delete (gas_price_strategy_middleware, 'gas_price_strategy'), # Add Async (name_to_address_middleware(web3), 'name_to_address'), # Add Async (attrdict_middleware, 'attrdict'), # Delete (pythonic_middleware, 'pythonic'), # Delete (normalize_errors_middleware, 'normalize_errors'), # Add async (validation_middleware, 'validation'), # Add async (abi_middleware, 'abi'), # Delete ]
def w3(): w3 = Web3(providers=[BaseProvider()], middlewares=[]) w3.ens = TempENS({NAME: ADDRESS}) w3.middleware_stack.add(name_to_address_middleware(w3)) return w3
def w3(): w3 = Web3(provider=BaseProvider(), middlewares=[]) w3.ens = TempENS({NAME: ADDRESS}) w3.middleware_onion.add(name_to_address_middleware(w3)) return w3
import sys import json from dataclasses import dataclass from web3.auto import w3 from web3.middleware import name_to_address_middleware from web3.contract import Contract SWAP_ADDRESS = '0xe5FdBab9Ad428bBB469Dee4CB6608C0a8895CbA5' TOKEN_ADDRESS = '0xDBe281E17540Da5305Eb2AeFB8CeF70E6dB1A0A9' ABI = json.load(open('curve.abi')) w3.middleware_onion.add(name_to_address_middleware(w3)) swap = w3.eth.contract(SWAP_ADDRESS, abi=ABI['swap']).caller() token = w3.eth.contract(TOKEN_ADDRESS, abi=ABI['erc20']).caller() @dataclass class Coin: coin: Contract underlying: Contract decimals: int reserve: float @classmethod def from_index(cls, i): coin = w3.eth.contract(swap.coins(i), abi=ABI['cerc20']).caller() underlying = w3.eth.contract(swap.underlying_coins(i), abi=ABI['erc20']).caller() decimals = underlying.decimals() reserve = swap.balances(i) / 1e18 * coin.exchangeRateCurrent() / 10 ** decimals return cls(coin=coin, underlying=underlying, decimals=decimals, reserve=reserve)