@sablier/flow
Version:
EVM smart contracts of the Sablier Flow token distribution protocol
636 lines • 52.3 kB
JSON
{
"abi": [
{
"type": "function",
"name": "aggregateAmount",
"inputs": [{ "name": "token", "type": "address", "internalType": "contract IERC20" }],
"outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
"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": "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": "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": "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"
}
],
"bytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} },
"deployedBytecode": { "object": "0x", "sourceMap": "", "linkReferences": {} },
"methodIdentifiers": {
"aggregateAmount(address)": "ec01da3b",
"getBalance(uint256)": "1e010439",
"getRatePerSecond(uint256)": "80448da3",
"getSender(uint256)": "b971302a",
"getSnapshotDebtScaled(uint256)": "450ac908",
"getSnapshotTime(uint256)": "eb5710d8",
"getStream(uint256)": "894e9a0d",
"getToken(uint256)": "e4b50cb8",
"getTokenDecimals(uint256)": "a7de07cd",
"isStream(uint256)": "b8a3be66",
"isTransferable(uint256)": "b2564569",
"isVoided(uint256)": "569f4c59",
"nativeToken()": "e1758bd8",
"nextStreamId()": "1e99d569",
"nftDescriptor()": "44267570"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.29+commit.ab55807c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"aggregateAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getRatePerSecond\",\"outputs\":[{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotDebtScaled\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getSnapshotTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getStream\",\"outputs\":[{\"components\":[{\"internalType\":\"uint128\",\"name\":\"balance\",\"type\":\"uint128\"},{\"internalType\":\"UD21x18\",\"name\":\"ratePerSecond\",\"type\":\"uint128\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint40\",\"name\":\"snapshotTime\",\"type\":\"uint40\"},{\"internalType\":\"bool\",\"name\":\"isStream\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isTransferable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"isVoided\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"snapshotDebtScaled\",\"type\":\"uint256\"}],\"internalType\":\"struct Flow.Stream\",\"name\":\"stream\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"getTokenDecimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"tokenDecimals\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isStream\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isTransferable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"streamId\",\"type\":\"uint256\"}],\"name\":\"isVoided\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"result\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nextStreamId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nftDescriptor\",\"outputs\":[{\"internalType\":\"contract IFlowNFTDescriptor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"aggregateAmount(address)\":{\"details\":\"If tokens are directly transferred to the contract without using the stream creation functions, the ERC-20 balance may be greater than the aggregate amount.\",\"params\":{\"token\":\"The ERC-20 token for the query.\"}},\"getBalance(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getRatePerSecond(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getSender(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotDebtScaled(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getSnapshotTime(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getStream(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"getToken(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"getTokenDecimals(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The ID of the stream to make the query for.\"}},\"isStream(uint256)\":{\"details\":\"Does not revert if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isTransferable(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"isVoided(uint256)\":{\"details\":\"Reverts if `streamId` references a null stream.\",\"params\":{\"streamId\":\"The stream ID for the query.\"}},\"nativeToken()\":{\"details\":\"The native tokens on some chains have a dual interface as ERC-20. For example, on Polygon the $POL token is the native token and has an ERC-20 version at 0x0000000000000000000000000000000000001010. This means that `address(this).balance` returns the same value as `balanceOf(address(this))`. To avoid any unintended behavior, these tokens cannot be used in Sablier. As an alternative, users can use the Wrapped version of the token, i.e. WMATIC, which is a standard ERC-20 token.\"},\"nextStreamId()\":{\"returns\":{\"_0\":\"The next stream ID.\"}}},\"title\":\"ISablierFlowState\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"aggregateAmount(address)\":{\"notice\":\"Retrieves the aggregate amount across all streams, denoted in units of the token's decimals.\"},\"getBalance(uint256)\":{\"notice\":\"Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals.\"},\"getRatePerSecond(uint256)\":{\"notice\":\"Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second.\"},\"getSender(uint256)\":{\"notice\":\"Retrieves the stream's sender.\"},\"getSnapshotDebtScaled(uint256)\":{\"notice\":\"Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token.\"},\"getSnapshotTime(uint256)\":{\"notice\":\"Retrieves the snapshot time of the stream, which is a Unix timestamp.\"},\"getStream(uint256)\":{\"notice\":\"Retrieves the stream entity.\"},\"getToken(uint256)\":{\"notice\":\"Retrieves the token of the stream.\"},\"getTokenDecimals(uint256)\":{\"notice\":\"Retrieves the token decimals of the stream.\"},\"isStream(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream exists.\"},\"isTransferable(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream NFT is transferable.\"},\"isVoided(uint256)\":{\"notice\":\"Retrieves a flag indicating whether the stream is voided.\"},\"nativeToken()\":{\"notice\":\"Retrieves the address of the ERC-20 interface of the native token, if it exists.\"},\"nextStreamId()\":{\"notice\":\"Counter for stream ids.\"},\"nftDescriptor()\":{\"notice\":\"Contract that generates the non-fungible token URI.\"}},\"notice\":\"Contract with state variables (storage and constants) for the {SablierFlow} contract, their respective getters and helpful modifiers.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISablierFlowState.sol\":\"ISablierFlowState\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"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/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@prb/math/src/Common.sol\":{\"keccak256\":\"0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05\",\"dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42\"]},\"node_modules/@prb/math/src/UD21x18.sol\":{\"keccak256\":\"0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc\",\"dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73\"]},\"node_modules/@prb/math/src/sd1x18/Casting.sol\":{\"keccak256\":\"0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11\",\"dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu\"]},\"node_modules/@prb/math/src/sd1x18/Constants.sol\":{\"keccak256\":\"0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab\",\"dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos\"]},\"node_modules/@prb/math/src/sd1x18/Errors.sol\":{\"keccak256\":\"0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca\",\"dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE\"]},\"node_modules/@prb/math/src/sd1x18/ValueType.sol\":{\"keccak256\":\"0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353\",\"dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6\"]},\"node_modules/@prb/math/src/sd21x18/Casting.sol\":{\"keccak256\":\"0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2\",\"dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd\"]},\"node_modules/@prb/math/src/sd21x18/Constants.sol\":{\"keccak256\":\"0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396\",\"dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3\"]},\"node_modules/@prb/math/src/sd21x18/Errors.sol\":{\"keccak256\":\"0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee\",\"dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML\"]},\"node_modules/@prb/math/src/sd21x18/ValueType.sol\":{\"keccak256\":\"0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880\",\"dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf\"]},\"node_modules/@prb/math/src/sd59x18/Casting.sol\":{\"keccak256\":\"0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d\",\"dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n\"]},\"node_modules/@prb/math/src/sd59x18/Constants.sol\":{\"keccak256\":\"0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f\",\"dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si\"]},\"node_modules/@prb/math/src/sd59x18/Errors.sol\":{\"keccak256\":\"0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf\",\"dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk\"]},\"node_modules/@prb/math/src/sd59x18/Helpers.sol\":{\"keccak256\":\"0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed\",\"dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD\"]},\"node_modules/@prb/math/src/sd59x18/Math.sol\":{\"keccak256\":\"0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462\",\"dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD\"]},\"node_modules/@prb/math/src/sd59x18/ValueType.sol\":{\"keccak256\":\"0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919\",\"dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb\"]},\"node_modules/@prb/math/src/ud21x18/Casting.sol\":{\"keccak256\":\"0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09\",\"dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL\"]},\"node_modules/@prb/math/src/ud21x18/Constants.sol\":{\"keccak256\":\"0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60\",\"dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV\"]},\"node_modules/@prb/math/src/ud21x18/Errors.sol\":{\"keccak256\":\"0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80\",\"dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq\"]},\"node_modules/@prb/math/src/ud21x18/ValueType.sol\":{\"keccak256\":\"0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af\",\"dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU\"]},\"node_modules/@prb/math/src/ud2x18/Casting.sol\":{\"keccak256\":\"0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae\",\"dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL\"]},\"node_modules/@prb/math/src/ud2x18/Constants.sol\":{\"keccak256\":\"0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9\",\"dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC\"]},\"node_modules/@prb/math/src/ud2x18/Errors.sol\":{\"keccak256\":\"0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437\",\"dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i\"]},\"node_modules/@prb/math/src/ud2x18/ValueType.sol\":{\"keccak256\":\"0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41\",\"dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs\"]},\"node_modules/@prb/math/src/ud60x18/Casting.sol\":{\"keccak256\":\"0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780\",\"dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr\"]},\"node_modules/@prb/math/src/ud60x18/Constants.sol\":{\"keccak256\":\"0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b\",\"dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5\"]},\"node_modules/@prb/math/src/ud60x18/Errors.sol\":{\"keccak256\":\"0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8\",\"dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6\"]},\"node_modules/@prb/math/src/ud60x18/Helpers.sol\":{\"keccak256\":\"0xf5faff881391d2c060029499a666cc5f0bea90a213150bb476fae8f02a5df268\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://76105fa22bb1b5f1fa99abf9c4fbc9577a02c7bc204f271754c407f0d75489f5\",\"dweb:/ipfs/QmVNGZSTniDuZus5DdbFubqJXCLtTaZit7YPm4ntjr5Lgr\"]},\"node_modules/@prb/math/src/ud60x18/Math.sol\":{\"keccak256\":\"0xc4e51dfd9af62938e277e90fa724099f239d33727a35909ed48c292a76faf2fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d731537cbc50b852c21d28625aeb2c329729afc23a7b86ff9d8ee5878f47e9d6\",\"dweb:/ipfs/QmS7Cj4pAdPZcTp7RqYXyxBc9EYX92CT8icfkNigktUsLr\"]},\"node_modules/@prb/math/src/ud60x18/ValueType.sol\":{\"keccak256\":\"0x1b200baf25d01a8b91b97b42114248636f742b5b7028487ef4daef6621e378a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5708ed017206bda2197654e80bea9f37b3a9993434bb066c903c2865e028f47\",\"dweb:/ipfs/QmTyotZk2J5YvWkNvB2qhXBMgRGWW2UgPqR4JPocrXSr8n\"]},\"src/interfaces/IFlowNFTDescriptor.sol\":{\"keccak256\":\"0xdf964042ae7c74f03909d020fbb63e0ae56aeb2fa47213e3775a1e3263d00e54\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://0d4ede276be940185ea0b638c8f38f68232b6f4394ce0a69c2c729bc761aec82\",\"dweb:/ipfs/QmSgivdvgxrY7n6XbLQcGp645nRw1y2272iJUVhQyfnWUp\"]},\"src/interfaces/ISablierFlowState.sol\":{\"keccak256\":\"0x34de979793f5ae6efea67b31f6884e469f4436c8add0dc1c7e1151926db316e3\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://c25ab6522693ad95750b56bd5f7b2889a9291395d77ae4f417f0c45f5f165f08\",\"dweb:/ipfs/QmZpeUNJzwriC9aSbKacojNCy3HtY7JBGthC4Vs3sWt83f\"]},\"src/types/DataTypes.sol\":{\"keccak256\":\"0x73391073cf39bd553a0128aa4af5ea937d604a87393bbe37689727ccf10cf67f\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://2b32bbf9314ec331953938b36102f91fa6e899879cc450a34bd0bd397e618a9e\",\"dweb:/ipfs/QmbtxAvTVpvWBipLm3ALAdHhGXa6BoXZreBFGW9pfinoYE\"]}},\"version\":1}",
"metadata": {
"compiler": { "version": "0.8.29+commit.ab55807c" },
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [{ "internalType": "contract IERC20", "name": "token", "type": "address" }],
"stateMutability": "view",
"type": "function",
"name": "aggregateAmount",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getBalance",
"outputs": [{ "internalType": "uint128", "name": "balance", "type": "uint128" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getRatePerSecond",
"outputs": [{ "internalType": "UD21x18", "name": "ratePerSecond", "type": "uint128" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getSender",
"outputs": [{ "internalType": "address", "name": "sender", "type": "address" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getSnapshotDebtScaled",
"outputs": [{ "internalType": "uint256", "name": "snapshotDebtScaled", "type": "uint256" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getSnapshotTime",
"outputs": [{ "internalType": "uint40", "name": "snapshotTime", "type": "uint40" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getStream",
"outputs": [
{
"internalType": "struct Flow.Stream",
"name": "stream",
"type": "tuple",
"components": [
{ "internalType": "uint128", "name": "balance", "type": "uint128" },
{ "internalType": "UD21x18", "name": "ratePerSecond", "type": "uint128" },
{ "internalType": "address", "name": "sender", "type": "address" },
{ "internalType": "uint40", "name": "snapshotTime", "type": "uint40" },
{ "internalType": "bool", "name": "isStream", "type": "bool" },
{ "internalType": "bool", "name": "isTransferable", "type": "bool" },
{ "internalType": "bool", "name": "isVoided", "type": "bool" },
{ "internalType": "contract IERC20", "name": "token", "type": "address" },
{ "internalType": "uint8", "name": "tokenDecimals", "type": "uint8" },
{ "internalType": "uint256", "name": "snapshotDebtScaled", "type": "uint256" }
]
}
]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getToken",
"outputs": [{ "internalType": "contract IERC20", "name": "token", "type": "address" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "getTokenDecimals",
"outputs": [{ "internalType": "uint8", "name": "tokenDecimals", "type": "uint8" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "isStream",
"outputs": [{ "internalType": "bool", "name": "result", "type": "bool" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "isTransferable",
"outputs": [{ "internalType": "bool", "name": "result", "type": "bool" }]
},
{
"inputs": [{ "internalType": "uint256", "name": "streamId", "type": "uint256" }],
"stateMutability": "view",
"type": "function",
"name": "isVoided",
"outputs": [{ "internalType": "bool", "name": "result", "type": "bool" }]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "nativeToken",
"outputs": [{ "internalType": "address", "name": "", "type": "address" }]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "nextStreamId",
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "nftDescriptor",
"outputs": [{ "internalType": "contract IFlowNFTDescriptor", "name": "", "type": "address" }]
}
],
"devdoc": {
"kind": "dev",
"methods": {
"aggregateAmount(address)": {
"details": "If tokens are directly transferred to the contract without using the stream creation functions, the ERC-20 balance may be greater than the aggregate amount.",
"params": { "token": "The ERC-20 token for the query." }
},
"getBalance(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"getRatePerSecond(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The ID of the stream to make the query for." }
},
"getSender(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"getSnapshotDebtScaled(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"getSnapshotTime(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The ID of the stream to make the query for." }
},
"getStream(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"getToken(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The ID of the stream to make the query for." }
},
"getTokenDecimals(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The ID of the stream to make the query for." }
},
"isStream(uint256)": {
"details": "Does not revert if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"isTransferable(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"isVoided(uint256)": {
"details": "Reverts if `streamId` references a null stream.",
"params": { "streamId": "The stream ID for the query." }
},
"nativeToken()": {
"details": "The native tokens on some chains have a dual interface as ERC-20. For example, on Polygon the $POL token is the native token and has an ERC-20 version at 0x0000000000000000000000000000000000001010. This means that `address(this).balance` returns the same value as `balanceOf(address(this))`. To avoid any unintended behavior, these tokens cannot be used in Sablier. As an alternative, users can use the Wrapped version of the token, i.e. WMATIC, which is a standard ERC-20 token."
},
"nextStreamId()": { "returns": { "_0": "The next stream ID." } }
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"aggregateAmount(address)": {
"notice": "Retrieves the aggregate amount across all streams, denoted in units of the token's decimals."
},
"getBalance(uint256)": {
"notice": "Retrieves the balance of the stream, i.e. the total deposited amounts subtracted by the total withdrawn amounts, denoted in token's decimals."
},
"getRatePerSecond(uint256)": {
"notice": "Retrieves the rate per second of the stream, denoted as a fixed-point number where 1e18 is 1 token per second."
},
"getSender(uint256)": { "notice": "Retrieves the stream's sender." },
"getSnapshotDebtScaled(uint256)": {
"notice": "Retrieves the snapshot debt of the stream, denoted as a fixed-point number where 1e18 is 1 token."
},
"getSnapshotTime(uint256)": {
"notice": "Retrieves the snapshot time of the stream, which is a Unix timestamp."
},
"getStream(uint256)": { "notice": "Retrieves the stream entity." },
"getToken(uint256)": { "notice": "Retrieves the token of the stream." },
"getTokenDecimals(uint256)": { "notice": "Retrieves the token decimals of the stream." },
"isStream(uint256)": { "notice": "Retrieves a flag indicating whether the stream exists." },
"isTransferable(uint256)": {
"notice": "Retrieves a flag indicating whether the stream NFT is transferable."
},
"isVoided(uint256)": { "notice": "Retrieves a flag indicating whether the stream is voided." },
"nativeToken()": {
"notice": "Retrieves the address of the ERC-20 interface of the native token, if it exists."
},
"nextStreamId()": { "notice": "Counter for stream ids." },
"nftDescriptor()": { "notice": "Contract that generates the non-fungible token URI." }
},
"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/"
],
"optimizer": { "enabled": true, "runs": 1000000 },
"metadata": { "bytecodeHash": "ipfs" },
"compilationTarget": { "src/interfaces/ISablierFlowState.sol": "ISablierFlowState" },
"evmVersion": "shanghai",
"libraries": {},
"viaIR": true
},
"sources": {
"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7",
"urls": [
"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db",
"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": {
"keccak256": "0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261",
"urls": [
"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11",
"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
"keccak256": "0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1",
"urls": [
"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02",
"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8",
"urls": [
"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621",
"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"
],
"license": "MIT"
},
"node_modules/@prb/math/src/Common.sol": {
"keccak256": "0x8225a3898d2f11f585da1fb82234800e9717fa080dbe53d450fd429a3a632e99",
"urls": [
"bzz-raw://2dcbf39ca575f68f32f0d1c66391de94082424956e7585e849813966f8c0fc05",
"dweb:/ipfs/QmYvk8vXFDUJHrmqbtutYXfoLomLBosYLyBzuPoYBxsQ42"
],
"license": "MIT"
},
"node_modules/@prb/math/src/UD21x18.sol": {
"keccak256": "0xb0176747ae9c9f329bce39730d4d315b839e73a815494ddf2de2094aa9056957",
"urls": [
"bzz-raw://534a82fe091627f9d01e665ac763daf56981b30b3976269f8e5c33a84a2dbebc",
"dweb:/ipfs/QmYiiGJNr4S4ypYB4KGBPMTMiNskert8Cp4s6uf1CU3k73"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd1x18/Casting.sol": {
"keccak256": "0x5d365f655f01598926c5d4fe5cda277f2cc7736fe38f943c11a32009077ddd5c",
"urls": [
"bzz-raw://56b378bd6039819bc12e5f17dabd9492e1410b3281f9df496cf8210539101a11",
"dweb:/ipfs/QmcMaE64ZWMg9cFhYxdTuG8nfzeDdNuTRHMMoFXi6tSZGu"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd1x18/Constants.sol": {
"keccak256": "0xc14cc32061863d83912f9616de86f3c34f1ac58614b7d504c6ce07ee8efdb8e8",
"urls": [
"bzz-raw://22483b1282dda6a556b0232f008a5a3296bbfd76b1886e6b72bf351b7c554fab",
"dweb:/ipfs/QmYX9cYkrFxBbhZNKsb6uUxtrc2chmAj7vuc7UKRPGMwos"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd1x18/Errors.sol": {
"keccak256": "0xc3c8b1ab3d19889c356c222a3a2186d45dfc1d3a17b9ad88159bb64ee457baa6",
"urls": [
"bzz-raw://84fbe57569246403f778330bd7723018dfcb5f0ec50d7b1d82cc983c94a54bca",
"dweb:/ipfs/QmWssAAnovc2EVjt58rTnxraE9B1RMivwTvYCYgpnr6oSE"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd1x18/ValueType.sol": {
"keccak256": "0xaa9dc7b562faf45264390d80e2ea10c5295bb8a4f10d76261a3f9c04363734c0",
"urls": [
"bzz-raw://c6ca36acd15f5cb47cf124ddec289f84e1011f2d29056159e4570435629a3353",
"dweb:/ipfs/QmUKdiLmZpAkNCq2TKxrPbQPUhiRFXGfjGSnY1VeHVu4y6"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd21x18/Casting.sol": {
"keccak256": "0x4a16adddb9ab1f6939dd4567c77205015a11081cb840029b84bbb6fdaf78ee36",
"urls": [
"bzz-raw://5003b2f4cd2fc1413da36bc63107c6e83a88d29693e8f97b54f300fa78f9c6d2",
"dweb:/ipfs/QmaNJn91NLrZmeeGqnFQV1FTrLVSW852zHyWTrWJ5pf1pd"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd21x18/Constants.sol": {
"keccak256": "0x501c2d5cfdea9450422182059c8df1cb6a859901a07bd59631c3fa24edcc79d4",
"urls": [
"bzz-raw://4669a65001c92919671fd879d33ce0e5030b602a7ba4d36bd2308128d8d1f396",
"dweb:/ipfs/QmUC3bJ3qdkCmLMw3WHBcEqvuC4tExT2LXzUhgu5KQ3vi3"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd21x18/Errors.sol": {
"keccak256": "0xc5422ee47eb139274e538e758fb40177a1ba22c2113ef3b3446102f0150bfe0a",
"urls": [
"bzz-raw://a1981e052e9e86e1b0e4e55a057a7af4739aedd4ead2d60e3eaa40fb703594ee",
"dweb:/ipfs/QmPK5qSujnyk1R8ues4RhDMy1tRKKyjQ31YJTviTKq7GML"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd21x18/ValueType.sol": {
"keccak256": "0x532bba888370bed393464412f4ef3462d654802e71c953ad02d078e3d2701092",
"urls": [
"bzz-raw://922a4e8dd813602f72d165aa1dfdf2c29b971a2abe73bebca7cd81a32ee2c880",
"dweb:/ipfs/QmTBAJnx1r3sZpbQAuTgQtsTtvjZbpDwhCJRzkhzUumbdf"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/Casting.sol": {
"keccak256": "0xdf70d8e70c6d6325f3f7eb028c484bc7189ef902f1d4b5b220af2e550bb5fc39",
"urls": [
"bzz-raw://0b15bcd36129c5cb163d57a117435afb171182018dd6d1e766a5f49cf1f4b63d",
"dweb:/ipfs/QmbjzkMBH4FM2rdxGbx9LQ65wVERijNcu7R9C8dQmH3y4n"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/Constants.sol": {
"keccak256": "0x9bcb8dd6b3e886d140ad1c32747a4f6d29a492529ceb835be878ae837aa6cc3a",
"urls": [
"bzz-raw://c4045c633e3618e7e90a768d92415b2f20f781fe129b4f4e26fa88f7dbf9201f",
"dweb:/ipfs/Qmbet95pizwPno82cJ383wJtgQRSQKESmhVZ1vDrgAu7Si"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/Errors.sol": {
"keccak256": "0x0a79c28c85fc8a450b0801ff2e66114eac4ec565819f5d1d8738904658fe33e2",
"urls": [
"bzz-raw://9e0d4fd3c998019fb8555d9e26c03bec42a8513bdf4185aeac2da3a000abaebf",
"dweb:/ipfs/QmahFJHXcX4RwPxaQbUf6LVZEk8NSpjCV3Eif7i9iqC6Mk"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/Helpers.sol": {
"keccak256": "0x208570f1657cf730cb6c3d81aa14030e0d45cf906cdedea5059369d7df4bb716",
"urls": [
"bzz-raw://4c78ca900edafa9338d4e3649a55ab0c84f76468d8a22fb945ba6d01e70f8fed",
"dweb:/ipfs/QmeP4hQYfNxcATd1FsasdD4ebyu2vrC9K1N68swxUJzzZD"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/Math.sol": {
"keccak256": "0xd8e8b51db9b3e2fa31a60f6b8ce4ea0112c3364442ede5992aa0aa7a2c925c84",
"urls": [
"bzz-raw://3c56913970e34ee7b142047b21f1856a511cbdc3473b7c50418a8490e19cd462",
"dweb:/ipfs/QmfG1F9CBDjPYD7NXora9awFfdpvBMY9SCg5pMLCFRv9tD"
],
"license": "MIT"
},
"node_modules/@prb/math/src/sd59x18/ValueType.sol": {
"keccak256": "0x76597ba64d37d66e0178512bc9bbc1a031a7634c45e5d5c6e9da87f46952dc9d",
"urls": [
"bzz-raw://36148899ad874814e9292636fb974d2eec61f1bcc0875ec39cf444d70ba40919",
"dweb:/ipfs/QmadUe4kH2FPcdxvhCKy8yiezCvPWor4VcPzqLYSAaGDDb"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud21x18/Casting.sol": {
"keccak256": "0x3821aa57604f6e5b7c9c5c5cc97a6d71116e673cf3fee5f76fcd42b4cefded65",
"urls": [
"bzz-raw://a80399c6b38ab45cc10d0a6683d50340cd89d9a085b6d0dcfb81e7c4e5b3ce09",
"dweb:/ipfs/QmWNW2YD2LMkqrpAtJYeeuHN329Rx7mvfmrjsCo1p6akTL"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud21x18/Constants.sol": {
"keccak256": "0x0997574a1ced6c43bde6d9c9175edc5ad64cbb920a0969a9db68eea543747601",
"urls": [
"bzz-raw://c09f03345a6779b002b38ffc3954258accbb2b1d0d5506d42c3bd7f117304f60",
"dweb:/ipfs/QmTeBXRCE7H2HpqKUNsZN7Nk3rdBnFmbAUFom3E1PJeGuV"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud21x18/Errors.sol": {
"keccak256": "0x35a1fb789b90f8c90865884d3023deb17fcca5c7146b5ddef823496d835a5415",
"urls": [
"bzz-raw://0af359d07ba25bdc90de7c05ed6216833932caa75d4a02fcfc51ceeaba5a4e80",
"dweb:/ipfs/QmavBFw73Xfp1qJiN6P1gk2Dfr8ByWo3dyCPVgDHtko2gq"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud21x18/ValueType.sol": {
"keccak256": "0x24838b2b1da371b9259d8ee21534a9f0cb5796aba75a4efca2374627952bee25",
"urls": [
"bzz-raw://897e6b79308651671c7f3c91a0069e778b47356c9ba3f86e238398ab7f2623af",
"dweb:/ipfs/QmZbLw3tJVRZFQnV9jWQUmF43gna841adSG2TAiwDAifGU"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud2x18/Casting.sol": {
"keccak256": "0x0f3141ed054e7c29dbe1acb4b88b18eb05d60e998fba6b4e503a6799faa356d6",
"urls": [
"bzz-raw://b1e2468fc4c458082aaf4aa2e35af9ba3702f207e3c8533dd1e7da11ad605eae",
"dweb:/ipfs/QmSm7iRH1eo4cJCwcAiiXWRH9Hn1urSS4tMdbaFbFGuTyL"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud2x18/Constants.sol": {
"keccak256": "0x29b0e050c865899e1fb9022b460a7829cdee248c44c4299f068ba80695eec3fc",
"urls": [
"bzz-raw://cbaef16b662fac235349bcf97bc980dd0cba15d4e6230caae61224cdac8ea6d9",
"dweb:/ipfs/QmZQa5XBhi7k3yhtCd8wVpnwW8htfU4sjXxWhxRypMBYkC"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud2x18/Errors.sol": {
"keccak256": "0x3b27e2a57438cd30d9c130f84aace24d547e5ed58e8689691d7d92ad2db38ddd",
"urls": [
"bzz-raw://841cf9fb45443899c6b659300bbf503c3fd2c1a1e83b7f0e28620eed457f7437",
"dweb:/ipfs/QmUqg8WscP5yQPw3UMUCWaB9RLU6nryGzseuyhAjNnDc1i"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud2x18/ValueType.sol": {
"keccak256": "0x975a2e69b48f34a4c0bd80e8a5609ac67b7264c91992c0944f9ebe7b9e3fc9d0",
"urls": [
"bzz-raw://65d012521c475295d7e70b7d526fcc0911d0f238ea938719d77251bba00c9b41",
"dweb:/ipfs/QmexEvTQCCBPYRWAYnomZX5M7C2EkXQRAXqEYMNUZfazCs"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud60x18/Casting.sol": {
"keccak256": "0x0803318ddc98b4ba8fbfe70e5ee08d78387fe6ae00982b9960518085a751d7b6",
"urls": [
"bzz-raw://2e68a2f780b2e33fa5416eb60f9daa81f014c2591119f4b67bed1217d5530780",
"dweb:/ipfs/QmZe7JTWvbfKqMnu4sxUwWCtLcCay9hH71VZUpoFCdENcr"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud60x18/Constants.sol": {
"keccak256": "0x2b80d26153d3fdcfb3a9ca772d9309d31ed1275f5b8b54c3ffb54d3652b37d90",
"urls": [
"bzz-raw://7e3a6673a156f635db94dc176baaa7274db8f9bec4461cd1152596253550ee3b",
"dweb:/ipfs/Qmc9zT4kNSbMYaXcnbxNVqmb3P3m46ieaQxkwxqLwsvRA5"
],
"license": "MIT"
},
"node_modules/@prb/math/src/ud60x18/Errors.sol": {
"keccak256": "0xbab6b0e303d32f3a9d9e2fe881f0392b8c59a73051a4d34f21a403b3961b3044",
"urls": [
"bzz-raw://86a019bcf2510d0691287329dc057479cc0abc48a5e15f245e7f15c03052d2c8",
"dweb:/ipfs/QmeXe5pbpDHvN5DZ8puXmH2RJ25zDHj55wpiStWtNQPvq6"
]