mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
610 lines
124 KiB
JSON
610 lines
124 KiB
JSON
|
{
|
||
|
"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": "0x1e8de8090fc65fc3e491c6069151b7be23dddf7e211ff9bacc8c1cfcf33082dd",
|
||
|
"receipt": {
|
||
|
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
|
||
|
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
|
||
|
"contractAddress": null,
|
||
|
"transactionIndex": 37,
|
||
|
"gasUsed": "1870239",
|
||
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000002020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000400000000000000000000020000000000000010000000000000000000000020000000000000000000100000000000000000000000000000000000000000000000",
|
||
|
"blockHash": "0x07341ad6b30a6f031255b736e4c54997b59e4d67528a2c189ddfb1379439a709",
|
||
|
"transactionHash": "0x1e8de8090fc65fc3e491c6069151b7be23dddf7e211ff9bacc8c1cfcf33082dd",
|
||
|
"logs": [
|
||
|
{
|
||
|
"transactionIndex": 37,
|
||
|
"blockNumber": 19239226,
|
||
|
"transactionHash": "0x1e8de8090fc65fc3e491c6069151b7be23dddf7e211ff9bacc8c1cfcf33082dd",
|
||
|
"address": "0x54B91A0D94cb471F37f949c60F7Fa7935b551D03",
|
||
|
"topics": [
|
||
|
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
|
||
|
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
||
|
"0x0000000000000000000000004f6f977acdd1177dcd81ab83074855ecb9c2d49e"
|
||
|
],
|
||
|
"data": "0x",
|
||
|
"logIndex": 151,
|
||
|
"blockHash": "0x07341ad6b30a6f031255b736e4c54997b59e4d67528a2c189ddfb1379439a709"
|
||
|
}
|
||
|
],
|
||
|
"blockNumber": 19239226,
|
||
|
"cumulativeGasUsed": "6005675",
|
||
|
"status": 1,
|
||
|
"byzantium": true
|
||
|
},
|
||
|
"args": [
|
||
|
"0x52Aa899454998Be5b000Ad077a46Bbe360F4e497",
|
||
|
"0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e"
|
||
|
],
|
||
|
"numDeployments": 1,
|
||
|
"solcInputHash": "1f22fdbe9105b3785c386ffdea0d074f",
|
||
|
"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": 23163,
|
||
|
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
|
||
|
"label": "owner",
|
||
|
"offset": 0,
|
||
|
"slot": "0",
|
||
|
"type": "t_address"
|
||
|
},
|
||
|
{
|
||
|
"astId": 19356,
|
||
|
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
|
||
|
"label": "_auths",
|
||
|
"offset": 0,
|
||
|
"slot": "1",
|
||
|
"type": "t_mapping(t_address,t_uint256)"
|
||
|
},
|
||
|
{
|
||
|
"astId": 19361,
|
||
|
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
|
||
|
"label": "_deployers",
|
||
|
"offset": 0,
|
||
|
"slot": "2",
|
||
|
"type": "t_mapping(t_address,t_uint256)"
|
||
|
},
|
||
|
{
|
||
|
"astId": 19365,
|
||
|
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
|
||
|
"label": "_allTokens",
|
||
|
"offset": 0,
|
||
|
"slot": "3",
|
||
|
"type": "t_array(t_address)dyn_storage"
|
||
|
},
|
||
|
{
|
||
|
"astId": 19369,
|
||
|
"contract": "contracts/protocols/lending/lendingFactory/main.sol:FluidLendingFactory",
|
||
|
"label": "_fTokenTypes",
|
||
|
"offset": 0,
|
||
|
"slot": "4",
|
||
|
"type": "t_array(t_string_storage)dyn_storage"
|
||
|
},
|
||
|
{
|
||
|
"astId": 19374,
|
||
|
"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"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|