{"abi":[{"type":"constructor","inputs":[{"name":"inputBox","type":"address","internalType":"contract IInputBox"}],"stateMutability":"nonpayable"},{"type":"function","name":"depositERC721Token","inputs":[{"name":"token","type":"address","internalType":"contract IERC721"},{"name":"appContract","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"baseLayerData","type":"bytes","internalType":"bytes"},{"name":"execLayerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getInputBox","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IInputBox"}],"stateMutability":"view"}],"bytecode":{"object":"0x60a034606d57601f61041738819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051610391908161008682396080518181816101e201526102a80152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c908162aace9a1461029657506328911e8314610033575f80fd5b346102925760a0366003190112610292576004356001600160a01b038116808203610292576024356001600160a01b0381169190829003610292576044359060643567ffffffffffffffff8111610292576100929036906004016102d7565b9160843567ffffffffffffffff8111610292576100b39036906004016102d7565b9091803b15610292575f6040518092635c46a7ef60e11b8252336004830152896024830152886044830152608060648301528183816100f6608482018c8c61033b565b03925af1801561028757610250575b5061013694606494610156602098956101486101a0966068966040519b8c948e86019760408952606087019161033b565b848103601f190160408601529161033b565b03601f198101895288610305565b6040519687928984019a6bffffffffffffffffffffffff199060601b168b523360601b603485015260488401525180918484015e810189838201520301601f198101855284610305565b6040519485938492631789cd6360e01b84526004840152604060248401525180918160448501528484015e8181018301879052601f01601f19168101030181857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156102455761021a575080f35b602090813d831161023e575b6102308183610305565b8101031261023b5780f35b80fd5b503d610226565b6040513d84823e3d90fd5b606891985094606494610156602098956101486101a0966102745f6101369c610305565b5f9d965096505095985050945094610105565b6040513d5f823e3d90fd5b5f80fd5b34610292575f366003190112610292577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f840112156102925782359167ffffffffffffffff8311610292576020838186019501011161029257565b90601f8019910116810190811067ffffffffffffffff82111761032757604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f191601019056fea2646970667358221220f0111f08e5f82db381cd53a5f7058936487a125fd07191fc76f63f2f0fa101cd64736f6c634300081e0033","sourceMap":"590:703:53:-:0;;;;;;;;;;;;;-1:-1:-1;;590:703:53;;;;-1:-1:-1;;;;;590:703:53;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;590:703:53;;;;;;567:20:61;;590:703:53;;;;;;;;567:20:61;590:703:53;;;;;;;;;;;;-1:-1:-1;590:703:53;;;;;;-1:-1:-1;590:703:53;;;;;-1:-1:-1;590:703:53","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f905f3560e01c908162aace9a1461029657506328911e8314610033575f80fd5b346102925760a0366003190112610292576004356001600160a01b038116808203610292576024356001600160a01b0381169190829003610292576044359060643567ffffffffffffffff8111610292576100929036906004016102d7565b9160843567ffffffffffffffff8111610292576100b39036906004016102d7565b9091803b15610292575f6040518092635c46a7ef60e11b8252336004830152896024830152886044830152608060648301528183816100f6608482018c8c61033b565b03925af1801561028757610250575b5061013694606494610156602098956101486101a0966068966040519b8c948e86019760408952606087019161033b565b848103601f190160408601529161033b565b03601f198101895288610305565b6040519687928984019a6bffffffffffffffffffffffff199060601b168b523360601b603485015260488401525180918484015e810189838201520301601f198101855284610305565b6040519485938492631789cd6360e01b84526004840152604060248401525180918160448501528484015e8181018301879052601f01601f19168101030181857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156102455761021a575080f35b602090813d831161023e575b6102308183610305565b8101031261023b5780f35b80fd5b503d610226565b6040513d84823e3d90fd5b606891985094606494610156602098956101486101a0966102745f6101369c610305565b5f9d965096505095985050945094610105565b6040513d5f823e3d90fd5b5f80fd5b34610292575f366003190112610292577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f840112156102925782359167ffffffffffffffff8311610292576020838186019501011161029257565b90601f8019910116810190811067ffffffffffffffff82111761032757604052565b634e487b7160e01b5f52604160045260245ffd5b908060209392818452848401375f828201840152601f01601f191601019056fea2646970667358221220f0111f08e5f82db381cd53a5f7058936487a125fd07191fc76f63f2f0fa101cd64736f6c634300081e0033","sourceMap":"590:703:53:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;590:703:53;;;;;;-1:-1:-1;;;;;590:703:53;;;;;;;;;-1:-1:-1;;;;;590:703:53;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;1011:71;;;;;;;590:703;;;;;;;;1011:71;;1034:10;590:703;1011:71;;590:703;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1011:71;;;;;;;;;;590:703;;;;;;2561:40:22;590:703:53;;;;2618:198:22;590:703:53;;;;;2561:40:22;;;;;;590:703:53;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;590:703:53;;;;;;;:::i;:::-;2561:40:22;590:703:53;;2561:40:22;;;;;;:::i;:::-;590:703:53;;2618:198:22;;;;;;590:703:53;;;;;;;;;1034:10;590:703;;;;;;;;;;;;;;;;;;;;;;;;2618:198:22;;590:703:53;;2618:198:22;;;;;;:::i;:::-;590:703:53;;;;;;;;;;1240:44;;590:703;1240:44;;590:703;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;590:703:53;;;1240:44;;590:703;;681:9:61;-1:-1:-1;;;;;590:703:53;1240:44;;;;;;;;590:703;;;1240:44;590:703;1240:44;;;;;;;;;;;;:::i;:::-;;;590:703;;;;;;;;;1240:44;;;;;;590:703;;;;;;;;;1011:71;590:703;1011:71;;;;590:703;1011:71;2561:40:22;590:703:53;1011:71;;590:703;2618:198:22;1011:71:53;;590:703;;1011:71;;:::i;:::-;590:703;1011:71;;;;;;;;;;;;;;;;590:703;;;;;;;;;1011:71;590:703;;;;;;;;;-1:-1:-1;;590:703:53;;;;681:9:61;-1:-1:-1;;;;;590:703:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;590:703:53;;;;;-1:-1:-1;590:703:53;;;;;;;;;;;;;;-1:-1:-1;590:703:53;;;;;;;;-1:-1:-1;;590:703:53;;;;:::o","linkReferences":{},"immutableReferences":{"5443":[{"start":482,"length":32},{"start":680,"length":32}]}},"methodIdentifiers":{"depositERC721Token(address,address,uint256,bytes,bytes)":"28911e83","getInputBox()":"00aace9a"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.30+commit.73712a01\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IInputBox\",\"name\":\"inputBox\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"contract IERC721\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"appContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"baseLayerData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"execLayerData\",\"type\":\"bytes\"}],\"name\":\"depositERC721Token\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInputBox\",\"outputs\":[{\"internalType\":\"contract IInputBox\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"inputBox\":\"The input box used by the portal\"}},\"depositERC721Token(address,address,uint256,bytes,bytes)\":{\"params\":{\"appContract\":\"The application contract address\",\"baseLayerData\":\"Additional data to be interpreted by the base layer\",\"execLayerData\":\"Additional data to be interpreted by the execution layer\",\"token\":\"The ERC-721 token contract\",\"tokenId\":\"The identifier of the token being transferred\"}},\"getInputBox()\":{\"returns\":{\"_0\":\"The input box\"}}},\"title\":\"ERC-721 Portal\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructs the portal.\"},\"depositERC721Token(address,address,uint256,bytes,bytes)\":{\"notice\":\"Transfer an ERC-721 token to an application contract and add an input to the application's input box to signal such operation. The caller must change the approved address for the ERC-721 token to the portal address beforehand, by calling the `approve` function in the token contract.\"},\"getInputBox()\":{\"notice\":\"Get the input box used by this portal.\"}},\"notice\":\"This contract allows anyone to perform transfers of ERC-721 tokens to an application contract while informing the off-chain machine.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/portals/ERC721Portal.sol\":\"ERC721Portal\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-contracts-5.2.0/=dependencies/@openzeppelin-contracts-5.2.0/\",\":forge-std-1.9.6/=dependencies/forge-std-1.9.6/\"],\"viaIR\":true},\"sources\":{\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x68d6fdbeb467192c3627a46aa7bf5cbb73267363b740abc511f521a5a41a446e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ce608c19d5e917c60f9c8aa3e5f0eb05b326280ac0a235e8bb9a848a3a64a91\",\"dweb:/ipfs/QmdLPsWQJj7JvRae8MM13GEo4PBXaEFmD4b4heqcyMJNPG\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/common/InputEncoding.sol\":{\"keccak256\":\"0xd041b3bb0de75e8415fb1976b1269a396053e7f43975449d0b172bf096f032c1\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://d954aaea18fcfcd72ff7180551629e40a60a625445ecb0e01ffdf225c7048cc5\",\"dweb:/ipfs/QmeuK58dJc8tD2Tm5ygf9Chf5wVQ73wtuGibf8wtKQd8oX\"]},\"src/inputs/IInputBox.sol\":{\"keccak256\":\"0x960495e2fc963df610c0152c9a3d34038da51d1e8fcee8eb8ec85890b74b0940\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://c0a1a72fe4331032c23101a6026a61f5926744f7e2c189f557165ba6597b0de8\",\"dweb:/ipfs/QmU7ZuL7gcQYA7vDV37xArLBqzZ3c9k5pFDYPRd3rn9jgY\"]},\"src/portals/ERC721Portal.sol\":{\"keccak256\":\"0x65136cb73bc9cc1d292f4db4201517748420e8a92d60fe5f76aa423a025254ba\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://bf47552ac8a6542f61d343258612d3b7283b4b68fe74153c6ec8fa5765bd1ad0\",\"dweb:/ipfs/Qme1XfrvjRFF3sF6GnnoEWvqsJyJQLwyTnv47ahKeXoDnk\"]},\"src/portals/IERC721Portal.sol\":{\"keccak256\":\"0xd2762b3ef85b4c0be9cd8602cc07b00ab03db758591534d9e328d530a03fe2d0\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://604e5013420c9690d4a9392a4d702c727bf285c5bb1a50299c5af199abc65632\",\"dweb:/ipfs/QmU6YdbF4PPuzwXxTUvuvHfFVb7KBKN6T1oX5uhnGW35z2\"]},\"src/portals/IPortal.sol\":{\"keccak256\":\"0x390bc7ed84639e38e40bef8085486119d6c42057f91f3ab8286a9246198682e2\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://382a0d34ef36bde5b783849c21105b25a8d6909809c21cad267ed34e9d0f8afa\",\"dweb:/ipfs/QmfQMKGcz2jjzh2krTCSgcGBMQZE9uRVB5QUSsT3gF1oTs\"]},\"src/portals/Portal.sol\":{\"keccak256\":\"0x856903fa5afea5caaae8418f3c7f9314d88825ddec9177f6d4a9f0defe685c45\",\"license\":\"Apache-2.0 (see LICENSE)\",\"urls\":[\"bzz-raw://e99efb07ff4e54dd4b0aa0f1f0908e280e2a842aa75824e0328aa1e7e8f0d1c0\",\"dweb:/ipfs/QmUftUnphDm5DjCxBxsUYCJfEdUCLNYcStK2Q4j5kW58N1\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.30+commit.73712a01"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IInputBox","name":"inputBox","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"contract IERC721","name":"token","type":"address"},{"internalType":"address","name":"appContract","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"baseLayerData","type":"bytes"},{"internalType":"bytes","name":"execLayerData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"depositERC721Token"},{"inputs":[],"stateMutability":"view","type":"function","name":"getInputBox","outputs":[{"internalType":"contract IInputBox","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"inputBox":"The input box used by the portal"}},"depositERC721Token(address,address,uint256,bytes,bytes)":{"params":{"appContract":"The application contract address","baseLayerData":"Additional data to be interpreted by the base layer","execLayerData":"Additional data to be interpreted by the execution layer","token":"The ERC-721 token contract","tokenId":"The identifier of the token being transferred"}},"getInputBox()":{"returns":{"_0":"The input box"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructs the portal."},"depositERC721Token(address,address,uint256,bytes,bytes)":{"notice":"Transfer an ERC-721 token to an application contract and add an input to the application's input box to signal such operation. The caller must change the approved address for the ERC-721 token to the portal address beforehand, by calling the `approve` function in the token contract."},"getInputBox()":{"notice":"Get the input box used by this portal."}},"version":1}},"settings":{"remappings":["@openzeppelin-contracts-5.2.0/=dependencies/@openzeppelin-contracts-5.2.0/","forge-std-1.9.6/=dependencies/forge-std-1.9.6/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/portals/ERC721Portal.sol":"ERC721Portal"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"dependencies/@openzeppelin-contracts-5.2.0/token/ERC1155/IERC1155.sol":{"keccak256":"0x68d6fdbeb467192c3627a46aa7bf5cbb73267363b740abc511f521a5a41a446e","urls":["bzz-raw://7ce608c19d5e917c60f9c8aa3e5f0eb05b326280ac0a235e8bb9a848a3a64a91","dweb:/ipfs/QmdLPsWQJj7JvRae8MM13GEo4PBXaEFmD4b4heqcyMJNPG"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"dependencies/@openzeppelin-contracts-5.2.0/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"src/common/InputEncoding.sol":{"keccak256":"0xd041b3bb0de75e8415fb1976b1269a396053e7f43975449d0b172bf096f032c1","urls":["bzz-raw://d954aaea18fcfcd72ff7180551629e40a60a625445ecb0e01ffdf225c7048cc5","dweb:/ipfs/QmeuK58dJc8tD2Tm5ygf9Chf5wVQ73wtuGibf8wtKQd8oX"],"license":"Apache-2.0 (see LICENSE)"},"src/inputs/IInputBox.sol":{"keccak256":"0x960495e2fc963df610c0152c9a3d34038da51d1e8fcee8eb8ec85890b74b0940","urls":["bzz-raw://c0a1a72fe4331032c23101a6026a61f5926744f7e2c189f557165ba6597b0de8","dweb:/ipfs/QmU7ZuL7gcQYA7vDV37xArLBqzZ3c9k5pFDYPRd3rn9jgY"],"license":"Apache-2.0 (see LICENSE)"},"src/portals/ERC721Portal.sol":{"keccak256":"0x65136cb73bc9cc1d292f4db4201517748420e8a92d60fe5f76aa423a025254ba","urls":["bzz-raw://bf47552ac8a6542f61d343258612d3b7283b4b68fe74153c6ec8fa5765bd1ad0","dweb:/ipfs/Qme1XfrvjRFF3sF6GnnoEWvqsJyJQLwyTnv47ahKeXoDnk"],"license":"Apache-2.0 (see LICENSE)"},"src/portals/IERC721Portal.sol":{"keccak256":"0xd2762b3ef85b4c0be9cd8602cc07b00ab03db758591534d9e328d530a03fe2d0","urls":["bzz-raw://604e5013420c9690d4a9392a4d702c727bf285c5bb1a50299c5af199abc65632","dweb:/ipfs/QmU6YdbF4PPuzwXxTUvuvHfFVb7KBKN6T1oX5uhnGW35z2"],"license":"Apache-2.0 (see LICENSE)"},"src/portals/IPortal.sol":{"keccak256":"0x390bc7ed84639e38e40bef8085486119d6c42057f91f3ab8286a9246198682e2","urls":["bzz-raw://382a0d34ef36bde5b783849c21105b25a8d6909809c21cad267ed34e9d0f8afa","dweb:/ipfs/QmfQMKGcz2jjzh2krTCSgcGBMQZE9uRVB5QUSsT3gF1oTs"],"license":"Apache-2.0 (see LICENSE)"},"src/portals/Portal.sol":{"keccak256":"0x856903fa5afea5caaae8418f3c7f9314d88825ddec9177f6d4a9f0defe685c45","urls":["bzz-raw://e99efb07ff4e54dd4b0aa0f1f0908e280e2a842aa75824e0328aa1e7e8f0d1c0","dweb:/ipfs/QmUftUnphDm5DjCxBxsUYCJfEdUCLNYcStK2Q4j5kW58N1"],"license":"Apache-2.0 (see LICENSE)"}},"version":1},"id":53}