Factory
Last updated
Last updated
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.
The address of the private pool implementation that proxies point to.
Helper contract that constructs the private pool metadata svg and json for each pool NFT.
The protocol fee that is taken on each buy/sell/change. It's in basis points: 350 = 3.5%.
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.
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.
Sets private pool metadata contract.
Parameters
_privatePoolMetadata
address
The private pool metadata contract.
Sets the private pool implementation contract that newly deployed proxies point to.
Parameters
_privatePoolImplementation
address
The private pool implementation contract.
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.
Withdraws the earned protocol fees.
Parameters
token
address
The token to withdraw.
amount
uint256
The amount to withdraw.
Returns the token URI for a given token id.
Parameters
id
uint256
The token id.
Returns
<none>
string
uri The token URI.