+{"abi":[{"type":"function","name":"recoverSapientSignature","inputs":[{"name":"","type":"tuple","internalType":"struct Payload.Decoded","components":[{"name":"kind","type":"uint8","internalType":"uint8"},{"name":"noChainId","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct Payload.Call[]","components":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"},{"name":"gasLimit","type":"uint256","internalType":"uint256"},{"name":"delegateCall","type":"bool","internalType":"bool"},{"name":"onlyFallback","type":"bool","internalType":"bool"},{"name":"behaviorOnError","type":"uint256","internalType":"uint256"}]},{"name":"space","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"message","type":"bytes","internalType":"bytes"},{"name":"imageHash","type":"bytes32","internalType":"bytes32"},{"name":"digest","type":"bytes32","internalType":"bytes32"},{"name":"parentWallets","type":"address[]","internalType":"address[]"}]},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"recoverSapientSignatureCompact","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"signature","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"error","name":"InvalidSignatureLength","inputs":[]}],"bytecode":{"object":"0x608080604052346015576101f9908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c806313792a4a146100995763898bd9211461003257600080fd5b346100945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100945760243567ffffffffffffffff81116100945761008c6100866020923690600401610128565b90610156565b604051908152f35b600080fd5b346100945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100945760043567ffffffffffffffff8111610094577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc61012091360301126100945760243567ffffffffffffffff81116100945761008c61008660209236906004015b9181601f840112156100945782359167ffffffffffffffff8311610094576020838186019501011161009457565b602082036101995735906020811061016c575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b7f4be6321b0000000000000000000000000000000000000000000000000000000060005260046000fdfea2646970667358221220eee95114dd28e7a8bc9444b8b58c282669afd11f4b40776539458a6435bcbd4b64736f6c634300081c0033","sourceMap":"400:612:3:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001257600080fd5b60003560e01c806313792a4a146100995763898bd9211461003257600080fd5b346100945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100945760243567ffffffffffffffff81116100945761008c6100866020923690600401610128565b90610156565b604051908152f35b600080fd5b346100945760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100945760043567ffffffffffffffff8111610094577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc61012091360301126100945760243567ffffffffffffffff81116100945761008c61008660209236906004015b9181601f840112156100945782359167ffffffffffffffff8311610094576020838186019501011161009457565b602082036101995735906020811061016c575090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060200360031b1b1690565b7f4be6321b0000000000000000000000000000000000000000000000000000000060005260046000fdfea2646970667358221220eee95114dd28e7a8bc9444b8b58c282669afd11f4b40776539458a6435bcbd4b64736f6c634300081c0033","sourceMap":"400:612:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;517:232::-;664:2;644:22;;640:74;;400:612;;664:2;400:612;;;;719:25;517:232;:::o;400:612::-;;;664:2;400:612;;;;;517:232;:::o;640:74::-;683:24;;;;;","linkReferences":{}},"methodIdentifiers":{"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)":"13792a4a","recoverSapientSignatureCompact(bytes32,bytes)":"898bd921"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint8\",\"name\":\"kind\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"noChainId\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"gasLimit\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"delegateCall\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"onlyFallback\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"behaviorOnError\",\"type\":\"uint256\"}],\"internalType\":\"struct Payload.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"space\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"message\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"digest\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"parentWallets\",\"type\":\"address[]\"}],\"internalType\":\"struct Payload.Decoded\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"recoverSapientSignature\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"recoverSapientSignatureCompact\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Michael Standen\",\"kind\":\"dev\",\"methods\":{\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"params\":{\"payload\":\"The payload to recover the signature from\",\"signature\":\"The signature to recover the image hash from\"},\"returns\":{\"_0\":\"The recovered image hash\"}},\"recoverSapientSignatureCompact(bytes32,bytes)\":{\"params\":{\"digest\":\"The digest of the payload\",\"signature\":\"The signature to recover the image hash from\"},\"returns\":{\"_0\":\"The recovered image hash\"}}},\"title\":\"MockSapient\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)\":{\"notice\":\"Recovers the image hash of a given signature\"},\"recoverSapientSignatureCompact(bytes32,bytes)\":{\"notice\":\"Recovers the image hash of a given signature, using a hashed payload\"}},\"notice\":\"A mock sapient signer that returns the signature as the image hash\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/mocks/MockSapient.sol\":\"MockSapient\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":4294967295},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":account-abstraction/=lib/account-abstraction/contracts/\",\":erc2470-libs/=lib/erc2470-libs/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"],\"viaIR\":true},\"sources\":{\"src/modules/Payload.sol\":{\"keccak256\":\"0xc29dbd28bc2aa9b2d1cbb4e2c15dddb1e1ddc9e1b7934a060053a0896a80f436\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://09d0dcf9c7d51de70daf2fe662d19dbe7efcfe25932881d5f572edca00c23662\",\"dweb:/ipfs/QmZpCcESwCtvLqZPQY8sZuRt7CzcaLqQACUmmD9pDu3vGJ\"]},\"src/modules/interfaces/ISapient.sol\":{\"keccak256\":\"0x3668daa83a61af054146345e53e571daf403f9bca9c3cc702f6f1cb655770359\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://13aa453c7021c83d305ac7d714a93f78a03a8cc0032cb06cf54d5ebf09100489\",\"dweb:/ipfs/QmSxar3KETtMzHXQuqQA9b8iK8cG3Z62EpWSeu8hhKW2xn\"]},\"src/utils/LibBytes.sol\":{\"keccak256\":\"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c\",\"dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3\"]},\"test/mocks/MockSapient.sol\":{\"keccak256\":\"0xdb2ce6c4c5c0c5b0dcebc5d5fba8ad51bd05af4bd0f8b41687e476e347a4324b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://8057fb7ca4c0e1292a2447b21963c3fd89657c14d598145fa9e2269e973ff5aa\",\"dweb:/ipfs/QmWHddXYdMrRNbPJ82ahgPpjyyKsjfGPT6hbcxJrw253py\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"InvalidSignatureLength"},{"inputs":[{"internalType":"struct Payload.Decoded","name":"","type":"tuple","components":[{"internalType":"uint8","name":"kind","type":"uint8"},{"internalType":"bool","name":"noChainId","type":"bool"},{"internalType":"struct Payload.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"bool","name":"delegateCall","type":"bool"},{"internalType":"bool","name":"onlyFallback","type":"bool"},{"internalType":"uint256","name":"behaviorOnError","type":"uint256"}]},{"internalType":"uint256","name":"space","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"bytes32","name":"imageHash","type":"bytes32"},{"internalType":"bytes32","name":"digest","type":"bytes32"},{"internalType":"address[]","name":"parentWallets","type":"address[]"}]},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"recoverSapientSignature","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"stateMutability":"pure","type":"function","name":"recoverSapientSignatureCompact","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]}],"devdoc":{"kind":"dev","methods":{"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)":{"params":{"payload":"The payload to recover the signature from","signature":"The signature to recover the image hash from"},"returns":{"_0":"The recovered image hash"}},"recoverSapientSignatureCompact(bytes32,bytes)":{"params":{"digest":"The digest of the payload","signature":"The signature to recover the image hash from"},"returns":{"_0":"The recovered image hash"}}},"version":1},"userdoc":{"kind":"user","methods":{"recoverSapientSignature((uint8,bool,(address,uint256,bytes,uint256,bool,bool,uint256)[],uint256,uint256,bytes,bytes32,bytes32,address[]),bytes)":{"notice":"Recovers the image hash of a given signature"},"recoverSapientSignatureCompact(bytes32,bytes)":{"notice":"Recovers the image hash of a given signature, using a hashed payload"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","account-abstraction/=lib/account-abstraction/contracts/","erc2470-libs/=lib/erc2470-libs/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":4294967295},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/mocks/MockSapient.sol":"MockSapient"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"src/modules/Payload.sol":{"keccak256":"0xc29dbd28bc2aa9b2d1cbb4e2c15dddb1e1ddc9e1b7934a060053a0896a80f436","urls":["bzz-raw://09d0dcf9c7d51de70daf2fe662d19dbe7efcfe25932881d5f572edca00c23662","dweb:/ipfs/QmZpCcESwCtvLqZPQY8sZuRt7CzcaLqQACUmmD9pDu3vGJ"],"license":"Apache-2.0"},"src/modules/interfaces/ISapient.sol":{"keccak256":"0x3668daa83a61af054146345e53e571daf403f9bca9c3cc702f6f1cb655770359","urls":["bzz-raw://13aa453c7021c83d305ac7d714a93f78a03a8cc0032cb06cf54d5ebf09100489","dweb:/ipfs/QmSxar3KETtMzHXQuqQA9b8iK8cG3Z62EpWSeu8hhKW2xn"],"license":"Apache-2.0"},"src/utils/LibBytes.sol":{"keccak256":"0x4fe0b4786b2157e12384b90ae9daa1009b74b2547a8a24b800a8b998278c874b","urls":["bzz-raw://065129e32d1a318e89fb7587e136c33177a7848393f9055c0ac601b84741cd8c","dweb:/ipfs/QmVWucfHSHRJriRFNoJqoeDcVB4fDfqbccM8KPBmwcxVu3"],"license":"Apache-2.0"},"test/mocks/MockSapient.sol":{"keccak256":"0xdb2ce6c4c5c0c5b0dcebc5d5fba8ad51bd05af4bd0f8b41687e476e347a4324b","urls":["bzz-raw://8057fb7ca4c0e1292a2447b21963c3fd89657c14d598145fa9e2269e973ff5aa","dweb:/ipfs/QmWHddXYdMrRNbPJ82ahgPpjyyKsjfGPT6hbcxJrw253py"],"license":"Apache-2.0"}},"version":1},"id":3}
0 commit comments