Factory
Inherits: ERC721, Owned
Author: out.eth (@outdoteth)
This contract is used to create and initialize new private pools. Each time a private pool is created, a new NFT representing that private pool is minted to the creator. All protocol fees also accrue to this contract and can be withdrawn by the admin.
State Variables
privatePoolImplementation
The address of the private pool implementation that proxies point to.
privatePoolMetadata
Helper contract that constructs the private pool metadata svg and json for each pool NFT.
protocolFeeRate
The protocol fee that is taken on each buy/sell/change. It's in basis points: 350 = 3.5%.
Functions
constructor
receive
create
Creates a new private pool using the minimal proxy pattern that points to the private pool implementation. The caller must approve the factory to transfer the NFTs that will be deposited to the pool.
Parameters
_baseToken
address
The address of the base token.
_nft
address
The address of the NFT.
_virtualBaseTokenReserves
uint128
The virtual base token reserves.
_virtualNftReserves
uint128
The virtual NFT reserves.
_changeFee
uint56
The change fee.
_feeRate
uint16
The fee rate.
_merkleRoot
bytes32
The merkle root.
_useStolenNftOracle
bool
Whether to use the stolen NFT oracle.
_payRoyalties
bool
_salt
bytes32
The salt that will used on deployment.
tokenIds
uint256[]
The token ids to deposit to the pool.
baseTokenAmount
uint256
The amount of base tokens to deposit to the pool.
Returns
privatePool
PrivatePool
The address of the private pool.
predictPoolDeploymentAddress
Predicts the deployment address of a new private pool.
Parameters
salt
bytes32
The salt that will used on deployment.
Returns
predictedAddress
address
The predicted deployment address of the private pool.
setPrivatePoolMetadata
Sets private pool metadata contract.
Parameters
_privatePoolMetadata
address
The private pool metadata contract.
setPrivatePoolImplementation
Sets the private pool implementation contract that newly deployed proxies point to.
Parameters
_privatePoolImplementation
address
The private pool implementation contract.
setProtocolFeeRate
Sets the protocol fee that is taken on each buy/sell/change. It's in basis points: 350 = 3.5%.
Parameters
_protocolFeeRate
uint16
The protocol fee.
withdraw
Withdraws the earned protocol fees.
Parameters
token
address
The token to withdraw.
amount
uint256
The amount to withdraw.
tokenURI
Returns the token URI for a given token id.
Parameters
id
uint256
The token id.
Returns
<none>
string
uri The token URI.
Events
Create
Withdraw
Last updated