FluidSmartLendingFactory ​
Inherits:Constants, Variables, Events, Error
Functions ​
validAddress ​
Validates that an address is not the zero address
modifier validAddress(address value_);
constructor ​
constructor(address dexFactory_, address liquidity_, address owner_)
validAddress(dexFactory_)
validAddress(liquidity_)
validAddress(owner_)
Variables(owner_);
onlyDeployers ​
Validates that msg.sender is deployer or owner
modifier onlyDeployers();
allTokens ​
List of all created tokens
function allTokens() public view returns (address[] memory);
isSmartLendingAuth ​
Reads if a certain auth_
address is an allowed auth for smartLending_
or not. Owner is auth by default.
function isSmartLendingAuth(address smartLending_, address auth_) public view returns (bool);
isDeployer ​
Reads if a certain deployer_
address is an allowed deployer or not. Owner is deployer by default.
function isDeployer(address deployer_) public view returns (bool);
smartLendingCreationCode ​
Retrieves the creation code for the SmartLending contract
function smartLendingCreationCode() public view returns (bytes memory);
updateDeployer ​
Sets an address as allowed deployer or not. Only callable by owner.
function updateDeployer(address deployer_, bool allowed_) external onlyOwner validAddress(deployer_);
Parameters
Name | Type | Description |
---|---|---|
deployer_ | address | Address to set deployer value for |
allowed_ | bool | Bool flag for whether address is allowed as deployer or not |
updateSmartLendingAuth ​
Updates the authorization status of an address for a SmartLending contract. Only callable by owner.
function updateSmartLendingAuth(address smartLending_, address auth_, bool allowed_)
external
validAddress(smartLending_)
validAddress(auth_)
onlyOwner;
Parameters
Name | Type | Description |
---|---|---|
smartLending_ | address | The address of the SmartLending contract |
auth_ | address | The address to be updated |
allowed_ | bool | The new authorization status |
setSmartLendingCreationCode ​
Sets the creationCode_
bytecode for new SmartLending contracts. Only callable by owner.
function setSmartLendingCreationCode(bytes calldata creationCode_) external onlyOwner;
Parameters
Name | Type | Description |
---|---|---|
creationCode_ | bytes | New SmartLending contract creation code. |
spell ​
Spell allows owner aka governance to do any arbitrary call on factory
function spell(address target_, bytes memory data_) external onlyOwner returns (bytes memory response_);
Parameters
Name | Type | Description |
---|---|---|
target_ | address | Address to which the call needs to be delegated |
data_ | bytes | Data to execute at the delegated address |
deploy ​
Deploys a new SmartLending contract. Only callable by deployers.
function deploy(uint256 dexId_) public onlyDeployers returns (address smartLending_);
Parameters
Name | Type | Description |
---|---|---|
dexId_ | uint256 | The ID of the DEX for which the smart lending wrapper is being deployed |
Returns
Name | Type | Description |
---|---|---|
smartLending_ | address | The newly deployed SmartLending contract |
getSmartLendingAddress ​
Computes the address of a SmartLending contract based on a given dexId.
function getSmartLendingAddress(uint256 dexId_) public view returns (address);
Parameters
Name | Type | Description |
---|---|---|
dexId_ | uint256 | The ID of the DEX for which the SmartLending contract address is being computed. |
Returns
Name | Type | Description |
---|---|---|
<none> | address | The computed address of the SmartLending contract. |
totalSmartLendings ​
Returns the total number of SmartLending contracts deployed by the factory.
function totalSmartLendings() external view returns (uint256);
Returns
Name | Type | Description |
---|---|---|
<none> | uint256 | The total number of SmartLending contracts deployed. |
isSmartLending ​
Checks if a given address (smartLending_
) corresponds to a valid smart lending.
function isSmartLending(address smartLending_) public view returns (bool);
Parameters
Name | Type | Description |
---|---|---|
smartLending_ | address | The smart lending address to check. |
Returns
Name | Type | Description |
---|---|---|
<none> | bool | Returns true if the given address corresponds to a valid smart lending, otherwise false . |
_getSalt ​
unique deployment salt for the smart lending
function _getSalt(uint256 dexId_) internal pure returns (bytes32);
_deploy ​
Deploys a contract using the CREATE opcode with the provided bytecode (bytecode_
). This is an internal function, meant to be used within the contract to facilitate the deployment of other contracts.
function _deploy(bytes memory bytecode_) internal returns (address address_);
Parameters
Name | Type | Description |
---|---|---|
bytecode_ | bytes | The bytecode of the contract to be deployed. |
Returns
Name | Type | Description |
---|---|---|
address_ | address | Returns the address of the deployed contract. |