ValuationMulticallWrapper

Documentation for eth_defi.vault.valuation.ValuationMulticallWrapper Python class.

class ValuationMulticallWrapper[source]

Wrap the undertlying Multicall with diagnostics data.

  • Because the underlying Multicall lib is not powerful enough.

  • And we do not have time to fix it

Attributes summary

call

Bound web3.py function with args in the place

debug

Set for extensive info logging

quoter

route

amount_in

contract_address

Methods summary

__init__(call, debug, quoter, route, amount_in)

create_multicall()

Create underlying call about.

get_address_and_data()

get_human_args()

Get Solidity args as human readable string for debugging.

get_human_id()

get_key()

Get key that will identify this call in the result dictionary

handle(success, raw_return_value)

Parse the call result.

multicall_callback(succeed, raw_return_value)

Convert the raw Solidity function call result to a denominated token amount.

get_key()[source]

Get key that will identify this call in the result dictionary

Return type

Hashable

create_multicall()[source]

Create underlying call about.

Return type

multicall.call.Call

handle(success, raw_return_value)[source]

Parse the call result.

Parameters
  • succeed – Did we revert or not

  • raw_return_value (bytes) – Undecoded bytes from the Solidity function call

Returns

The value placed in the return dict

Return type

decimal.Decimal | None

__init__(call, debug, quoter, route, amount_in)
Parameters
Return type

None