Skip to main content

Event catalog

Use these tables to set up an indexer or a subgraph for YieldBasis. For each event, a table gives the field names, the canonical signature, the topic0 hash, the indexed fields, and the functions that emit it.

Read the tables​

The topic0 of an event is the keccak-256 hash of its canonical signature. The canonical signature is the event name and the field types in declaration order, separated by commas, with no spaces, field names, or indexed keywords.

For example, keccak256("Deposit(address,address,uint256,uint256)") is 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7, the topic0 of the LT Deposit event.

Vyper types map to ABI types in the canonical signature as follows:

  • An interface type, for example IERC20, is address.
  • A DynArray[T, N] is T[].
  • A struct is a tuple of its member types, for example (address,uint8,uint256).
  • A flag type, for example LockActions in VotingEscrow, is uint256.

The indexed fields are topic1 to topic3, in declaration order. The other fields are ABI-encoded in the log data.

A contract also emits the events of the modules that it initializes. The ERC-20, ERC-721, and ERC-4626 events come from the Vyper built-in interfaces in ethereum.ercs. OwnershipTransferred and RoleMinterChanged come from snekmate. The tables include these events.

Filter by contract address, not by topic0 alone

Some events in different contracts have the same canonical signature, so they have the same topic0. The indexed fields can still differ:

  • Transfer(address,address,uint256) is the ERC-20 transfer of yb-LP, gauge shares, YB, and the Curve pool LP token, and also the ERC-721 transfer of veYB. veYB indexes token_id as a third topic.
  • TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256) is in AMM (the LEVAMM) and the Curve pool. The last field is price_oracle in AMM and price_scale in the pool.
  • Deposit and Withdraw of LT and of the gauges have the same topic0.
  • Claim(address,uint256) is in InflationaryVest (no indexed field), VestingEscrow (recipient indexed), and FastGauge (user indexed).
  • SetKilled(bool) is in AMM and YBOraclizedPolicy.
  • SetEmaTime(uint256) is in FastGauge and YBLendingOracleLL.
  • Recover(address,uint256) is in FeeSplitter, PID, and MerklPIDDriver. PID and MerklPIDDriver also share SetPressureLts, SetSources, SetGains, and SetExecutionParams.
  • OwnershipTransferred(address,address) is in every contract that uses snekmate ownable.

Core​

The Factory deploys one LT, LEVAMM (AMM), VirtualPool, CryptopoolLPOracle, and LiquidityGauge for each market. To find the instances, enumerate Factory.markets(i) for i below Factory.market_count().

LT​

LT emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Deposit(sender, owner, assets, shares)Deposit(address,address,uint256,uint256)0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7sender, ownerdeposit
Withdraw(sender, receiver, owner, assets, shares)Withdraw(address,address,address,uint256,uint256)0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8dbsender, receiver, ownerwithdraw
Transfer(sender, receiver, value)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receiverMints, burns, and transfers of yb-LP, and staked-bucket changes: deposit, withdraw, emergency_withdraw, withdraw_admin_fees, transfer, transferFrom, set_staker, checkpoint_staker_rebase
Approval(owner, spender, value)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, spenderapprove, and transferFrom unless the allowance is the maximum
SetStaker(staker)SetStaker(address)0x6901da73a3480b0bbd7deb64f259ff29a76ce811c7a3e5cf495f0e1eb4fb4dfbstakerset_staker
WithdrawAdminFees(receiver, amount)WithdrawAdminFees(address,uint256)0x78b4892921a904766a871a893b75e9461080a308419f358353f73739b29c7fc4Nonewithdraw_admin_fees
AllocateStablecoins(allocator, stablecoin_allocation, stablecoin_allocated)AllocateStablecoins(address,uint256,uint256)0x6f16a992fba7b966942bb6064775e154f99de09fce962940d4e284c5c9132868allocatorallocate_stablecoins
DistributeBorrowerFees(sender, amount, min_amount, discount)DistributeBorrowerFees(address,uint256,uint256,uint256)0x5bdcb9afddbd4bbebe8e11112e8b8ba0008f38b107b6c8d4bed13e9fb40acb1csenderdistribute_borrower_fees, and at the end of deposit and withdraw, when LT holds crvUSD to donate
SetAdmin(admin)SetAdmin(address)0x5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a1Noneset_admin

AMM​

AMM, the LEVAMM contract, emits these events:

EventCanonical signatureTopic0IndexedEmitted by
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought, fee, price_oracle)TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256)0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29cbuyerexchange. buyer is msg.sender. On a VirtualPool route, buyer is the VirtualPool
AddLiquidityRaw(token_amounts, invariant, price_oracle)AddLiquidityRaw(uint256[2],uint256,uint256)0x488e5334cc9bea5219087037712837bf3d72b260676f5d41c866905cca6842d1None_deposit, which only LT calls, in LT.deposit
RemoveLiquidityRaw(collateral_change, debt_change)RemoveLiquidityRaw(uint256,uint256)0x33c707093baa929b1d0237d3c8111e597ba833fcc950696c87d5ff66a287e31eNone_withdraw, which only LT calls, in LT.withdraw and LT.emergency_withdraw
SetRate(rate, rate_mul, time)SetRate(uint256,uint256,uint256)0x52543716810f73c3fa9bca74622aecb6d3614ca4991472f3e999d531c2f6afb8Noneset_rate
CollectFees(amount, new_supply)CollectFees(uint256,uint256)0x5393ab6ef9bb40d91d1b04bbbeb707fbf3d1eb73f46744e2d179e4996026283fNonecollect_fees, and in exchange. amount can be 0
SetFee(fee)SetFee(uint256)0x00172ddfc5ae88d08b3de01a5a187667c37a5a53989e8c175055cb6c993792a7Noneset_fee
SetKilled(is_killed)SetKilled(bool)0xf6a23ecf31263066d4cc1ac21837c1714818045ecc5c0dd89f279e0bd4b7ef87Noneset_killed

VirtualPool​

VirtualPool emits this event:

EventCanonical signatureTopic0IndexedEmitted by
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought)TokenExchange(address,uint256,uint256,uint256,uint256)0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98buyerexchange. buyer is the recipient (_for), not the caller

Factory​

Factory emits these events:

EventCanonical signatureTopic0IndexedEmitted by
MarketParameters(idx, asset_token, cryptopool, amm, lt, price_oracle, virtual_pool, staker, agg)MarketParameters(uint256,address,address,address,address,address,address,address,address)0x0a2f141c803b7bf5e04b3d7b621d659110855c736b446179264d6a61232d3f0bidx, asset_token, cryptopooladd_market, fill_staker_vpool
SetImplementations(amm, lt, virtual_pool, price_oracle, staker)SetImplementations(address,address,address,address,address)0xe0816edf10a269aa4a7dd0728c02244458ca712361bfc23d84a4ea830b7c44efNoneConstructor, set_implementations
SetAllocator(allocator, amount)SetAllocator(address,uint256)0x6e671c52e5bc0aa133fe59c69dcbdde3ebec4145c563664428a70731ff91ae0fNoneset_mint_factory, set_allocator
SetFeeReceiver(fee_receiver)SetFeeReceiver(address)0xffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919fNoneset_fee_receiver
SetAgg(agg)SetAgg(address)0x843c0fd5d15daa8bb099274f122c91630f39df53ebf3c5f8e843c979fb660bcaNoneset_agg
SetFlash(flash)SetFlash(address)0xeaa8d04d33cdb2fd361c560c793d8cbaee16fbba34b3747921ab2a76191f912dNoneset_flash
SetAdmin(admin, emergency_admin, old_admin, old_emergency_admin)SetAdmin(address,address,address,address)0x9a45e4c3baa33ef1c484b02fb5837d58d3ffb1b7cf7a11ea3b8d0546064ab3bbNoneset_admin
SetMinAdminFee(admin_fee)SetMinAdminFee(uint256)0x1d944867b41f8cfe3aa0b5ba9ff5c481e37c5c4dd403801d32000a939ba5fcc0Noneset_min_admin_fee
SetGaugeController(gc)SetGaugeController(address)0x613940253cf21d005743a34a04b5c9c39fb1700b83758166647e87af9b826ac7Noneset_gauge_controller

HybridVault​

HybridVault emits these events:

EventCanonical signatureTopic0IndexedEmitted by
SetPersonalLimit(pool_id, limit)SetPersonalLimit(uint256,uint256)0x40177d2fe9a10c67c6ae4f4ea612a783b79a43025da645fd8c39b42c91fcc5edNoneset_personal_limit
SetCrvusdVault(vault)SetCrvusdVault(address)0xe18ffb1ea781b234edb756f46ee486ff71f285bce79171881d5baa1269d54e62Noneset_crvusd_vault

HybridVaultFactory​

HybridVaultFactory emits these events:

EventCanonical signatureTopic0IndexedEmitted by
VaultCreated(user, vault)VaultCreated(address,address)0x5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f53user, vaultcreate_vault
SetVaultImpl(impl)SetVaultImpl(address)0x999d30d6fe53fe3b3c7e414cdceac209b0712454921ef7114248d261e64d8c23Noneset_vault_impl
SetStablecoinFraction(stablecoin_fraction)SetStablecoinFraction(uint256)0x9774308ddecd91d58d169d64a37d81b2e341596431f2447bee671e1679db10a9Noneset_stablecoin_fraction
SetPoolLimit(pool_id, limit)SetPoolLimit(uint256,uint256)0xa7c5f1f034eab2cc85e9b61f2f2dd0b9dee49078571c5bbd7063de88de2f81e2NoneConstructor, set_pool_limit
SetAllowedCrvusdVault(vault, allowed)SetAllowedCrvusdVault(address,bool)0x5f60501daf33df61a553f3bbe2900320c48d28cf6214f4817e00d6186423ae25Noneset_allowed_crvusd_vault
SetCrvusdVaultLimit(crvusd_vault, limit)SetCrvusdVaultLimit(address,uint256)0x4e90d5c6bce9f895b89c5bf5b1f61925df7071ba2aad3239295a5999e3f65f10Noneset_allowed_crvusd_vault, set_crvusd_vault_limit

HybridFactoryOwner​

HybridFactoryOwner emits this event:

EventCanonical signatureTopic0IndexedEmitted by
SetLimitSetter(setter, enabled)SetLimitSetter(address,bool)0x145ec2d7ec3d5614d1ce5a0a96faefc02d54e89d5408a106c0c832303edf31eeNoneset_limit_setter

YBLendingOracle​

YBLendingOracle emits this event:

EventCanonical signatureTopic0IndexedEmitted by
OraclesCreated(market_id, lt, usd_oracle, asset_oracle)OraclesCreated(uint256,address,address,address)0x2df0208f5e7ec1e3176b5b9a893a87bd532a9324a5d67d6a5c3c88d0704e8ceamarket_id, ltcreate_oracles

YBLendingOracleLL​

YBLendingOracleLL emits this event:

EventCanonical signatureTopic0IndexedEmitted by
SetEmaTime(ema_time)SetEmaTime(uint256)0x3b0acc0a291bf012a300d56b920406d76ac62577ce81b7466d011fa9c1c126eeNoneset_ema_time

YBLendingOracleLLFactory​

YBLendingOracleLLFactory emits these events:

EventCanonical signatureTopic0IndexedEmitted by
OraclesCreated(market_id, lt, usd_oracle, asset_oracle, ema_time)OraclesCreated(uint256,address,address,address,uint256)0x3b1121b91cf8ad42008708e2a55d29129c6857ab29d2c552d9fa5bd5717f33cfmarket_id, ltcreate_oracles
SetDefaultEmaTime(ema_time)SetDefaultEmaTime(uint256)0x173b0bf26a164d868d8793d9a6bd6a191d64f6ab91d50245cc0741812e4e03e9Noneset_default_ema_time
SetEmaTime(market_id, oracle, ema_time)SetEmaTime(uint256,address,uint256)0x5683cacbead3c6d342bedcbf77479e03a9338af5a333fd3f278f547d54acf308market_id, oracleset_ema_time
SetDao(dao)SetDao(address)0x202719d39eed4fb6f9f942a2eded433c67f5aa302dad8a13dd453c4b00489f63daoset_dao

LTSwapZap​

LTSwapZap emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Converted(lt, shares, crvusd_out)Converted(address,uint256,uint256)0xe6a45eea08a42f7c3f90f290e8ecf15e16174981943adf509fc9ea49808a64c6ltconvert
Returned(lt, assets)Returned(address,uint256)0xdd81098bbc043431d4a440ca8823673fd1129893ab79f9838df4cf3d5e381259ltconvert
SetSwapFeeMultiplier(swap_fee_multiplier)SetSwapFeeMultiplier(uint256)0xc9d25661e22e7cb4e9bb42c0ab37317c9d016c545490fc0a7fb4b59eb68b9eaeNoneset_swap_fee_multiplier
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

Core contracts with no events​

MigrationFactoryOwner, LTMigrator, and CryptopoolLPOracle emit no events.

DAO​

YB​

YB emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Transfer(sender, receiver, value)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receivertransfer, transferFrom, mint, emit
Approval(owner, spender, value)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, spenderapprove, and transferFrom unless the allowance is the maximum
RoleMinterChanged(minter, status)RoleMinterChanged(address,bool)0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4minterConstructor, set_minter, transfer_ownership, renounce_ownership
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership, renounce_ownership

VotingEscrow​

VotingEscrow emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Deposit(_from, _for, value, locktime, type, ts)Deposit(address,address,uint256,uint256,uint256,uint256)0x5f971bd00bf3ffbca8a6d72cdd4fd92cfd4f62636161921d1e5a64f0b64ccb6d_from, _for, locktimecreate_lock, increase_amount, increase_unlock_time, infinite_lock_toggle
Withdraw(_from, _for, value, ts)Withdraw(address,address,uint256,uint256)0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567_from, _forwithdraw
Supply(prevSupply, supply)Supply(uint256,uint256)0x5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5cNoneWith every Deposit and Withdraw
SetTransferClearanceChecker(clearance_checker)SetTransferClearanceChecker(address)0xa7fad85ba00d983deab3d92e1bbba81938da68cddbcb5d4f018ef3b1e66534faNoneset_transfer_clearance_checker
Transfer(sender, receiver, token_id)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receiver, token_idcreate_lock (mint); withdraw, transferFrom, safeTransferFrom (burn). A transfer merges the two positions and burns the source NFT
Approval(owner, approved, token_id)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, approved, token_idapprove
ApprovalForAll(owner, operator, approved)ApprovalForAll(address,address,bool)0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31owner, operatorsetApprovalForAll
RoleMinterChanged(minter, status)RoleMinterChanged(address,bool)0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4minterConstructor
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

GaugeController​

GaugeController emits these events:

EventCanonical signatureTopic0IndexedEmitted by
VoteForGauge(time, user, gauge_addr, weight)VoteForGauge(uint256,address,address,uint256)0x45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc91Nonevote_for_gauge_weights
NewGauge(addr)NewGauge(address)0x88b3a3dcf49d2c2bc73de47dc84b60f3b9179d60d97b8ba43a1d3aa726c818b9Noneadd_gauge
SetKilled(gauge, is_killed)SetKilled(address,bool)0x6f287c58034b39b1a4c2b7eb84d0bfceccc7984f19675343742bb94f114a46c6Noneset_killed
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

LiquidityGauge​

LiquidityGauge emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Deposit(sender, owner, assets, shares)Deposit(address,address,uint256,uint256)0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7sender, ownerdeposit, mint
Withdraw(sender, receiver, owner, assets, shares)Withdraw(address,address,address,uint256,uint256)0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8dbsender, receiver, ownerwithdraw, redeem
Transfer(sender, receiver, value)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receiverMints, burns, transfer, and transferFrom of gauge shares
Approval(owner, spender, value)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, spenderapprove, and transferFrom unless the allowance is the maximum
AddReward(token, distributor, id)AddReward(address,address,uint256)0xbaa8134d057f38ffff73248ae9edf1012783d074fbae40443077bf53fc57b9ectokenConstructor (YB, id 0), add_reward
ChangeRewardDistributor(token, distributor)ChangeRewardDistributor(address,address)0xd6161cfaa8ff15169d3b9c3c69f7dcd627a1c5ca6a3534afdd8054d2961c6102tokenchange_reward_distributor
DepositRewards(token, distributor, amount, finish_time)DepositRewards(address,address,uint256,uint256)0x1ecc08cf4f4c06326e836da1a250282d8c384890b0d027466c2923183d9da0bdtokendeposit_reward
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership
RoleMinterChanged(minter, status)RoleMinterChanged(address,bool)0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4minterConstructor

FeeDistributor​

FeeDistributor emits these events:

EventCanonical signatureTopic0IndexedEmitted by
FundEpoch(epoch, token, amount)FundEpoch(uint256,address,uint256)0x9f019dbc9514f8715f51d181b9d5b45c99d39aeab1d60fc3a8ae35fe8ce1318depoch, tokenfill_epochs, add_token_set, and claims
AddTokenSet(token_set_id, token_set)AddTokenSet(uint256,address[])0x15a950c06832d3d93393104b6e1c6574a014aba4e45e861c3d59bb314217753atoken_set_idConstructor, add_token_set
Claim(user, token, amount)Claim(address,address,uint256)0x70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068user, tokenclaim
Kill(is_killed)Kill(bool)0x341b7cf6ad8a4dc51ac20a161fe9ee87ee5f180554bf9d4bf1746b8335d61b98Nonekill_toggle
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

InflationaryVest​

InflationaryVest emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Start(timestamp, amount)Start(uint256,uint256)0x5a7d5f50ab70a39d193bf53f0fb995377776df93bb6fdcf1cd1868b7e0dd44eeNonestart
NewRecepient(recipient, old_recipient)NewRecepient(address,address)0xc92ec79bcdcbb8ac6d9db1aec210e7ae67c74b314724e6747aacb7fb3de23048Noneset_recipient. The name keeps the source spelling
Claim(recipient, claimed)Claim(address,uint256)0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4Noneclaim
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

VestingEscrow​

VestingEscrow emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Fund(recipient, amount)Fund(address,uint256)0xda8220a878ff7a89474ccffdaa31ea1ed1ffbb0207d5051afccc4fbaf81f9bcdrecipientfund
Defund(recipient, refund_recipient, amount)Defund(address,address,uint256)0x3bb082152a6aeca4accd7a549583361cf3387c060a33681f9bc6f22fa6333f8crecipientrug_disabled
Claim(recipient, claimed)Claim(address,uint256)0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4recipientclaim
ToggleDisable(recipient, disabled)ToggleDisable(address,bool)0xcc8442d1b68aaf1cdb1da2b3d9ebf3daad586d3404166b75d744a8b5092cefadNonetoggle_disable
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership, renounce_ownership

CliffEscrow​

CliffEscrow emits this event:

EventCanonical signatureTopic0IndexedEmitted by
TokenRecovered(token, to, amount)TokenRecovered(address,address,uint256)0x879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f9096tokenrecover_token

SnapshotSplitter​

SnapshotSplitter emits this event:

EventCanonical signatureTopic0IndexedEmitted by
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, renounce_ownership

DAO contracts with no events​

StakeZap, TokenSender, Multisend, CallComparator, and VotingPowerCondition emit no events.

Net pressure​

The net-pressure contracts pay crvUSD incentives to liquidity in a sink pool. A share of LT admin fees funds them: the FeeSplitter sends that share to the active driver. To find the active driver, call FeeSplitter.pid().

FeeSplitter​

FeeSplitter emits these events:

EventCanonical signatureTopic0IndexedEmitted by
SetSplitFraction(fraction)SetSplitFraction(uint256)0x5163c61ce6b666fd7e8f0052701d65ba037ca1f4be2ef7d6c700708fb65d3c14Noneset_split_fraction
SetDestinations(pid, fee_distributor)SetDestinations(address,address)0x57fc998440efdf6938380dcf06de4ae46210a2019f420bacb095ce6424518ceaNoneset_destinations
Recover(token, amount)Recover(address,uint256)0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37atokenrecover
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

MerklPIDDriver​

MerklPIDDriver emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Converted(crvusd_gained, reserve)Converted(uint256,uint256)0xd25ed857c9bba3b62ea894bc5be45b59c376bae644b4ee89bd6e35d566d1bb37Nonetrigger
SetPressureLts(lts)SetPressureLts(address[])0xb40a8a8dce118dec5ac2eaca9f67b2d30b36745651f4afa3ef5fa6356fad191bNoneset_pressure_lts
SetSinkPool(sink_pool)SetSinkPool(address)0xa08e1eb03e7945b17d1b6b20197f1d090c016b778c54f74b1e002ea11ed2dcb4sink_poolset_sink_pool
SetManager(manager)SetManager(address)0x54a6385aa0292b04e1ef8513253c17d1863f7cdfc87029d77fd55cc4c2e717e2managerset_manager
SetMerkl(creator, wrapper)SetMerkl(address,address)0x4009fea718f18839041a862e88869c34c0c1349447b95ac09ff04511817e3b99creator, wrapperset_merkl
CampaignCreated(campaign_id, amount, campaign_type, duration)CampaignCreated(bytes32,uint256,uint32,uint32)0x440f5d333f278a1d892c151accabd01912d555a7621928e244b180b932b23533campaign_idcreate_campaign
CampaignOverridden(campaign_id, duration)CampaignOverridden(bytes32,uint32)0x9fa3732718ceb01812aa1ddcea9292e1b34fa107328ce0777ec0623ad18d2510campaign_idoverride_campaign
SetSources(net_pressure, market_rate_getter, fee_distributor)SetSources(address,address,address)0xb9dcc9467d74eeb0cb92d2dba6bf9ba6fd32f0980291ef3395e8a5d8e5ddf129net_pressure, market_rate_getter, fee_distributorset_sources
SetGains(feedforward_gain, kp, ki, kd, max_integral, sink_cap, dead_band, sink_per_offer, d_filter_time)SetGains(int256,int256,int256,int256,int256,int256,uint256,uint256,uint256)0x1797cbcab3d7f12e0ba26aab15ce9ae02958eaf8517f2fa8394a44bc4040131fNoneset_gains
SetExecutionParams(swap_fee_multiplier, dust_floor)SetExecutionParams(uint256,uint256)0xbecda7d837c1bb02e6311e18cdc0b2c4ef4e45df35fa74d7425d825d13fe1f74Noneset_execution_params
Recover(token, amount)Recover(address,uint256)0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37atokenrecover
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

PID​

PID emits these events:

EventCanonical signatureTopic0IndexedEmitted by
Trigger(pressure, sink, bonus_apr, rate)Trigger(uint256,uint256,uint256,uint256)0x9fb03503c588109364d8b409ef5f744a492c5da9d82338ad0d2e186d16e705a1Nonetrigger
SetPressureLts(lts)SetPressureLts(address[])0xb40a8a8dce118dec5ac2eaca9f67b2d30b36745651f4afa3ef5fa6356fad191bNoneset_pressure_lts
SetGauge(gauge, sink_pool)SetGauge(address,address)0xb980a40e5b6e992493967c8460db4d84575ad3246c3a17141fa7756ae4dd7180gauge, sink_poolset_gauge
SetSources(net_pressure, market_rate_getter, fee_distributor)SetSources(address,address,address)0xb9dcc9467d74eeb0cb92d2dba6bf9ba6fd32f0980291ef3395e8a5d8e5ddf129net_pressure, market_rate_getter, fee_distributorset_sources
SetGains(feedforward_gain, kp, ki, kd, max_integral, sink_cap, dead_band, sink_per_offer, d_filter_time)SetGains(int256,int256,int256,int256,int256,int256,uint256,uint256,uint256)0x1797cbcab3d7f12e0ba26aab15ce9ae02958eaf8517f2fa8394a44bc4040131fNoneset_gains
SetExecutionParams(swap_fee_multiplier, dust_floor)SetExecutionParams(uint256,uint256)0xbecda7d837c1bb02e6311e18cdc0b2c4ef4e45df35fa74d7425d825d13fe1f74Noneset_execution_params
Recover(token, amount)Recover(address,uint256)0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37atokenrecover
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership

FastGauge​

FastGauge emits these events:

EventCanonical signatureTopic0IndexedEmitted by
SetPID(pid)SetPID(address)0xa416f4bc7c6ac77e4b027fc41117279569fa6ea0789442203338cf5d66399f0cNoneset_pid
SetRewardRate(rate)SetRewardRate(uint256)0x1946fb78c7ca778b54d82cabaac5ba67cf446f58d0ff1f8ceaebb6150e54e44fNoneset_reward_rate
SetEmaTime(ema_time)SetEmaTime(uint256)0x3b0acc0a291bf012a300d56b920406d76ac62577ce81b7466d011fa9c1c126eeNoneset_ema_time
Claim(user, amount)Claim(address,uint256)0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4userclaim
AddLiquidity(provider, receiver, amounts, lp)AddLiquidity(address,address,uint256[],uint256)0x67902069e86c21d5ad116d9df073bf02a2bfdbd591414157cda22d3b8476cd53provider, receiveradd_liquidity
RemoveLiquidity(owner, receiver, shares, amounts)RemoveLiquidity(address,address,uint256,uint256[])0x1dc97ea566f2546624b7d74a8558e099ecb12a370ab938702dce1e07c913d764owner, receiverremove_liquidity
RemoveLiquidityOne(owner, receiver, shares, coin, dy)RemoveLiquidityOne(address,address,uint256,int128,uint256)0xda6eed9a2c666558a454f1798228545e33d9e515b4a93cc70073aece4ef62a1cowner, receiverremove_liquidity_one_coin
Deposit(sender, owner, assets, shares)Deposit(address,address,uint256,uint256)0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7sender, ownerdeposit, mint
Withdraw(sender, receiver, owner, assets, shares)Withdraw(address,address,address,uint256,uint256)0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8dbsender, receiver, ownerwithdraw, redeem
Transfer(sender, receiver, value)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receiverMints, burns, transfer, and transferFrom of gauge shares
Approval(owner, spender, value)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, spenderapprove, and transferFrom unless the allowance is the maximum
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerConstructor, transfer_ownership
RoleMinterChanged(minter, status)RoleMinterChanged(address,bool)0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4minterConstructor

Net-pressure contracts with no events​

YBNetPressure and MarketRateGetter emit no events.

Curve pool and policies​

Curve pool (Twocrypto with policy hook)​

The pools of markets 7 to 10 are Twocrypto v3.0.0. In this code, N_COINS is 2 and the Policy interface type is address. A pool deployed from other code can emit different types, so compare with the verified ABI of the pool.

A v3.0.0 pool emits these events:

EventCanonical signatureTopic0IndexedNote
Transfer(sender, receiver, value)Transfer(address,address,uint256)0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efsender, receiverLP token
Approval(owner, spender, value)Approval(address,address,uint256)0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925owner, spenderLP token
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought, fee, price_scale)TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256)0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29cbuyer
AddLiquidity(provider, receiver, token_amounts, fee, token_supply, price_scale)AddLiquidity(address,address,uint256[2],uint256,uint256,uint256)0x0e1f3c59f25a027e14a3f55c68245d22089c42b1dcd09f123a11d4af3c0d6f72provider, receiverAlso emitted for donations
Donation(donor, token_amounts)Donation(address,uint256[2])0xc05458c16b884817a70d3d18223db5fe4adb4cb541a5573bef0daae7a6f20542donor
RemoveLiquidity(provider, token_amounts, token_supply)RemoveLiquidity(address,uint256[2],uint256)0xdd3c0336a16f1b64f172b7bb0dad5b2b3c7c76f91e8c4aafd6aae60dce800153provider
RemoveLiquidityOne(provider, token_amount, coin_index, coin_amount, approx_fee, packed_price_scale)RemoveLiquidityOne(address,uint256,uint256,uint256,uint256,uint256)0xe200e24d4a4c7cd367dd9befe394dc8a14e6d58c88ff5e2f512d65a9e0aa9c5cprovider
RemoveLiquidityImbalance(provider, lp_token_amount, token_amounts, approx_fee, price_scale)RemoveLiquidityImbalance(address,uint256,uint256[2],uint256,uint256)0x22f9ea3e7d7b113cb423896d2e121f96a66c17814ac7f63d69096769fa3e2a55provider
NewParameters(mid_fee, out_fee, fee_gamma, adjustment_step_min, adjustment_step_max, ma_time)NewParameters(uint256,uint256,uint256,uint256,uint256,uint256)0xa32137411fc7c20db359079cd84af0e2cad58cd7a182a8a5e23e08e554e88bf0None
RampAgamma(initial_A, future_A, initial_gamma, future_gamma, initial_time, future_time)RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256)0xe35f0559b0642164e286b30df2077ec3a05426617a25db7578fd20ba39a6cd05None
StopRampA(current_A, current_gamma, time)StopRampA(uint256,uint256,uint256)0x5f0e7fba3d100c9e19446e1c92fe436f0a9a22fe99669360e4fdd6d3de2fc284None
ClaimAdminFee(admin, tokens)ClaimAdminFee(address,uint256[2])0x3bbd5f2f4711532d6e9ee88dfdf2f1468e9a4c3ae5e14d2e1a67bf4242d008d0admin
SetDonationParameters(duration, donation_protection_period, donation_protection_lp_threshold, donation_shares_max_ratio)SetDonationParameters(uint256,uint256,uint256,uint256)0xfaec9577d11cc0ccde5c7dc231f72c89b0ffeb61e8295d8858c613b54904911aNone
SetFeeParameters(reserved_profit_fraction, admin_fee)SetFeeParameters(uint256,uint256)0xd8c40ef62d8608ade62e6c2363caa4cc6909f666deb8c973df9113c41e32950fNone
SetPolicyContract(policy)SetPolicyContract(address)0x78e81206388ab3ee5e73c68b87da16f8cc8968c831d517adec68a516c75d09b0NoneEmitted when the Curve factory admin attaches, replaces, or removes (zero address) the pool policy, or when initialize sets it. Watch this event to learn when a policy starts to set the fee or the price_scale target
LPAllowlistChanged(user, allowed)LPAllowlistChanged(address,bool)0x91452c7d2b6a6f6ecfdddb64101731dda875bd3aa8dabdb13fefeeb006b8ed23userOne event for each added or removed account. A last event with user equal to the zero address carries the enabled flag of the allowlist

The pools of markets 0 to 6 (v2.1.0d) emit the same swap and liquidity events. Their admin events differ:

  • NewParameters(mid_fee, out_fee, fee_gamma, allowed_extra_profit, adjustment_step, ma_time)
  • SetDonationDuration(duration)
  • SetDonationProtection(donation_protection_period, donation_protection_lp_threshold, donation_shares_max_ratio)
  • SetAdminFee(admin_fee)
  • SetPeriphery(views, math)

These pools have no SetPolicyContract, LPAllowlistChanged, SetFeeParameters, or SetDonationParameters event.

YBOraclizedPolicy​

To see which policy a pool runs, call POLICY() on the pool or read the pool policy table in Contract addresses. The field types come from the PolicyConfig and OracleConfig structs in Pool policy.

The oracle-report policy, YBOraclizedPolicy, emits these events:

EventCanonical signatureTopic0IndexedEmitted by
ReportAccepted(asset_price, observation_us, message_us)ReportAccepted(uint256,uint256,uint256)0xcc2313daa47b328dc2d3eb8fedd7c99e0d0d134eb91d27e89e8b52cc68ebe487Nonedeliver_oracle_report, when it stores a Pyth Pro (Pyth Lazer) price report. asset_price is coin 1 in USD with 18 decimals. Times are in microseconds
SetPolicyConfig(config)SetPolicyConfig(((uint256,uint256,uint256,uint256),(uint256,uint256,uint256,uint256,uint256),uint256))0x19927097456d776a002179b15a4f1dc977dac114630d3fbe462f841c5a3ca549NoneConstructor, set_policy_config. config is the tuple ((base_fee, capture, fallback_fee, relax_time), (fast_half_life, slow_half_life, trend_gate, step_cap, report_lifetime), ratio_tolerance)
SetOracleConfig(oracle)SetOracleConfig((address,uint8,uint256,uint256,uint256,uint256))0xd9a84cb9257d0448f56857105eca5c6768319c90411cf9bb2aa880dc4d1fba2cNoneConstructor, set_oracle_config. oracle is the tuple (verifier, channel, past_window_us, future_window_us, min_price, max_price). Except at deployment, the policy drops the stored price report price
SetKilled(is_killed)SetKilled(bool)0xf6a23ecf31263066d4cc1ac21837c1714818045ecc5c0dd89f279e0bd4b7ef87Noneset_killed
OwnershipTransferred(previous_owner, new_owner)OwnershipTransferred(address,address)0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0previous_owner, new_ownerOwnership changes (snekmate ownable)

The pool callback (update_pool_state) and sync emit no event.

YBTwocryptoPolicy​

YBTwocryptoPolicy emits no events. It sets only the price_scale target, from the pool's own prices.

  • Error codes: the revert strings of the same contracts, for the calls that fail.
  • Pool policy: the policy structs behind the SetPolicyConfig and SetOracleConfig tuples.
  • Contract addresses: the singleton addresses and the pool policy of each pool.