rubi.contracts.contract_types package

Submodules

rubi.contracts.contract_types.events module

class rubi.contracts.contract_types.events.BaseEvent(block_number: int, **args)

Bases: ABC

Base class for events to define the structure of an Event from a Rubicon contract.

static builder(name: str, **kwargs) EmitOfferEvent | EmitTakeEvent | EmitCancelEvent | EmitSwap
client_filter(wallet: eth_typing.ChecksumAddress) bool

Filter function for client-side filtering. By default, no filtering is done but this can optionally be overwritten by each subclass.

Parameters:

wallet (ChecksumAddress) – The wallet address.

Returns:

True if the event passes the filter, False otherwise.

Return type:

bool

abstract static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

Abstract method to create an event filter for the given contract with optional argument filters. Must be overridden in each event subclass.

Parameters:
  • contract (Contract) – The contract instance.

  • argument_filters (Optional[Dict[str, Any]]) – Optional filters. Only events that match these filters will be returned when the filter is queried.

Returns:

The created event filter.

Return type:

LogFilter

abstract static default_filters(bid_identifier: str, ask_identifier: str) dict

Get the default filters for an event. These are used if no argument filters are provided. By default, these filters make sure we only receive events that relate to us. E.g on markets we care about.

Parameters:
  • bid_identifier (str) – The identifier for bid events.

  • ask_identifier (str) – The identifier for ask events.

Returns:

The default filters.

Return type:

dict

classmethod default_handler(pair_name: str, event_type: Type[BaseEvent], event_data: web3.types.EventData) None

A default event handler. If no handler is provided then this one is used.

Parameters:
  • pair_name (str) – The name of the pair.

  • event_type (Type["BaseEvent"]) – The type of the event.

  • event_data (EventData) – The data of the event.

abstract static get_event_contract(market: _RubiconMarket, router: _RubiconRouter) _RubiconMarket | _RubiconRouter

Abstract method to determine the contract an event corresponds to. Must be overridden in subclasses.

Parameters:
  • market (_RubiconMarket) – The RubiconMarket instance.

  • router (_RubiconRouter) – The RubiconRouter instance.

Returns:

The contract corresponding to the event.

Return type:

Union[_RubiconMarket, _RubiconRouter]

class rubi.contracts.contract_types.events.BaseMarketEvent(id: bytes, pair: bytes, **args)

Bases: BaseEvent, ABC

This class is a base class for all MarketEvents

static get_event_contract(market: _RubiconMarket, router: _RubiconRouter) _RubiconMarket | _RubiconRouter

implementation of BaseEvent get_event_contract

class rubi.contracts.contract_types.events.EmitCancelEvent(maker: eth_typing.ChecksumAddress, pay_gem: eth_typing.ChecksumAddress, buy_gem: eth_typing.ChecksumAddress, pay_amt: int, buy_amt: int, **args)

Bases: BaseMarketEvent

Event emitted whenever an offer is cancelled on the RubiconMarket

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: str, ask_identifier: str) dict

implementation of BaseEvent default_filters

class rubi.contracts.contract_types.events.EmitDeleteEvent(maker: eth_typing.ChecksumAddress, **args)

Bases: BaseMarketEvent

Event emitted whenever an offer is fully taken by a market order on the RubiconMarket resulting in the offer being closed

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: str, ask_identifier: str) dict

implementation of BaseEvent default_filters

class rubi.contracts.contract_types.events.EmitFeeEvent(taker: eth_typing.ChecksumAddress, feeTo: eth_typing.ChecksumAddress, asset: eth_typing.ChecksumAddress, feeAmt: int, **args)

Bases: BaseMarketEvent

Event emitted whenever an offer is taken on the RubiconMarket that results in a fee being paid to the maker.

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: str, ask_identifier: str) dict

implementation of BaseEvent default_filters

class rubi.contracts.contract_types.events.EmitOfferEvent(maker: eth_typing.ChecksumAddress, pay_gem: eth_typing.ChecksumAddress, buy_gem: eth_typing.ChecksumAddress, pay_amt: int, buy_amt: int, **args)

Bases: BaseMarketEvent

Event emitted whenever a new offer is made on the RubiconMarket

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: str, ask_identifier: str) dict

implementation of BaseEvent default_filters

class rubi.contracts.contract_types.events.EmitSwap(recipient: eth_typing.ChecksumAddress, inputERC20: eth_typing.ChecksumAddress, targetERC20: eth_typing.ChecksumAddress, pair: bytes, inputAmount: int, realizedFill: int, hurdleBuyAmtMin: int, **args)

Bases: BaseEvent

Event emitted whenever swap is executed on the RubiconRouter

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: str, ask_identifier: str) dict

implementation of BaseEvent default_filters

static get_event_contract(market: _RubiconMarket, router: _RubiconRouter) _RubiconMarket | _RubiconRouter

implementation of BaseEvent get_event_contract

class rubi.contracts.contract_types.events.EmitTakeEvent(maker: eth_typing.ChecksumAddress, taker: eth_typing.ChecksumAddress, pay_gem: eth_typing.ChecksumAddress, buy_gem: eth_typing.ChecksumAddress, take_amt: int, give_amt: int, **args)

Bases: BaseMarketEvent

Event emitted whenever an offer is taken by a market order on the RubiconMarket

client_filter(wallet: eth_typing.ChecksumAddress) bool

overwriting of BaseEvent client_filter to only filter when our wallet is either the maker or taker

static create_event_filter(contract: web3.contract.Contract, argument_filters: Dict[str, Any] | None = None) web3._utils.filters.LogFilter

implementation of BaseEvent create_event_filter

static default_filters(bid_identifier: eth_typing.HexStr, ask_identifier: eth_typing.HexStr) dict

implementation of BaseEvent default_filters