-
Notifications
You must be signed in to change notification settings - Fork 396
Expand file tree
/
Copy pathAlignedProofAggregationService.json
More file actions
1 lines (1 loc) · 85.1 KB
/
AlignedProofAggregationService.json
File metadata and controls
1 lines (1 loc) · 85.1 KB
1
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"VERIFIER_MOCK_ADDRESS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addProgramId","inputs":[{"name":"programId","type":"bytes32","internalType":"bytes32"},{"name":"verifierType","type":"uint8","internalType":"enum IAlignedProofAggregationService.VerifierType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"aggregatedProofs","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"alignedAggregatorAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deleteProgramId","inputs":[{"name":"programId","type":"bytes32","internalType":"bytes32"},{"name":"verifierType","type":"uint8","internalType":"enum IAlignedProofAggregationService.VerifierType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"newOwner","type":"address","internalType":"address"},{"name":"_alignedAggregatorAddress","type":"address","internalType":"address"},{"name":"_sp1VerifierAddress","type":"address","internalType":"address"},{"name":"_risc0VerifierAddress","type":"address","internalType":"address"},{"name":"_programIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"_verifierTypes","type":"uint8[]","internalType":"uint8[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"programIds","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"risc0VerifierAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setRisc0VerifierAddress","inputs":[{"name":"_risc0VerifierAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setSP1VerifierAddress","inputs":[{"name":"_sp1VerifierAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"sp1VerifierAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"verifyProofInclusion","inputs":[{"name":"merklePath","type":"bytes32[]","internalType":"bytes32[]"},{"name":"provingSystemId","type":"uint16","internalType":"uint16"},{"name":"programId","type":"bytes32","internalType":"bytes32"},{"name":"publicInputs","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"verifyRisc0","inputs":[{"name":"blobVersionedHash","type":"bytes32","internalType":"bytes32"},{"name":"risc0ReceiptSeal","type":"bytes","internalType":"bytes"},{"name":"risc0JournalBytes","type":"bytes","internalType":"bytes"},{"name":"programId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifySP1","inputs":[{"name":"blobVersionedHash","type":"bytes32","internalType":"bytes32"},{"name":"sp1PublicValues","type":"bytes","internalType":"bytes"},{"name":"sp1ProofBytes","type":"bytes","internalType":"bytes"},{"name":"programId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AggregatedProofVerified","inputs":[{"name":"merkleRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"blobVersionedHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramIdAdded","inputs":[{"name":"programId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"verifierType","type":"uint8","indexed":false,"internalType":"enum IAlignedProofAggregationService.VerifierType"}],"anonymous":false},{"type":"event","name":"ProgramIdDeleted","inputs":[{"name":"programId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"verifierType","type":"uint8","indexed":false,"internalType":"enum IAlignedProofAggregationService.VerifierType"}],"anonymous":false},{"type":"event","name":"Risc0VerifierAddressUpdated","inputs":[{"name":"newAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SP1VerifierAddressUpdated","inputs":[{"name":"newAddress","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"InvalidProgramId","inputs":[{"name":"programId","type":"bytes32","internalType":"bytes32"},{"name":"expected","type":"uint8","internalType":"enum IAlignedProofAggregationService.VerifierType"},{"name":"actual","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"InvalidVerifierType","inputs":[{"name":"actual","type":"uint8","internalType":"uint8"}]},{"type":"error","name":"OnlyAlignedAggregator","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"VerifierTypeMismatch","inputs":[{"name":"expected","type":"uint8","internalType":"uint8"},{"name":"received","type":"uint8","internalType":"uint8"}]}],"bytecode":{"object":"0x60a080604052346100da57306080525f549060ff8260081c16610088575060ff8082161061004e575b6040516118d190816100df8239608051818181610a1001528181610b360152610f510152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f610028565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c80630769eb53146112b357806327d3bc9a14611284578063294e3ccb1461125b5780633659cfe614610f32578063475f82eb14610e525780634c46688c14610e295780634f1ef28614610ac057806352d1902d146109fd578063616af4f7146109d4578063715018a61461097757806383501b211461095b5780638da5cb5b146109325780639645b1fb1461062057806396f7966f1461049f5780639eade0f114610437578063a52f681b146103cf578063ccf923b114610299578063eede89881461026c578063f21d3a28146101895763f2fde38b146100f6575f80fd5b346101865760203660031901126101865761010f6114bf565b610117611689565b6001600160a01b038116156101325761012f906116e1565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b80fd5b503461018657610198366114d5565b6101a0611689565b6003811015806102585760018214158061024b575b61021e5761020a5760207fa5ab45b871eb593400e50e7b53c9d72f06deb3dedb5bc4a34e276a8926ec4b6a9183855260cd82526040852060ff821660ff19825416179055610206604051809261155e565ba280f35b634e487b7160e01b83526021600452602483fd5b60249392506102395763b84fbd7760e01b825260ff16600452fd5b50634e487b7160e01b81526021600452fd5b50508260028214156101b5565b634e487b7160e01b84526021600452602484fd5b50346101865760203660031901126101865760ff6040602092600435815260cd8452205416604051908152f35b50346101865760803660031901126101865760043567ffffffffffffffff81116103cb57366023820112156103cb5780600401359067ffffffffffffffff82116103c7573660248360051b830101116103c75760243561ffff811681036103c35760643567ffffffffffffffff81116103bf5761035c61031f6042923690600401611436565b929083604051948592602084019761ffff60f01b9060f01b168852604435602285015284840137810188838201520301601f1981018352826114f4565b5190209083915b838310156103a45760248360051b83010135908181105f146103935785526020526001604085205b920191610363565b90855260205260016040852061038b565b60ff604086602093815260c984522054166040519015158152f35b8480fd5b8380fd5b8280fd5b5080fd5b5034610186576020366003190112610186576103e96114bf565b6103f1611689565b60cc80546001600160a01b0319166001600160a01b039290921691821790557f80ad03c31df486a2ab8f2fe1f9e0597e290255e749369a3e0cf3b1cf34b180898280a280f35b5034610186576020366003190112610186576104516114bf565b610459611689565b60ca80546001600160a01b0319166001600160a01b039290921691821790557fc34d8b9ef5ec2845c44a69730b4523b5d66bc715b6d4820707ff1f40ee5f1a9e8280a280f35b5034610186576104ae36611464565b60cb549096959394919291906001600160a01b0316330361060d5760208186810103126106095780359487875260cd602052600160ff604089205416036105dd5760ca5487949392916001600160a01b03909116908960fe198301610554575b86897ffe3e9e971000ab9c80c7e06aba2933aae5419d0e44693e3046913e9e58053f6260208b83855260c9825260408520600160ff19825416179055604051908152a280f35b823b156105d9576105a0879561058e976040519889978896879663020a49e360e51b8852600488015260606024880152606487019161157f565b8481036003190160448601529161157f565b03915afa80156105ce576105b9575b808080808061050e565b816105c3916114f4565b6103c75782846105af565b6040513d84823e3d90fd5b8680fd5b87875260cd602052604087205463045e370b60e11b88526004899052600160245260ff16604452606487fd5b5f80fd5b63921f325560e01b865233600452602486fd5b50346101865760c03660031901126101865761063a6114bf565b6024356001600160a01b038116908190036103c7576044356001600160a01b03811691908290036103c3576064356001600160a01b038116908190036103bf576084359267ffffffffffffffff841161092e573660238501121561092e578360040135936106a785611546565b946106b560405196876114f4565b8086526024602087019160051b8301019136831161092a57602401905b82821061091a5750505060a4359267ffffffffffffffff84116105d957366023850112156105d957836004013561070881611546565b9461071660405196876114f4565b8186526024602087019260051b8201019036821161091657602401915b8183106108f857505050865460ff8160081c1615968780986108eb575b80156108d4575b156108785760ff19821660011789556107a89188610867575b5061078a60ff8a5460081c1661078581611729565b611729565b610793336116e1565b6107a360ff8a5460081c16611729565b6116e1565b6001600160601b0360a01b60cb54161760cb556001600160601b0360a01b60ca54161760ca556001600160601b0360a01b60cc54161760cc55835b8251811015610826578060ff6107fb60019385611661565b51166108078286611661565b51875260cd60205260ff60408820911660ff19825416179055016107e3565b5050506108305780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b61ffff19166101011789555f610770565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156107575750600160ff831614610757565b50600160ff831610610750565b823560ff8116810361091257815260209283019201610733565b8a80fd5b8980fd5b81358152602091820191016106d2565b8880fd5b8580fd5b50346101865780600319360112610186576033546040516001600160a01b039091168152602090f35b5034610186578060031936011261018657602060405160ff8152f35b5034610186578060031936011261018657610990611689565b603380546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461018657806003193601126101865760cc546040516001600160a01b039091168152602090f35b50346101865780600319360112610186577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a555760206040515f51602061187c5f395f51905f528152f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b50604036600319011261018657610ad56114bf565b60243567ffffffffffffffff81116103c757366023820112156103c75780600401359083610b028361152a565b91610b1060405193846114f4565b838352602083019336602482840101116103c75780602460209301863783010152610b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6a3082141561159f565b5f51602061187c5f395f51905f52546001600160a01b031614611600565b610b90611689565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610bc557505061012f90611789565b6040516352d1902d60e01b81526001600160a01b03841690602081600481855afa869181610df5575b50610c4f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b5f51602061187c5f395f51905f5203610d9e57610c6b84611789565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2815115801590610d96575b610caa575b5050505080f35b833b15610d455750610d34928492839251915af43d15610d3e573d610cce8161152a565b90610cdc60405192836114f4565b81523d84602083013e5b60405191610cf56060846114f4565b602783527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6020840152660819985a5b195960ca1b6040840152611820565b505f808080610ca3565b6060610ce6565b62461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b506001610c9e565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091506020813d602011610e21575b81610e11602093836114f4565b810103126105d95751905f610bee565b3d9150610e04565b503461018657806003193601126101865760cb546040516001600160a01b039091168152602090f35b503461018657610e61366114d5565b610e69611689565b6003811015908161025857600181141580610f24575b610f095782845260cd60205260ff604085205416916102585760ff16808203610ef1575081835260cd60205260408320805460ff19169055600381101561020a5760207f5154c1588a4746e27c5d48d1fab1c807605ba01f44e4e96faa3d3720c4e8d7d791610206604051809261155e565b6379c068e560e01b8452600491909152602452604482fd5b83906024926102395763b84fbd7760e01b825260ff16600452fd5b508391506002811415610e7f565b503461018657602036600319011261018657610f4c6114bf565b610f857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6a3082141561159f565b610f8d611689565b6020604051610f9c82826114f4565b83815281810190601f1983013683377f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610fe15750505061012f90611789565b6040516352d1902d60e01b8152939492936001600160a01b038616908581600481855afa85918161122c575b5061106e5760405162461bcd60e51b815260048101879052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9394937fc9f76b5ec45e5cdef99837d7b6d2467235c1df8933c8ca56df5c35afa2c7d444016111d5576110a086611789565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a28151158015906111ce575b6110e1575b50505050905080f35b853b1561117d5750928094819261116a9551915af43d15611175573d906111078261152a565b9161111560405193846114f4565b82523d858484013e5b7f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6040519361114e6060866114f4565b60278552840152660819985a5b195960ca1b6040840152611820565b50805f8080806110d8565b60609061111e565b62461bcd60e51b815260048101849052602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b50846110d3565b60405162461bcd60e51b815260048101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508681813d8311611254575b61124481836114f4565b8101031261092e5751905f61100d565b503d61123a565b503461018657806003193601126101865760ca546040516001600160a01b039091168152602090f35b50346101865760203660031901126101865760ff6040602092600435815260c984522054166040519015158152f35b5034610609576112c236611464565b60cb54919594939290916001600160a01b0316330361142357602081878101031261060957803595825f5260cd602052600260ff60405f205416036113f65760cc546001600160a01b03169160fe19830161135e575b88887ffe3e9e971000ab9c80c7e06aba2933aae5419d0e44693e3046913e9e58053f6260208a83855260c9825260408520600160ff19825416179055604051908152a280f35b815f9160209360405192839283378101838152039060025afa156113eb575f5193813b15610609575f936113b1936040519687958694859463ab750e7560e01b865260606004870152606486019161157f565b916024840152604483015203915afa80156113eb576113d5575b8080808080611318565b6113e29193505f906114f4565b5f9160206113cb565b6040513d5f823e3d90fd5b5f83815260cd602052604081205463045e370b60e11b82526004859052600260245260ff16604452606490fd5b63921f325560e01b5f523360045260245ffd5b9181601f840112156106095782359167ffffffffffffffff8311610609576020838186019501011161060957565b906080600319830112610609576004359160243567ffffffffffffffff8111610609578161149491600401611436565b929092916044359067ffffffffffffffff8211610609576114b791600401611436565b909160643590565b600435906001600160a01b038216820361060957565b6040906003190112610609576004359060243560038110156106095790565b90601f8019910116810190811067ffffffffffffffff82111761151657604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161151657601f01601f191660200190565b67ffffffffffffffff81116115165760051b60200190565b90600382101561156b5752565b634e487b7160e01b5f52602160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b156115a657565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1561160757565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b80518210156116755760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b6033546001600160a01b0316330361169d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b1561173057565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b803b156117c55760018060a01b03166001600160601b0360a01b5f51602061187c5f395f51905f525416175f51602061187c5f395f51905f5255565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b9091901561182c575090565b81511561183c5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208fcd7c0df6eff7bb2cf7dce3b9925ba77927e2b83315eeb1fb4a8789629c3d4064736f6c634300081b0033","sourceMap":"687:8961:41:-:0;;;;;;;1332:4:5;1324:13;;5456::4;687:8961:41;;;;;;;;;;;;;;5527:30:4;5523:138;;-1:-1:-1;687:8961:41;;;;;;;;1324:13:5;687:8961:41;;;;;;;;;;;;;;;;5523:138:4;687:8961:41;;;;;;5456:13:4;687:8961:41;5622:28:4;687:8961:41;;;;;;5622:28:4;5523:138;;;687:8961:41;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c80630769eb53146112b357806327d3bc9a14611284578063294e3ccb1461125b5780633659cfe614610f32578063475f82eb14610e525780634c46688c14610e295780634f1ef28614610ac057806352d1902d146109fd578063616af4f7146109d4578063715018a61461097757806383501b211461095b5780638da5cb5b146109325780639645b1fb1461062057806396f7966f1461049f5780639eade0f114610437578063a52f681b146103cf578063ccf923b114610299578063eede89881461026c578063f21d3a28146101895763f2fde38b146100f6575f80fd5b346101865760203660031901126101865761010f6114bf565b610117611689565b6001600160a01b038116156101325761012f906116e1565b80f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b80fd5b503461018657610198366114d5565b6101a0611689565b6003811015806102585760018214158061024b575b61021e5761020a5760207fa5ab45b871eb593400e50e7b53c9d72f06deb3dedb5bc4a34e276a8926ec4b6a9183855260cd82526040852060ff821660ff19825416179055610206604051809261155e565ba280f35b634e487b7160e01b83526021600452602483fd5b60249392506102395763b84fbd7760e01b825260ff16600452fd5b50634e487b7160e01b81526021600452fd5b50508260028214156101b5565b634e487b7160e01b84526021600452602484fd5b50346101865760203660031901126101865760ff6040602092600435815260cd8452205416604051908152f35b50346101865760803660031901126101865760043567ffffffffffffffff81116103cb57366023820112156103cb5780600401359067ffffffffffffffff82116103c7573660248360051b830101116103c75760243561ffff811681036103c35760643567ffffffffffffffff81116103bf5761035c61031f6042923690600401611436565b929083604051948592602084019761ffff60f01b9060f01b168852604435602285015284840137810188838201520301601f1981018352826114f4565b5190209083915b838310156103a45760248360051b83010135908181105f146103935785526020526001604085205b920191610363565b90855260205260016040852061038b565b60ff604086602093815260c984522054166040519015158152f35b8480fd5b8380fd5b8280fd5b5080fd5b5034610186576020366003190112610186576103e96114bf565b6103f1611689565b60cc80546001600160a01b0319166001600160a01b039290921691821790557f80ad03c31df486a2ab8f2fe1f9e0597e290255e749369a3e0cf3b1cf34b180898280a280f35b5034610186576020366003190112610186576104516114bf565b610459611689565b60ca80546001600160a01b0319166001600160a01b039290921691821790557fc34d8b9ef5ec2845c44a69730b4523b5d66bc715b6d4820707ff1f40ee5f1a9e8280a280f35b5034610186576104ae36611464565b60cb549096959394919291906001600160a01b0316330361060d5760208186810103126106095780359487875260cd602052600160ff604089205416036105dd5760ca5487949392916001600160a01b03909116908960fe198301610554575b86897ffe3e9e971000ab9c80c7e06aba2933aae5419d0e44693e3046913e9e58053f6260208b83855260c9825260408520600160ff19825416179055604051908152a280f35b823b156105d9576105a0879561058e976040519889978896879663020a49e360e51b8852600488015260606024880152606487019161157f565b8481036003190160448601529161157f565b03915afa80156105ce576105b9575b808080808061050e565b816105c3916114f4565b6103c75782846105af565b6040513d84823e3d90fd5b8680fd5b87875260cd602052604087205463045e370b60e11b88526004899052600160245260ff16604452606487fd5b5f80fd5b63921f325560e01b865233600452602486fd5b50346101865760c03660031901126101865761063a6114bf565b6024356001600160a01b038116908190036103c7576044356001600160a01b03811691908290036103c3576064356001600160a01b038116908190036103bf576084359267ffffffffffffffff841161092e573660238501121561092e578360040135936106a785611546565b946106b560405196876114f4565b8086526024602087019160051b8301019136831161092a57602401905b82821061091a5750505060a4359267ffffffffffffffff84116105d957366023850112156105d957836004013561070881611546565b9461071660405196876114f4565b8186526024602087019260051b8201019036821161091657602401915b8183106108f857505050865460ff8160081c1615968780986108eb575b80156108d4575b156108785760ff19821660011789556107a89188610867575b5061078a60ff8a5460081c1661078581611729565b611729565b610793336116e1565b6107a360ff8a5460081c16611729565b6116e1565b6001600160601b0360a01b60cb54161760cb556001600160601b0360a01b60ca54161760ca556001600160601b0360a01b60cc54161760cc55835b8251811015610826578060ff6107fb60019385611661565b51166108078286611661565b51875260cd60205260ff60408820911660ff19825416179055016107e3565b5050506108305780f35b61ff001981541681557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160018152a180f35b61ffff19166101011789555f610770565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156107575750600160ff831614610757565b50600160ff831610610750565b823560ff8116810361091257815260209283019201610733565b8a80fd5b8980fd5b81358152602091820191016106d2565b8880fd5b8580fd5b50346101865780600319360112610186576033546040516001600160a01b039091168152602090f35b5034610186578060031936011261018657602060405160ff8152f35b5034610186578060031936011261018657610990611689565b603380546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461018657806003193601126101865760cc546040516001600160a01b039091168152602090f35b50346101865780600319360112610186577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a555760206040515f51602061187c5f395f51905f528152f35b60405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608490fd5b50604036600319011261018657610ad56114bf565b60243567ffffffffffffffff81116103c757366023820112156103c75780600401359083610b028361152a565b91610b1060405193846114f4565b838352602083019336602482840101116103c75780602460209301863783010152610b887f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6a3082141561159f565b5f51602061187c5f395f51905f52546001600160a01b031614611600565b610b90611689565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610bc557505061012f90611789565b6040516352d1902d60e01b81526001600160a01b03841690602081600481855afa869181610df5575b50610c4f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b5f51602061187c5f395f51905f5203610d9e57610c6b84611789565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2815115801590610d96575b610caa575b5050505080f35b833b15610d455750610d34928492839251915af43d15610d3e573d610cce8161152a565b90610cdc60405192836114f4565b81523d84602083013e5b60405191610cf56060846114f4565b602783527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6020840152660819985a5b195960ca1b6040840152611820565b505f808080610ca3565b6060610ce6565b62461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b506001610c9e565b60405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091506020813d602011610e21575b81610e11602093836114f4565b810103126105d95751905f610bee565b3d9150610e04565b503461018657806003193601126101865760cb546040516001600160a01b039091168152602090f35b503461018657610e61366114d5565b610e69611689565b6003811015908161025857600181141580610f24575b610f095782845260cd60205260ff604085205416916102585760ff16808203610ef1575081835260cd60205260408320805460ff19169055600381101561020a5760207f5154c1588a4746e27c5d48d1fab1c807605ba01f44e4e96faa3d3720c4e8d7d791610206604051809261155e565b6379c068e560e01b8452600491909152602452604482fd5b83906024926102395763b84fbd7760e01b825260ff16600452fd5b508391506002811415610e7f565b503461018657602036600319011261018657610f4c6114bf565b610f857f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6a3082141561159f565b610f8d611689565b6020604051610f9c82826114f4565b83815281810190601f1983013683377f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610fe15750505061012f90611789565b6040516352d1902d60e01b8152939492936001600160a01b038616908581600481855afa85918161122c575b5061106e5760405162461bcd60e51b815260048101879052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b9394937fc9f76b5ec45e5cdef99837d7b6d2467235c1df8933c8ca56df5c35afa2c7d444016111d5576110a086611789565b604051907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a28151158015906111ce575b6110e1575b50505050905080f35b853b1561117d5750928094819261116a9551915af43d15611175573d906111078261152a565b9161111560405193846114f4565b82523d858484013e5b7f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c6040519361114e6060866114f4565b60278552840152660819985a5b195960ca1b6040840152611820565b50805f8080806110d8565b60609061111e565b62461bcd60e51b815260048101849052602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b50846110d3565b60405162461bcd60e51b815260048101859052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508681813d8311611254575b61124481836114f4565b8101031261092e5751905f61100d565b503d61123a565b503461018657806003193601126101865760ca546040516001600160a01b039091168152602090f35b50346101865760203660031901126101865760ff6040602092600435815260c984522054166040519015158152f35b5034610609576112c236611464565b60cb54919594939290916001600160a01b0316330361142357602081878101031261060957803595825f5260cd602052600260ff60405f205416036113f65760cc546001600160a01b03169160fe19830161135e575b88887ffe3e9e971000ab9c80c7e06aba2933aae5419d0e44693e3046913e9e58053f6260208a83855260c9825260408520600160ff19825416179055604051908152a280f35b815f9160209360405192839283378101838152039060025afa156113eb575f5193813b15610609575f936113b1936040519687958694859463ab750e7560e01b865260606004870152606486019161157f565b916024840152604483015203915afa80156113eb576113d5575b8080808080611318565b6113e29193505f906114f4565b5f9160206113cb565b6040513d5f823e3d90fd5b5f83815260cd602052604081205463045e370b60e11b82526004859052600260245260ff16604452606490fd5b63921f325560e01b5f523360045260245ffd5b9181601f840112156106095782359167ffffffffffffffff8311610609576020838186019501011161060957565b906080600319830112610609576004359160243567ffffffffffffffff8111610609578161149491600401611436565b929092916044359067ffffffffffffffff8211610609576114b791600401611436565b909160643590565b600435906001600160a01b038216820361060957565b6040906003190112610609576004359060243560038110156106095790565b90601f8019910116810190811067ffffffffffffffff82111761151657604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161151657601f01601f191660200190565b67ffffffffffffffff81116115165760051b60200190565b90600382101561156b5752565b634e487b7160e01b5f52602160045260245ffd5b908060209392818452848401375f828201840152601f01601f1916010190565b156115a657565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b1561160757565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b80518210156116755760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b6033546001600160a01b0316330361169d57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b603380546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b1561173057565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b803b156117c55760018060a01b03166001600160601b0360a01b5f51602061187c5f395f51905f525416175f51602061187c5f395f51905f5255565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b9091901561182c575090565b81511561183c5750805190602001fd5b604460209160405192839162461bcd60e51b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208fcd7c0df6eff7bb2cf7dce3b9925ba77927e2b83315eeb1fb4a8789629c3d4064736f6c634300081b0033","sourceMap":"687:8961:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;1303:62:0;;:::i;:::-;-1:-1:-1;;;;;687:8961:41;;2409:22:0;687:8961:41;;2503:8:0;;;:::i;:::-;687:8961:41;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;;:::i;:::-;1303:62:0;;:::i;:::-;687:8961:41;;;;;;;7192:48;7176:64;;;:146;;;687:8961;7172:263;;687:8961;;;8671:39;687:8961;;;;8613:10;687:8961;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8671:39;687:8961;;;-1:-1:-1;;;687:8961:41;;;;;;;;7172:263;687:8961;;;;;;-1:-1:-1;;;7348:72:41;;687:8961;;;;7348:72;687:8961;-1:-1:-1;;;;687:8961:41;;;;;;7176:146;687:8961;;;7272:50;7256:66;;;7176:146;;687:8961;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;;;;;;;2227:43;687:8961;;;;;;;;;;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6150:58;687:8961;;;;;;;;:::i;:::-;;;;;;6150:58;;;687:8961;6150:58;;687:8961;;;;;;;;;;;;;;;;;;;;;;;;;;;6150:58;;687:8961;;6150:58;;;;;;:::i;:::-;687:8961;6140:69;;2480:13:35;;2475:116;2513:3;2495:16;;;;;;687:8961:41;;;;;;;;9318:51:35;:5;;;:51;:5;;;9632:119;;687:8961:41;9632:119:35;687:8961:41;;9632:119:35;;9318:51;2513:3;687:8961:41;2480:13:35;;;9318:51;9632:119;;;687:8961:41;9632:119:35;687:8961:41;;9632:119:35;;9318:51;;2495:16;687:8961:41;;2495:16:35;687:8961:41;2495:16:35;687:8961:41;;6318:16;687:8961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;1303:62:0;;:::i;:::-;7713:44:41;687:8961;;-1:-1:-1;;;;;;687:8961:41;-1:-1:-1;;;;;687:8961:41;;;;;;;;;7772:50;;;;687:8961;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;1303:62:0;;:::i;:::-;8067:40:41;687:8961;;-1:-1:-1;;;;;;687:8961:41;-1:-1:-1;;;;;687:8961:41;;;;;;;;;8122:46;;;;687:8961;;;;;;;;;;:::i;:::-;6865:24;687:8961;;;;;;;;;;-1:-1:-1;;;;;687:8961:41;6851:10;:38;6847:109;;687:8961;3218:38;;;;687:8961;;;;;;;;;;3271:10;687:8961;;3302:48;687:8961;;;;;;3271:80;3267:218;;6442:18;687:8961;;;;;;-1:-1:-1;;;;;687:8961:41;;;;;-1:-1:-1;;6442:43:41;;3571:145;;687:8961;;;3776:54;687:8961;;;;;3726:16;687:8961;;;;;3302:48;687:8961;;;;;;;;;;;;;3776:54;687:8961;;3571:145;3618:87;;;;;687:8961;;;;;;;;;;;;;;;;;3618:87;;687:8961;3618:87;;687:8961;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;687:8961:41;;;;;;;:::i;:::-;3618:87;;;;;;;;;;3571:145;;;;;;;;3618:87;;;;;:::i;:::-;687:8961;;3618:87;;;;;687:8961;;;;;;;;;3618:87;687:8961;;;3267:218;687:8961;;;3271:10;687:8961;;;;;;-1:-1:-1;;;3374:100:41;;687:8961;;;;3302:48;687:8961;;;;;;;;3374:100;687:8961;-1:-1:-1;687:8961:41;;6847:109;-1:-1:-1;;;6912:33:41;;6851:10;687:8961;;;6912:33;;687:8961;;;;;;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3133:14:4;;;;3179:34;;;687:8961:41;3178:108:4;;;;687:8961:41;;;;-1:-1:-1;;687:8961:41;;3383:1:4;687:8961:41;;;2692:8;;687:8961;3394:65:4;;687:8961:41;;4902:69:4;687:8961:41;;;;;;4902:69:4;;;:::i;:::-;;:::i;:::-;1195:12:0;929:10:7;1195:12:0;:::i;:::-;4902:69:4;687:8961:41;;;;;;4902:69:4;:::i;:::-;2692:8:41;:::i;:::-;-1:-1:-1;;;;;687:8961:41;;2711:52;687:8961;;;2711:52;687:8961;-1:-1:-1;;;;;687:8961:41;;2773:40;687:8961;;;2773:40;687:8961;-1:-1:-1;;;;;687:8961:41;;2823:44;687:8961;;;2823:44;687:8961;2882:13;2921:3;687:8961;;2897:22;;;;;2969:17;687:8961;2969:17;3383:1:4;2969:17:41;;;:::i;:::-;687:8961;;2951:14;;;;:::i;:::-;687:8961;;;2940:10;687:8961;;;;;;;;;;;;;;;;;2882:13;;2897:22;;;;3479:99:4;;687:8961:41;;3479:99:4;687:8961:41;;;;;;;3553:14:4;687:8961:41;;;3383:1:4;687:8961:41;;3553:14:4;687:8961:41;;3394:65:4;-1:-1:-1;;687:8961:41;;;;;3394:65:4;;;687:8961:41;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;3178:108:4;3258:4;;1476:19:6;:23;3219:66:4;;3178:108;3219:66;687:8961:41;3284:1:4;687:8961:41;;;3268:17:4;3178:108;;3179:34;687:8961:41;3212:1:4;687:8961:41;;;3197:16:4;3179:34;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1513:6:0;687:8961:41;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;;;1958:4;687:8961;;;;;;;;;;;;;;;;1303:62:0;;:::i;:::-;2765:6;687:8961:41;;-1:-1:-1;;;;;;687:8961:41;;;;;;;-1:-1:-1;;;;;687:8961:41;2813:40:0;687:8961:41;;2813:40:0;687:8961:41;;;;;;;;;;;;;;;1724:35;687:8961;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;;;;;;;;;;;2333:6:5;-1:-1:-1;;;;;687:8961:41;2324:4:5;2316:23;687:8961:41;;;;;-1:-1:-1;;;;;;;;;;;687:8961:41;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;687:8961:41;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;1963:87:5;1898:6;-1:-1:-1;;;;;687:8961:41;1873:80:5;1889:4;1881:23;;;1873:80;:::i;:::-;-1:-1:-1;;;;;;;;;;;687:8961:41;-1:-1:-1;;;;;687:8961:41;1971:30:5;1963:87;:::i;:::-;1303:62:0;;:::i;:::-;951:66:2;687:8961:41;;;;;;3478:17:2;;;;;:::i;3380:526::-;687:8961:41;;-1:-1:-1;;;3531:63:2;;-1:-1:-1;;;;;687:8961:41;;;;;;;;3531:63:2;;;;;;;3380:526;-1:-1:-1;3527:302:2;;687:8961:41;;-1:-1:-1;;;3758:56:2;;687:8961:41;;3758:56:2;;951:66;;687:8961:41;951:66:2;;687:8961:41;951:66:2;687:8961:41;;;951:66:2;-1:-1:-1;;;951:66:2;;;;3758:56;;;3527:302;-1:-1:-1;;;;;;;;;;;3644:28:2;951:66;;2277:17;;;:::i;:::-;687:8961:41;;2310:27:2;;;;;687:8961:41;;2659:15:2;;;:28;;;3527:302;2655:105;;3527:302;3380:526;;;;687:8961:41;;2655:105:2;1476:19:6;;:23;687:8961:41;;7395:25:2;7437:99;7395:25;;;;;;;;;687:8961:41;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;7437:99:2;:::i;:::-;;2655:105;;;;;;687:8961:41;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;2659:28:2;;3971:4:5;2659:28:2;;951:66;687:8961:41;;-1:-1:-1;;;951:66:2;;687:8961:41;;951:66:2;;;;687:8961:41;951:66:2;;687:8961:41;951:66:2;687:8961:41;;;951:66:2;-1:-1:-1;;;951:66:2;;;;;;;3531:63;;;;687:8961:41;3531:63:2;;687:8961:41;3531:63:2;;;;;;687:8961:41;3531:63:2;;;:::i;:::-;;;951:66;;;;;3531:63;;;;;;;-1:-1:-1;3531:63:2;;687:8961:41;;;;;;;;;;;;;1479:39;687:8961;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;;;;;;:::i;:::-;1303:62:0;;:::i;:::-;687:8961:41;;;;;;;;7192:48;7176:64;;;:146;;;687:8961;7172:263;;687:8961;;;9148:10;687:8961;;;;;;;;;;;;;9326:42;;;9322:174;;-1:-1:-1;687:8961:41;;;9148:10;687:8961;;;;;;;-1:-1:-1;;687:8961:41;;;;;;;;;;9549:90;687:8961;;;;;;;:::i;9322:174::-;-1:-1:-1;;;9391:94:41;;687:8961;;;;;;;;9391:94;;7172:263;687:8961;;;;;;-1:-1:-1;;;7348:72:41;;687:8961;;;;7348:72;7176:146;-1:-1:-1;687:8961:41;;-1:-1:-1;7272:50:41;7256:66;;;7176:146;;687:8961;;;;;;;-1:-1:-1;;687:8961:41;;;;;;:::i;:::-;1963:87:5;1898:6;-1:-1:-1;;;;;687:8961:41;1873:80:5;1889:4;1881:23;;;1873:80;:::i;1963:87::-;1303:62:0;;:::i;:::-;687:8961:41;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;687:8961:41;;;;;951:66:2;687:8961:41;;;;;;3478:17:2;;;;;;:::i;3380:526::-;687:8961:41;;-1:-1:-1;;;3531:63:2;;687:8961:41;;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;3531:63:2;;;;;;;3380:526;-1:-1:-1;3527:302:2;;687:8961:41;;-1:-1:-1;;;3758:56:2;;687:8961:41;3758:56:2;;951:66;;;;;;;687:8961:41;951:66:2;687:8961:41;;;951:66:2;-1:-1:-1;;;951:66:2;;;;3758:56;;;3527:302;3644:28;;;;;951:66;;2277:17;;;:::i;:::-;687:8961:41;;2310:27:2;;;;;687:8961:41;;2659:15:2;;;:28;;;3527:302;2655:105;;3527:302;3380:526;;;;;;687:8961:41;;2655:105:2;1476:19:6;;:23;687:8961:41;;7395:25:2;;;;;;7437:99;7395:25;;;;;687:8961:41;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;687:8961:41;;;;7437:99:2;:::i;:::-;;2655:105;;;;;;;687:8961:41;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;2659:28:2;;;;;951:66;687:8961:41;;-1:-1:-1;;;951:66:2;;687:8961:41;951:66:2;;;;;;;;;687:8961:41;951:66:2;687:8961:41;;;951:66:2;-1:-1:-1;;;951:66:2;;;;;;;3531:63;;;;;;;;;;;;;;;;;:::i;:::-;;;951:66;;;;;3531:63;;;;;;;;;687:8961:41;;;;;;;;;;;;;1352:33;687:8961;;;-1:-1:-1;;;;;687:8961:41;;;;;;;;;;;;;;;-1:-1:-1;;687:8961:41;;;;;;;;;;;;913:48;687:8961;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6865:24;687:8961;;;;;;;;-1:-1:-1;;;;;687:8961:41;6851:10;:38;6847:109;;687:8961;4059:40;;;;687:8961;;;;;;;;;;4114:10;687:8961;;4145:50;687:8961;;;;;;4114:82;4110:222;;6583:20;687:8961;-1:-1:-1;;;;;687:8961:41;;-1:-1:-1;;6583:45:41;;4418:253;;687:8961;;;4731:54;687:8961;;;;;4681:16;687:8961;;;;;;;;;;;;;;;;;;;4731:54;687:8961;;4418:253;687:8961;;;;;;;;;;;;;;;;;4496:25;;4145:50;4496:25;;;;;687:8961;4496:25;4535:125;;;;;;687:8961;;;;;;;;;;;;;;;;4535:125;;687:8961;;4535:125;;687:8961;;;;;;:::i;:::-;;;;;;;;;;4535:125;;;;;;;;;;4418:253;;;;;;;;4535:125;;;;;687:8961;4535:125;;:::i;:::-;687:8961;;;4535:125;;;687:8961;;;;;;;;;4110:222;687:8961;;;;4114:10;687:8961;;;;;;-1:-1:-1;;;4219:102:41;;687:8961;;;;4145:50;687:8961;;;;;;;;4219:102;6847:109;6912:33;;;687:8961;6912:33;6851:10;687:8961;;;;6912:33;687:8961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;687:8961:41;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;687:8961:41;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;687:8961:41;;;;;-1:-1:-1;687:8961:41;;;;;;;;;-1:-1:-1;;687:8961:41;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;-1:-1:-1;687:8961:41;;;;;-1:-1:-1;687:8961:41;;;;;;;;;;;;;;-1:-1:-1;687:8961:41;;;;;;;;-1:-1:-1;;687:8961:41;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1599:130:0;1513:6;687:8961:41;-1:-1:-1;;;;;687:8961:41;929:10:7;1662:23:0;687:8961:41;;1599:130:0:o;687:8961:41:-;;;;951:66:2;;;687:8961:41;;;;;;;;;;;;;;;;;;2673:187:0;2765:6;687:8961:41;;-1:-1:-1;;;;;687:8961:41;;;-1:-1:-1;;;;;;687:8961:41;;;;;;;;;;2813:40:0;-1:-1:-1;;2813:40:0;2673:187::o;687:8961:41:-;;;;:::o;:::-;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;1805:281:2;1476:19:6;;:23;687:8961:41;;;;;;;;-1:-1:-1;;;;;687:8961:41;;-1:-1:-1;;;;;;;;;;;687:8961:41;;;-1:-1:-1;;;;;;;;;;;687:8961:41;1805:281:2:o;687:8961:41:-;;;-1:-1:-1;;;687:8961:41;;;;;;;;;;;;;;;;;-1:-1:-1;;;687:8961:41;;;;;;;6622:742:6;;;;6792:566;;;6819:17;;:::o;6792:566::-;687:8961:41;;6937:21:6;:17;;7121:154;;;;;;;6933:415;687:8961:41;;;;;951:66:2;;;;;;7313:20:6;;;;;;687:8961:41;;;;;;;;;;;;;;;;6957:1:6;687:8961:41;;;;;;;;-1:-1:-1;;687:8961:41;;;7313:20:6;;;","linkReferences":{},"immutableReferences":{"702":[{"start":2576,"length":32},{"start":2870,"length":32},{"start":3921,"length":32}]}},"methodIdentifiers":{"VERIFIER_MOCK_ADDRESS()":"83501b21","addProgramId(bytes32,uint8)":"f21d3a28","aggregatedProofs(bytes32)":"27d3bc9a","alignedAggregatorAddress()":"4c46688c","deleteProgramId(bytes32,uint8)":"475f82eb","initialize(address,address,address,address,bytes32[],uint8[])":"9645b1fb","owner()":"8da5cb5b","programIds(bytes32)":"eede8988","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","risc0VerifierAddress()":"616af4f7","setRisc0VerifierAddress(address)":"a52f681b","setSP1VerifierAddress(address)":"9eade0f1","sp1VerifierAddress()":"294e3ccb","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286","verifyProofInclusion(bytes32[],uint16,bytes32,bytes)":"ccf923b1","verifyRisc0(bytes32,bytes,bytes,bytes32)":"0769eb53","verifySP1(bytes32,bytes,bytes,bytes32)":"96f7966f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IAlignedProofAggregationService.VerifierType\",\"name\":\"expected\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"actual\",\"type\":\"uint8\"}],\"name\":\"InvalidProgramId\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"actual\",\"type\":\"uint8\"}],\"name\":\"InvalidVerifierType\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"OnlyAlignedAggregator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"expected\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"received\",\"type\":\"uint8\"}],\"name\":\"VerifierTypeMismatch\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"blobVersionedHash\",\"type\":\"bytes32\"}],\"name\":\"AggregatedProofVerified\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IAlignedProofAggregationService.VerifierType\",\"name\":\"verifierType\",\"type\":\"uint8\"}],\"name\":\"ProgramIdAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IAlignedProofAggregationService.VerifierType\",\"name\":\"verifierType\",\"type\":\"uint8\"}],\"name\":\"ProgramIdDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"Risc0VerifierAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"SP1VerifierAddressUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERIFIER_MOCK_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IAlignedProofAggregationService.VerifierType\",\"name\":\"verifierType\",\"type\":\"uint8\"}],\"name\":\"addProgramId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"aggregatedProofs\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"alignedAggregatorAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IAlignedProofAggregationService.VerifierType\",\"name\":\"verifierType\",\"type\":\"uint8\"}],\"name\":\"deleteProgramId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_alignedAggregatorAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_sp1VerifierAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_risc0VerifierAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"_programIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint8[]\",\"name\":\"_verifierTypes\",\"type\":\"uint8[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"programIds\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"risc0VerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_risc0VerifierAddress\",\"type\":\"address\"}],\"name\":\"setRisc0VerifierAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_sp1VerifierAddress\",\"type\":\"address\"}],\"name\":\"setSP1VerifierAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"sp1VerifierAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"merklePath\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint16\",\"name\":\"provingSystemId\",\"type\":\"uint16\"},{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"publicInputs\",\"type\":\"bytes\"}],\"name\":\"verifyProofInclusion\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blobVersionedHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"risc0ReceiptSeal\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"risc0JournalBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"}],\"name\":\"verifyRisc0\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"blobVersionedHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"sp1PublicValues\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sp1ProofBytes\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"programId\",\"type\":\"bytes32\"}],\"name\":\"verifySP1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is upgraded.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"addProgramId(bytes32,uint8)\":{\"params\":{\"programId\":\"The program ID to add (image ID for RISC0 or vk hash for SP1).\",\"verifierType\":\"The type of verifier associated with the program ID.\"}},\"deleteProgramId(bytes32,uint8)\":{\"params\":{\"programId\":\"The program ID to delete (image ID for RISC0 or vk hash for SP1).\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setRisc0VerifierAddress(address)\":{\"params\":{\"_risc0VerifierAddress\":\"The new address for the Risc0 verifier contract\"}},\"setSP1VerifierAddress(address)\":{\"params\":{\"_sp1VerifierAddress\":\"The new address for the SP1 verifier contract\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"verifyProofInclusion(bytes32[],uint16,bytes32,bytes)\":{\"details\":\"- The `programId` parameter represents the unique identifier for the vm program: - In RISC Zero, this corresponds to the `image_id`. - In SP1, this corresponds to the `vk` (verification key) hash. - The proof commitment is derived by hashing together the `programId` and the `publicInputs`. - The `merklePath` is then used to compute the Merkle root from this commitment. - The function returns `true` if this Merkle root is known to correspond to a valid aggregated proof.\",\"params\":{\"merklePath\":\"The Merkle proof (sibling hashes) needed to reconstruct the Merkle root.\",\"programId\":\"The identifier for the ZK program (image_id in RISC0 or vk hash in SP1).\",\"provingSystemId\":\"The id of the proving system (1 for SP1, 2 for RISC0).\",\"publicInputs\":\"The public inputs bytes of the proof.\"},\"returns\":{\"_0\":\"bool Returns true if the computed Merkle root is a recognized valid aggregated proof.\"}},\"verifySP1(bytes32,bytes,bytes,bytes32)\":{\"details\":\"This function is called by the aligned proof aggregator after collecting the proofs and aggregating them to be verified on-chain. We expect the blobTransactionHash to be called before\",\"params\":{\"blobVersionedHash\":\"the versioned hash of the blob transaction that contains the leaves that compose the merkle root.\",\"programId\":\"The chunk aggregator program ID against which the proof should be verified\",\"sp1ProofBytes\":\"Groth16 proof\",\"sp1PublicValues\":\"Values used to perform the execution\"}}},\"stateVariables\":{\"risc0VerifierAddress\":{\"details\":\"See supported verifier here: https://dev.risczero.com/api/blockchain-integration/contracts/verifier#contract-addresses\"},\"sp1VerifierAddress\":{\"details\":\"This can either be a specific SP1Verifier for a specific version, or the SP1VerifierGateway which can be used to verify proofs for any version of SP1. For the list of supported verifiers on each chain, see: https://docs.succinct.xyz/docs/sp1/verification/contract-addresses\"}},\"version\":1},\"userdoc\":{\"events\":{\"AggregatedProofVerified(bytes32,bytes32)\":{\"notice\":\"event that gets emitted after a successful aggregated proof verification\"},\"ProgramIdAdded(bytes32,uint8)\":{\"notice\":\"Event emitted when a new program ID is added\"},\"ProgramIdDeleted(bytes32,uint8)\":{\"notice\":\"Event emitted when a program ID is deleted\"},\"Risc0VerifierAddressUpdated(address)\":{\"notice\":\"Event emitted when the Risc0 verifier address is updated\"},\"SP1VerifierAddressUpdated(address)\":{\"notice\":\"Event emitted when the SP1 verifier address is updated\"}},\"kind\":\"user\",\"methods\":{\"VERIFIER_MOCK_ADDRESS()\":{\"notice\":\"whether we are in dev mode or not if the sp1 verifier address is set to this address, then we skip verification\"},\"addProgramId(bytes32,uint8)\":{\"notice\":\"Adds a new program ID to the list of valid program IDs.\"},\"aggregatedProofs(bytes32)\":{\"notice\":\"Map the merkle root to a boolean to indicate it was verified\"},\"alignedAggregatorAddress()\":{\"notice\":\"The address of the Wallet that is allowed to call the verify function.\"},\"deleteProgramId(bytes32,uint8)\":{\"notice\":\"Deletes a program ID from the list of valid program IDs.\"},\"programIds(bytes32)\":{\"notice\":\"A map to track aggregation program IDs (image IDs for RISC Zero or vk hashes for SP1) with their proving system. These program IDs are used to validate that the proofs to verify are indeed from a trusted aggregation program.\"},\"risc0VerifierAddress()\":{\"notice\":\"The address of the Risc0 verifier contract\"},\"setRisc0VerifierAddress(address)\":{\"notice\":\"Sets the address of the Risc0 verifier contract\"},\"setSP1VerifierAddress(address)\":{\"notice\":\"Sets the address of the SP1 verifier contract\"},\"sp1VerifierAddress()\":{\"notice\":\"The address of the SP1 verifier contract.\"},\"verifyProofInclusion(bytes32[],uint16,bytes32,bytes)\":{\"notice\":\"Verifies the inclusion of proof in an aggregated proof via Merkle tree proof.\"},\"verifySP1(bytes32,bytes,bytes,bytes32)\":{\"notice\":\"Method to verify an aggregated proof from aligned\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/core/AlignedProofAggregationService.sol\":\"AlignedProofAggregationService\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/\",\":@risc0-contracts/=lib/risc0-ethereum/contracts/src/\",\":@sp1-contracts/=lib/sp1-contracts/contracts/src/\",\":ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/\",\":eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/\",\":eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/\",\":eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/\",\":eigenlayer-middleware/=lib/eigenlayer-middleware/src/\",\":eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/risc0-ethereum/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/risc0-ethereum/lib/openzeppelin-contracts/\",\":risc0-ethereum/=lib/risc0-ethereum/\",\":sp1-contracts/=lib/sp1-contracts/contracts/\"],\"viaIR\":true},\"sources\":{\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2\",\"dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497\",\"dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419\",\"dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4\",\"dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol\":{\"keccak256\":\"0x6400c4bee15052e043e5d10315135972529bd1c8012f43da494dc6b4f4661058\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5d3d47d35af4373743a559ea4b9b7ecfe4bab6f0703f410c1e59959b7966ac\",\"dweb:/ipfs/QmTHdoghh4WLu4yURjGEgRk162pcwwdsG52MPGa12GqnGR\"]},\"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol\":{\"keccak256\":\"0x3e74a4b2940b88837fb8399a0012b435d1d513a622d3ea3ba58088af9ad7e2fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://b06299cc68e3c79e4eb22705bb814ce816a7fd549e78614b318ae44d35e56f9b\",\"dweb:/ipfs/QmPpX5ciRdEH6MVRVt7qYQqy7B68qxG5v3mxkgYm3kGxi5\"]},\"lib/risc0-ethereum/contracts/src/Util.sol\":{\"keccak256\":\"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c\",\"dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg\"]},\"lib/sp1-contracts/contracts/src/ISP1Verifier.sol\":{\"keccak256\":\"0x9e3ba64860bea920772dcf16be7946de2a2900d80bd51e9c0771184138f4f4d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ec7230ca1fdd74edc6ab597d80bb345282aed3f0db4788ed96b4cc373ff46a3\",\"dweb:/ipfs/QmXPuSS5gzxMhFKWr1gsxBVu6WHh53ZZEvWkGgzrkM6Y7Q\"]},\"src/core/AlignedProofAggregationService.sol\":{\"keccak256\":\"0xbd21333b0b9b7dfc598c25e87aff2786645c6c3b58eb2a1163ff3bd7f1defef3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://daae488ca3e1b6d47720dd21f174625c8f10cf6d75896b9483d4b0a5225142b8\",\"dweb:/ipfs/QmbercZCYV6rqvZhUY41e1UCYc9xQqWmBJtsvCK9ELMMkx\"]},\"src/core/IAlignedProofAggregationService.sol\":{\"keccak256\":\"0x4421081bdcf6f135d8d62784323073604a6fb762a6a1a7c52850721a149f7ef0\",\"urls\":[\"bzz-raw://335d4cfcf24ca962f6ad8d9c82b2e426619a918d927d83c5b1bfe480351b3ddb\",\"dweb:/ipfs/QmSiraun3KpT2KESzDdJEkSSPauaXTaMM7hEC3wHifDVQb\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.27+commit.40a35a09"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"programId","type":"bytes32"},{"internalType":"enum IAlignedProofAggregationService.VerifierType","name":"expected","type":"uint8"},{"internalType":"uint8","name":"actual","type":"uint8"}],"type":"error","name":"InvalidProgramId"},{"inputs":[{"internalType":"uint8","name":"actual","type":"uint8"}],"type":"error","name":"InvalidVerifierType"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"OnlyAlignedAggregator"},{"inputs":[{"internalType":"uint8","name":"expected","type":"uint8"},{"internalType":"uint8","name":"received","type":"uint8"}],"type":"error","name":"VerifierTypeMismatch"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"blobVersionedHash","type":"bytes32","indexed":false}],"type":"event","name":"AggregatedProofVerified","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"programId","type":"bytes32","indexed":true},{"internalType":"enum IAlignedProofAggregationService.VerifierType","name":"verifierType","type":"uint8","indexed":false}],"type":"event","name":"ProgramIdAdded","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"programId","type":"bytes32","indexed":true},{"internalType":"enum IAlignedProofAggregationService.VerifierType","name":"verifierType","type":"uint8","indexed":false}],"type":"event","name":"ProgramIdDeleted","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":true}],"type":"event","name":"Risc0VerifierAddressUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"newAddress","type":"address","indexed":true}],"type":"event","name":"SP1VerifierAddressUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"VERIFIER_MOCK_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"programId","type":"bytes32"},{"internalType":"enum IAlignedProofAggregationService.VerifierType","name":"verifierType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"addProgramId"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"aggregatedProofs","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"alignedAggregatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"programId","type":"bytes32"},{"internalType":"enum IAlignedProofAggregationService.VerifierType","name":"verifierType","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"deleteProgramId"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"address","name":"_alignedAggregatorAddress","type":"address"},{"internalType":"address","name":"_sp1VerifierAddress","type":"address"},{"internalType":"address","name":"_risc0VerifierAddress","type":"address"},{"internalType":"bytes32[]","name":"_programIds","type":"bytes32[]"},{"internalType":"uint8[]","name":"_verifierTypes","type":"uint8[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"programIds","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"risc0VerifierAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_risc0VerifierAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRisc0VerifierAddress"},{"inputs":[{"internalType":"address","name":"_sp1VerifierAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setSP1VerifierAddress"},{"inputs":[],"stateMutability":"view","type":"function","name":"sp1VerifierAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"bytes32[]","name":"merklePath","type":"bytes32[]"},{"internalType":"uint16","name":"provingSystemId","type":"uint16"},{"internalType":"bytes32","name":"programId","type":"bytes32"},{"internalType":"bytes","name":"publicInputs","type":"bytes"}],"stateMutability":"view","type":"function","name":"verifyProofInclusion","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"blobVersionedHash","type":"bytes32"},{"internalType":"bytes","name":"risc0ReceiptSeal","type":"bytes"},{"internalType":"bytes","name":"risc0JournalBytes","type":"bytes"},{"internalType":"bytes32","name":"programId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifyRisc0"},{"inputs":[{"internalType":"bytes32","name":"blobVersionedHash","type":"bytes32"},{"internalType":"bytes","name":"sp1PublicValues","type":"bytes"},{"internalType":"bytes","name":"sp1ProofBytes","type":"bytes"},{"internalType":"bytes32","name":"programId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"verifySP1"}],"devdoc":{"kind":"dev","methods":{"addProgramId(bytes32,uint8)":{"params":{"programId":"The program ID to add (image ID for RISC0 or vk hash for SP1).","verifierType":"The type of verifier associated with the program ID."}},"deleteProgramId(bytes32,uint8)":{"params":{"programId":"The program ID to delete (image ID for RISC0 or vk hash for SP1)."}},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate that the this implementation remains valid after an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"setRisc0VerifierAddress(address)":{"params":{"_risc0VerifierAddress":"The new address for the Risc0 verifier contract"}},"setSP1VerifierAddress(address)":{"params":{"_sp1VerifierAddress":"The new address for the SP1 verifier contract"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"verifyProofInclusion(bytes32[],uint16,bytes32,bytes)":{"details":"- The `programId` parameter represents the unique identifier for the vm program: - In RISC Zero, this corresponds to the `image_id`. - In SP1, this corresponds to the `vk` (verification key) hash. - The proof commitment is derived by hashing together the `programId` and the `publicInputs`. - The `merklePath` is then used to compute the Merkle root from this commitment. - The function returns `true` if this Merkle root is known to correspond to a valid aggregated proof.","params":{"merklePath":"The Merkle proof (sibling hashes) needed to reconstruct the Merkle root.","programId":"The identifier for the ZK program (image_id in RISC0 or vk hash in SP1).","provingSystemId":"The id of the proving system (1 for SP1, 2 for RISC0).","publicInputs":"The public inputs bytes of the proof."},"returns":{"_0":"bool Returns true if the computed Merkle root is a recognized valid aggregated proof."}},"verifySP1(bytes32,bytes,bytes,bytes32)":{"details":"This function is called by the aligned proof aggregator after collecting the proofs and aggregating them to be verified on-chain. We expect the blobTransactionHash to be called before","params":{"blobVersionedHash":"the versioned hash of the blob transaction that contains the leaves that compose the merkle root.","programId":"The chunk aggregator program ID against which the proof should be verified","sp1ProofBytes":"Groth16 proof","sp1PublicValues":"Values used to perform the execution"}}},"version":1},"userdoc":{"kind":"user","methods":{"VERIFIER_MOCK_ADDRESS()":{"notice":"whether we are in dev mode or not if the sp1 verifier address is set to this address, then we skip verification"},"addProgramId(bytes32,uint8)":{"notice":"Adds a new program ID to the list of valid program IDs."},"aggregatedProofs(bytes32)":{"notice":"Map the merkle root to a boolean to indicate it was verified"},"alignedAggregatorAddress()":{"notice":"The address of the Wallet that is allowed to call the verify function."},"deleteProgramId(bytes32,uint8)":{"notice":"Deletes a program ID from the list of valid program IDs."},"programIds(bytes32)":{"notice":"A map to track aggregation program IDs (image IDs for RISC Zero or vk hashes for SP1) with their proving system. These program IDs are used to validate that the proofs to verify are indeed from a trusted aggregation program."},"risc0VerifierAddress()":{"notice":"The address of the Risc0 verifier contract"},"setRisc0VerifierAddress(address)":{"notice":"Sets the address of the Risc0 verifier contract"},"setSP1VerifierAddress(address)":{"notice":"Sets the address of the SP1 verifier contract"},"sp1VerifierAddress()":{"notice":"The address of the SP1 verifier contract."},"verifyProofInclusion(bytes32[],uint16,bytes32,bytes)":{"notice":"Verifies the inclusion of proof in an aggregated proof via Merkle tree proof."},"verifySP1(bytes32,bytes,bytes,bytes32)":{"notice":"Method to verify an aggregated proof from aligned"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgrades-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","@openzeppelin-upgrades/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/eigenlayer-middleware/lib/openzeppelin-contracts/contracts/","@risc0-contracts/=lib/risc0-ethereum/contracts/src/","@sp1-contracts/=lib/sp1-contracts/contracts/src/","ds-test/=lib/eigenlayer-middleware/lib/ds-test/src/","eigenlayer-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/","eigenlayer-core-contracts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/contracts/core/","eigenlayer-core/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/src/","eigenlayer-middleware/=lib/eigenlayer-middleware/src/","eigenlayer-scripts/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/script/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/risc0-ethereum/lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-upgradeable-v4.9.0/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts-v4.9.0/=lib/eigenlayer-middleware/lib/eigenlayer-contracts/lib/openzeppelin-contracts-v4.9.0/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/risc0-ethereum/lib/openzeppelin-contracts/","risc0-ethereum/=lib/risc0-ethereum/","sp1-contracts/=lib/sp1-contracts/contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/core/AlignedProofAggregationService.sol":"AlignedProofAggregationService"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888","urls":["bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a","dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol":{"keccak256":"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f","urls":["bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053","dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol":{"keccak256":"0x315887e846f1e5f8d8fa535a229d318bb9290aaa69485117f1ee8a9a6b3be823","urls":["bzz-raw://29dda00da6d269685b555e710e4abf1c3eb6d00c15b888a7880a2f8dd3c4fdc2","dweb:/ipfs/QmSqcjtdECygtT1Gy7uEo42x8542srpgGEeKKHfcnQqXgn"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol":{"keccak256":"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908","urls":["bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1","dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x0203dcadc5737d9ef2c211d6fa15d18ebc3b30dfa51903b64870b01a062b0b4e","urls":["bzz-raw://6eb2fd1e9894dbe778f4b8131adecebe570689e63cf892f4e21257bfe1252497","dweb:/ipfs/QmXgUGNfZvrn6N2miv3nooSs7Jm34A41qz94fu2GtDFcx8"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x6e36e9b4b71de699c2f3f0d4e4d1aa0b35da99a26e8d5b91ef09ba234b4ef270","urls":["bzz-raw://abfa467c53a0d60b4d09bf04aa952b1d1d44e5766fcc053aace078d7859b8419","dweb:/ipfs/QmebVTZpyNxYfKYTuLMywzEJTdc1Ca8ME4xm3kR9gQgToG"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x611aa3f23e59cfdd1863c536776407b3e33d695152a266fa7cfb34440a29a8a3","urls":["bzz-raw://9b4b2110b7f2b3eb32951bc08046fa90feccffa594e1176cb91cdfb0e94726b4","dweb:/ipfs/QmSxLwYjicf9zWFuieRc8WQwE4FisA1Um5jp1iSa731TGt"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/eigenlayer-middleware/lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol":{"keccak256":"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a","urls":["bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3","dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MerkleProof.sol":{"keccak256":"0x6400c4bee15052e043e5d10315135972529bd1c8012f43da494dc6b4f4661058","urls":["bzz-raw://da5d3d47d35af4373743a559ea4b9b7ecfe4bab6f0703f410c1e59959b7966ac","dweb:/ipfs/QmTHdoghh4WLu4yURjGEgRk162pcwwdsG52MPGa12GqnGR"],"license":"MIT"},"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol":{"keccak256":"0x3e74a4b2940b88837fb8399a0012b435d1d513a622d3ea3ba58088af9ad7e2fd","urls":["bzz-raw://b06299cc68e3c79e4eb22705bb814ce816a7fd549e78614b318ae44d35e56f9b","dweb:/ipfs/QmPpX5ciRdEH6MVRVt7qYQqy7B68qxG5v3mxkgYm3kGxi5"],"license":"Apache-2.0"},"lib/risc0-ethereum/contracts/src/Util.sol":{"keccak256":"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82","urls":["bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c","dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg"],"license":"Apache-2.0"},"lib/sp1-contracts/contracts/src/ISP1Verifier.sol":{"keccak256":"0x9e3ba64860bea920772dcf16be7946de2a2900d80bd51e9c0771184138f4f4d3","urls":["bzz-raw://0ec7230ca1fdd74edc6ab597d80bb345282aed3f0db4788ed96b4cc373ff46a3","dweb:/ipfs/QmXPuSS5gzxMhFKWr1gsxBVu6WHh53ZZEvWkGgzrkM6Y7Q"],"license":"MIT"},"src/core/AlignedProofAggregationService.sol":{"keccak256":"0xbd21333b0b9b7dfc598c25e87aff2786645c6c3b58eb2a1163ff3bd7f1defef3","urls":["bzz-raw://daae488ca3e1b6d47720dd21f174625c8f10cf6d75896b9483d4b0a5225142b8","dweb:/ipfs/QmbercZCYV6rqvZhUY41e1UCYc9xQqWmBJtsvCK9ELMMkx"],"license":"UNLICENSED"},"src/core/IAlignedProofAggregationService.sol":{"keccak256":"0x4421081bdcf6f135d8d62784323073604a6fb762a6a1a7c52850721a149f7ef0","urls":["bzz-raw://335d4cfcf24ca962f6ad8d9c82b2e426619a918d927d83c5b1bfe480351b3ddb","dweb:/ipfs/QmSiraun3KpT2KESzDdJEkSSPauaXTaMM7hEC3wHifDVQb"],"license":null}},"version":1},"id":41}