BaseLaunchHoldersDistributorFactory
Creates one holders distributor per holders-mode launch as a clone of a single implementation whose code cannot change, and holds the publisher key every distributor trusts to post reward epochs.
Creates one holders distributor per launch as an EIP-1167 clone of a fixed implementation deployed with this factory. Clones are not upgradeable, so a distributor's code is fixed for its whole life. The owner's only power is rotating publisher, the key allowed to post reward epochs on every distributor. A publisher can allocate a distributor's available() balance but can never reach an allocation that is already published and still claimable.
Part of the contract reference.
Deployed at
Read functions (7)
| Function | What it does |
|---|---|
feeEscrowfeeEscrow() view returns (address)selector 0xc4b7de97Anyone | The fee escrow distributors harvest creator fees from. |
implementationimplementation() view returns (address)selector 0x5c60da1bAnyone | The code every distributor clone runs. |
launchFactorylaunchFactory() view returns (address)selector 0x536dac9bAnyone | The launch factory every distributor binds against. |
ownerowner() view returns (address)selector 0x8da5cb5bAnyone | Returns the address of the current owner. Inherited from Ownable. |
pendingOwnerpendingOwner() view returns (address)selector 0xe30c3978Anyone | Returns the address of the pending owner. Inherited from Ownable2Step. |
publisherpublisher() view returns (address)selector 0x8c72c54eAnyone | The key allowed to publish reward epochs, read live by every distributor. |
renounceOwnershiprenounceOwnership() pureselector 0x715018a6Anyone | Permanently disabled, so the publisher key always stays rotatable. |
Write functions (4)
| Function | What it does |
|---|---|
acceptOwnershipacceptOwnership()selector 0x79ba5097Pending owner | The new owner accepts the ownership transfer. Inherited from Ownable2Step. |
createcreate(address creator) returns (address distributor)selector 0x9ed93318Anyone | Deploys a new distributor. Permissionless: a distributor only ever receives the fees of a launch that names it as recipient. |
setPublishersetPublisher(address publisher_)selector 0xcab63661Owner | Rotates the epoch publisher for every distributor. |
transferOwnershiptransferOwnership(address newOwner)selector 0xf2fde38bOwner | Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting Inherited from Ownable2Step. |
Events (4)
| Event | What it means |
|---|---|
DistributorCreatedDistributorCreated(address indexed distributor, address indexed creator)topic0 0xbefdb281bf53f234496ee0b37711bf32704eb91833f0c05e3020581720dea7be | A distributor clone was created; creator is recorded for attribution only. Emitted by create |
OwnershipTransferredOwnershipTransferred(address indexed previousOwner, address indexed newOwner)topic0 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 | Ownership moved to a new owner (at deployment, or when a pending owner accepted). Emitted by acceptOwnership, |
OwnershipTransferStartedOwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)topic0 0x38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700 | The owner named a pending owner; ownership moves when that account accepts. Emitted by transferOwnership |
PublisherSetPublisherSet(address indexed publisher)topic0 0xc0166530abaec0a0e410fc382bffc2e81e6bfb689a714c74da47586f936d20fa | The epoch publisher for every distributor was set or rotated. Emitted by |
Addresses are listed for launcher 2.1.0, where new coins launch, and for launcher 2.0, which keeps serving the coins launched before the cutover. A coin stays on the set that launched it. The functions and events are the 2.1.0 contracts'; the 2.0 contracts are an earlier version of the same code and have no interface registry, so check a 2.0 contract's verified source on Basescan before relying on a detail listed here.