Skip to content

Commit

Permalink
Add list of bonding pools where we redirect everything to rewards add…
Browse files Browse the repository at this point in the history
…resses (#513)

This PR implements a request from the Rizzolver bonding pool and
introduces a list of bonding pools where all relevant solvers receive
their native token reimbursements in their rewards addresses (instead of
their submission addresses)
  • Loading branch information
harisang authored Mar 3, 2025
1 parent 3bb7ab8 commit fddf562
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
16 changes: 10 additions & 6 deletions src/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ class RewardConfig:
"""Configuration for reward mechanism."""

reward_token_address: Address
cow_bonding_pool: Address
batch_reward_cap_upper: int
batch_reward_cap_lower: int
quote_reward_cow: int
Expand All @@ -41,7 +40,6 @@ class RewardConfig:
@staticmethod
def from_network(network: Network) -> RewardConfig:
"""Initialize reward config for a given network."""
cow_bonding_pool = Address("0x5d4020b9261f01b6f8a45db929704b0ad6f5e9e6")
service_fee_factor = Fraction(15, 100)
match network:
case Network.MAINNET:
Expand All @@ -54,7 +52,6 @@ def from_network(network: Network) -> RewardConfig:
quote_reward_cow=6 * 10**18,
quote_reward_cap_native=6 * 10**14,
service_fee_factor=service_fee_factor,
cow_bonding_pool=cow_bonding_pool,
)
case Network.GNOSIS:
return RewardConfig(
Expand All @@ -66,7 +63,6 @@ def from_network(network: Network) -> RewardConfig:
quote_reward_cow=6 * 10**18,
quote_reward_cap_native=15 * 10**16,
service_fee_factor=service_fee_factor,
cow_bonding_pool=cow_bonding_pool,
)
case Network.ARBITRUM_ONE:
return RewardConfig(
Expand All @@ -78,7 +74,6 @@ def from_network(network: Network) -> RewardConfig:
quote_reward_cow=6 * 10**18,
quote_reward_cap_native=2 * 10**14,
service_fee_factor=service_fee_factor,
cow_bonding_pool=cow_bonding_pool,
)
case Network.BASE:
return RewardConfig(
Expand All @@ -90,7 +85,6 @@ def from_network(network: Network) -> RewardConfig:
quote_reward_cow=6 * 10**18,
quote_reward_cap_native=2 * 10**14,
service_fee_factor=service_fee_factor,
cow_bonding_pool=cow_bonding_pool,
)
case _:
raise ValueError(f"No reward config set up for network {network}.")
Expand Down Expand Up @@ -170,10 +164,19 @@ class BufferAccountingConfig:
"""Configuration for buffer accounting."""

include_slippage: bool
send_buffers_to_rewards_address_pools: list[Address]

@staticmethod
def from_network(network: Network) -> BufferAccountingConfig:
"""Initialize buffer accounting config for a given network."""
send_buffers_to_rewards_address_pools = [
Address(
"0x5d4020b9261f01b6f8a45db929704b0ad6f5e9e6"
), # CoW DAO bonding pool
Address(
"0x0deb0ae9c4399c51289adb1f3ed83557a56df657"
), # Rizzolver bonding pool
]
match network:
case Network.MAINNET | Network.GNOSIS | Network.ARBITRUM_ONE | Network.BASE:
include_slippage = True
Expand All @@ -184,6 +187,7 @@ def from_network(network: Network) -> BufferAccountingConfig:

return BufferAccountingConfig(
include_slippage=include_slippage,
send_buffers_to_rewards_address_pools=send_buffers_to_rewards_address_pools,
)


Expand Down
10 changes: 8 additions & 2 deletions src/fetch/solver_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,16 @@ def compute_solver_info(
service_fees[SERVICE_FEES_COLUMNS], how="outer", on="solver"
)

send_buffers_to_rewards_address_pools_addresses = [
pool.address
for pool in config.buffer_accounting_config.send_buffers_to_rewards_address_pools
]
solver_info["buffer_accounting_target"] = np.where(
solver_info["pool_address"] != config.reward_config.cow_bonding_pool.address,
solver_info["solver"],
solver_info["pool_address"].isin(
send_buffers_to_rewards_address_pools_addresses
),
solver_info["reward_target"],
solver_info["solver"],
)
solver_info = solver_info.drop("pool_address", axis=1)

Expand Down
2 changes: 1 addition & 1 deletion tests/unit/test_solver_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ def test_compute_solver_info_cow_dao_buffer_target():
{
"solver": ["solver_1"],
"reward_target": ["target_1"],
"pool_address": [str(config.reward_config.cow_bonding_pool)],
"pool_address": ["0x5d4020b9261f01b6f8a45db929704b0ad6f5e9e6"],
"solver_name": ["solver_name_1"],
}
)
Expand Down

0 comments on commit fddf562

Please sign in to comment.