Skip to content

IAvmDirectory

Global registry roll-up for tenants, groups, market kinds, deployed markets, and emitter permissions. Composes public caller-permission slices.

This interface does not require the directory itself to use a proxy model. Caller-permission slices: - IAvmDirectoryViews: read-only views. - IAvmDirectoryGroupAdmin: market-group-admin operations. - IAvmDirectoryTenantAdmin: tenant-admin operations.

Inherited from IAvmDirectoryGroupAdmin.

Accept a pending group-admin transfer; caller must match MarketGroup.proposedAdmin.

function acceptMarketGroupAdmin(GroupId groupId) nonpayable

Parameters

Inherited from IAvmDirectoryTenantAdmin.

Accept a pending tenant-admin transfer; caller must match Tenant.proposedAdmin.

function acceptTenantAdmin(TenantId tenantId) nonpayable

Parameters

Inherited from IAvmDirectoryTenantAdmin.

Create a market group under the tenant. Caller must be the parent-tenant admin.

function createMarketGroup(struct CreateMarketGroupArgs args) nonpayable

Parameters

Inherited from IAvmDirectoryViews.

Current canonical pricing-engine proxy for a market kind.

function engineForKind(MarketKind kind) returns (address) view

Parameters

Returns

  • engineaddress

Inherited from IAvmDirectoryViews.

function eventEmitter() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

function getMarketAddressById(MarketId marketId) returns (address) view

Parameters

Returns

  • marketAddressaddress

Inherited from IAvmDirectoryViews.

function getMarketGroup(GroupId groupId) returns (struct DataTypes.MarketGroup) view

Parameters

Returns

Inherited from IAvmDirectoryViews.

function getMarketIdByAddress(address marketAddress) returns (MarketId) view

Parameters

  • marketAddressaddress

Returns

Inherited from IAvmDirectoryViews.

function getMarketKindConfig(MarketKind kind) returns (struct DataTypes.MarketTypeConfig) view

Parameters

Returns

Inherited from IAvmDirectoryViews.

function getTenant(TenantId tenantId) returns (struct DataTypes.Tenant) view

Parameters

Returns

Inherited from IAvmDirectoryViews.

function isAuthorizedEmitter(address caller) returns (bool) view

Parameters

  • calleraddress

Returns

  • bool

Inherited from IAvmDirectoryViews.

Current implementation address that every market proxy delegatecalls to for delegated permissionless action methods.

One pointer, shared by every market. Each market re-reads this value on every delegated action call, so a protocol-admin rotation takes effect on every market simultaneously, on the next delegated action call after the rotation transaction is mined. donateLiquidity is served by the market proxy directly and is not routed through this pointer.

function marketActionsImpl() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

Current implementation address that every market proxy delegatecalls to for auth-gated market admin methods.

One pointer, shared by every market. Each market re-reads this value on every delegated admin call, so a protocol-admin rotation takes effect on every market simultaneously, on the next delegated admin call after the rotation transaction is mined. The proxy keeps the admin auth gates; setting the pointer to address(0) pauses the whole admin family.

function marketAdminActionsImpl() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

Single UpgradeableBeacon shared by every market BeaconProxy.

Every market is engine-agnostic at the bytecode layer; engine flavor differences are resolved through engineForKind, not separate market implementations. So one beacon is sufficient.

function marketBeacon() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

Canonical factory allowed to call registerMarket.

Deployed by the directory constructor; IAvmFactory.createMarket is the only supported path for new market registration.

function marketFactory() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

function marketKindExists(MarketKind kind) returns (bool) view

Parameters

Returns

  • bool

Inherited from IAvmDirectoryViews.

Current implementation address that every market proxy delegatecalls to for delegated permissionless leverage-related action methods.

One pointer, shared by every market. Each market re-reads this value on every delegated action call, so a protocol-admin rotation takes effect on every market simultaneously, on the next delegated action call after the rotation transaction is mined.

function marketLeverageActionsImpl() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

Maximum allowed group-fee rate for buy, sell, borrow, and exercise-option operations.

Mirrors FeePolicy.MAX_GROUP_FEE_MICRO_BPS. Group fees are charged on gross reserve-token flow for the relevant operation. See IAvmDirectoryGroupAdmin.setMarketGroupFees.

function maxGroupFeeMicroBps() returns (MicroBps) view

Returns

Inherited from IAvmDirectoryViews.

Maximum allowed platform-fee share applied to group-fee revenue.

Mirrors FeePolicy.MAX_PLATFORM_FEE_MICRO_BPS. The platform fee is a slice of group-fee revenue, not an additive surcharge on top of the group fee. See IAvmDirectoryProtocolAdmin.setPlatformFee.

function maxPlatformFeeMicroBps() returns (MicroBps) view

Returns

Inherited from IAvmDirectoryViews.

function owner() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryGroupAdmin.

Propose a new group admin (two-step transfer). Caller must be the current admin.

function proposeMarketGroupAdmin(GroupId groupId, address proposed) nonpayable

Parameters

  • groupIdGroupId
  • proposedaddress

Inherited from IAvmDirectoryTenantAdmin.

Propose a new tenant admin (two-step transfer). Caller must be the current admin.

function proposeTenantAdmin(TenantId tenantId, address proposed) nonpayable

Parameters

  • tenantIdTenantId
  • proposedaddress

Inherited from IAvmDirectoryViews.

function proposedProtocolAdmin() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryViews.

function protocolAdmin() returns (address) view

Returns

  • address

Inherited from IAvmDirectoryGroupAdmin.

Update the fee schedule applied to all markets in this group.

Each rate is a MicroBps value where 100_000_000 represents 100%. Rates apply to gross reserve-token flow for the matching operation (buy on reserve in, sell on reserve out, borrow on debt opened, exerciseOption on floor exercise). Every field must be at most IAvmDirectoryViews.maxGroupFeeMicroBps(). The parent tenant’s platform fee then splits group-fee revenue; it is not additive on top of these rates.

function setMarketGroupFees(GroupId groupId, struct DataTypes.GroupFees fees) nonpayable

Parameters