@sablier/airdrops
Version:
EVM smart contracts of the Sablier Airdrops protocol
273 lines (272 loc) • 17.4 kB
JSON
{
"abi": [
{
"type": "error",
"name": "AccountAlreadyHasRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "AccountDoesNotHaveRole",
"inputs": [
{ "name": "role", "type": "bytes32", "internalType": "bytes32" },
{ "name": "account", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "CallerNotAdmin",
"inputs": [
{ "name": "admin", "type": "address", "internalType": "address" },
{ "name": "caller", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "Comptrollerable_CallerNotComptroller",
"inputs": [
{ "name": "comptroller", "type": "address", "internalType": "address" },
{ "name": "caller", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "Comptrollerable_UnsupportedInterfaceId",
"inputs": [
{ "name": "previousComptroller", "type": "address", "internalType": "address" },
{ "name": "newComptroller", "type": "address", "internalType": "address" },
{ "name": "minimalInterfaceId", "type": "bytes4", "internalType": "bytes4" }
]
},
{ "type": "error", "name": "DelegateCall", "inputs": [] },
{ "type": "error", "name": "SablierComptroller_ExecutionFailedSilently", "inputs": [] },
{
"type": "error",
"name": "SablierComptroller_FeeRecipientNotAdmin",
"inputs": [
{ "name": "feeRecipient", "type": "address", "internalType": "address" },
{ "name": "admin", "type": "address", "internalType": "address" }
]
},
{ "type": "error", "name": "SablierComptroller_FeeRecipientZero", "inputs": [] },
{
"type": "error",
"name": "SablierComptroller_FeeTransferFailed",
"inputs": [
{ "name": "feeRecipient", "type": "address", "internalType": "address" },
{ "name": "feeAmount", "type": "uint256", "internalType": "uint256" }
]
},
{
"type": "error",
"name": "SablierComptroller_MaxFeeUSDExceeded",
"inputs": [
{ "name": "newFeeUSD", "type": "uint256", "internalType": "uint256" },
{ "name": "maxFeeUSD", "type": "uint256", "internalType": "uint256" }
]
},
{ "type": "error", "name": "SablierComptroller_ToZeroAddress", "inputs": [] },
{
"type": "error",
"name": "SablierComptroller_TokenBalanceZero",
"inputs": [{ "name": "token", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "SafeOracle_DecimalsTooHigh",
"inputs": [
{ "name": "oracle", "type": "address", "internalType": "address" },
{ "name": "decimals", "type": "uint8", "internalType": "uint8" }
]
},
{
"type": "error",
"name": "SafeOracle_DecimalsZero",
"inputs": [{ "name": "oracle", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "SafeOracle_MissesInterface",
"inputs": [{ "name": "oracle", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "SafeOracle_NotPositivePrice",
"inputs": [{ "name": "oracle", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "UnauthorizedAccess",
"inputs": [
{ "name": "caller", "type": "address", "internalType": "address" },
{ "name": "neededRole", "type": "bytes32", "internalType": "bytes32" }
]
}
],
"bytecode": {
"object": "0x6080806040523460175760399081601c823930815050f35b5f80fdfe5f80fdfea264697066735822122003791bd2dfa427e68b7af7edac88d1bfb3ca156d677db3cb9c09b1a136166d3a64736f6c634300081d0033",
"sourceMap": "156:4042:64:-:0;;;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x5f80fdfea264697066735822122003791bd2dfa427e68b7af7edac88d1bfb3ca156d677db3cb9c09b1a136166d3a64736f6c634300081d0033",
"sourceMap": "156:4042:64:-:0;;",
"linkReferences": {}
},
"methodIdentifiers": {},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AccountAlreadyHasRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"AccountDoesNotHaveRole\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"CallerNotAdmin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"comptroller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"Comptrollerable_CallerNotComptroller\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"previousComptroller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newComptroller\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"minimalInterfaceId\",\"type\":\"bytes4\"}],\"name\":\"Comptrollerable_UnsupportedInterfaceId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegateCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierComptroller_ExecutionFailedSilently\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"SablierComptroller_FeeRecipientNotAdmin\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierComptroller_FeeRecipientZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"feeRecipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"name\":\"SablierComptroller_FeeTransferFailed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newFeeUSD\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFeeUSD\",\"type\":\"uint256\"}],\"name\":\"SablierComptroller_MaxFeeUSDExceeded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SablierComptroller_ToZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SablierComptroller_TokenBalanceZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"name\":\"SafeOracle_DecimalsTooHigh\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"SafeOracle_DecimalsZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"SafeOracle_MissesInterface\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracle\",\"type\":\"address\"}],\"name\":\"SafeOracle_NotPositivePrice\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"UnauthorizedAccess\",\"type\":\"error\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"Errors\",\"version\":1},\"userdoc\":{\"errors\":{\"AccountAlreadyHasRole(bytes32,address)\":[{\"notice\":\"Thrown when trying to grant role to an `account` that already has the `role`.\"}],\"AccountDoesNotHaveRole(bytes32,address)\":[{\"notice\":\"Thrown when trying to revoke role from an `account` that does not have the `role`.\"}],\"CallerNotAdmin(address,address)\":[{\"notice\":\"Thrown when `msg.sender` is not the admin.\"}],\"Comptrollerable_CallerNotComptroller(address,address)\":[{\"notice\":\"Thrown when `msg.sender` is not the comptroller.\"}],\"Comptrollerable_UnsupportedInterfaceId(address,address,bytes4)\":[{\"notice\":\"Thrown when the new comptroller does not support the minimal interface ID from the previous comptroller.\"}],\"DelegateCall()\":[{\"notice\":\"Thrown when trying to delegate call to a function that disallows delegate calls.\"}],\"SablierComptroller_ExecutionFailedSilently()\":[{\"notice\":\"Thrown when the target contract reverts without any return data.\"}],\"SablierComptroller_FeeRecipientNotAdmin(address,address)\":[{\"notice\":\"Thrown when an unauthorized address collects fee without setting the fee recipient to admin address.\"}],\"SablierComptroller_FeeRecipientZero()\":[{\"notice\":\"Thrown when trying to transfer fees to the zero address.\"}],\"SablierComptroller_FeeTransferFailed(address,uint256)\":[{\"notice\":\"Thrown if fee transfer fails.\"}],\"SablierComptroller_MaxFeeUSDExceeded(uint256,uint256)\":[{\"notice\":\"Thrown when trying to set fee to a value that exceeds the maximum USD fee.\"}],\"SablierComptroller_ToZeroAddress()\":[{\"notice\":\"Thrown when trying to withdraw ERC-20 tokens to the zero address.\"}],\"SablierComptroller_TokenBalanceZero(address)\":[{\"notice\":\"Thrown when trying to withdraw ERC-20 tokens when the balance is zero.\"}],\"SafeOracle_DecimalsTooHigh(address,uint8)\":[{\"notice\":\"Thrown when an oracle returns too many decimals (greater than 36).\"}],\"SafeOracle_DecimalsZero(address)\":[{\"notice\":\"Thrown when an oracle returns 0 decimals.\"}],\"SafeOracle_MissesInterface(address)\":[{\"notice\":\"Thrown when an oracle does not implement the expected interface.\"}],\"SafeOracle_NotPositivePrice(address)\":[{\"notice\":\"Thrown when the price returned by the oracle is not positive.\"}],\"UnauthorizedAccess(address,bytes32)\":[{\"notice\":\"Thrown if `caller` is missing the `neededRole` and is not the admin.\"}]},\"kind\":\"user\",\"methods\":{},\"notice\":\"Library with custom errors used across the contracts.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@sablier/evm-utils/src/libraries/Errors.sol\":\"Errors\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":60000},\"remappings\":[\":@arbitrum/=node_modules/@arbitrum/\",\":@chainlink/=node_modules/@chainlink/\",\":@eth-optimism/=node_modules/@eth-optimism/\",\":@offchainlabs/=node_modules/@offchainlabs/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@prb/=node_modules/@prb/\",\":@sablier/=node_modules/@sablier/\",\":@scroll-tech/=node_modules/@scroll-tech/\",\":@zksync/=node_modules/@zksync/\",\":forge-std/=node_modules/forge-std/\",\":murky/=node_modules/murky/\",\":openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/\",\":solady/=node_modules/solady/\",\":solarray/=node_modules/solarray/\"],\"viaIR\":true},\"sources\":{\"node_modules/@sablier/evm-utils/src/libraries/Errors.sol\":{\"keccak256\":\"0xc9a0fbcd6d582054420a32c538204ac7adb789320c6564f278ccf45baf4485c8\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://a4da46b25df4fe89ce9f0315e1ef6561554f72b2dc7edbc43bdcdf9d65e8b709\",\"dweb:/ipfs/QmNW4VtuPSsLULst92GJmmcTCRHu4n5ndU9Jb4MbVes1jp\"]}},\"version\":1}",
"metadata": {
"compiler": { "version": "0.8.29+commit.ab55807c" },
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{ "internalType": "bytes32", "name": "role", "type": "bytes32" },
{ "internalType": "address", "name": "account", "type": "address" }
],
"type": "error",
"name": "AccountAlreadyHasRole"
},
{
"inputs": [
{ "internalType": "bytes32", "name": "role", "type": "bytes32" },
{ "internalType": "address", "name": "account", "type": "address" }
],
"type": "error",
"name": "AccountDoesNotHaveRole"
},
{
"inputs": [
{ "internalType": "address", "name": "admin", "type": "address" },
{ "internalType": "address", "name": "caller", "type": "address" }
],
"type": "error",
"name": "CallerNotAdmin"
},
{
"inputs": [
{ "internalType": "address", "name": "comptroller", "type": "address" },
{ "internalType": "address", "name": "caller", "type": "address" }
],
"type": "error",
"name": "Comptrollerable_CallerNotComptroller"
},
{
"inputs": [
{ "internalType": "address", "name": "previousComptroller", "type": "address" },
{ "internalType": "address", "name": "newComptroller", "type": "address" },
{ "internalType": "bytes4", "name": "minimalInterfaceId", "type": "bytes4" }
],
"type": "error",
"name": "Comptrollerable_UnsupportedInterfaceId"
},
{ "inputs": [], "type": "error", "name": "DelegateCall" },
{ "inputs": [], "type": "error", "name": "SablierComptroller_ExecutionFailedSilently" },
{
"inputs": [
{ "internalType": "address", "name": "feeRecipient", "type": "address" },
{ "internalType": "address", "name": "admin", "type": "address" }
],
"type": "error",
"name": "SablierComptroller_FeeRecipientNotAdmin"
},
{ "inputs": [], "type": "error", "name": "SablierComptroller_FeeRecipientZero" },
{
"inputs": [
{ "internalType": "address", "name": "feeRecipient", "type": "address" },
{ "internalType": "uint256", "name": "feeAmount", "type": "uint256" }
],
"type": "error",
"name": "SablierComptroller_FeeTransferFailed"
},
{
"inputs": [
{ "internalType": "uint256", "name": "newFeeUSD", "type": "uint256" },
{ "internalType": "uint256", "name": "maxFeeUSD", "type": "uint256" }
],
"type": "error",
"name": "SablierComptroller_MaxFeeUSDExceeded"
},
{ "inputs": [], "type": "error", "name": "SablierComptroller_ToZeroAddress" },
{
"inputs": [{ "internalType": "address", "name": "token", "type": "address" }],
"type": "error",
"name": "SablierComptroller_TokenBalanceZero"
},
{
"inputs": [
{ "internalType": "address", "name": "oracle", "type": "address" },
{ "internalType": "uint8", "name": "decimals", "type": "uint8" }
],
"type": "error",
"name": "SafeOracle_DecimalsTooHigh"
},
{
"inputs": [{ "internalType": "address", "name": "oracle", "type": "address" }],
"type": "error",
"name": "SafeOracle_DecimalsZero"
},
{
"inputs": [{ "internalType": "address", "name": "oracle", "type": "address" }],
"type": "error",
"name": "SafeOracle_MissesInterface"
},
{
"inputs": [{ "internalType": "address", "name": "oracle", "type": "address" }],
"type": "error",
"name": "SafeOracle_NotPositivePrice"
},
{
"inputs": [
{ "internalType": "address", "name": "caller", "type": "address" },
{ "internalType": "bytes32", "name": "neededRole", "type": "bytes32" }
],
"type": "error",
"name": "UnauthorizedAccess"
}
],
"devdoc": { "kind": "dev", "methods": {}, "version": 1 },
"userdoc": { "kind": "user", "methods": {}, "version": 1 }
},
"settings": {
"remappings": [
"@arbitrum/=node_modules/@arbitrum/",
"@chainlink/=node_modules/@chainlink/",
"@eth-optimism/=node_modules/@eth-optimism/",
"@offchainlabs/=node_modules/@offchainlabs/",
"@openzeppelin/=node_modules/@openzeppelin/",
"@prb/=node_modules/@prb/",
"@sablier/=node_modules/@sablier/",
"@scroll-tech/=node_modules/@scroll-tech/",
"@zksync/=node_modules/@zksync/",
"forge-std/=node_modules/forge-std/",
"murky/=node_modules/murky/",
"openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/",
"solady/=node_modules/solady/",
"solarray/=node_modules/solarray/"
],
"optimizer": { "enabled": true, "runs": 60000 },
"metadata": { "bytecodeHash": "ipfs" },
"compilationTarget": { "node_modules/@sablier/evm-utils/src/libraries/Errors.sol": "Errors" },
"evmVersion": "shanghai",
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@sablier/evm-utils/src/libraries/Errors.sol": {
"keccak256": "0xc9a0fbcd6d582054420a32c538204ac7adb789320c6564f278ccf45baf4485c8",
"urls": [
"bzz-raw://a4da46b25df4fe89ce9f0315e1ef6561554f72b2dc7edbc43bdcdf9d65e8b709",
"dweb:/ipfs/QmNW4VtuPSsLULst92GJmmcTCRHu4n5ndU9Jb4MbVes1jp"
],
"license": "GPL-3.0-or-later"
}
},
"version": 1
},
"id": 64
}