mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
637 lines
62 KiB
JSON
637 lines
62 KiB
JSON
|
{
|
||
|
"address": "0x102a42aa1F6BEA5c9eC200B95AFbf928ae4b855b",
|
||
|
"abi": [
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "newStatus_",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"name": "changeStatus",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "tokens_",
|
||
|
"type": "address[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "collectRevenue",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "int256",
|
||
|
"name": "supplyAmount_",
|
||
|
"type": "int256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "int256",
|
||
|
"name": "borrowAmount_",
|
||
|
"type": "int256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "withdrawTo_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "borrowTo_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bytes",
|
||
|
"name": "callbackData_",
|
||
|
"type": "bytes"
|
||
|
}
|
||
|
],
|
||
|
"name": "operate",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "memVar3_",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "memVar4_",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "payable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "user_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "supplyTokens_",
|
||
|
"type": "address[]"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "borrowTokens_",
|
||
|
"type": "address[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "pauseUser",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "user_",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "supplyTokens_",
|
||
|
"type": "address[]"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "borrowTokens_",
|
||
|
"type": "address[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "unpauseUser",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "addr",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "value",
|
||
|
"type": "bool"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.AddressBool[]",
|
||
|
"name": "authsStatus_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateAuths",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address[]",
|
||
|
"name": "tokens_",
|
||
|
"type": "address[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateExchangePrices",
|
||
|
"outputs": [
|
||
|
{
|
||
|
"internalType": "uint256[]",
|
||
|
"name": "supplyExchangePrices_",
|
||
|
"type": "uint256[]"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256[]",
|
||
|
"name": "borrowExchangePrices_",
|
||
|
"type": "uint256[]"
|
||
|
}
|
||
|
],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "addr",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "bool",
|
||
|
"name": "value",
|
||
|
"type": "bool"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.AddressBool[]",
|
||
|
"name": "guardiansStatus_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateGuardians",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "kink",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationZero",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationKink",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationMax",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.RateDataV1Params[]",
|
||
|
"name": "tokensRateData_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateRateDataV1s",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "kink1",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "kink2",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationZero",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationKink1",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationKink2",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "rateAtUtilizationMax",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.RateDataV2Params[]",
|
||
|
"name": "tokensRateData_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateRateDataV2s",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "revenueCollector_",
|
||
|
"type": "address"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateRevenueCollector",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "fee",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "threshold",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "maxUtilization",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.TokenConfig[]",
|
||
|
"name": "tokenConfigs_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateTokenConfigs",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "user",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint8",
|
||
|
"name": "mode",
|
||
|
"type": "uint8"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "expandPercent",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "expandDuration",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "baseDebtCeiling",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "maxDebtCeiling",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.UserBorrowConfig[]",
|
||
|
"name": "userBorrowConfigs_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateUserBorrowConfigs",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "addr",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "value",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.AddressUint256[]",
|
||
|
"name": "userClasses_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateUserClasses",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
},
|
||
|
{
|
||
|
"inputs": [
|
||
|
{
|
||
|
"components": [
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "user",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "address",
|
||
|
"name": "token",
|
||
|
"type": "address"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint8",
|
||
|
"name": "mode",
|
||
|
"type": "uint8"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "expandPercent",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "expandDuration",
|
||
|
"type": "uint256"
|
||
|
},
|
||
|
{
|
||
|
"internalType": "uint256",
|
||
|
"name": "baseWithdrawalLimit",
|
||
|
"type": "uint256"
|
||
|
}
|
||
|
],
|
||
|
"internalType": "struct Structs.UserSupplyConfig[]",
|
||
|
"name": "userSupplyConfigs_",
|
||
|
"type": "tuple[]"
|
||
|
}
|
||
|
],
|
||
|
"name": "updateUserSupplyConfigs",
|
||
|
"outputs": [],
|
||
|
"stateMutability": "nonpayable",
|
||
|
"type": "function"
|
||
|
}
|
||
|
],
|
||
|
"transactionHash": "0xf69eb1101d7ee0b10e5d4ba22895ceaca6ad83fb724f2fadf989f788ad04510e",
|
||
|
"receipt": {
|
||
|
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
|
||
|
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
|
||
|
"contractAddress": null,
|
||
|
"transactionIndex": 4,
|
||
|
"gasUsed": "852712",
|
||
|
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
|
||
|
"blockHash": "0x52bca850aba27ef99de522a724a3c6566cfd81c68d6f60fe0b49d05dc62f670d",
|
||
|
"transactionHash": "0xf69eb1101d7ee0b10e5d4ba22895ceaca6ad83fb724f2fadf989f788ad04510e",
|
||
|
"logs": [],
|
||
|
"blockNumber": 220375013,
|
||
|
"cumulativeGasUsed": "977491",
|
||
|
"status": 1,
|
||
|
"byzantium": true
|
||
|
},
|
||
|
"args": [],
|
||
|
"numDeployments": 1,
|
||
|
"solcInputHash": "1989963ad64c4704dbe1170530c79d20",
|
||
|
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newStatus_\",\"type\":\"uint256\"}],\"name\":\"changeStatus\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens_\",\"type\":\"address[]\"}],\"name\":\"collectRevenue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"supplyAmount_\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"borrowAmount_\",\"type\":\"int256\"},{\"internalType\":\"address\",\"name\":\"withdrawTo_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"borrowTo_\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callbackData_\",\"type\":\"bytes\"}],\"name\":\"operate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"memVar3_\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"memVar4_\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"supplyTokens_\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"borrowTokens_\",\"type\":\"address[]\"}],\"name\":\"pauseUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user_\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"supplyTokens_\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"borrowTokens_\",\"type\":\"address[]\"}],\"name\":\"unpauseUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"internalType\":\"struct Structs.AddressBool[]\",\"name\":\"authsStatus_\",\"type\":\"tuple[]\"}],\"name\":\"updateAuths\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens_\",\"type\":\"address[]\"}],\"name\":\"updateExchangePrices\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"supplyExchangePrices_\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"borrowExchangePrices_\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"internalType\":\"struct Structs.AddressBool[]\",\"name\":\"guardiansStatus_\",\"type\":\"tuple[]\"}],\"name\":\"updateGuardians\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"kink\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rateAtUtilizationZero\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rateAtUtilizationKink\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rateAtUtilizationMax\",\"type\":\"uint256\"}],\"internalType\":\"struct Structs.RateDataV1Params[]\",\"name\":\"tokensRateData_\",\"type\":\"tuple[]\"}],\"name\":\"updateRateDataV1s\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"kink1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"kink2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rateAtUtilizationZero\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rateAtUtilizationKink1\",\"type\":\"uint256\"},{\"internalType\":\"ui
|
||
|
"bytecode": "0x608060405234801561001057600080fd5b506109d8806100206000396000f3fe6080604052600436106100e85760003560e01c8063a5eb43ef1161008a578063dd4cbf6b11610059578063dd4cbf6b14610205578063e8025d7714610227578063ec04840114610205578063f4bfa0001461024257600080fd5b8063a5eb43ef14610128578063ac862bfa146101b3578063ad967e15146101ce578063c2da75f01461012857600080fd5b80633fad77fc116100c65780633fad77fc1461014757806354bb0c1d146101625780637f7b60021461017d5780639dde59771461019857600080fd5b806301b88f86146100ed57806302c6bb6a1461010d5780633f66feff14610128575b600080fd5b3480156100f957600080fd5b5061010b61010836600461039c565b50565b005b34801561011957600080fd5b5061010b61010836600461049c565b34801561013457600080fd5b5061010b6101433660046105cd565b5050565b34801561015357600080fd5b5061010b61014336600461060f565b34801561016e57600080fd5b5061010b610108366004610684565b34801561018957600080fd5b5061010b6101433660046106a6565b3480156101a457600080fd5b5061010b610143366004610709565b3480156101bf57600080fd5b5061010b6101433660046107b1565b6101eb6101dc3660046107e7565b60008097509795505050505050565b604080519283526020830191909152015b60405180910390f35b34801561021157600080fd5b5061010b61022036600461089f565b5050505050565b34801561023357600080fd5b5061010b610108366004610920565b34801561024e57600080fd5b5061026661025d3660046107b1565b50606091829150565b6040516101fc929190610974565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156102c6576102c6610274565b60405290565b60405160c0810167ffffffffffffffff811182821017156102c6576102c6610274565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561033657610336610274565b604052919050565b600067ffffffffffffffff82111561035857610358610274565b5060051b60200190565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b919050565b803560ff8116811461038657600080fd5b600060208083850312156103af57600080fd5b823567ffffffffffffffff8111156103c657600080fd5b8301601f810185136103d757600080fd5b80356103ea6103e58261033e565b6102ef565b81815260e0918202830184019184820191908884111561040957600080fd5b938501935b838510156104905780858a0312156104265760008081fd5b61042e6102a3565b61043786610362565b8152610444878701610362565b87820152604061045581880161038b565b90820152606086810135908201526080808701359082015260a0808701359082015260c080870135908201528352938401939185019161040e565b50979650505050505050565b600060208083850312156104af57600080fd5b823567ffffffffffffffff8111156104c657600080fd5b8301601f810185136104d757600080fd5b80356104e56103e58261033e565b81815260c0918202830184019184820191908884111561050457600080fd5b938501935b838510156104905780858a0312156105215760008081fd5b6105296102cc565b61053286610362565b815261053f878701610362565b87820152604061055081880161038b565b90820152606086810135908201526080808701359082015260a0808701359082015283529384019391850191610509565b60008083601f84011261059357600080fd5b50813567ffffffffffffffff8111156105ab57600080fd5b6020830191508360208260061b85010111156105c657600080fd5b9250929050565b600080602083850312156105e057600080fd5b823567ffffffffffffffff8111156105f757600080fd5b61060385828601610581565b90969095509350505050565b6000806020838503121561062257600080fd5b823567ffffffffffffffff8082111561063a57600080fd5b818501915085601f83011261064e57600080fd5b81358181111561065d57600080fd5b86602060a08302850101111561067257600080fd5b60209290920196919550909350505050565b60006020828403121561069657600080fd5b61069f82610362565b9392505050565b600080602083850312156106b957600080fd5b823567ffffffffffffffff808211156106d157600080fd5b818501915085601f8301126106e557600080fd5b8135818111156106f457600080fd5b8660208260071b850101111561067257600080fd5b6000806020838503121561071c57600080fd5b823567ffffffffffffffff8082111561073457600080fd5b818501915085601f83011261074857600080fd5b81358181111561075757600080fd5b86602060e08302850101111561067257600080fd5b60008083601f84011261077e57600080fd5b50813567ffffffffffffffff81111561079657600080fd5b6020830191508360208260051b85010111156105c657600080fd5b600080602083850312156107c457600080fd5b823567ffffffffffffffff8111156107db57
|
||
|
"deployedBytecode": "0x6080604052600436106100e85760003560e01c8063a5eb43ef1161008a578063dd4cbf6b11610059578063dd4cbf6b14610205578063e8025d7714610227578063ec04840114610205578063f4bfa0001461024257600080fd5b8063a5eb43ef14610128578063ac862bfa146101b3578063ad967e15146101ce578063c2da75f01461012857600080fd5b80633fad77fc116100c65780633fad77fc1461014757806354bb0c1d146101625780637f7b60021461017d5780639dde59771461019857600080fd5b806301b88f86146100ed57806302c6bb6a1461010d5780633f66feff14610128575b600080fd5b3480156100f957600080fd5b5061010b61010836600461039c565b50565b005b34801561011957600080fd5b5061010b61010836600461049c565b34801561013457600080fd5b5061010b6101433660046105cd565b5050565b34801561015357600080fd5b5061010b61014336600461060f565b34801561016e57600080fd5b5061010b610108366004610684565b34801561018957600080fd5b5061010b6101433660046106a6565b3480156101a457600080fd5b5061010b610143366004610709565b3480156101bf57600080fd5b5061010b6101433660046107b1565b6101eb6101dc3660046107e7565b60008097509795505050505050565b604080519283526020830191909152015b60405180910390f35b34801561021157600080fd5b5061010b61022036600461089f565b5050505050565b34801561023357600080fd5b5061010b610108366004610920565b34801561024e57600080fd5b5061026661025d3660046107b1565b50606091829150565b6040516101fc929190610974565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156102c6576102c6610274565b60405290565b60405160c0810167ffffffffffffffff811182821017156102c6576102c6610274565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561033657610336610274565b604052919050565b600067ffffffffffffffff82111561035857610358610274565b5060051b60200190565b803573ffffffffffffffffffffffffffffffffffffffff8116811461038657600080fd5b919050565b803560ff8116811461038657600080fd5b600060208083850312156103af57600080fd5b823567ffffffffffffffff8111156103c657600080fd5b8301601f810185136103d757600080fd5b80356103ea6103e58261033e565b6102ef565b81815260e0918202830184019184820191908884111561040957600080fd5b938501935b838510156104905780858a0312156104265760008081fd5b61042e6102a3565b61043786610362565b8152610444878701610362565b87820152604061045581880161038b565b90820152606086810135908201526080808701359082015260a0808701359082015260c080870135908201528352938401939185019161040e565b50979650505050505050565b600060208083850312156104af57600080fd5b823567ffffffffffffffff8111156104c657600080fd5b8301601f810185136104d757600080fd5b80356104e56103e58261033e565b81815260c0918202830184019184820191908884111561050457600080fd5b938501935b838510156104905780858a0312156105215760008081fd5b6105296102cc565b61053286610362565b815261053f878701610362565b87820152604061055081880161038b565b90820152606086810135908201526080808701359082015260a0808701359082015283529384019391850191610509565b60008083601f84011261059357600080fd5b50813567ffffffffffffffff8111156105ab57600080fd5b6020830191508360208260061b85010111156105c657600080fd5b9250929050565b600080602083850312156105e057600080fd5b823567ffffffffffffffff8111156105f757600080fd5b61060385828601610581565b90969095509350505050565b6000806020838503121561062257600080fd5b823567ffffffffffffffff8082111561063a57600080fd5b818501915085601f83011261064e57600080fd5b81358181111561065d57600080fd5b86602060a08302850101111561067257600080fd5b60209290920196919550909350505050565b60006020828403121561069657600080fd5b61069f82610362565b9392505050565b600080602083850312156106b957600080fd5b823567ffffffffffffffff808211156106d157600080fd5b818501915085601f8301126106e557600080fd5b8135818111156106f457600080fd5b8660208260071b850101111561067257600080fd5b6000806020838503121561071c57600080fd5b823567ffffffffffffffff8082111561073457600080fd5b818501915085601f83011261074857600080fd5b81358181111561075757600080fd5b86602060e08302850101111561067257600080fd5b60008083601f84011261077e57600080fd5b50813567ffffffffffffffff81111561079657600080fd5b6020830191508360208260051b85010111156105c657600080fd5b600080602083850312156107c457600080fd5b823567ffffffffffffffff8111156107db57600080fd5b6106038582860161076c565b6000806000806000806000
|
||
|
"devdoc": {
|
||
|
"details": "see https://github.com/Instadapp/infinite-proxy?tab=readme-ov-file#dummy-implementation",
|
||
|
"kind": "dev",
|
||
|
"methods": {
|
||
|
"changeStatus(uint256)": {
|
||
|
"params": {
|
||
|
"newStatus_": "new status status = 2 -> pause, status = 1 -> resume."
|
||
|
}
|
||
|
},
|
||
|
"collectRevenue(address[])": {
|
||
|
"details": "Note that this can revert if token balance is < revenueAmount (utilization > 100%)",
|
||
|
"params": {
|
||
|
"tokens_": "array of tokens to collect revenue for"
|
||
|
}
|
||
|
},
|
||
|
"operate(address,int256,int256,address,address,bytes)": {
|
||
|
"details": "to trigger skipping in / out transfers when in&out amounts balance themselves out (gas optimization): - supply(+) == borrow(+), withdraw(-) == payback(-). - `withdrawTo_` / `borrowTo_` must be msg.sender (protocol) - `callbackData_` MUST be encoded so that \"from\" address is at last 20 bytes (if this optimization is desired), also for native token operations where liquidityCallback is not triggered! from address must come at last position if there is more data. I.e. encode like: abi.encode(otherVar1, otherVar2, FROM_ADDRESS). Note dynamic types used with abi.encode come at the end so if dynamic types are needed, you must use abi.encodePacked to ensure the from address is at the end.",
|
||
|
"params": {
|
||
|
"borrowAmount_": "if +ve then borrow, if -ve then payback, if 0 then nothing",
|
||
|
"borrowTo_": "if borrow then to which address",
|
||
|
"callbackData_": "callback data passed to `liquidityCallback` method of protocol",
|
||
|
"supplyAmount_": "if +ve then supply, if -ve then withdraw, if 0 then nothing",
|
||
|
"token_": "address of token (0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE for native)",
|
||
|
"withdrawTo_": "if withdrawal then to which address"
|
||
|
},
|
||
|
"returns": {
|
||
|
"memVar3_": "updated supplyExchangePrice",
|
||
|
"memVar4_": "updated borrowExchangePrice"
|
||
|
}
|
||
|
},
|
||
|
"pauseUser(address,address[],address[])": {
|
||
|
"params": {
|
||
|
"borrowTokens_": "token addresses to pause borrowings for",
|
||
|
"supplyTokens_": "token addresses to pause withdrawals for",
|
||
|
"user_": "address of user to pause operations for"
|
||
|
}
|
||
|
},
|
||
|
"unpauseUser(address,address[],address[])": {
|
||
|
"params": {
|
||
|
"borrowTokens_": "token addresses to unpause borrowings for",
|
||
|
"supplyTokens_": "token addresses to unpause withdrawals for",
|
||
|
"user_": "address of user to unpause operations for"
|
||
|
}
|
||
|
},
|
||
|
"updateAuths((address,bool)[])": {
|
||
|
"params": {
|
||
|
"authsStatus_": "array of structs setting allowed status for an address. status true => add auth, false => remove auth"
|
||
|
}
|
||
|
},
|
||
|
"updateExchangePrices(address[])": {
|
||
|
"params": {
|
||
|
"tokens_": "tokens to update exchange prices for"
|
||
|
},
|
||
|
"returns": {
|
||
|
"borrowExchangePrices_": "new borrow rates of overall system for each token",
|
||
|
"supplyExchangePrices_": "new supply rates of overall system for each token"
|
||
|
}
|
||
|
},
|
||
|
"updateGuardians((address,bool)[])": {
|
||
|
"params": {
|
||
|
"guardiansStatus_": "array of structs setting allowed status for an address. status true => add guardian, false => remove guardian"
|
||
|
}
|
||
|
},
|
||
|
"updateRateDataV1s((address,uint256,uint256,uint256,uint256)[])": {
|
||
|
"params": {
|
||
|
"tokensRateData_": "array of RateDataV1Params with rate data to set for each token"
|
||
|
}
|
||
|
},
|
||
|
"updateRateDataV2s((address,uint256,uint256,uint256,uint256,uint256,uint256)[])": {
|
||
|
"params": {
|
||
|
"tokensRateData_": "array of RateDataV2Params with rate data to set for each token"
|
||
|
}
|
||
|
},
|
||
|
"updateRevenueCollector(address)": {
|
||
|
"params": {
|
||
|
"revenueCollector_": "new revenue collector address"
|
||
|
}
|
||
|
},
|
||
|
"updateTokenConfigs((address,uint256,uint256,uint256)[])": {
|
||
|
"params": {
|
||
|
"tokenConfigs_": "contains token address, fee & utilization threshold"
|
||
|
}
|
||
|
},
|
||
|
"updateUserBorrowConfigs((address,address,uint8,uint256,uint256,uint256,uint256)[])": {
|
||
|
"params": {
|
||
|
"userBorrowConfigs_": "struct array containing user borrow config, see `UserBorrowConfig` struct for more info"
|
||
|
}
|
||
|
},
|
||
|
"updateUserClasses((address,uint256)[])": {
|
||
|
"params": {
|
||
|
"userClasses_": "struct array of uint256 value to assign for each user address"
|
||
|
}
|
||
|
},
|
||
|
"updateUserSupplyConfigs((address,address,uint8,uint256,uint256,uint256)[])": {
|
||
|
"params": {
|
||
|
"userSupplyConfigs_": "struct array containing user supply config, see `UserSupplyConfig` struct for more info"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"version": 1
|
||
|
},
|
||
|
"userdoc": {
|
||
|
"kind": "user",
|
||
|
"methods": {
|
||
|
"changeStatus(uint256)": {
|
||
|
"notice": "changes current status, e.g. for pausing or unpausing all user operations. Only callable by Auths."
|
||
|
},
|
||
|
"collectRevenue(address[])": {
|
||
|
"notice": "collects revenue for tokens to configured revenueCollector address."
|
||
|
},
|
||
|
"operate(address,int256,int256,address,address,bytes)": {
|
||
|
"notice": "Single function which handles supply, withdraw, borrow & payback"
|
||
|
},
|
||
|
"pauseUser(address,address[],address[])": {
|
||
|
"notice": "pause operations for a particular user in class 0 (class 1 users can't be paused by guardians). Only callable by Guardians."
|
||
|
},
|
||
|
"unpauseUser(address,address[],address[])": {
|
||
|
"notice": "unpause operations for a particular user in class 0 (class 1 users can't be paused by guardians). Only callable by Guardians."
|
||
|
},
|
||
|
"updateAuths((address,bool)[])": {
|
||
|
"notice": "adds/removes auths. Auths generally could be contracts which can have restricted actions defined on contract. auths can be helpful in reducing governance overhead where it's not needed."
|
||
|
},
|
||
|
"updateExchangePrices(address[])": {
|
||
|
"notice": "gets the current updated exchange prices for n tokens and updates all prices, rates related data in storage."
|
||
|
},
|
||
|
"updateGuardians((address,bool)[])": {
|
||
|
"notice": "adds/removes guardians. Only callable by Governance."
|
||
|
},
|
||
|
"updateRateDataV1s((address,uint256,uint256,uint256,uint256)[])": {
|
||
|
"notice": "update tokens rate data version 1. Only callable by Auths."
|
||
|
},
|
||
|
"updateRateDataV2s((address,uint256,uint256,uint256,uint256,uint256,uint256)[])": {
|
||
|
"notice": "update tokens rate data version 2. Only callable by Auths."
|
||
|
},
|
||
|
"updateRevenueCollector(address)": {
|
||
|
"notice": "changes the revenue collector address (contract that is sent revenue). Only callable by Governance."
|
||
|
},
|
||
|
"updateTokenConfigs((address,uint256,uint256,uint256)[])": {
|
||
|
"notice": "updates token configs: fee charge on borrowers interest & storage update utilization threshold. Only callable by Auths."
|
||
|
},
|
||
|
"updateUserBorrowConfigs((address,address,uint8,uint256,uint256,uint256,uint256)[])": {
|
||
|
"notice": "setting user borrow configs per token basis. Eg: with interest or interest-free and automated limits. Only callable by Auths."
|
||
|
},
|
||
|
"updateUserClasses((address,uint256)[])": {
|
||
|
"notice": "updates user classes: 0 is for new protocols, 1 is for established protocols. Only callable by Auths."
|
||
|
},
|
||
|
"updateUserSupplyConfigs((address,address,uint8,uint256,uint256,uint256)[])": {
|
||
|
"notice": "sets user supply configs per token basis. Eg: with interest or interest-free and automated limits. Only callable by Auths."
|
||
|
}
|
||
|
},
|
||
|
"notice": "Liquidity dummy implementation used for Fluid Liquidity infinite proxy.",
|
||
|
"version": 1
|
||
|
},
|
||
|
"storageLayout": {
|
||
|
"storage": [],
|
||
|
"types": null
|
||
|
}
|
||
|
}
|