@sablier/airdrops
Version:
Merkle-based airdrop distributions powered by Sablier
1 lines • 23.5 kB
JSON
{"abi":[{"type":"function","name":"EXPIRATION","inputs":[],"outputs":[{"name":"","type":"uint40","internalType":"uint40"}],"stateMutability":"nonpayable"},{"type":"function","name":"FACTORY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MERKLE_ROOT","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"nonpayable"},{"type":"function","name":"admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"campaignName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"index","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"merkleProof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"clawback","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collectFees","inputs":[{"name":"factoryAdmin","type":"address","internalType":"address"}],"outputs":[{"name":"feeAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getFirstClaimTime","inputs":[],"outputs":[{"name":"","type":"uint40","internalType":"uint40"}],"stateMutability":"view"},{"type":"function","name":"hasClaimed","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"hasExpired","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"ipfsCID","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"shape","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"transferAdmin","inputs":[{"name":"newAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Claim","inputs":[{"name":"index","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Clawback","inputs":[{"name":"admin","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"TransferAdmin","inputs":[{"name":"oldAdmin","type":"address","indexed":true,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"EXPIRATION()":"bb4b5734","FACTORY()":"2dd31000","FEE()":"c57981b5","MERKLE_ROOT()":"51e75e8b","TOKEN()":"82bfefc8","admin()":"f851a440","campaignName()":"0724fda9","claim(uint256,address,uint128,bytes32[])":"3f31ae3f","clawback(address,uint128)":"1686c909","collectFees(address)":"a480ca79","getFirstClaimTime()":"4e390d3e","hasClaimed(uint256)":"ce516507","hasExpired()":"90e64d13","ipfsCID()":"49fc73dd","shape()":"0f7514a2","transferAdmin(address)":"75829def"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"Claim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"Clawback\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldAdmin\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"TransferAdmin\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"EXPIRATION\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FACTORY\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MERKLE_ROOT\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"campaignName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes32[]\",\"name\":\"merkleProof\",\"type\":\"bytes32[]\"}],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"clawback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"factoryAdmin\",\"type\":\"address\"}],\"name\":\"collectFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"feeAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFirstClaimTime\",\"outputs\":[{\"internalType\":\"uint40\",\"name\":\"\",\"type\":\"uint40\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"hasClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"hasExpired\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ipfsCID\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"shape\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"TransferAdmin(address,address)\":{\"params\":{\"newAdmin\":\"The address of the new admin.\",\"oldAdmin\":\"The address of the old admin.\"}}},\"kind\":\"dev\",\"methods\":{\"EXPIRATION()\":{\"details\":\"This is an immutable state variable.\"},\"MERKLE_ROOT()\":{\"details\":\"This is an immutable state variable.\"},\"TOKEN()\":{\"details\":\"This is an immutable state variable.\"},\"claim(uint256,address,uint128,bytes32[])\":{\"details\":\"Depending on the Merkle campaign, it either transfers tokens to the recipient or creates a Lockup stream with an NFT minted to the recipient. Requirements: - The campaign must not have expired. - The stream must not have been claimed already. - The Merkle proof must be valid. - The `msg.value` must not be less than `FEE`.\",\"params\":{\"amount\":\"The amount of ERC-20 tokens to be transferred to the recipient.\",\"index\":\"The index of the recipient in the Merkle tree.\",\"merkleProof\":\"The proof of inclusion in the Merkle tree.\",\"recipient\":\"The address of the airdrop recipient.\"}},\"clawback(address,uint128)\":{\"details\":\"Emits a {Clawback} event. Requirements: - `msg.sender` must be the admin. - No claim must be made, OR The current timestamp must not exceed 7 days after the first claim, OR The campaign must be expired.\",\"params\":{\"amount\":\"The amount of tokens to claw back.\",\"to\":\"The address to receive the tokens.\"}},\"collectFees(address)\":{\"params\":{\"factoryAdmin\":\"The address of the `FACTORY` admin.\"},\"returns\":{\"feeAmount\":\"The amount of native tokens (e.g., ETH) collected as fees.\"}},\"hasClaimed(uint256)\":{\"details\":\"Uses a bitmap to save gas.\",\"params\":{\"index\":\"The index of the recipient to check.\"}},\"transferAdmin(address)\":{\"details\":\"Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.\",\"params\":{\"newAdmin\":\"The address of the new admin.\"}}},\"title\":\"ISablierMerkleInstant\",\"version\":1},\"userdoc\":{\"events\":{\"Claim(uint256,address,uint128)\":{\"notice\":\"Emitted when a recipient claims an instant airdrop.\"},\"Clawback(address,address,uint128)\":{\"notice\":\"Emitted when the admin claws back the unclaimed tokens.\"},\"TransferAdmin(address,address)\":{\"notice\":\"Emitted when the admin is transferred.\"}},\"kind\":\"user\",\"methods\":{\"EXPIRATION()\":{\"notice\":\"The cut-off point for the campaign, as a Unix timestamp. A value of zero means there is no expiration.\"},\"FACTORY()\":{\"notice\":\"Retrieves the address of the factory contract.\"},\"FEE()\":{\"notice\":\"Retrieves the minimum fee required to claim the airdrop, which is paid in the native token of the chain, e.g. ETH for Ethereum Mainnet.\"},\"MERKLE_ROOT()\":{\"notice\":\"The root of the Merkle tree used to validate the proofs of inclusion.\"},\"TOKEN()\":{\"notice\":\"The ERC-20 token to distribute.\"},\"admin()\":{\"notice\":\"The address of the admin account or contract.\"},\"campaignName()\":{\"notice\":\"Retrieves the name of the campaign.\"},\"claim(uint256,address,uint128,bytes32[])\":{\"notice\":\"Makes the claim.\"},\"clawback(address,uint128)\":{\"notice\":\"Claws back the unclaimed tokens from the campaign.\"},\"collectFees(address)\":{\"notice\":\"Collects the accrued fees by transferring them to `FACTORY` admin. Requirements: - `msg.sender` must be the `FACTORY` contract.\"},\"getFirstClaimTime()\":{\"notice\":\"Returns the timestamp when the first claim is made.\"},\"hasClaimed(uint256)\":{\"notice\":\"Returns a flag indicating whether a claim has been made for a given index.\"},\"hasExpired()\":{\"notice\":\"Returns a flag indicating whether the campaign has expired.\"},\"ipfsCID()\":{\"notice\":\"The content identifier for indexing the campaign on IPFS.\"},\"shape()\":{\"notice\":\"Retrieves the shape of the lockup stream that the campaign produces upon claiming.\"},\"transferAdmin(address)\":{\"notice\":\"Transfers the contract admin to a new address.\"}},\"notice\":\"MerkleInstant enables airdrop distributions where the tokens are claimed directly to the users' wallets.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/interfaces/ISablierMerkleInstant.sol\":\"ISablierMerkleInstant\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\",\":@prb/math/=node_modules/@prb/math/\",\":@sablier/lockup/=node_modules/@sablier/lockup/\",\":forge-std/=node_modules/forge-std/\",\":hardhat/=node_modules/hardhat/\",\":murky/=node_modules/murky/\",\":openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/\",\":solady/=node_modules/solady/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"node_modules/@sablier/lockup/src/interfaces/IAdminable.sol\":{\"keccak256\":\"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f\",\"dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z\"]},\"src/interfaces/ISablierMerkleBase.sol\":{\"keccak256\":\"0x228e6f6cb474954facb08cce54ccc47c9ea3763df30465876ddd46dae6ecf5a7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://941895fd80d347fe41a02cf65ba2cb88db45dc4cb9ca835f18f2b5a17b5dfb1b\",\"dweb:/ipfs/QmWwDkGhFjLZwg73BgP8LmVoHkpoNcqjgwVPiQqSNHaAEs\"]},\"src/interfaces/ISablierMerkleInstant.sol\":{\"keccak256\":\"0x816f8408583d197a722c2fe9dd0472791ccb0229f544edf177510b24daa91af7\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://e4cbcf93d2738bd72e29798289ddee8777dc107184e63acf4bc7e767d08a5167\",\"dweb:/ipfs/QmaQiv2b2YqqRjtbTiofHpHd8m8F3USYzWjmqnVV5bbw63\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"index","type":"uint256","indexed":false},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"Claim","anonymous":false},{"inputs":[{"internalType":"address","name":"admin","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint128","name":"amount","type":"uint128","indexed":false}],"type":"event","name":"Clawback","anonymous":false},{"inputs":[{"internalType":"address","name":"oldAdmin","type":"address","indexed":true},{"internalType":"address","name":"newAdmin","type":"address","indexed":true}],"type":"event","name":"TransferAdmin","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"EXPIRATION","outputs":[{"internalType":"uint40","name":"","type":"uint40"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FACTORY","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"MERKLE_ROOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"TOKEN","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"campaignName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes32[]","name":"merkleProof","type":"bytes32[]"}],"stateMutability":"payable","type":"function","name":"claim"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint128","name":"amount","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"clawback"},{"inputs":[{"internalType":"address","name":"factoryAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"collectFees","outputs":[{"internalType":"uint256","name":"feeAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFirstClaimTime","outputs":[{"internalType":"uint40","name":"","type":"uint40"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"hasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"hasExpired","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ipfsCID","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"shape","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferAdmin"}],"devdoc":{"kind":"dev","methods":{"EXPIRATION()":{"details":"This is an immutable state variable."},"MERKLE_ROOT()":{"details":"This is an immutable state variable."},"TOKEN()":{"details":"This is an immutable state variable."},"claim(uint256,address,uint128,bytes32[])":{"details":"Depending on the Merkle campaign, it either transfers tokens to the recipient or creates a Lockup stream with an NFT minted to the recipient. Requirements: - The campaign must not have expired. - The stream must not have been claimed already. - The Merkle proof must be valid. - The `msg.value` must not be less than `FEE`.","params":{"amount":"The amount of ERC-20 tokens to be transferred to the recipient.","index":"The index of the recipient in the Merkle tree.","merkleProof":"The proof of inclusion in the Merkle tree.","recipient":"The address of the airdrop recipient."}},"clawback(address,uint128)":{"details":"Emits a {Clawback} event. Requirements: - `msg.sender` must be the admin. - No claim must be made, OR The current timestamp must not exceed 7 days after the first claim, OR The campaign must be expired.","params":{"amount":"The amount of tokens to claw back.","to":"The address to receive the tokens."}},"collectFees(address)":{"params":{"factoryAdmin":"The address of the `FACTORY` admin."},"returns":{"feeAmount":"The amount of native tokens (e.g., ETH) collected as fees."}},"hasClaimed(uint256)":{"details":"Uses a bitmap to save gas.","params":{"index":"The index of the recipient to check."}},"transferAdmin(address)":{"details":"Notes: - Does not revert if the admin is the same. - This function can potentially leave the contract without an admin, thereby removing any functionality that is only available to the admin. Requirements: - `msg.sender` must be the contract admin.","params":{"newAdmin":"The address of the new admin."}}},"version":1},"userdoc":{"kind":"user","methods":{"EXPIRATION()":{"notice":"The cut-off point for the campaign, as a Unix timestamp. A value of zero means there is no expiration."},"FACTORY()":{"notice":"Retrieves the address of the factory contract."},"FEE()":{"notice":"Retrieves the minimum fee required to claim the airdrop, which is paid in the native token of the chain, e.g. ETH for Ethereum Mainnet."},"MERKLE_ROOT()":{"notice":"The root of the Merkle tree used to validate the proofs of inclusion."},"TOKEN()":{"notice":"The ERC-20 token to distribute."},"admin()":{"notice":"The address of the admin account or contract."},"campaignName()":{"notice":"Retrieves the name of the campaign."},"claim(uint256,address,uint128,bytes32[])":{"notice":"Makes the claim."},"clawback(address,uint128)":{"notice":"Claws back the unclaimed tokens from the campaign."},"collectFees(address)":{"notice":"Collects the accrued fees by transferring them to `FACTORY` admin. Requirements: - `msg.sender` must be the `FACTORY` contract."},"getFirstClaimTime()":{"notice":"Returns the timestamp when the first claim is made."},"hasClaimed(uint256)":{"notice":"Returns a flag indicating whether a claim has been made for a given index."},"hasExpired()":{"notice":"Returns a flag indicating whether the campaign has expired."},"ipfsCID()":{"notice":"The content identifier for indexing the campaign on IPFS."},"shape()":{"notice":"Retrieves the shape of the lockup stream that the campaign produces upon claiming."},"transferAdmin(address)":{"notice":"Transfers the contract admin to a new address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/","@prb/math/=node_modules/@prb/math/","@sablier/lockup/=node_modules/@sablier/lockup/","forge-std/=node_modules/forge-std/","hardhat/=node_modules/hardhat/","murky/=node_modules/murky/","openzeppelin-contracts/=node_modules/murky/lib/openzeppelin-contracts/","solady/=node_modules/solady/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/interfaces/ISablierMerkleInstant.sol":"ISablierMerkleInstant"},"evmVersion":"shanghai","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70","urls":["bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c","dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq"],"license":"MIT"},"node_modules/@sablier/lockup/src/interfaces/IAdminable.sol":{"keccak256":"0xa279c49e51228b571329164e36250e82b2c1378e8b549194ab7dd90fca9c3b2b","urls":["bzz-raw://b0af605b82e64679db7039fb378fc206c4a000f8cd24b3ff17b019e27b81be8f","dweb:/ipfs/QmUSr73cbnG7K79mVE9Nwcou5nJZEK2ZGekt3KpkfpxL4Z"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierMerkleBase.sol":{"keccak256":"0x228e6f6cb474954facb08cce54ccc47c9ea3763df30465876ddd46dae6ecf5a7","urls":["bzz-raw://941895fd80d347fe41a02cf65ba2cb88db45dc4cb9ca835f18f2b5a17b5dfb1b","dweb:/ipfs/QmWwDkGhFjLZwg73BgP8LmVoHkpoNcqjgwVPiQqSNHaAEs"],"license":"GPL-3.0-or-later"},"src/interfaces/ISablierMerkleInstant.sol":{"keccak256":"0x816f8408583d197a722c2fe9dd0472791ccb0229f544edf177510b24daa91af7","urls":["bzz-raw://e4cbcf93d2738bd72e29798289ddee8777dc107184e63acf4bc7e767d08a5167","dweb:/ipfs/QmaQiv2b2YqqRjtbTiofHpHd8m8F3USYzWjmqnVV5bbw63"],"license":"GPL-3.0-or-later"}},"version":1},"id":91}