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, isaddress. - A
DynArray[T, N]isT[]. - A struct is a tuple of its member types, for example
(address,uint8,uint256). - A flag type, for example
LockActionsin VotingEscrow, isuint256.
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.
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 indexestoken_idas a third topic.TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256)is inAMM(the LEVAMM) and the Curve pool. The last field isprice_oracleinAMMandprice_scalein the pool.DepositandWithdrawof LT and of the gauges have the same topic0.Claim(address,uint256)is in InflationaryVest (no indexed field), VestingEscrow (recipientindexed), and FastGauge (userindexed).SetKilled(bool)is inAMMandYBOraclizedPolicy.SetEmaTime(uint256)is in FastGauge and YBLendingOracleLL.Recover(address,uint256)is in FeeSplitter, PID, and MerklPIDDriver. PID and MerklPIDDriver also shareSetPressureLts,SetSources,SetGains, andSetExecutionParams.OwnershipTransferred(address,address)is in every contract that uses snekmateownable.
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:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Deposit(sender, owner, assets, shares) | Deposit(address,address,uint256,uint256) | 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 | sender, owner | deposit |
Withdraw(sender, receiver, owner, assets, shares) | Withdraw(address,address,address,uint256,uint256) | 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db | sender, receiver, owner | withdraw |
Transfer(sender, receiver, value) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver | Mints, 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) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, spender | approve, and transferFrom unless the allowance is the maximum |
SetStaker(staker) | SetStaker(address) | 0x6901da73a3480b0bbd7deb64f259ff29a76ce811c7a3e5cf495f0e1eb4fb4dfb | staker | set_staker |
WithdrawAdminFees(receiver, amount) | WithdrawAdminFees(address,uint256) | 0x78b4892921a904766a871a893b75e9461080a308419f358353f73739b29c7fc4 | None | withdraw_admin_fees |
AllocateStablecoins(allocator, stablecoin_allocation, stablecoin_allocated) | AllocateStablecoins(address,uint256,uint256) | 0x6f16a992fba7b966942bb6064775e154f99de09fce962940d4e284c5c9132868 | allocator | allocate_stablecoins |
DistributeBorrowerFees(sender, amount, min_amount, discount) | DistributeBorrowerFees(address,uint256,uint256,uint256) | 0x5bdcb9afddbd4bbebe8e11112e8b8ba0008f38b107b6c8d4bed13e9fb40acb1c | sender | distribute_borrower_fees, and at the end of deposit and withdraw, when LT holds crvUSD to donate |
SetAdmin(admin) | SetAdmin(address) | 0x5a272403b402d892977df56625f4164ccaf70ca3863991c43ecfe76a6905b0a1 | None | set_admin |
AMM
AMM, the LEVAMM contract, emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought, fee, price_oracle) | TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256) | 0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c | buyer | exchange. buyer is msg.sender. On a VirtualPool route, buyer is the VirtualPool |
AddLiquidityRaw(token_amounts, invariant, price_oracle) | AddLiquidityRaw(uint256[2],uint256,uint256) | 0x488e5334cc9bea5219087037712837bf3d72b260676f5d41c866905cca6842d1 | None | _deposit, which only LT calls, in LT.deposit |
RemoveLiquidityRaw(collateral_change, debt_change) | RemoveLiquidityRaw(uint256,uint256) | 0x33c707093baa929b1d0237d3c8111e597ba833fcc950696c87d5ff66a287e31e | None | _withdraw, which only LT calls, in LT.withdraw and LT.emergency_withdraw |
SetRate(rate, rate_mul, time) | SetRate(uint256,uint256,uint256) | 0x52543716810f73c3fa9bca74622aecb6d3614ca4991472f3e999d531c2f6afb8 | None | set_rate |
CollectFees(amount, new_supply) | CollectFees(uint256,uint256) | 0x5393ab6ef9bb40d91d1b04bbbeb707fbf3d1eb73f46744e2d179e4996026283f | None | collect_fees, and in exchange. amount can be 0 |
SetFee(fee) | SetFee(uint256) | 0x00172ddfc5ae88d08b3de01a5a187667c37a5a53989e8c175055cb6c993792a7 | None | set_fee |
SetKilled(is_killed) | SetKilled(bool) | 0xf6a23ecf31263066d4cc1ac21837c1714818045ecc5c0dd89f279e0bd4b7ef87 | None | set_killed |
VirtualPool
VirtualPool emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought) | TokenExchange(address,uint256,uint256,uint256,uint256) | 0xb2e76ae99761dc136e598d4a629bb347eccb9532a5f8bbd72e18467c3c34cc98 | buyer | exchange. buyer is the recipient (_for), not the caller |
Factory
Factory emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
MarketParameters(idx, asset_token, cryptopool, amm, lt, price_oracle, virtual_pool, staker, agg) | MarketParameters(uint256,address,address,address,address,address,address,address,address) | 0x0a2f141c803b7bf5e04b3d7b621d659110855c736b446179264d6a61232d3f0b | idx, asset_token, cryptopool | add_market, fill_staker_vpool |
SetImplementations(amm, lt, virtual_pool, price_oracle, staker) | SetImplementations(address,address,address,address,address) | 0xe0816edf10a269aa4a7dd0728c02244458ca712361bfc23d84a4ea830b7c44ef | None | Constructor, set_implementations |
SetAllocator(allocator, amount) | SetAllocator(address,uint256) | 0x6e671c52e5bc0aa133fe59c69dcbdde3ebec4145c563664428a70731ff91ae0f | None | set_mint_factory, set_allocator |
SetFeeReceiver(fee_receiver) | SetFeeReceiver(address) | 0xffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f | None | set_fee_receiver |
SetAgg(agg) | SetAgg(address) | 0x843c0fd5d15daa8bb099274f122c91630f39df53ebf3c5f8e843c979fb660bca | None | set_agg |
SetFlash(flash) | SetFlash(address) | 0xeaa8d04d33cdb2fd361c560c793d8cbaee16fbba34b3747921ab2a76191f912d | None | set_flash |
SetAdmin(admin, emergency_admin, old_admin, old_emergency_admin) | SetAdmin(address,address,address,address) | 0x9a45e4c3baa33ef1c484b02fb5837d58d3ffb1b7cf7a11ea3b8d0546064ab3bb | None | set_admin |
SetMinAdminFee(admin_fee) | SetMinAdminFee(uint256) | 0x1d944867b41f8cfe3aa0b5ba9ff5c481e37c5c4dd403801d32000a939ba5fcc0 | None | set_min_admin_fee |
SetGaugeController(gc) | SetGaugeController(address) | 0x613940253cf21d005743a34a04b5c9c39fb1700b83758166647e87af9b826ac7 | None | set_gauge_controller |
HybridVault
HybridVault emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
SetPersonalLimit(pool_id, limit) | SetPersonalLimit(uint256,uint256) | 0x40177d2fe9a10c67c6ae4f4ea612a783b79a43025da645fd8c39b42c91fcc5ed | None | set_personal_limit |
SetCrvusdVault(vault) | SetCrvusdVault(address) | 0xe18ffb1ea781b234edb756f46ee486ff71f285bce79171881d5baa1269d54e62 | None | set_crvusd_vault |
HybridVaultFactory
HybridVaultFactory emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
VaultCreated(user, vault) | VaultCreated(address,address) | 0x5d9c31ffa0fecffd7cf379989a3c7af252f0335e0d2a1320b55245912c781f53 | user, vault | create_vault |
SetVaultImpl(impl) | SetVaultImpl(address) | 0x999d30d6fe53fe3b3c7e414cdceac209b0712454921ef7114248d261e64d8c23 | None | set_vault_impl |
SetStablecoinFraction(stablecoin_fraction) | SetStablecoinFraction(uint256) | 0x9774308ddecd91d58d169d64a37d81b2e341596431f2447bee671e1679db10a9 | None | set_stablecoin_fraction |
SetPoolLimit(pool_id, limit) | SetPoolLimit(uint256,uint256) | 0xa7c5f1f034eab2cc85e9b61f2f2dd0b9dee49078571c5bbd7063de88de2f81e2 | None | Constructor, set_pool_limit |
SetAllowedCrvusdVault(vault, allowed) | SetAllowedCrvusdVault(address,bool) | 0x5f60501daf33df61a553f3bbe2900320c48d28cf6214f4817e00d6186423ae25 | None | set_allowed_crvusd_vault |
SetCrvusdVaultLimit(crvusd_vault, limit) | SetCrvusdVaultLimit(address,uint256) | 0x4e90d5c6bce9f895b89c5bf5b1f61925df7071ba2aad3239295a5999e3f65f10 | None | set_allowed_crvusd_vault, set_crvusd_vault_limit |
HybridFactoryOwner
HybridFactoryOwner emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
SetLimitSetter(setter, enabled) | SetLimitSetter(address,bool) | 0x145ec2d7ec3d5614d1ce5a0a96faefc02d54e89d5408a106c0c832303edf31ee | None | set_limit_setter |
YBLendingOracle
YBLendingOracle emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
OraclesCreated(market_id, lt, usd_oracle, asset_oracle) | OraclesCreated(uint256,address,address,address) | 0x2df0208f5e7ec1e3176b5b9a893a87bd532a9324a5d67d6a5c3c88d0704e8cea | market_id, lt | create_oracles |
YBLendingOracleLL
YBLendingOracleLL emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
SetEmaTime(ema_time) | SetEmaTime(uint256) | 0x3b0acc0a291bf012a300d56b920406d76ac62577ce81b7466d011fa9c1c126ee | None | set_ema_time |
YBLendingOracleLLFactory
YBLendingOracleLLFactory emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
OraclesCreated(market_id, lt, usd_oracle, asset_oracle, ema_time) | OraclesCreated(uint256,address,address,address,uint256) | 0x3b1121b91cf8ad42008708e2a55d29129c6857ab29d2c552d9fa5bd5717f33cf | market_id, lt | create_oracles |
SetDefaultEmaTime(ema_time) | SetDefaultEmaTime(uint256) | 0x173b0bf26a164d868d8793d9a6bd6a191d64f6ab91d50245cc0741812e4e03e9 | None | set_default_ema_time |
SetEmaTime(market_id, oracle, ema_time) | SetEmaTime(uint256,address,uint256) | 0x5683cacbead3c6d342bedcbf77479e03a9338af5a333fd3f278f547d54acf308 | market_id, oracle | set_ema_time |
SetDao(dao) | SetDao(address) | 0x202719d39eed4fb6f9f942a2eded433c67f5aa302dad8a13dd453c4b00489f63 | dao | set_dao |
LTSwapZap
LTSwapZap emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Converted(lt, shares, crvusd_out) | Converted(address,uint256,uint256) | 0xe6a45eea08a42f7c3f90f290e8ecf15e16174981943adf509fc9ea49808a64c6 | lt | convert |
Returned(lt, assets) | Returned(address,uint256) | 0xdd81098bbc043431d4a440ca8823673fd1129893ab79f9838df4cf3d5e381259 | lt | convert |
SetSwapFeeMultiplier(swap_fee_multiplier) | SetSwapFeeMultiplier(uint256) | 0xc9d25661e22e7cb4e9bb42c0ab37317c9d016c545490fc0a7fb4b59eb68b9eae | None | set_swap_fee_multiplier |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
Core contracts with no events
MigrationFactoryOwner, LTMigrator, and CryptopoolLPOracle emit no events.
DAO
YB
YB emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Transfer(sender, receiver, value) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver | transfer, transferFrom, mint, emit |
Approval(owner, spender, value) | Approval(address,address,uint256) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, spender | approve, and transferFrom unless the allowance is the maximum |
RoleMinterChanged(minter, status) | RoleMinterChanged(address,bool) | 0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4 | minter | Constructor, set_minter, transfer_ownership, renounce_ownership |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership, renounce_ownership |
VotingEscrow
VotingEscrow emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Deposit(_from, _for, value, locktime, type, ts) | Deposit(address,address,uint256,uint256,uint256,uint256) | 0x5f971bd00bf3ffbca8a6d72cdd4fd92cfd4f62636161921d1e5a64f0b64ccb6d | _from, _for, locktime | create_lock, increase_amount, increase_unlock_time, infinite_lock_toggle |
Withdraw(_from, _for, value, ts) | Withdraw(address,address,uint256,uint256) | 0xf341246adaac6f497bc2a656f546ab9e182111d630394f0c57c710a59a2cb567 | _from, _for | withdraw |
Supply(prevSupply, supply) | Supply(uint256,uint256) | 0x5e2aa66efd74cce82b21852e317e5490d9ecc9e6bb953ae24d90851258cc2f5c | None | With every Deposit and Withdraw |
SetTransferClearanceChecker(clearance_checker) | SetTransferClearanceChecker(address) | 0xa7fad85ba00d983deab3d92e1bbba81938da68cddbcb5d4f018ef3b1e66534fa | None | set_transfer_clearance_checker |
Transfer(sender, receiver, token_id) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver, token_id | create_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) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, approved, token_id | approve |
ApprovalForAll(owner, operator, approved) | ApprovalForAll(address,address,bool) | 0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31 | owner, operator | setApprovalForAll |
RoleMinterChanged(minter, status) | RoleMinterChanged(address,bool) | 0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4 | minter | Constructor |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
GaugeController
GaugeController emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
VoteForGauge(time, user, gauge_addr, weight) | VoteForGauge(uint256,address,address,uint256) | 0x45ca9a4c8d0119eb329e580d28fe689e484e1be230da8037ade9547d2d25cc91 | None | vote_for_gauge_weights |
NewGauge(addr) | NewGauge(address) | 0x88b3a3dcf49d2c2bc73de47dc84b60f3b9179d60d97b8ba43a1d3aa726c818b9 | None | add_gauge |
SetKilled(gauge, is_killed) | SetKilled(address,bool) | 0x6f287c58034b39b1a4c2b7eb84d0bfceccc7984f19675343742bb94f114a46c6 | None | set_killed |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
LiquidityGauge
LiquidityGauge emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Deposit(sender, owner, assets, shares) | Deposit(address,address,uint256,uint256) | 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 | sender, owner | deposit, mint |
Withdraw(sender, receiver, owner, assets, shares) | Withdraw(address,address,address,uint256,uint256) | 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db | sender, receiver, owner | withdraw, redeem |
Transfer(sender, receiver, value) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver | Mints, burns, transfer, and transferFrom of gauge shares |
Approval(owner, spender, value) | Approval(address,address,uint256) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, spender | approve, and transferFrom unless the allowance is the maximum |
AddReward(token, distributor, id) | AddReward(address,address,uint256) | 0xbaa8134d057f38ffff73248ae9edf1012783d074fbae40443077bf53fc57b9ec | token | Constructor (YB, id 0), add_reward |
ChangeRewardDistributor(token, distributor) | ChangeRewardDistributor(address,address) | 0xd6161cfaa8ff15169d3b9c3c69f7dcd627a1c5ca6a3534afdd8054d2961c6102 | token | change_reward_distributor |
DepositRewards(token, distributor, amount, finish_time) | DepositRewards(address,address,uint256,uint256) | 0x1ecc08cf4f4c06326e836da1a250282d8c384890b0d027466c2923183d9da0bd | token | deposit_reward |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
RoleMinterChanged(minter, status) | RoleMinterChanged(address,bool) | 0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4 | minter | Constructor |
FeeDistributor
FeeDistributor emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
FundEpoch(epoch, token, amount) | FundEpoch(uint256,address,uint256) | 0x9f019dbc9514f8715f51d181b9d5b45c99d39aeab1d60fc3a8ae35fe8ce1318d | epoch, token | fill_epochs, add_token_set, and claims |
AddTokenSet(token_set_id, token_set) | AddTokenSet(uint256,address[]) | 0x15a950c06832d3d93393104b6e1c6574a014aba4e45e861c3d59bb314217753a | token_set_id | Constructor, add_token_set |
Claim(user, token, amount) | Claim(address,address,uint256) | 0x70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068 | user, token | claim |
Kill(is_killed) | Kill(bool) | 0x341b7cf6ad8a4dc51ac20a161fe9ee87ee5f180554bf9d4bf1746b8335d61b98 | None | kill_toggle |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
InflationaryVest
InflationaryVest emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Start(timestamp, amount) | Start(uint256,uint256) | 0x5a7d5f50ab70a39d193bf53f0fb995377776df93bb6fdcf1cd1868b7e0dd44ee | None | start |
NewRecepient(recipient, old_recipient) | NewRecepient(address,address) | 0xc92ec79bcdcbb8ac6d9db1aec210e7ae67c74b314724e6747aacb7fb3de23048 | None | set_recipient. The name keeps the source spelling |
Claim(recipient, claimed) | Claim(address,uint256) | 0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4 | None | claim |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
VestingEscrow
VestingEscrow emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Fund(recipient, amount) | Fund(address,uint256) | 0xda8220a878ff7a89474ccffdaa31ea1ed1ffbb0207d5051afccc4fbaf81f9bcd | recipient | fund |
Defund(recipient, refund_recipient, amount) | Defund(address,address,uint256) | 0x3bb082152a6aeca4accd7a549583361cf3387c060a33681f9bc6f22fa6333f8c | recipient | rug_disabled |
Claim(recipient, claimed) | Claim(address,uint256) | 0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4 | recipient | claim |
ToggleDisable(recipient, disabled) | ToggleDisable(address,bool) | 0xcc8442d1b68aaf1cdb1da2b3d9ebf3daad586d3404166b75d744a8b5092cefad | None | toggle_disable |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership, renounce_ownership |
CliffEscrow
CliffEscrow emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
TokenRecovered(token, to, amount) | TokenRecovered(address,address,uint256) | 0x879f92dded0f26b83c3e00b12e0395dc72cfc3077343d1854ed6988edd1f9096 | token | recover_token |
SnapshotSplitter
SnapshotSplitter emits this event:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, 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:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
SetSplitFraction(fraction) | SetSplitFraction(uint256) | 0x5163c61ce6b666fd7e8f0052701d65ba037ca1f4be2ef7d6c700708fb65d3c14 | None | set_split_fraction |
SetDestinations(pid, fee_distributor) | SetDestinations(address,address) | 0x57fc998440efdf6938380dcf06de4ae46210a2019f420bacb095ce6424518cea | None | set_destinations |
Recover(token, amount) | Recover(address,uint256) | 0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37a | token | recover |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
MerklPIDDriver
MerklPIDDriver emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Converted(crvusd_gained, reserve) | Converted(uint256,uint256) | 0xd25ed857c9bba3b62ea894bc5be45b59c376bae644b4ee89bd6e35d566d1bb37 | None | trigger |
SetPressureLts(lts) | SetPressureLts(address[]) | 0xb40a8a8dce118dec5ac2eaca9f67b2d30b36745651f4afa3ef5fa6356fad191b | None | set_pressure_lts |
SetSinkPool(sink_pool) | SetSinkPool(address) | 0xa08e1eb03e7945b17d1b6b20197f1d090c016b778c54f74b1e002ea11ed2dcb4 | sink_pool | set_sink_pool |
SetManager(manager) | SetManager(address) | 0x54a6385aa0292b04e1ef8513253c17d1863f7cdfc87029d77fd55cc4c2e717e2 | manager | set_manager |
SetMerkl(creator, wrapper) | SetMerkl(address,address) | 0x4009fea718f18839041a862e88869c34c0c1349447b95ac09ff04511817e3b99 | creator, wrapper | set_merkl |
CampaignCreated(campaign_id, amount, campaign_type, duration) | CampaignCreated(bytes32,uint256,uint32,uint32) | 0x440f5d333f278a1d892c151accabd01912d555a7621928e244b180b932b23533 | campaign_id | create_campaign |
CampaignOverridden(campaign_id, duration) | CampaignOverridden(bytes32,uint32) | 0x9fa3732718ceb01812aa1ddcea9292e1b34fa107328ce0777ec0623ad18d2510 | campaign_id | override_campaign |
SetSources(net_pressure, market_rate_getter, fee_distributor) | SetSources(address,address,address) | 0xb9dcc9467d74eeb0cb92d2dba6bf9ba6fd32f0980291ef3395e8a5d8e5ddf129 | net_pressure, market_rate_getter, fee_distributor | set_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) | 0x1797cbcab3d7f12e0ba26aab15ce9ae02958eaf8517f2fa8394a44bc4040131f | None | set_gains |
SetExecutionParams(swap_fee_multiplier, dust_floor) | SetExecutionParams(uint256,uint256) | 0xbecda7d837c1bb02e6311e18cdc0b2c4ef4e45df35fa74d7425d825d13fe1f74 | None | set_execution_params |
Recover(token, amount) | Recover(address,uint256) | 0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37a | token | recover |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
PID
PID emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
Trigger(pressure, sink, bonus_apr, rate) | Trigger(uint256,uint256,uint256,uint256) | 0x9fb03503c588109364d8b409ef5f744a492c5da9d82338ad0d2e186d16e705a1 | None | trigger |
SetPressureLts(lts) | SetPressureLts(address[]) | 0xb40a8a8dce118dec5ac2eaca9f67b2d30b36745651f4afa3ef5fa6356fad191b | None | set_pressure_lts |
SetGauge(gauge, sink_pool) | SetGauge(address,address) | 0xb980a40e5b6e992493967c8460db4d84575ad3246c3a17141fa7756ae4dd7180 | gauge, sink_pool | set_gauge |
SetSources(net_pressure, market_rate_getter, fee_distributor) | SetSources(address,address,address) | 0xb9dcc9467d74eeb0cb92d2dba6bf9ba6fd32f0980291ef3395e8a5d8e5ddf129 | net_pressure, market_rate_getter, fee_distributor | set_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) | 0x1797cbcab3d7f12e0ba26aab15ce9ae02958eaf8517f2fa8394a44bc4040131f | None | set_gains |
SetExecutionParams(swap_fee_multiplier, dust_floor) | SetExecutionParams(uint256,uint256) | 0xbecda7d837c1bb02e6311e18cdc0b2c4ef4e45df35fa74d7425d825d13fe1f74 | None | set_execution_params |
Recover(token, amount) | Recover(address,uint256) | 0x817c5912299b2d8eea4d9429e557c7b42c96a31499b4229932d1f070f068e37a | token | recover |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
FastGauge
FastGauge emits these events:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
SetPID(pid) | SetPID(address) | 0xa416f4bc7c6ac77e4b027fc41117279569fa6ea0789442203338cf5d66399f0c | None | set_pid |
SetRewardRate(rate) | SetRewardRate(uint256) | 0x1946fb78c7ca778b54d82cabaac5ba67cf446f58d0ff1f8ceaebb6150e54e44f | None | set_reward_rate |
SetEmaTime(ema_time) | SetEmaTime(uint256) | 0x3b0acc0a291bf012a300d56b920406d76ac62577ce81b7466d011fa9c1c126ee | None | set_ema_time |
Claim(user, amount) | Claim(address,uint256) | 0x47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d4 | user | claim |
AddLiquidity(provider, receiver, amounts, lp) | AddLiquidity(address,address,uint256[],uint256) | 0x67902069e86c21d5ad116d9df073bf02a2bfdbd591414157cda22d3b8476cd53 | provider, receiver | add_liquidity |
RemoveLiquidity(owner, receiver, shares, amounts) | RemoveLiquidity(address,address,uint256,uint256[]) | 0x1dc97ea566f2546624b7d74a8558e099ecb12a370ab938702dce1e07c913d764 | owner, receiver | remove_liquidity |
RemoveLiquidityOne(owner, receiver, shares, coin, dy) | RemoveLiquidityOne(address,address,uint256,int128,uint256) | 0xda6eed9a2c666558a454f1798228545e33d9e515b4a93cc70073aece4ef62a1c | owner, receiver | remove_liquidity_one_coin |
Deposit(sender, owner, assets, shares) | Deposit(address,address,uint256,uint256) | 0xdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d7 | sender, owner | deposit, mint |
Withdraw(sender, receiver, owner, assets, shares) | Withdraw(address,address,address,uint256,uint256) | 0xfbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db | sender, receiver, owner | withdraw, redeem |
Transfer(sender, receiver, value) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver | Mints, burns, transfer, and transferFrom of gauge shares |
Approval(owner, spender, value) | Approval(address,address,uint256) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, spender | approve, and transferFrom unless the allowance is the maximum |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Constructor, transfer_ownership |
RoleMinterChanged(minter, status) | RoleMinterChanged(address,bool) | 0xbb6e183664bd7425a9e444072cb0f1c7f7c4d5486a36d7d24d0b0735687c2ef4 | minter | Constructor |
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:
| Event | Canonical signature | Topic0 | Indexed | Note |
|---|---|---|---|---|
Transfer(sender, receiver, value) | Transfer(address,address,uint256) | 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef | sender, receiver | LP token |
Approval(owner, spender, value) | Approval(address,address,uint256) | 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925 | owner, spender | LP token |
TokenExchange(buyer, sold_id, tokens_sold, bought_id, tokens_bought, fee, price_scale) | TokenExchange(address,uint256,uint256,uint256,uint256,uint256,uint256) | 0x143f1f8e861fbdeddd5b46e844b7d3ac7b86a122f36e8c463859ee6811b1f29c | buyer | |
AddLiquidity(provider, receiver, token_amounts, fee, token_supply, price_scale) | AddLiquidity(address,address,uint256[2],uint256,uint256,uint256) | 0x0e1f3c59f25a027e14a3f55c68245d22089c42b1dcd09f123a11d4af3c0d6f72 | provider, receiver | Also emitted for donations |
Donation(donor, token_amounts) | Donation(address,uint256[2]) | 0xc05458c16b884817a70d3d18223db5fe4adb4cb541a5573bef0daae7a6f20542 | donor | |
RemoveLiquidity(provider, token_amounts, token_supply) | RemoveLiquidity(address,uint256[2],uint256) | 0xdd3c0336a16f1b64f172b7bb0dad5b2b3c7c76f91e8c4aafd6aae60dce800153 | provider | |
RemoveLiquidityOne(provider, token_amount, coin_index, coin_amount, approx_fee, packed_price_scale) | RemoveLiquidityOne(address,uint256,uint256,uint256,uint256,uint256) | 0xe200e24d4a4c7cd367dd9befe394dc8a14e6d58c88ff5e2f512d65a9e0aa9c5c | provider | |
RemoveLiquidityImbalance(provider, lp_token_amount, token_amounts, approx_fee, price_scale) | RemoveLiquidityImbalance(address,uint256,uint256[2],uint256,uint256) | 0x22f9ea3e7d7b113cb423896d2e121f96a66c17814ac7f63d69096769fa3e2a55 | provider | |
NewParameters(mid_fee, out_fee, fee_gamma, adjustment_step_min, adjustment_step_max, ma_time) | NewParameters(uint256,uint256,uint256,uint256,uint256,uint256) | 0xa32137411fc7c20db359079cd84af0e2cad58cd7a182a8a5e23e08e554e88bf0 | None | |
RampAgamma(initial_A, future_A, initial_gamma, future_gamma, initial_time, future_time) | RampAgamma(uint256,uint256,uint256,uint256,uint256,uint256) | 0xe35f0559b0642164e286b30df2077ec3a05426617a25db7578fd20ba39a6cd05 | None | |
StopRampA(current_A, current_gamma, time) | StopRampA(uint256,uint256,uint256) | 0x5f0e7fba3d100c9e19446e1c92fe436f0a9a22fe99669360e4fdd6d3de2fc284 | None | |
ClaimAdminFee(admin, tokens) | ClaimAdminFee(address,uint256[2]) | 0x3bbd5f2f4711532d6e9ee88dfdf2f1468e9a4c3ae5e14d2e1a67bf4242d008d0 | admin | |
SetDonationParameters(duration, donation_protection_period, donation_protection_lp_threshold, donation_shares_max_ratio) | SetDonationParameters(uint256,uint256,uint256,uint256) | 0xfaec9577d11cc0ccde5c7dc231f72c89b0ffeb61e8295d8858c613b54904911a | None | |
SetFeeParameters(reserved_profit_fraction, admin_fee) | SetFeeParameters(uint256,uint256) | 0xd8c40ef62d8608ade62e6c2363caa4cc6909f666deb8c973df9113c41e32950f | None | |
SetPolicyContract(policy) | SetPolicyContract(address) | 0x78e81206388ab3ee5e73c68b87da16f8cc8968c831d517adec68a516c75d09b0 | None | Emitted 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) | 0x91452c7d2b6a6f6ecfdddb64101731dda875bd3aa8dabdb13fefeeb006b8ed23 | user | One 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:
| Event | Canonical signature | Topic0 | Indexed | Emitted by |
|---|---|---|---|---|
ReportAccepted(asset_price, observation_us, message_us) | ReportAccepted(uint256,uint256,uint256) | 0xcc2313daa47b328dc2d3eb8fedd7c99e0d0d134eb91d27e89e8b52cc68ebe487 | None | deliver_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)) | 0x19927097456d776a002179b15a4f1dc977dac114630d3fbe462f841c5a3ca549 | None | Constructor, 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)) | 0xd9a84cb9257d0448f56857105eca5c6768319c90411cf9bb2aa880dc4d1fba2c | None | Constructor, 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) | 0xf6a23ecf31263066d4cc1ac21837c1714818045ecc5c0dd89f279e0bd4b7ef87 | None | set_killed |
OwnershipTransferred(previous_owner, new_owner) | OwnershipTransferred(address,address) | 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | previous_owner, new_owner | Ownership 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.
Related
- Error codes: the revert strings of the same contracts, for the calls that fail.
- Pool policy: the policy structs behind the
SetPolicyConfigandSetOracleConfigtuples. - Contract addresses: the singleton addresses and the pool policy of each pool.