{"abi":[{"type":"function","name":"freeze","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"},{"name":"_amount","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"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"frozenBalance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"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":"function","name":"unfrozenBalanceOf","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"unfrozenBalance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"TokensFrozen","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":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"expiresAt","type":"uint48","indexed":false,"internalType":"uint48"}],"anonymous":false},{"type":"event","name":"TokensThawed","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":"amount","type":"uint256","indexed":false,"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":"InsufficientUnfrozenBalance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotOwnerOrApproved","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"freeze(address,uint256,uint256,uint48)":"14dbabb2","frozenBalanceOf(address)":"be91de53","frozenBalanceOf(address,uint256)":"535c0ce3","thaw(uint256[])":"4a5c1fee","unfrozenBalanceOf(address)":"4e037a62","unfrozenBalanceOf(address,uint256)":"dd1a3490"},"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\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"InsufficientUnfrozenBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"NotOwnerOrApproved\",\"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\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint48\",\"name\":\"expiresAt\",\"type\":\"uint48\"}],\"name\":\"TokensFrozen\",\"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\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensThawed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"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\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"frozenBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"frozenBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"unfrozenBalanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"unfrozenBalance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"freeze(address,uint256,uint256,uint48)\":{\"details\":\"Freezes an amount of tokens for a given duration. Frozen tokens cannot be transferred or burned.\"},\"frozenBalanceOf(address)\":{\"details\":\"Returns the number of frozen tokens in ``owner``'s account.\"},\"frozenBalanceOf(address,uint256)\":{\"details\":\"Returns the number of frozen tokens in ``owner``'s account for a given tokenId.\"},\"thaw(uint256[])\":{\"details\":\"Thaws tokens that have expired freeze durations.\"},\"unfrozenBalanceOf(address)\":{\"details\":\"Returns the number of unfrozen tokens in ``owner``'s account.\"},\"unfrozenBalanceOf(address,uint256)\":{\"details\":\"Returns the number of unfrozen tokens in ``owner``'s account for a given tokenId.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/token/IERC1155Freezable.sol\":\"IERC1155Freezable\"},\"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/IERC1155Freezable.sol\":{\"keccak256\":\"0x80cbb6acd07150e0fafc768c4e6884bbd07d7ef9ccc3344e404e8f70c7fb7d46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39f47b832354583b31b03ae87d96a613b4944f220e7a798c77dd9bde21723067\",\"dweb:/ipfs/Qmaq1vGPXQjZfrDHBQrMK4r5C28LphGJLBszG5D45UqAub\"]},\"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":"owner","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint256","name":"required","type":"uint256"}],"type":"error","name":"InsufficientUnfrozenBalance"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"NotOwnerOrApproved"},{"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":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint48","name":"expiresAt","type":"uint48","indexed":false}],"type":"event","name":"TokensFrozen","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},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"TokensThawed","anonymous":false},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_amount","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"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"frozenBalanceOf","outputs":[{"internalType":"uint256","name":"frozenBalance","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"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"unfrozenBalanceOf","outputs":[{"internalType":"uint256","name":"unfrozenBalance","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"freeze(address,uint256,uint256,uint48)":{"details":"Freezes an amount of tokens for a given duration. Frozen tokens cannot be transferred or burned."},"frozenBalanceOf(address)":{"details":"Returns the number of frozen tokens in ``owner``'s account."},"frozenBalanceOf(address,uint256)":{"details":"Returns the number of frozen tokens in ``owner``'s account for a given tokenId."},"thaw(uint256[])":{"details":"Thaws tokens that have expired freeze durations."},"unfrozenBalanceOf(address)":{"details":"Returns the number of unfrozen tokens in ``owner``'s account."},"unfrozenBalanceOf(address,uint256)":{"details":"Returns the number of unfrozen tokens in ``owner``'s account for a given tokenId."}},"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/IERC1155Freezable.sol":"IERC1155Freezable"},"evmVersion":"cancun","libraries":{}},"sources":{"contracts/interfaces/token/IERC1155Freezable.sol":{"keccak256":"0x80cbb6acd07150e0fafc768c4e6884bbd07d7ef9ccc3344e404e8f70c7fb7d46","urls":["bzz-raw://39f47b832354583b31b03ae87d96a613b4944f220e7a798c77dd9bde21723067","dweb:/ipfs/Qmaq1vGPXQjZfrDHBQrMK4r5C28LphGJLBszG5D45UqAub"],"license":"MIT"},"contracts/interfaces/token/ITokenErrors.sol":{"keccak256":"0x0d78e5197b501ef26f13e26dd79fc5815b09fe8bd047c1ec8c70d1fa0a3e5047","urls":["bzz-raw://020ea40bc28f644ae50c730023b1517d718050606721605fe051071669612c7d","dweb:/ipfs/QmdPMY9A5395y2LydDyNSKxw3Jzx4GWGiF4UpzrxJconcM"],"license":"MIT"}},"version":1},"id":19}