@sablier/flow
Version:
EVM smart contracts of the Sablier Flow token distribution protocol
974 lines • 351 kB
JSON
{
"abi": [
{
"type": "constructor",
"inputs": [
{ "name": "initialComptroller", "type": "address", "internalType": "address" },
{ "name": "initialNFTDescriptor", "type": "address", "internalType": "address" }
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "adjustRatePerSecond",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "newRatePerSecond", "type": "uint128", "internalType": "UD21x18" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "aggregateAmount",
"inputs": [{ "name": "token", "type": "address", "internalType": "contract IERC20" }],
"outputs": [{ "name": "amount", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "approve",
"inputs": [
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "balanceOf",
"inputs": [{ "name": "owner", "type": "address", "internalType": "address" }],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "batch",
"inputs": [{ "name": "calls", "type": "bytes[]", "internalType": "bytes[]" }],
"outputs": [{ "name": "results", "type": "bytes[]", "internalType": "bytes[]" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "calculateMinFeeWei",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "minFeeWei", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "comptroller",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "contract ISablierComptroller" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "coveredDebtOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "coveredDebt", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "create",
"inputs": [
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" },
{ "name": "startTime", "type": "uint40", "internalType": "uint40" },
{ "name": "token", "type": "address", "internalType": "contract IERC20" },
{ "name": "transferable", "type": "bool", "internalType": "bool" }
],
"outputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "createAndDeposit",
"inputs": [
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" },
{ "name": "startTime", "type": "uint40", "internalType": "uint40" },
{ "name": "token", "type": "address", "internalType": "contract IERC20" },
{ "name": "transferable", "type": "bool", "internalType": "bool" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "depletionTimeOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "depletionTime", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "deposit",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" },
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "recipient", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "depositAndPause",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "getApproved",
"inputs": [{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getBalance",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "balance", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRatePerSecond",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getRecipient",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "recipient", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getSender",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "sender", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getSnapshotDebtScaled",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "snapshotDebtScaled", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getSnapshotTime",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "snapshotTime", "type": "uint40", "internalType": "uint40" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getStream",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [
{
"name": "stream",
"type": "tuple",
"internalType": "struct Flow.Stream",
"components": [
{ "name": "balance", "type": "uint128", "internalType": "uint128" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" },
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "snapshotTime", "type": "uint40", "internalType": "uint40" },
{ "name": "isStream", "type": "bool", "internalType": "bool" },
{ "name": "isTransferable", "type": "bool", "internalType": "bool" },
{ "name": "isVoided", "type": "bool", "internalType": "bool" },
{ "name": "token", "type": "address", "internalType": "contract IERC20" },
{ "name": "tokenDecimals", "type": "uint8", "internalType": "uint8" },
{ "name": "snapshotDebtScaled", "type": "uint256", "internalType": "uint256" }
]
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "getToken",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "token", "type": "address", "internalType": "contract IERC20" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "getTokenDecimals",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "tokenDecimals", "type": "uint8", "internalType": "uint8" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "isApprovedForAll",
"inputs": [
{ "name": "owner", "type": "address", "internalType": "address" },
{ "name": "operator", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "isStream",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "result", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "isTransferable",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "result", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "isVoided",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "result", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "name",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "nativeToken",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "nextStreamId",
"inputs": [],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "nftDescriptor",
"inputs": [],
"outputs": [{ "name": "", "type": "address", "internalType": "contract IFlowNFTDescriptor" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "ongoingDebtScaledOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "ongoingDebtScaled", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "ownerOf",
"inputs": [{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "", "type": "address", "internalType": "address" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "pause",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "recover",
"inputs": [
{ "name": "token", "type": "address", "internalType": "contract IERC20" },
{ "name": "to", "type": "address", "internalType": "address" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "refund",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "refundAndPause",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "refundMax",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "refundedAmount", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "refundableAmountOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "refundableAmount", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "restart",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "restartAndDeposit",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "safeTransferFrom",
"inputs": [
{ "name": "from", "type": "address", "internalType": "address" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "safeTransferFrom",
"inputs": [
{ "name": "from", "type": "address", "internalType": "address" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" },
{ "name": "data", "type": "bytes", "internalType": "bytes" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setApprovalForAll",
"inputs": [
{ "name": "operator", "type": "address", "internalType": "address" },
{ "name": "approved", "type": "bool", "internalType": "bool" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setComptroller",
"inputs": [{ "name": "newComptroller", "type": "address", "internalType": "contract ISablierComptroller" }],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setNFTDescriptor",
"inputs": [{ "name": "newNFTDescriptor", "type": "address", "internalType": "contract IFlowNFTDescriptor" }],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "setNativeToken",
"inputs": [{ "name": "newNativeToken", "type": "address", "internalType": "address" }],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "statusOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "status", "type": "uint8", "internalType": "enum Flow.Status" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "supportsInterface",
"inputs": [{ "name": "interfaceId", "type": "bytes4", "internalType": "bytes4" }],
"outputs": [{ "name": "", "type": "bool", "internalType": "bool" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "symbol",
"inputs": [],
"outputs": [{ "name": "", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "tokenURI",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "uri", "type": "string", "internalType": "string" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "totalDebtOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "totalDebt", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "transferFeesToComptroller",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "transferFrom",
"inputs": [
{ "name": "from", "type": "address", "internalType": "address" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "transferFromPayable",
"inputs": [
{ "name": "from", "type": "address", "internalType": "address" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "streamId", "type": "uint256", "internalType": "uint256" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "transferTokens",
"inputs": [
{ "name": "token", "type": "address", "internalType": "contract IERC20" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "uncoveredDebtOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "uncoveredDebt", "type": "uint256", "internalType": "uint256" }],
"stateMutability": "view"
},
{
"type": "function",
"name": "void",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdraw",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "to", "type": "address", "internalType": "address" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
],
"outputs": [],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdrawMax",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "to", "type": "address", "internalType": "address" }
],
"outputs": [{ "name": "withdrawnAmount", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "payable"
},
{
"type": "function",
"name": "withdrawableAmountOf",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }],
"outputs": [{ "name": "withdrawableAmount", "type": "uint128", "internalType": "uint128" }],
"stateMutability": "view"
},
{
"type": "event",
"name": "AdjustFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "totalDebt", "type": "uint256", "indexed": false, "internalType": "uint256" },
{ "name": "oldRatePerSecond", "type": "uint128", "indexed": false, "internalType": "UD21x18" },
{ "name": "newRatePerSecond", "type": "uint128", "indexed": false, "internalType": "UD21x18" }
],
"anonymous": false
},
{
"type": "event",
"name": "Approval",
"inputs": [
{ "name": "owner", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "approved", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "indexed": true, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "ApprovalForAll",
"inputs": [
{ "name": "owner", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "operator", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "approved", "type": "bool", "indexed": false, "internalType": "bool" }
],
"anonymous": false
},
{
"type": "event",
"name": "BatchMetadataUpdate",
"inputs": [
{ "name": "_fromTokenId", "type": "uint256", "indexed": false, "internalType": "uint256" },
{ "name": "_toTokenId", "type": "uint256", "indexed": false, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "CreateFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": false, "internalType": "uint256" },
{ "name": "creator", "type": "address", "indexed": false, "internalType": "address" },
{ "name": "sender", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "ratePerSecond", "type": "uint128", "indexed": false, "internalType": "UD21x18" },
{ "name": "snapshotTime", "type": "uint40", "indexed": false, "internalType": "uint40" },
{ "name": "token", "type": "address", "indexed": true, "internalType": "contract IERC20" },
{ "name": "transferable", "type": "bool", "indexed": false, "internalType": "bool" }
],
"anonymous": false
},
{
"type": "event",
"name": "DepositFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "funder", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" }
],
"anonymous": false
},
{
"type": "event",
"name": "MetadataUpdate",
"inputs": [{ "name": "_tokenId", "type": "uint256", "indexed": false, "internalType": "uint256" }],
"anonymous": false
},
{
"type": "event",
"name": "PauseFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "sender", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "totalDebt", "type": "uint256", "indexed": false, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "RefundFromFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "sender", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "amount", "type": "uint128", "indexed": false, "internalType": "uint128" }
],
"anonymous": false
},
{
"type": "event",
"name": "RestartFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "sender", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "ratePerSecond", "type": "uint128", "indexed": false, "internalType": "UD21x18" }
],
"anonymous": false
},
{
"type": "event",
"name": "SetComptroller",
"inputs": [
{
"name": "oldComptroller",
"type": "address",
"indexed": false,
"internalType": "contract ISablierComptroller"
},
{
"name": "newComptroller",
"type": "address",
"indexed": false,
"internalType": "contract ISablierComptroller"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SetNFTDescriptor",
"inputs": [
{ "name": "comptroller", "type": "address", "indexed": true, "internalType": "contract ISablierComptroller" },
{
"name": "oldNFTDescriptor",
"type": "address",
"indexed": false,
"internalType": "contract IFlowNFTDescriptor"
},
{
"name": "newNFTDescriptor",
"type": "address",
"indexed": false,
"internalType": "contract IFlowNFTDescriptor"
}
],
"anonymous": false
},
{
"type": "event",
"name": "SetNativeToken",
"inputs": [
{ "name": "comptroller", "type": "address", "indexed": true, "internalType": "contract ISablierComptroller" },
{ "name": "nativeToken", "type": "address", "indexed": false, "internalType": "address" }
],
"anonymous": false
},
{
"type": "event",
"name": "Transfer",
"inputs": [
{ "name": "from", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "to", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "indexed": true, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "TransferFeesToComptroller",
"inputs": [
{ "name": "comptroller", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "feeAmount", "type": "uint256", "indexed": false, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "VoidFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "sender", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "caller", "type": "address", "indexed": false, "internalType": "address" },
{ "name": "newTotalDebt", "type": "uint256", "indexed": false, "internalType": "uint256" },
{ "name": "writtenOffDebt", "type": "uint256", "indexed": false, "internalType": "uint256" }
],
"anonymous": false
},
{
"type": "event",
"name": "WithdrawFromFlowStream",
"inputs": [
{ "name": "streamId", "type": "uint256", "indexed": true, "internalType": "uint256" },
{ "name": "to", "type": "address", "indexed": true, "internalType": "address" },
{ "name": "token", "type": "address", "indexed": true, "internalType": "contract IERC20" },
{ "name": "caller", "type": "address", "indexed": false, "internalType": "address" },
{ "name": "withdrawAmount", "type": "uint128", "indexed": false, "internalType": "uint128" }
],
"anonymous": false
},
{
"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": "ERC721IncorrectOwner",
"inputs": [
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" },
{ "name": "owner", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "ERC721InsufficientApproval",
"inputs": [
{ "name": "operator", "type": "address", "internalType": "address" },
{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }
]
},
{
"type": "error",
"name": "ERC721InvalidApprover",
"inputs": [{ "name": "approver", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "ERC721InvalidOperator",
"inputs": [{ "name": "operator", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "ERC721InvalidOwner",
"inputs": [{ "name": "owner", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "ERC721InvalidReceiver",
"inputs": [{ "name": "receiver", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "ERC721InvalidSender",
"inputs": [{ "name": "sender", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "ERC721NonexistentToken",
"inputs": [{ "name": "tokenId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlowState_Null",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlowState_StreamPaused",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlowState_StreamVoided",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlowState_Unauthorized",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "caller", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "SablierFlow_CreateNativeToken",
"inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
},
{ "type": "error", "name": "SablierFlow_CreateRatePerSecondZero", "inputs": [] },
{
"type": "error",
"name": "SablierFlow_DepositAmountZero",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_InsufficientFeePayment",
"inputs": [
{ "name": "feePaid", "type": "uint256", "internalType": "uint256" },
{ "name": "minFeeWei", "type": "uint256", "internalType": "uint256" }
]
},
{
"type": "error",
"name": "SablierFlow_InvalidCalculation",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "availableAmount", "type": "uint128", "internalType": "uint128" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" }
]
},
{
"type": "error",
"name": "SablierFlow_InvalidTokenDecimals",
"inputs": [{ "name": "token", "type": "address", "internalType": "address" }]
},
{
"type": "error",
"name": "SablierFlow_NativeTokenAlreadySet",
"inputs": [{ "name": "nativeToken", "type": "address", "internalType": "address" }]
},
{ "type": "error", "name": "SablierFlow_NativeTokenZeroAddress", "inputs": [] },
{
"type": "error",
"name": "SablierFlow_NewRatePerSecondZero",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_NotStreamRecipient",
"inputs": [
{ "name": "recipient", "type": "address", "internalType": "address" },
{ "name": "streamRecipient", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "SablierFlow_NotStreamSender",
"inputs": [
{ "name": "sender", "type": "address", "internalType": "address" },
{ "name": "streamSender", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "SablierFlow_NotTransferable",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_Overdraw",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "amount", "type": "uint128", "internalType": "uint128" },
{ "name": "withdrawableAmount", "type": "uint128", "internalType": "uint128" }
]
},
{
"type": "error",
"name": "SablierFlow_RatePerSecondNotDifferent",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "ratePerSecond", "type": "uint128", "internalType": "UD21x18" }
]
},
{
"type": "error",
"name": "SablierFlow_RefundAmountZero",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_RefundOverflow",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "refundAmount", "type": "uint128", "internalType": "uint128" },
{ "name": "refundableAmount", "type": "uint128", "internalType": "uint128" }
]
},
{ "type": "error", "name": "SablierFlow_SenderZeroAddress", "inputs": [] },
{
"type": "error",
"name": "SablierFlow_StreamBalanceZero",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_StreamNotPaused",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_StreamPending",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "snapshotTime", "type": "uint40", "internalType": "uint40" }
]
},
{
"type": "error",
"name": "SablierFlow_Unauthorized",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "caller", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "SablierFlow_WithdrawAmountZero",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_WithdrawToZeroAddress",
"inputs": [{ "name": "streamId", "type": "uint256", "internalType": "uint256" }]
},
{
"type": "error",
"name": "SablierFlow_WithdrawalAddressNotRecipient",
"inputs": [
{ "name": "streamId", "type": "uint256", "internalType": "uint256" },
{ "name": "caller", "type": "address", "internalType": "address" },
{ "name": "to", "type": "address", "internalType": "address" }
]
},
{
"type": "error",
"name": "SafeCastOverflowedUintDowncast",
"inputs": [
{ "name": "bits", "type": "uint8", "internalType": "uint8" },
{ "name": "value", "type": "uint256", "internalType": "uint256" }
]
},
{
"type": "error",
"name": "SafeERC20FailedOperation",
"inputs": [{ "name": "token", "type": "address", "internalType": "address" }]
}
],
"bytecode": {
"object": "0x60a0806040523461044657604081615bf0803803809161001f828561045d565b8339810103126104465761003e602061003783610480565b9201610480565b906040519161004e60408461045d565b601083526f14d8589b1a595c88119b1bddc813919560821b60208401526040519161007a60408461045d565b60088352675341422d464c4f5760c01b602084015260018060a01b03166040516301ffc9a760e01b8152630654439160e41b6004820152602081602481855afa908115610452575f91610413575b50156103f2575f80546001600160a01b031916821781556040805191825260208201929092527ff45d882a72fce9d8d7a7e2e196a338d4d9d4057510b4b9ddf91a7066104d2eaf9190a182516001600160401b03811161030357600154600181811c911680156103e8575b60208210146102e557601f8111610385575b506020601f821160011461032257819293945f92610317575b50508160011b915f199060031b1c1916176001555b81516001600160401b03811161030357600254600181811c911680156102f9575b60208210146102e557601f8111610282575b50602092601f821160011461022157928192935f92610216575b50508160011b915f199060031b1c1916176002555b306080526001600955600a80546001600160a01b0319166001600160a01b039290921691909117905560405161575b9081610495823960805181613d1a0152f35b015190505f806101c0565b601f1982169360025f52805f20915f5b86811061026a5750836001959610610252575b505050811b016002556101d5565b01515f1960f88460031b161c191690555f8080610244565b91926020600181928685015181550194019201610231565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f830160051c810191602084106102db575b601f0160051c01905b8181106102d057506101a6565b5f81556001016102c3565b90915081906102ba565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610194565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061015e565b601f1982169060015f52805f20915f5b81811061036d57509583600195969710610355575b505050811b01600155610173565b01515f1960f88460031b161c191690555f8080610347565b9192602060018192868b015181550194019201610332565b60015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c810191602084106103de575b601f0160051c01905b8181106103d35750610145565b5f81556001016103c6565b90915081906103bd565b90607f1690610133565b6364ca3de160e11b5f525f600452602452630654439160e41b60445260645ffd5b90506020813d60201161044a575b8161042e6020938361045d565b8101031261044657518015158103610446575f6100c8565b5f80fd5b3d9150610421565b6040513d5f823e3d90fd5b601f909101601f19168101906001600160401b0382119082101761030357604052565b51906001600160a01b03821682036104465756fe60806040526004361015610011575f80fd5b5f3560e01c806301ffc9a7146103df57806306fdde03146103da578063081812fc146103d557806308b87923146103d0578063095ea7b3146103cb5780630c699624146103c6578063136439dd146103c15780631400ecec146103bc5780631e010439146103b75780631e897afb146103b25780631e99d569146103ad5780631f0cce58146103a857806323b872dd146103a357806328f8b77d1461039e57806336af277f14610399578063379d871a1461039457806342842e0e1461038f57806342e3e23d146102e0578063442675701461038a578063450ac90814610385578063569f4c59146103805780635ea2145b1461037b5780635f2a0beb146103765780635fe3b567146103715780636352211e1461036c578063648bf774146103675780636d0cee75146103625780636da1e1021461035d57806370a082311461035857806378f82ce7146103535780637cad6cd11461034e5780637ddf92281461034957806380448da31461034457806381632a861461033f578063894e9a0d1461033a5780638bad38dd1461033557806395d89b4114610330578063a22cb4651461032b578063a7de07cd14610326578063a8a482a614610321578063ad35efd41461031c578063b256456914610317578063b61f758314610312578063b88d4fde1461030d578063b8a3be6614610308578063b971302a14610303578063bc7a2d6c146102fe578063bcbd019e146102f9578063c87b56dd146102f4578063cca138e5146102ef578063d4b80884146102ea578063d90e27d7146102e5578063d975dfed146102e0578063e1758bd8146102db578063e4b50cb8146102d6578063e985e9c5146102d1578063ea5ead19146102cc578063eb5710d8146102c7578063ebb6f79a146102c2578063ec01da3b146102bd5763fdd46d60146102b8575f80fd5b6134ad565b613446565b61335c565b6132fe565b61325b565b6131bd565b613153565b613102565b61120f565b6130f6565b613092565b612f77565b612e4d565b612d94565b612d4f565b612ce5565b612c92565b612be4565b6128e7565b61288b565b612808565b6126a8565b61264e565b61251f565b61244c565b6121cf565b611f15565b611e71565b611e05565b611dc0565b611c96565b611c11565b611b78565b6119dd565b611998565b611897565b61183d565b6117ed565b611777565b611355565b6112f9565b6112a5565b611254565b6111e6565b6110c8565b61102f565b610fa6565b610f8f565b610e14565b610dbf565b610c7f565b610b9f565b610b40565b610a60565b610962565b6107c9565b61075e565b6106f6565b6105ae565b610412565b7fffffffff0000000000000000000000000000000000000000000000000000000081160361040e57565b5f80fd5b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e577fffffffff0000000000000000000000000000000000000000000000000000000060043561046e816103e4565b167f490649060000000000000000000000000000000000000000000000000000000081149081156104a8575b506040519015158152602090f35b7f80ac58cd0000000000000000000000000000000000000000000000000000000081149150811561050c575b81156104e2575b505f61049a565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150145f6104db565b7f5b5e139f00000000000000000000000000000000000000000000000000000000811491506104d4565b5f5b8381106105475750505f910152565b8181015183820152602001610538565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f60209361059381518092818752878088019101610536565b0116010190565b9060206105ab928181520190610557565b90565b3461040e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576040515f6001548060011c90600181169081156106ec575b6020831082146106bf5782855260208501919081156106885750600114610636575b6106328461062681860382612b57565b6040519182918261059a565b0390f35b60015f9081529250907fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8184106106745750500161062682610616565b805484840152602090930192600101610661565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525090151560051b01905061062682610616565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f16916105f4565b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760043561073181613c20565b505f526005602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760206107a360043561079e81613c79565b613cc2565b604051908152f35b73ffffffffffffffffffffffffffffffffffffffff81160361040e57565b3461040e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57600435610804816107ab565b6024359061081182613c20565b33151580610942575b806108e8575b6108bb57826108b9936108799273ffffffffffffffffffffffffffffffffffffffff80861691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a45f52600560205260405f2090565b9073ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b005b7fa9fbf51f000000000000000000000000000000000000000000000000000000005f523360045260245b5ffd5b5060ff61093a336109178473ffffffffffffffffffffffffffffffffffffffff165f52600660205260405f2090565b9073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b541615610820565b503373ffffffffffffffffffffffffffffffffffffffff8216141561081a565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57600435610997613d03565b6109a081613c79565b805f52600b60205273ffffffffffffffffffffffffffffffffffffffff600160405f200154163303610a3157807ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206109fc61063294613d9c565b92610a078482613dce565b604051908152a16040516fffffffffffffffffffffffffffffffff90911681529081906020820190565b7f87cca8a8000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57600435610a95613d03565b610a9e81613c79565b805f52600b60205260405f205460801c15610b1557805f52600b60205273ffffffffffffffffffffffffffffffffffffffff600160405f200154163303610a3157602081610b0c7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793614048565b604051908152a1005b7f28a1df1c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576020610b85600435610b8081613c79565b613d9c565b6fffffffffffffffffffffffffffffffff60405191168152f35b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57600435610bda81613c79565b5f52600b60205260206fffffffffffffffffffffffffffffffff60405f205416604051908152f35b602081016020825282518091526040820191602060408360051b8301019401925f915b838310610c3457505050505090565b9091929394602080610c70837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951610557565b97019301930191939290610c25565b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760043567ffffffffffffffff811161040e573660238201121561040e5780600401359067ffffffffffffffff821161040e576024810190602436918460051b01011161040e57610cf882613530565b91610d066040519384612b57565b8083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610d3382613530565b015f5b818110610dae5750505f5b818110610d5657604051806106328682610c02565b5f80610d63838587613575565b90610d73604051809381936135da565b0390305af4610d806135e7565b9015610da65790600191610d948287613616565b52610d9f8186613616565b5001610d41565b805190602001fd5b806060602080938801015201610d36565b3461040e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576020600954604051908152f35b6fffffffffffffffffffffffffffffffff81160361040e57565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57600435602435610e4d81610dfa565b60443590610e5a82610dfa565b610e62613d03565b610e6b83613c79565b825f52600b60205260ff600160405f20015460d81c16610f1957825f52600b60205273ffffffffffffffffffffffffffffffffffffffff600160405f200154163303610ee95791610b0c602092610ee37ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79584614151565b826141de565b827f87cca8a8000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b827f271c0f9d000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc606091011261040e57600435610f7b816107ab565b90602435610f88816107ab565b9060443590565b3461040e576108b9610fa036610f45565b9161362a565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576108b9600435610fdf816107ab565b602435610feb816107ab565b6fffffffffffffffffffffffffffffffff60443561100881610dfa565b16913390614340565b6064359064ffffffffff8216820361040e57565b8015150361040e57565b60e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576020600435611067816107ab565b6107a36110c1602435611079816107ab565b60443561108581610dfa565b61108d611011565b6084359161109a836107ab565b60a435936110a785611025565b60c435976110b489610dfa565b6110bc613d03565b6146db565b91826141de565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760043560243561110181610dfa565b611109613d03565b61111282613c79565b815f52600b60205260405f205460801c156111ba57815f52600b60205273ffffffffffffffffffffffffffffffffffffffff600160405f20015416330361118a57816111816020927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce794613dce565b610b0c81614048565b507f87cca8a8000000000000000000000000000000000000000000000000000000005f526004523360245260445ffd5b507f28a1df1c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461040e576108b96111f736610f45565b9060405192611207602085612b57565b5f84526138fa565b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576020610b8560043561124f81613c79565b614a21565b3461040e575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e57602073ffffffffffffffffffffffffffffffffffffffff600a5416604051908152f35b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e576004356112e081613c79565b5f52600b6020526020600360405f200154604051908152f35b3461040e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760043561133481613c79565b5f52600b602052602060ff600160405f20015460d81c166040519015158152f35b60207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261040e5760043561138a613d03565b61139381613c79565b805f52600b60205260ff600160405f20015460d81c1661174c576113fb6113e260016113c7845f52600b60205260405f2090565b015473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1690565b33141580611721575b6116f257611642816114367ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce793614c8f565b8061166f5761144482614b19565b80611647575b505b6114b664ffffffffff4216600161146b855f52600b60205260405f2090565b01907fffffffffffffff0000000000ffffffffffffffffffffffffffffffffffffffff78ffffffffff000000000000000000000000000000000000000083549260a01b169116179055565b61150d5f6114cc845f52600b60205260405f2090565b906fffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff0000000000000000000000000000000083549260801b169116179055565b61156b6001611524845f52600b60205260405f2090565b017b010000000000000000000000000000000000000000000000000000007fffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffff825416179055565b61158260016113c7845f52600b60205260405f2090565b90827fa8e3d71a6c0c719305004b430f6d17f12536f7b803db23a4d7016f5b52699a8c73ffffffffffffffffffffffffffffffffffffffff6115e96115cf845f52600360205260405f2090565b5473ffffffffffffffffffffffffffffffffffffffff1690565b61162f6115f585613cc2565b958360405194859416981696338460409194939273ffffffffffffffffffffffffffffffffffffffff606083019616825260208201520152565b0390a46040519081529081906020820190565b0390a1005b611667600361165e855f52600b60205260405f2090565b01918254613a89565b90555f61144a565b6116d761169d611687845f52600b60205260405f209