{"abi":[{"type":"function","name":"freeze","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_freezeDuration","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"recordId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"frozenBalanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"frozenBalance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"thaw","inputs":[{"name":"_recordIds","type":"uint256[]","internalType":"uint256[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unfrozenBalanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"unfrozenBalance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"TokenFrozen","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"recordId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"expiresAt","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"TokenThawed","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"recordId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"FreezeRecordNotExpired","inputs":[{"name":"recordId","type":"uint256","internalType":"uint256"},{"name":"expiresAt","type":"uint48","internalType":"uint48"}]},{"type":"error","name":"FreezeRecordNotFound","inputs":[{"name":"recordId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotOwnerOrApproved","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"TokenAlreadyFrozen","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"TokenIsFrozen","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"freeze(address,uint256,uint48)":"258a8fa8","frozenBalanceOf(address)":"be91de53","thaw(uint256[])":"4a5c1fee","unfrozenBalanceOf(address)":"4e037a62"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.24+commit.e11b9ed9\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"recordId\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"expiresAt\",\"type\":\"uint48\"}],\"name\":\"FreezeRecordNotExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"recordId\",\"type\":\"uint256\"}],\"name\":\"FreezeRecordNotFound\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwnerOrApproved\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenAlreadyFrozen\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenIsFrozen\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"recordId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"expiresAt\",\"type\":\"uint48\"}],\"name\":\"TokenFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"recordId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenThawed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint48\",\"name\":\"_freezeDuration\",\"type\":\"uint48\"}],\"name\":\"freeze\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"recordId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"frozenBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"frozenBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_recordIds\",\"type\":\"uint256[]\"}],\"name\":\"thaw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"unfrozenBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"unfrozenBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"freeze(address,uint256,uint48)\":{\"details\":\"Freezes a token for a given duration. Frozen tokens cannot be transferred or burned.\"},\"frozenBalanceOf(address)\":{\"details\":\"Returns the number of frozen tokens in ``owner``'s account.\"},\"thaw(uint256[])\":{\"details\":\"Thaws tokens that have expired freeze durations.\"},\"unfrozenBalanceOf(address)\":{\"details\":\"Returns the number of unfrozen tokens in ``owner``'s account.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/token/IERC721Freezable.sol\":\"IERC721Freezable\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@forma-dev/sdk/=/\",\":@hyperlane-xyz/=node_modules/@hyperlane-xyz/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@thirdweb-dev/=node_modules/@thirdweb-dev/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"contracts/interfaces/token/IERC721Freezable.sol\":{\"keccak256\":\"0x0bec8db461a91fc6fbc63d6725d5429dcc071c438b74037e07b088ded7e3df85\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2942645ffff297c471d6fafe23e410ba77850cc534d13c72f1763513c3f67aaa\",\"dweb:/ipfs/QmNmbqEyhDYsqYi2n87xpk2MkkyF1aWiMni9v5fy9XipLg\"]},\"contracts/interfaces/token/ITokenErrors.sol\":{\"keccak256\":\"0x0d78e5197b501ef26f13e26dd79fc5815b09fe8bd047c1ec8c70d1fa0a3e5047\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://020ea40bc28f644ae50c730023b1517d718050606721605fe051071669612c7d\",\"dweb:/ipfs/QmdPMY9A5395y2LydDyNSKxw3Jzx4GWGiF4UpzrxJconcM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.24+commit.e11b9ed9"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"recordId","type":"uint256"},{"internalType":"uint48","name":"expiresAt","type":"uint48"}],"type":"error","name":"FreezeRecordNotExpired"},{"inputs":[{"internalType":"uint256","name":"recordId","type":"uint256"}],"type":"error","name":"FreezeRecordNotFound"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"NotOwnerOrApproved"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"TokenAlreadyFrozen"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"TokenIsFrozen"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"recordId","type":"uint256","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true},{"internalType":"uint48","name":"expiresAt","type":"uint48","indexed":false}],"type":"event","name":"TokenFrozen","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"recordId","type":"uint256","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"TokenThawed","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint48","name":"_freezeDuration","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"freeze","outputs":[{"internalType":"uint256","name":"recordId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"frozenBalanceOf","outputs":[{"internalType":"uint256","name":"frozenBalance","type":"uint256"}]},{"inputs":[{"internalType":"uint256[]","name":"_recordIds","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function","name":"thaw"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"unfrozenBalanceOf","outputs":[{"internalType":"uint256","name":"unfrozenBalance","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"freeze(address,uint256,uint48)":{"details":"Freezes a token for a given duration. Frozen tokens cannot be transferred or burned."},"frozenBalanceOf(address)":{"details":"Returns the number of frozen tokens in ``owner``'s account."},"thaw(uint256[])":{"details":"Thaws tokens that have expired freeze durations."},"unfrozenBalanceOf(address)":{"details":"Returns the number of unfrozen tokens in ``owner``'s account."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forma-dev/sdk/=/","@hyperlane-xyz/=node_modules/@hyperlane-xyz/","@openzeppelin/=node_modules/@openzeppelin/","@thirdweb-dev/=node_modules/@thirdweb-dev/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/interfaces/token/IERC721Freezable.sol":"IERC721Freezable"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/interfaces/token/IERC721Freezable.sol":{"keccak256":"0x0bec8db461a91fc6fbc63d6725d5429dcc071c438b74037e07b088ded7e3df85","urls":["bzz-raw://2942645ffff297c471d6fafe23e410ba77850cc534d13c72f1763513c3f67aaa","dweb:/ipfs/QmNmbqEyhDYsqYi2n87xpk2MkkyF1aWiMni9v5fy9XipLg"],"license":"MIT"},"contracts/interfaces/token/ITokenErrors.sol":{"keccak256":"0x0d78e5197b501ef26f13e26dd79fc5815b09fe8bd047c1ec8c70d1fa0a3e5047","urls":["bzz-raw://020ea40bc28f644ae50c730023b1517d718050606721605fe051071669612c7d","dweb:/ipfs/QmdPMY9A5395y2LydDyNSKxw3Jzx4GWGiF4UpzrxJconcM"],"license":"MIT"}},"version":1},"id":24}