fluid-contracts-public/deployments/arbitrum/LendingFactory.json

610 lines
124 KiB
JSON
Raw Permalink Normal View History

{
"address": "0x54B91A0D94cb471F37f949c60F7Fa7935b551D03",
"abi": [
{
"inputs": [
{
"internalType": "contract IFluidLiquidity",
"name": "liquidity_",
"type": "address"
},
{
"internalType": "address",
"name": "owner_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "errorId_",
"type": "uint256"
}
],
"name": "FluidLendingError",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "auth",
"type": "address"
},
{
"indexed": true,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "LogSetAuth",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "deployer",
"type": "address"
},
{
"indexed": true,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "LogSetDeployer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "string",
"name": "fTokenType",
"type": "string"
},
{
"indexed": true,
"internalType": "address",
"name": "creationCodePointer",
"type": "address"
}
],
"name": "LogSetFTokenCreationCode",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "asset",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "count",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "fTokenType",
"type": "string"
}
],
"name": "LogTokenCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"inputs": [],
"name": "LIQUIDITY",
"outputs": [
{
"internalType": "contract IFluidLiquidity",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "allTokens",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset_",
"type": "address"
},
{
"internalType": "string",
"name": "fTokenType_",
"type": "string"
}
],
"name": "computeToken",
"outputs": [
{
"internalType": "address",
"name": "token_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "asset_",
"type": "address"
},
{
"internalType": "string",
"name": "fTokenType_",
"type": "string"
},
{
"internalType": "bool",
"name": "isNativeUnderlying_",
"type": "bool"
}
],
"name": "createToken",
"outputs": [
{
"internalType": "address",
"name": "token_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "fTokenType_",
"type": "string"
}
],
"name": "fTokenCreationCode",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "fTokenTypes",
"outputs": [
{
"internalType": "string[]",
"name": "",
"type": "string[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "auth_",
"type": "address"
}
],
"name": "isAuth",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "deployer_",
"type": "address"
}
],
"name": "isDeployer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "auth_",
"type": "address"
},
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"name": "setAuth",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "deployer_",
"type": "address"
},
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"name": "setDeployer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "fTokenType_",
"type": "string"
},
{
"internalType": "bytes",
"name": "creationCode_",
"type": "bytes"
}
],
"name": "setFTokenCreationCode",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"transactionHash": "0xf26f6cebb2048584f145aba9c33dab890e82992f1cfb793c985383f18725bf11",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 6,
"gasUsed": "4223131",
"logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000002020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000400000000000000000000020000000000000010000000000000000000000020000000000000000000100000000000000000000000000000000000000000000000",
"blockHash": "0x5f69c01bf2f21e53010b7bb82226be30ac6f0f551a35fb66285b25a225d4bcbd",
"transactionHash": "0xf26f6cebb2048584f145aba9c33dab890e82992f1cfb793c985383f18725bf11",
"logs": [
{
"transactionIndex": 6,
"blockNumber": 220431694,
"transactionHash": "0xf26f6cebb2048584f145aba9c33dab890e82992f1cfb793c985383f18725bf11",
"address": "0x54B91A0D94cb471F37f949c60F7Fa7935b551D03",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000004f6f977acdd1177dcd81ab83074855ecb9c2d49e"
],
"data": "0x",
"logIndex": 27,
"blockHash": "0x5f69c01bf2f21e53010b7bb82226be30ac6f0f551a35fb66285b25a225d4bcbd"
}
],
"blockNumber": 220431694,
"cumulativeGasUsed": "5995181",
"status": 1,
"byzantium": true
},
"args": [
"0x52Aa899454998Be5b000Ad077a46Bbe360F4e497",
"0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e"
],
"numDeployments": 1,
"solcInputHash": "e6a5031683da44e09521fe6a300ed302",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IFluidLiquidity\",\"name\":\"liquidity_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"errorId_\",\"type\":\"uint256\"}],\"name\":\"FluidLendingError\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"auth\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"LogSetAuth\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"deployer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"allowed\",\"type\":\"bool\"}],\"name\":\"LogSetDeployer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"string\",\"name\":\"fTokenType\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creationCodePointer\",\"type\":\"address\"}],\"name\":\"LogSetFTokenCreationCode\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"fTokenType\",\"type\":\"string\"}],\"name\":\"LogTokenCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"LIQUIDITY\",\"outputs\":[{\"internalType\":\"contract IFluidLiquidity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"fTokenType_\",\"type\":\"string\"}],\"name\":\"computeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"asset_\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"fTokenType_\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"isNativeUnderlying_\",\"type\":\"bool\"}],\"name\":\"createToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"fTokenType_\",\"type\":\"string\"}],\"name\":\"fTokenCreationCode\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fTokenTypes\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"auth_\",\"type\":\"address\"}],\"name\":\"isAuth\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"deployer_\",\"type\":\"address\"}],\"name\":\"isDeployer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\
"bytecode": "0x60a06040523480156200001157600080fd5b50604051620022173803806200221783398101604081905262000034916200013d565b600080546001600160a01b0319166001600160a01b03831690811782556040518492849283929091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038116620000b45760405163694bda1d60e01b81526155f260048201526024015b60405180910390fd5b506001600160a01b0390811660805282908116620000ea5760405163694bda1d60e01b81526155f26004820152602401620000ab565b6000546001600160a01b0316806200011a5760405163694bda1d60e01b81526155f26004820152602401620000ab565b505050506200017c565b6001600160a01b03811681146200013a57600080fd5b50565b600080604083850312156200015157600080fd5b82516200015e8162000124565b6020840151909250620001718162000124565b809150509250929050565b608051612071620001a660003960008181610126015281816109f50152610ada01526120716000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c8063a34b5ee81161008c578063dd179e3b11610066578063dd179e3b146101fb578063e78e049a14610210578063f2fde38b14610223578063f60150791461023657600080fd5b8063a34b5ee8146101b5578063bb4a64d3146101c8578063c949aea6146101db57600080fd5b806350c358a4116100bd57806350c358a41461016d5780636ff97f1d146101805780638da5cb5b1461019557600080fd5b80630b44a218146100e45780632520e7ff146100f95780632861c7d114610121575b600080fd5b6100f76100f2366004611655565b610249565b005b61010c610107366004611688565b61038d565b60405190151581526020015b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610118565b61010c61017b366004611688565b6103e3565b610188610434565b60405161011891906116a3565b6000546101489073ffffffffffffffffffffffffffffffffffffffff1681565b6100f76101c3366004611655565b6104a3565b6101486101d6366004611746565b6105e2565b6101ee6101e9366004611873565b6105ff565b6040516101189190611916565b61020361069f565b6040516101189190611929565b61014861021e3660046119a9565b610778565b6100f7610231366004611688565b610c29565b6100f7610244366004611a0e565b610d1a565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff8116610321576040517f694bda1d0000000000000000000000000000000000000000000000000000000081526155f260048201526024016102c6565b8161032d576000610330565b60015b73ffffffffffffffffffffffffffffffffffffffff841660008181526001602052604080822060ff949094169093559151841515927f014b54fa6d2080e9aacd1c598c7689a625610d7d684dd41d10407e48aa8b120091a3505050565b6000805473ffffffffffffffffffffffffffffffffffffffff838116911614806103dd575073ffffffffffffffffffffffffffffffffffffffff8216600090815260016020819052604090912054145b92915050565b6000805473ffffffffffffffffffffffffffffffffffffffff838116911614806103dd57505073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460011490565b6060600380548060200260200160405190810160405280929190818152602001828054801561049957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161046e575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102c6565b8173ffffffffffffffffffffffffffffffffffffffff8116610576576040517f694bda1d0000000000000000000000000000000000000000000000000000000081526155f260048201526024016102c6565b81610582576000610585565b60015b73ffffffffffffffffffffffffffffffffffffffff841660008181526002602052604080822060ff949094169093559151841515927f48cc5b4660fae22eabe5e803ee595e63572773d114bcd54ecc118c1efa8d75af91a3505050565b60006105f76105f2858585611111565b611147565b949350505050565b6060600060056000846040516020016106189190611916565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291815281516020928301208352
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100df5760003560e01c8063a34b5ee81161008c578063dd179e3b11610066578063dd179e3b146101fb578063e78e049a14610210578063f2fde38b14610223578063f60150791461023657600080fd5b8063a34b5ee8146101b5578063bb4a64d3146101c8578063c949aea6146101db57600080fd5b806350c358a4116100bd57806350c358a41461016d5780636ff97f1d146101805780638da5cb5b1461019557600080fd5b80630b44a218146100e45780632520e7ff146100f95780632861c7d114610121575b600080fd5b6100f76100f2366004611655565b610249565b005b61010c610107366004611688565b61038d565b60405190151581526020015b60405180910390f35b6101487f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610118565b61010c61017b366004611688565b6103e3565b610188610434565b60405161011891906116a3565b6000546101489073ffffffffffffffffffffffffffffffffffffffff1681565b6100f76101c3366004611655565b6104a3565b6101486101d6366004611746565b6105e2565b6101ee6101e9366004611873565b6105ff565b6040516101189190611916565b61020361069f565b6040516101189190611929565b61014861021e3660046119a9565b610778565b6100f7610231366004611688565b610c29565b6100f7610244366004611a0e565b610d1a565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff8116610321576040517f694bda1d0000000000000000000000000000000000000000000000000000000081526155f260048201526024016102c6565b8161032d576000610330565b60015b73ffffffffffffffffffffffffffffffffffffffff841660008181526001602052604080822060ff949094169093559151841515927f014b54fa6d2080e9aacd1c598c7689a625610d7d684dd41d10407e48aa8b120091a3505050565b6000805473ffffffffffffffffffffffffffffffffffffffff838116911614806103dd575073ffffffffffffffffffffffffffffffffffffffff8216600090815260016020819052604090912054145b92915050565b6000805473ffffffffffffffffffffffffffffffffffffffff838116911614806103dd57505073ffffffffffffffffffffffffffffffffffffffff1660009081526002602052604090205460011490565b6060600380548060200260200160405190810160405280929190818152602001828054801561049957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161046e575b5050505050905090565b60005473ffffffffffffffffffffffffffffffffffffffff163314610524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064016102c6565b8173ffffffffffffffffffffffffffffffffffffffff8116610576576040517f694bda1d0000000000000000000000000000000000000000000000000000000081526155f260048201526024016102c6565b81610582576000610585565b60015b73ffffffffffffffffffffffffffffffffffffffff841660008181526002602052604080822060ff949094169093559151841515927f48cc5b4660fae22eabe5e803ee595e63572773d114bcd54ecc118c1efa8d75af91a3505050565b60006105f76105f2858585611111565b611147565b949350505050565b6060600060056000846040516020016106189190611916565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120835290820192909252016000205473ffffffffffffffffffffffffffffffffffffffff169050801561068857610683816112ad565b610698565b6040805160008152602081019091525b9392505050565b60606004805480602002602001604051908101604052809291908181526020016000905b8282101561076f5783829060005260206000200180546106e290611a6a565b80601f016020809104026020016040519081016040528092919081815260200182805461070e90611a6a565b801561075b5780601f106107305761010080835404028352916020019161075b565b820191906000526020600020905b81548152906001019060200180831161073e57829003601f168201915b5050505050815260200190600101906106c3565b50505050905090565b60008473ffffffffffffffffffffffffffffffffffffffff81166107cc576040517f694bda1d0000000000000000000000000000000000000000000000000000000081526155f260048201526024016102c6565b6107d5336103e3565b61080f576040517f694bda1d0000000000000000000000000000000000
"devdoc": {
"details": "Note the deployed token starts out with no config at Liquidity contract. This must be done by Liquidity auths in a separate step, otherwise no deposits will be possible. This contract is not upgradeable. It supports adding new fToken creation codes for future new fToken types.",
"kind": "dev",
"methods": {
"computeToken(address,string)": {
"params": {
"asset_": "address of the asset",
"fTokenType_": "type of fToken: - if it's the native token, it should use `NativeUnderlying` - otherwise it should use `fToken` - could be more types available, check `fTokenTypes()`"
},
"returns": {
"token_": " detemrinistic address of the computed token"
}
},
"createToken(address,string,bool)": {
"params": {
"asset_": "address of the asset",
"fTokenType_": "type of fToken: - if it's the native token, it should use `NativeUnderlying` - otherwise it should use `fToken` - could be more types available, check `fTokenTypes()`",
"isNativeUnderlying_": "flag to signal fToken type that uses native underlying at Liquidity"
},
"returns": {
"token_": " address of the created token"
}
},
"setAuth(address,bool)": {
"params": {
"allowed_": "bool flag for whether address is allowed as auth or not",
"auth_": "address to set auth value for"
}
},
"setDeployer(address,bool)": {
"params": {
"allowed_": "bool flag for whether address is allowed as deployer or not",
"deployer_": "address to set deployer value for"
}
},
"setFTokenCreationCode(string,bytes)": {
"params": {
"creationCode_": "contract creation code. can be set to bytes(0) to remove a previously available `fTokenType_`",
"fTokenType_": "the fToken Type used to refer the creation code"
}
}
},
"title": "Fluid LendingFactory",
"version": 1
},
"userdoc": {
"events": {
"LogSetAuth(address,bool)": {
"notice": "emitted when an auth is modified by owner"
},
"LogSetDeployer(address,bool)": {
"notice": "emitted when a deployer is modified by owner"
},
"LogSetFTokenCreationCode(string,address)": {
"notice": "emitted when the creation code for an fTokenType is set"
},
"LogTokenCreated(address,address,uint256,string)": {
"notice": "emitted when a new fToken is created"
}
},
"kind": "user",
"methods": {
"LIQUIDITY()": {
"notice": "address of the Liquidity contract."
},
"allTokens()": {
"notice": "list of all created tokens"
},
"computeToken(address,string)": {
"notice": "computes deterministic token address for `asset_` for a lending protocol"
},
"constructor": {
"notice": "initialize liquidity contract address & owner"
},
"createToken(address,string,bool)": {
"notice": "creates token for `asset_` for a lending protocol with interest. Only callable by deployers."
},
"fTokenCreationCode(string)": {
"notice": "returns the creation code for a certain `fTokenType_`"
},
"fTokenTypes()": {
"notice": "list of all fToken types that can be deployed"
},
"isAuth(address)": {
"notice": "reads if a certain `auth_` address is an allowed auth or not. Owner is auth by default."
},
"isDeployer(address)": {
"notice": "reads if a certain `deployer_` address is an allowed deployer or not. Owner is deployer by default."
},
"setAuth(address,bool)": {
"notice": "Sets an address as allowed auth or not. Only callable by owner."
},
"setDeployer(address,bool)": {
"notice": "Sets an address as allowed deployer or not. Only callable by owner."
},
"setFTokenCreationCode(string,bytes)": {
"notice": "Sets the `creationCode_` bytecode for a certain `fTokenType_`. Only callable by auths."
}
},
"notice": "creates Fluid lending protocol fTokens, which are interacting with Fluid Liquidity. fTokens are ERC20 & ERC4626 compatible tokens that allow to deposit to Fluid Liquidity to earn interest. Tokens are created at a deterministic address (see `computeToken()`), only executable by allow-listed auths.",
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 50962,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 40256,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "_auths",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 40261,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "_deployers",
"offset": 0,
"slot": "2",
"type": "t_mapping(t_address,t_uint256)"
},
{
"astId": 40265,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "_allTokens",
"offset": 0,
"slot": "3",
"type": "t_array(t_address)dyn_storage"
},
{
"astId": 40269,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "_fTokenTypes",
"offset": 0,
"slot": "4",
"type": "t_array(t_string_storage)dyn_storage"
},
{
"astId": 40274,
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
"label": "_fTokenCreationCodePointers",
"offset": 0,
"slot": "5",
"type": "t_mapping(t_bytes32,t_address)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_array(t_address)dyn_storage": {
"base": "t_address",
"encoding": "dynamic_array",
"label": "address[]",
"numberOfBytes": "32"
},
"t_array(t_string_storage)dyn_storage": {
"base": "t_string_storage",
"encoding": "dynamic_array",
"label": "string[]",
"numberOfBytes": "32"
},
"t_bytes32": {
"encoding": "inplace",
"label": "bytes32",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_mapping(t_bytes32,t_address)": {
"encoding": "mapping",
"key": "t_bytes32",
"label": "mapping(bytes32 => address)",
"numberOfBytes": "32",
"value": "t_address"
},
"t_string_storage": {
"encoding": "bytes",
"label": "string",
"numberOfBytes": "32"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
}
}
}
}