@clawlogic/sdk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +227 -0
- package/dist/abis/agentIdentityRegistryAbi.d.ts +532 -0
- package/dist/abis/agentIdentityRegistryAbi.d.ts.map +1 -0
- package/dist/abis/agentIdentityRegistryAbi.js +2 -0
- package/dist/abis/agentIdentityRegistryAbi.js.map +1 -0
- package/dist/abis/agentRegistryAbi.d.ts +265 -0
- package/dist/abis/agentRegistryAbi.d.ts.map +1 -0
- package/dist/abis/agentRegistryAbi.js +151 -0
- package/dist/abis/agentRegistryAbi.js.map +1 -0
- package/dist/abis/agentReputationRegistryAbi.d.ts +224 -0
- package/dist/abis/agentReputationRegistryAbi.d.ts.map +1 -0
- package/dist/abis/agentReputationRegistryAbi.js +2 -0
- package/dist/abis/agentReputationRegistryAbi.js.map +1 -0
- package/dist/abis/agentValidationRegistryAbi.d.ts +281 -0
- package/dist/abis/agentValidationRegistryAbi.d.ts.map +1 -0
- package/dist/abis/agentValidationRegistryAbi.js +2 -0
- package/dist/abis/agentValidationRegistryAbi.js.map +1 -0
- package/dist/abis/outcomeTokenAbi.d.ts +255 -0
- package/dist/abis/outcomeTokenAbi.d.ts.map +1 -0
- package/dist/abis/outcomeTokenAbi.js +152 -0
- package/dist/abis/outcomeTokenAbi.js.map +1 -0
- package/dist/abis/predictionMarketHookAbi.d.ts +396 -0
- package/dist/abis/predictionMarketHookAbi.d.ts.map +1 -0
- package/dist/abis/predictionMarketHookAbi.js +212 -0
- package/dist/abis/predictionMarketHookAbi.js.map +1 -0
- package/dist/client.d.ts +241 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +569 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +84 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +134 -0
- package/dist/config.js.map +1 -0
- package/dist/identity.d.ts +133 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +314 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +191 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +11 -0
- package/dist/types.js.map +1 -0
- package/package.json +51 -0
- package/src/abis/.gitkeep +0 -0
- package/src/abis/AgentRegistry.json +1 -0
- package/src/abis/ENSAgentHelper.json +1 -0
- package/src/abis/OutcomeToken.json +1 -0
- package/src/abis/PredictionMarketHook.json +1 -0
- package/src/abis/agentIdentityRegistryAbi.ts +1 -0
- package/src/abis/agentRegistryAbi.ts +150 -0
- package/src/abis/agentReputationRegistryAbi.ts +1 -0
- package/src/abis/agentValidationRegistryAbi.ts +1 -0
- package/src/abis/outcomeTokenAbi.ts +153 -0
- package/src/abis/predictionMarketHookAbi.ts +214 -0
- package/src/client.ts +722 -0
- package/src/config.ts +161 -0
- package/src/identity.ts +395 -0
- package/src/index.ts +48 -0
- package/src/types.ts +207 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_poolManager","type":"address","internalType":"contract IPoolManager"},{"name":"_registry","type":"address","internalType":"contract IAgentRegistry"},{"name":"_oo","type":"address","internalType":"contract OptimisticOracleV3Interface"},{"name":"_currency","type":"address","internalType":"contract IERC20"},{"name":"_defaultLiveness","type":"uint64","internalType":"uint64"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"afterAddLiquidity","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"delta","type":"int256","internalType":"BalanceDelta"},{"name":"feesAccrued","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterDonate","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterInitialize","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"},{"name":"tick","type":"int24","internalType":"int24"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterRemoveLiquidity","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"delta","type":"int256","internalType":"BalanceDelta"},{"name":"feesAccrued","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"nonpayable"},{"type":"function","name":"afterSwap","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"delta","type":"int256","internalType":"BalanceDelta"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int128","internalType":"int128"}],"stateMutability":"nonpayable"},{"type":"function","name":"assertMarket","inputs":[{"name":"marketId","type":"bytes32","internalType":"bytes32"},{"name":"assertedOutcome","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertionDisputedCallback","inputs":[{"name":"assertionId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"assertionResolvedCallback","inputs":[{"name":"assertionId","type":"bytes32","internalType":"bytes32"},{"name":"assertedTruthfully","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"beforeAddLiquidity","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeDonate","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeInitialize","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeRemoveLiquidity","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct ModifyLiquidityParams","components":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"},{"type":"function","name":"beforeSwap","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"key","type":"tuple","internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"params","type":"tuple","internalType":"struct SwapParams","components":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}]},{"name":"hookData","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"},{"name":"","type":"int256","internalType":"BeforeSwapDelta"},{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"nonpayable"},{"type":"function","name":"getHookPermissions","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Hooks.Permissions","components":[{"name":"beforeInitialize","type":"bool","internalType":"bool"},{"name":"afterInitialize","type":"bool","internalType":"bool"},{"name":"beforeAddLiquidity","type":"bool","internalType":"bool"},{"name":"afterAddLiquidity","type":"bool","internalType":"bool"},{"name":"beforeRemoveLiquidity","type":"bool","internalType":"bool"},{"name":"afterRemoveLiquidity","type":"bool","internalType":"bool"},{"name":"beforeSwap","type":"bool","internalType":"bool"},{"name":"afterSwap","type":"bool","internalType":"bool"},{"name":"beforeDonate","type":"bool","internalType":"bool"},{"name":"afterDonate","type":"bool","internalType":"bool"},{"name":"beforeSwapReturnDelta","type":"bool","internalType":"bool"},{"name":"afterSwapReturnDelta","type":"bool","internalType":"bool"},{"name":"afterAddLiquidityReturnDelta","type":"bool","internalType":"bool"},{"name":"afterRemoveLiquidityReturnDelta","type":"bool","internalType":"bool"}]}],"stateMutability":"pure"},{"type":"function","name":"getMarket","inputs":[{"name":"marketId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"description","type":"string","internalType":"string"},{"name":"outcome1","type":"string","internalType":"string"},{"name":"outcome2","type":"string","internalType":"string"},{"name":"outcome1Token","type":"address","internalType":"address"},{"name":"outcome2Token","type":"address","internalType":"address"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"requiredBond","type":"uint256","internalType":"uint256"},{"name":"resolved","type":"bool","internalType":"bool"},{"name":"assertedOutcomeId","type":"bytes32","internalType":"bytes32"},{"name":"poolId","type":"bytes32","internalType":"PoolId"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMarketIds","inputs":[],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"i_currency","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"i_defaultIdentifier","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"i_defaultLiveness","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"i_oo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OptimisticOracleV3Interface"}],"stateMutability":"view"},{"type":"function","name":"i_registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgentRegistry"}],"stateMutability":"view"},{"type":"function","name":"initializeMarket","inputs":[{"name":"outcome1","type":"string","internalType":"string"},{"name":"outcome2","type":"string","internalType":"string"},{"name":"description","type":"string","internalType":"string"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"requiredBond","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"marketId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"mintOutcomeTokens","inputs":[{"name":"marketId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"s_assertionToMarket","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"s_marketCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"s_markets","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"description","type":"string","internalType":"string"},{"name":"outcome1","type":"string","internalType":"string"},{"name":"outcome2","type":"string","internalType":"string"},{"name":"outcome1Token","type":"address","internalType":"contract OutcomeToken"},{"name":"outcome2Token","type":"address","internalType":"contract OutcomeToken"},{"name":"reward","type":"uint256","internalType":"uint256"},{"name":"requiredBond","type":"uint256","internalType":"uint256"},{"name":"resolved","type":"bool","internalType":"bool"},{"name":"assertedOutcomeId","type":"bytes32","internalType":"bytes32"},{"name":"poolId","type":"bytes32","internalType":"PoolId"},{"name":"totalCollateral","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"settleOutcomeTokens","inputs":[{"name":"marketId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AssertionDisputed","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"assertionId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"AssertionFailed","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"assertionId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"MarketAsserted","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"assertedOutcome","type":"string","indexed":false,"internalType":"string"},{"name":"asserter","type":"address","indexed":true,"internalType":"address"},{"name":"assertionId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"MarketInitialized","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"description","type":"string","indexed":false,"internalType":"string"},{"name":"creator","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MarketResolved","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"outcomeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TokensMinted","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"agent","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TokensSettled","inputs":[{"name":"marketId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"agent","type":"address","indexed":true,"internalType":"address"},{"name":"payout","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ActiveAssertionExists","inputs":[]},{"type":"error","name":"EthTransferFailed","inputs":[]},{"type":"error","name":"HookNotImplemented","inputs":[]},{"type":"error","name":"InvalidOutcome","inputs":[]},{"type":"error","name":"MarketAlreadyResolved","inputs":[]},{"type":"error","name":"MarketNotFound","inputs":[]},{"type":"error","name":"MarketNotResolved","inputs":[]},{"type":"error","name":"NoTokensToSettle","inputs":[]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"NotRegisteredAgent","inputs":[]},{"type":"error","name":"OnlyOracle","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"ZeroMintAmount","inputs":[]}],"bytecode":{"object":"0x61014080604052346103025760a08161373a80380380916100208285610405565b833981010312610302578051906001600160a01b0382168203610302576020810151906001600160a01b0382168203610302576040810151926001600160a01b03841691828503610302576060810151906001600160a01b03821682036103025760800151916001600160401b0383168303610302576080525f6101a06040516100a9816103d5565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a060405161010b816103d5565b828152826020820152600160408201528260608201528260808201528260a0820152600160c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526120003016158015906103c8575b80156103b7575b80156103aa575b801561039d575b8015610390575b8015610380575b8015610374575b8015610368575b801561035c575b8015610350575b8015610344575b8015610338575b801561032c575b6103195760049460209460a05260c05260e052610100526040519283809263d509b01760e01b82525afa90811561030e575f916102d8575b5061012052604051613311908161042982396080518181816102b601528181610336015281816103860152818161081501528181610f31015281816111f70152818161125601528181611a3f015281816122540152612323015260a051818181610f9f0152818161132c01528181611a8801528181611b530152818161221201526122a1015260c05181818161017b01528181610407015281816119b90152611c8d015260e05181818161118a0152818161195c0152611c5f015261010051818181611df901526121230152610120518181816103cd0152611e2a0152f35b90506020813d602011610306575b816102f360209383610405565b8101031261030257515f6101f9565b5f80fd5b3d91506102e6565b6040513d5f823e3d90fd5b630732d7b560e51b5f523060045260245ffd5b506001301615156101c1565b506002301615156101ba565b506004301615156101b3565b506008301615156101ac565b506010301615156101a5565b5060203016151561019e565b50604030161515610197565b5060803016151560011415610190565b5061010030161515610189565b5061020030161515610182565b506104003016151561017b565b506108003016151560011415610174565b506110003016151561016d565b6101c081019081106001600160401b038211176103f157604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b038211908210176103f15760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806321d0ee7014612310578063259982e5146122415780632a663606146121fd578063398c6f7e146121475780633ec7469214612104578063565429a814611b02578063575e24b4146119e85780635998013f146119a45780635cb1cc0b146112995780636c2bbe7e146112435780636fe7e6eb146111b95780637ec1be7614611175578063812e1a7b14610f715780639f063efc14610f1a578063acd98e2914610853578063b47b2fb1146107bb578063b6a8b0fa1461029f578063c3c95c7b146106fb578063c480e488146105e8578063c4e833ce1461047f578063d448a4ec146103f0578063d6a9b1bc146103b5578063dc4c90d314610370578063dc98354e14610301578063e1b4af691461029f578063e74d916d14610275578063e88dc465146102575763f1b156b214610159575061000e565b34610254576040366003190112610254576004356024358015158103610250577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610241578183526001602052604083205491828452836020528360408120925f1461020d575050602060088260077f81e6139d4590ae37e3bcbb2dc42f1a436d8350fd4aab6319f9c3bb2dbbca83149401600160ff198254161790550154604051908152a280f35b9060209160087fbc19aba8b34ebe13f2c82d885af0ad7f5fdcb0a8f316d7e7a082a9c36577e12c940155604051908152a280f35b6380fee10560e01b8352600483fd5b8280fd5b80fd5b50346102545780600319360112610254576020600254604051908152f35b50346102545760203660031901126102545760406020916004358152600183522054604051908152f35b5034610254576004906102b136612489565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102f591505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346102545760e03660031901126102545761031b612364565b5060a036602319011261025457600490610333612473565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f557630a85dc2960e01b8152fd5b50346102545780600319360112610254576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461025457806003193601126102545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5034610254576020366003190112610254576004357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104705780825260016020527fb0b7745dbc52ca54ee13627e6cabcdd84d9b9e98d4e7882af6daf1dae0747da76020604084205492604051908152a280f35b6380fee10560e01b8252600482fd5b5034610254578060031936011261025457806101c0916101a06040516104a4816125bd565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152015260405190610503826125bd565b80825260208201918183526040810160018152606082018381526080830184815260a0840185815260c085016001815260e08601908782526101008701928884526101208801948986526101408901968a88526101608a01988b8a526101a06101808c019b8d8d52019b808d5260206040519e8f92835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346102545760203660031901126102545760409060043581528060205220610160604051916106238361061c818461253c565b03846125d9565b60405161063e81610637816001860161253c565b03826125d9565b604051916106538361061c816002850161253c565b60018060a01b036003820154169260018060a01b03600483015416600583015460068401549060ff600786015416926106c96008870154956106bb600a60098a0154990154996106ad6040519e8f9e8f81815201906124e0565b8d810360208f0152906124e0565b908b820360408d01526124e0565b9760608a0152608089015260a088015260c0870152151560e08601526101008501526101208401526101408301520390f35b503461025457602036600319011261025457610160604061077f926004358152806020522060018060a01b036003820154169060018060a01b036004820154166005820154600683015460ff600785015416906008850154926009860154946106c960026106bb600a8a0154996040519d8e80610778818561253c565b03906125d9565b6107a7604051916107978361061c816001850161253c565b61061c604051809681930161253c565b6106ad6040519e8f9e8f81815201906124e0565b503461025457610160366003190112610254576107d6612364565b5060a03660231901126102545760603660c319011261025457610144356001600160401b03811161084f57906108116004923690840161237a565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f557630a85dc2960e01b8152fd5b5080fd5b5034610254576020366003190112610254576004358082526020829052604082206003810180549192916001600160a01b03168015610f0b5760ff60078501541615610efc576040516108ad81610637816001890161253c565b602081519101206040516108c8816106378160028a0161253c565b602081519101209060088601549081145f14610af357505090546040516370a0823160e01b81523360048201526001600160a01b03909116939150602081602481875afa908115610ae8578591610ab6575b508015610aa7576040516318160ddd60e01b8152859190602081600481895afa908115610a9c578391610a60575b506109609061095b600a8601548461265a565b61266d565b94803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610a3c575b5050600a905b01805490838203918211610a2857558280808085335af13d15610a23573d6109c881612612565b906109d660405192836125d9565b81528460203d92013e5b15610a14576040519182527f81230ad21489f10370ac678b2d388ac8e10c34303c5fad7f879cb33c4b0f534e60203393a380f35b630db2c7f160e31b8352600483fd5b6109e0565b634e487b7160e01b85526011600452602485fd5b81610a46916125d9565b610a5157835f61099b565b8380fd5b6040513d84823e3d90fd5b9250506020823d602011610a94575b81610a7c602093836125d9565b81010312610a905761096086925190610948565b5f80fd5b3d9150610a6f565b6040513d85823e3d90fd5b63c988bc4f60e01b8552600485fd5b90506020813d602011610ae0575b81610ad1602093836125d9565b81010312610a9057515f61091a565b3d9150610ac4565b6040513d87823e3d90fd5b91925003610c3e57506004828101546040516370a0823160e01b815233928101929092526001600160a01b03169290602081602481875afa908115610ae8578591610c0c575b508015610aa7576040516318160ddd60e01b8152859190602081600481895afa908115610a9c578391610bd4575b50610b7a9061095b600a8601548461265a565b94803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610bbf575b5050600a906109a1565b81610bc9916125d9565b610a5157835f610bb5565b9250506020823d602011610c04575b81610bf0602093836125d9565b81010312610a9057610b7a86925190610b67565b3d9150610be3565b90506020813d602011610c36575b81610c27602093836125d9565b81010312610a9057515f610b39565b3d9150610c1a565b916040516370a0823160e01b8152336004820152602081602481875afa908115610ae8578591610eca575b506004820160018060a01b0381541691604051926370a0823160e01b8452336004850152602084602481845afa938415610ebf578894610e8b575b50610caf848361262d565b908115610e7c576040516318160ddd60e01b81528995949392916020826004818d5afa918215610e3a578792610e45575b50906020600492604051938480926318160ddd60e01b82525afa918215610e3a578792610e00575b50610d1a610d26939261095b9261262d565b91600a8901549061265a565b9681610d9f575b505081610d40575b505050600a906109a1565b546001600160a01b0316803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610d8a575b80610d35565b81610d94916125d9565b610a5157835f610d84565b803b15610dfc57604051632770a7eb60e21b8152336004820152602481019290925284908290604490829084905af1908115610df157849115610d2d5781610de6916125d9565b61025057825f610d2d565b6040513d86823e3d90fd5b8480fd5b92915095506020823d602011610e32575b81610e1e602093836125d9565b81010312610a905790518995610d1a610d08565b3d9150610e11565b6040513d89823e3d90fd5b915095506020813d602011610e74575b81610e62602093836125d9565b81010312610a90575189956020610ce0565b3d9150610e55565b63c988bc4f60e01b8952600489fd5b9093506020813d602011610eb7575b81610ea7602093836125d9565b81010312610a905751925f610ca4565b3d9150610e9a565b6040513d8a823e3d90fd5b90506020813d602011610ef4575b81610ee5602093836125d9565b81010312610a9057515f610c69565b3d9150610ed8565b63174b639360e11b8552600485fd5b6307db1be560e41b8552600485fd5b503461025457600490610f2c3661240a565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102f59250505057630a85dc2960e01b8152fd5b506020366003190112610a90576040516307feec1960e21b81523360048281019190915235906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611146575b5015611137573415611128575f81815260208190526040902060038101546001600160a01b031680156111195760ff60078301541661110a57803b15610a90576040516340c10f1960e01b8152336004820152346024820152905f908290604490829084905af180156110ff576110ea575b50600481015483906001600160a01b0316803b1561084f576040516340c10f1960e01b81523360048201523460248201529082908290604490829084905af18015610a55576110d5575b5050600a016110a334825461262d565b9055604051903482527fef616469a0b35ce807813d17c53c505b9d4796a93287cd361318dbca99ac925060203393a380f35b816110df916125d9565b61025057825f611093565b6110f79193505f906125d9565b5f915f611049565b6040513d5f823e3d90fd5b63aa43cb2d60e01b5f5260045ffd5b6307db1be560e41b5f5260045ffd5b630856e64360e21b5f5260045ffd5b637b5b95df60e11b5f5260045ffd5b611168915060203d60201161116e575b61116081836125d9565b8101906125fa565b5f610fd7565b503d611156565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a9057610100366003190112610a90576111d3612364565b5060a0366023190112610a90576111e8612473565b5060e4358060020b03610a90577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361123457630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610a90576112513661240a565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506112349250505057630a85dc2960e01b5f5260045ffd5b34610a905760a0366003190112610a90576004356001600160401b038111610a90576112c990369060040161237a565b6024356001600160401b038111610a90576112e890369060040161237a565b90916044356001600160401b038111610a905761130990369060040161237a565b6040516307feec1960e21b815233600482015291959093606435926020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611985575b5015611137576002546040516113ac8160208101936080855261138c8c8b60a085019161263a565b90426040840152336060840152608083015203601f1981018352826125d9565b51902095604051916a021a620ab902ca2a99016960ad1b60208401528689602b8501376113ec602b848981015f838201520301601f1981018552846125d9565b60405192610bc7938481018181106001600160401b03821117611708578160409161142661271595898785396060835260608301906124e0565b9080820360208201526005825264636c59455360d81b602083015283309101520301905ff09384156110ff576040519069021a620ab9027279016960b51b6020830152898c602a84013761148d602a838c81015f838201520301601f1981018452836125d9565b60405192818401908482106001600160401b038311176117085760409385936114c09285396060835260608301906124e0565b9080820360208201526004825263636c4e4f60e01b602083015283309101520301905ff09384156110ff5785611954575b885f525f60205260405f20966001600160401b038911611708576115158854612504565b601f811161190f575b50885f601f82116001146118ab575f916118a0575b508960011b905f198b60031b1c19161788555b60018801916001600160401b0382116117085781906115658454612504565b601f8111611850575b505f90601f83116001146117e9575f926117de575b50508160011b915f199060031b1c19161790555b60028601916001600160401b0382116117085781906115b68454612504565b601f811161178e575b505f90601f8311600114611727575f9261171c575b50508160011b915f199060031b1c19161790555b600384019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055600483019060018060a01b03166bffffffffffffffffffffffff60a01b82541617905560058201556006608435910155600354680100000000000000008110156117085760018101806003558110156116f45760035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018290556002545f1981146116e0577ff01ffee5464a2d2e852ed09b876d89913609461936ccf9e41a1d05778f7867cb6116d5602095600186940160025560405191829188835233968984019161263a565b0390a3604051908152f35b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b013590508a806115d4565b909150601f19831691845f5260205f20925f5b818110611776575090846001959493921061175d575b505050811b0190556115e8565b01355f19600384901b60f8161c191690558a8080611750565b9193602060018192878701358155019501920161173a565b909150835f5260205f20601f840160051c810191602085106117d4575b90601f859493920160051c01905b8181106117c657506115bf565b5f81558493506001016117b9565b90915081906117ab565b013590508c80611583565b909150601f19831691845f5260205f20925f5b818110611838575090846001959493921061181f575b505050811b019055611597565b01355f19600384901b60f8161c191690558c8080611812565b919360206001819287870135815501950192016117fc565b909150835f5260205f20601f840160051c81019160208510611896575b90601f859493920160051c01905b818110611888575061156e565b5f815584935060010161187b565b909150819061186d565b90508b01358c611533565b5f8a8152602081209290601f198216908f5b8282106118f4575050106118db575b5050600189811b018855611546565b8c01355f1960038c901b60f8161c191690558b806118cc565b84013585556001909401936020938401938e9350018f6118bd565b885f5260205f20601f8b0160051c81019160208c1061194a575b601f0160051c01905b81811061193f575061151e565b5f8155600101611932565b9091508190611929565b6119808630337f000000000000000000000000000000000000000000000000000000000000000061268b565b6114f1565b61199e915060203d60201161116e5761116081836125d9565b88611364565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a9057610140366003190112610a9057611a02612364565b5060a0366023190112610a905760603660c3190112610a9057610124356001600160401b038111610a9057611a3b90369060040161237a565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611234576040516307feec1960e21b81523260048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611ae3575b50156111375760606040516315d7892d60e21b81525f60208201525f6040820152f35b611afc915060203d60201161116e5761116081836125d9565b81611ac0565b34610a90576040366003190112610a90576004356024356001600160401b038111610a9057611b3590369060040161237a565b6040516307feec1960e21b81523360048201529192916020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f916120e5575b501561113757815f525f60205260405f209260018060a01b03600385015416156111195760ff60078501541661110a576008840180546120d657611bce83612612565b611bdb60405191826125d9565b83815260208101903685850111610a9057848483375f6020868301015251902090604051611c10816106378160018b0161253c565b60208151910120604051611c2b816106378160028c0161253c565b602081519101209083141590816120cb575b5080612099575b61208a57604051634360af3d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000818116600484018190529890927f000000000000000000000000000000000000000000000000000000000000000090921691602081602481865afa9081156110ff575f91612058575b50600682015490808211156120505750925b611ce58430338461268b565b611cf360058301548561262d565b9060405163095ea7b360e01b5f52846004528260245260205f60448180865af19060015f5114821615612041575b60405215611f68575b5050866040519167026b0b935b2ba1d160c51b6020840152875f91805490611d5182612504565b9160018116908115611f405750600114611efd575b505092611db560016014838686611ddc9860209c9b9a730171020b9b9b2b93a32b21037baba31b7b6b29d160651b5f9a528583013701601760f91b838201520301601e198101845201826125d9565b604051636457c97960e01b815261012060048201529b8c95869485936101248501906124e0565b913360248501523060448501528460648501526001600160401b037f000000000000000000000000000000000000000000000000000000000000000016608485015260a484015260c48301527f000000000000000000000000000000000000000000000000000000000000000060e48301528261010483015203925af19586156110ff575f96611ebf575b5091611eb1917fab12f57da170bb2466605c5ae79facc28eedb88c90b187555e5def705b0e09fb9493875f5260016020528660405f2055556040519260408452604084019161263a565b9360208201528033940390a3005b9193929095506020823d602011611ef5575b81611ede602093836125d9565b81010312610a905790519491929091611eb1611e67565b3d9150611ed1565b909192505f5260205f205f905b828210611f23575050830160280190611db56001611d66565b8054602883880101528b94508a9350602090910190600101611f0a565b60ff191660288089019190915283151590930287019092019350611db5915060019050611d66565b60405163095ea7b360e01b5f52846004525f60245260205f60448180865af19060015f5114821615612020575b6040521561200d576040519163095ea7b360e01b5f528460045260245260205f60448180855af19060015f5114821615611fee575b509060405215611fdb578980611d2a565b88635274afe760e01b5f5260045260245ffd5b6001821516612004573b15153d1516168b611fca565b823d5f823e3d90fd5b8a635274afe760e01b5f5260045260245ffd5b90600181151661203857823b15153d15161690611f95565b503d5f823e3d90fd5b90823b15153d15161690611d21565b905092611cd9565b90506020813d602011612082575b81612073602093836125d9565b81010312610a9057518a611cc7565b3d9150612066565b63c74a206d60e01b5f5260045ffd5b50600c60206040516120ac6040826125d9565b828152016b556e7265736f6c7661626c6560a01b815220821415611c44565b905082141587611c3d565b630aefc5a560e31b5f5260045ffd5b6120fe915060203d60201161116e5761116081836125d9565b84611b8b565b34610a90575f366003190112610a905760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610a90575f366003190112610a90576040518060206003549283815201809260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b905f5b8181106121e757505050816121a59103826125d9565b604051918291602083019060208452518091526040830191905f5b8181106121ce575050500390f35b82518452859450602093840193909201916001016121c0565b825484526020909301926001928301920161218f565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a905761224f366123a7565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330391506112349050576040516307feec1960e21b81523260048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f916122f1575b50156111375760405163259982e560e01b8152602090f35b61230a915060203d60201161116e5761116081836125d9565b816122d9565b34610a905761231e366123a7565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150611234905057630a85dc2960e01b5f5260045ffd5b600435906001600160a01b0382168203610a9057565b9181601f84011215610a90578235916001600160401b038311610a905760208381860195010111610a9057565b90610160600319830112610a90576004356001600160a01b0381168103610a90579160a0602319820112610a9057602491608060c319830112610a905760c49161014435906001600160401b038211610a90576124069160040161237a565b9091565b906101a0600319830112610a90576004356001600160a01b0381168103610a90579160a0602319820112610a9057602491608060c319830112610a905760c4916101443591610164359161018435906001600160401b038211610a90576124069160040161237a565b60c435906001600160a01b0382168203610a9057565b610120600319820112610a90576004356001600160a01b0381168103610a90579160a0602319830112610a905760249160c4359160e4359161010435906001600160401b038211610a90576124069160040161237a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90600182811c92168015612532575b602083101461251e57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612513565b5f929181549161254b83612504565b80835292600181169081156125a0575060011461256757505050565b5f9081526020812093945091925b838310612586575060209250010190565b600181602092949394548385870101520191019190612575565b915050602093945060ff929192191683830152151560051b010190565b6101c081019081106001600160401b0382111761170857604052565b90601f801991011681019081106001600160401b0382111761170857604052565b90816020910312610a9057518015158103610a905790565b6001600160401b03811161170857601f01601f191660200190565b919082018092116116e057565b908060209392818452848401375f828201840152601f01601f1916010190565b818102929181159184041417156116e057565b8115612677570490565b634e487b7160e01b5f52601260045260245ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f51148216156126fc575b6040525f606052156126dc5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661203857823b15153d151616906126cd56fe60a06040523461034457610bc78038038061001981610348565b9283398101906060818303126103445780516001600160401b038111610344578261004591830161036d565b60208201519092906001600160401b0381116103445760409161006991840161036d565b9101516001600160a01b03811681036103445782516001600160401b03811161025557600354600181811c9116801561033a575b602082101461023757601f81116102d7575b506020601f821160011461027457819293945f92610269575b50508160011b915f199060031b1c1916176003555b81516001600160401b03811161025557600454600181811c9116801561024b575b602082101461023757601f81116101d4575b50602092601f821160011461017357928192935f92610168575b50508160011b915f199060031b1c1916176004555b60805260405161080890816103bf82396080518181816101440152818161034301526103c80152f35b015190505f8061012a565b601f1982169360045f52805f20915f5b8681106101bc57508360019596106101a4575b505050811b0160045561013f565b01515f1960f88460031b161c191690555f8080610196565b91926020600181928685015181550194019201610183565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061022d575b601f0160051c01905b8181106102225750610110565b5f8155600101610215565b909150819061020c565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100fe565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100c8565b601f1982169060035f52805f20915f5b8181106102bf575095836001959697106102a7575b505050811b016003556100dd565b01515f1960f88460031b161c191690555f8080610299565b9192602060018192868b015181550194019201610284565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610330575b601f0160051c01905b81811061032557506100af565b5f8155600101610318565b909150819061030f565b90607f169061009d565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761025557604052565b81601f82011215610344578051906001600160401b0382116102555761039c601f8301601f1916602001610348565b928284526020838301011161034457815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461061657508063095ea7b31461059457806318160ddd1461057757806323b872dd14610498578063313ce5671461047d57806340c10f19146103a957806370a08231146103725780637f5a7c7b1461032e57806395d89b41146102135780639dc29fac14610125578063a9059cbb146100f45763dd62ed3e146100a0575f80fd5b346100f05760403660031901126100f0576100b961070f565b6100c1610725565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100f05760403660031901126100f05761011a61011061070f565b602435903361073b565b602060405160018152f35b346100f05760403660031901126100f05761013e61070f565b602435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610204576001600160a01b031680156101f157805f525f60205260405f20548281106101d8576020835f947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3005b9063391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b635a91834f60e01b5f5260045ffd5b346100f0575f3660031901126100f0576040515f6004548060011c90600181168015610324575b602083108114610310578285529081156102f4575060011461029f575b50819003601f01601f191681019067ffffffffffffffff82118183101761028b57610287829182604052826106e5565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102de57506020915082010182610257565b60018160209254838588010152019101906102c9565b90506020925060ff191682840152151560051b82010182610257565b634e487b7160e01b5f52602260045260245ffd5b91607f169161023a565b346100f0575f3660031901126100f0576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100f05760203660031901126100f0576001600160a01b0361039361070f565b165f525f602052602060405f2054604051908152f35b346100f05760403660031901126100f0576103c261070f565b602435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610204576001600160a01b031690811561046a57600254908082018092116104565760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b346100f0575f3660031901126100f057602060405160128152f35b346100f05760603660031901126100f0576104b161070f565b6104b9610725565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104f7575b5061011a935061073b565b83811061055c5784156105495733156105365761011a945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104ec565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b346100f0575f3660031901126100f0576020600254604051908152f35b346100f05760403660031901126100f0576105ad61070f565b602435903315610549576001600160a01b031690811561053657335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100f0575f3660031901126100f0575f6003548060011c906001811680156106db575b602083108114610310578285529081156102f457506001146106865750819003601f01601f191681019067ffffffffffffffff82118183101761028b57610287829182604052826106e5565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b8282106106c557506020915082010182610257565b60018160209254838588010152019101906106b0565b91607f169161063a565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f057565b602435906001600160a01b03821682036100f057565b6001600160a01b03169081156101f1576001600160a01b031691821561046a57815f525f60205260405f20548181106107b957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffdfea26469706673582212209e2c80f9ddb0d9d45b19eb0141e39e64516de5237e97798ae0cb24aa56d56f6c64736f6c634300081a0033a26469706673582212200cf390336e1344374c0cd0f359641b5c31bc8a895b29a64e67cebaca58e5dc0664736f6c634300081a0033","sourceMap":"4657:27451:32:-:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;782:26:28;-1:-1:-1;4657:27451:32;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;:::i;:::-;;;;13446:570;4657:27451;13446:570;;4657:27451;;;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;;;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;13446:570;;4657:27451;13446:570;4657:27451;;899:4:30;16467:29:18;:34;;;3729:166;;;-1:-1:-1;3729:265:18;;;;-1:-1:-1;3729:362:18;;;;-1:-1:-1;3729:467:18;;;;-1:-1:-1;3729:570:18;;;;-1:-1:-1;3729:652:18;;;;-1:-1:-1;3729:732:18;;;;-1:-1:-1;3729:818:18;;;;-1:-1:-1;3729:902:18;;;;-1:-1:-1;3729:1009:18;;;;-1:-1:-1;3729:1114:18;;;;-1:-1:-1;3729:1236:18;;;;-1:-1:-1;3729:1384:18;;;;-1:-1:-1;3712:1491:18;;12796:23:32;12644:22;4657:27451;12644:22;4657:27451;12644:22;4657:27451;12676:10;4657:27451;12696:22;4657:27451;12728:36;4657:27451;;;;;;;;;12796:23;;;;;;;;;-1:-1:-1;12796:23:32;;;-1:-1:-1;12774:45:32;4657:27451;12774:45;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12796:23;;;4657:27451;12796:23;;4657:27451;12796:23;;;;;;4657:27451;12796:23;;;:::i;:::-;;;4657:27451;;;;;12796:23;;;4657:27451;-1:-1:-1;4657:27451:32;;12796:23;;;-1:-1:-1;12796:23:32;;;4657:27451;;;-1:-1:-1;4657:27451:32;;;;;3712:1491:18;5138:28;;;-1:-1:-1;1084:176:17;899:4:30;1084:176:17;;;-1:-1:-1;1084:176:17;3729:1384:18;5052:61;4657:27451:32;899:4:30;16467:29:18;:34;;3729:1384;;:1236;4907:58;4657:27451:32;899:4:30;16467:29:18;:34;;3729:1236;;:1114;4794:49;4657:27451:32;899:4:30;16467:29:18;:34;;3729:1114;;:1009;4688:50;4657:27451:32;899:4:30;16467:29:18;:34;;3729:1009;;:902;4594:37;4657:27451:32;899:4:30;16467:29:18;:34;;3729:902;;:818;4509:38;4657:27451:32;899:4:30;16467:29:18;:34;;3729:818;;:732;4426:35;4657:27451:32;899:4:30;16467:29:18;:34;;3729:732;;:652;4345:36;4657:27451:32;899:4:30;16467:29:18;:34;;4657:27451:32;4319:62:18;;3729:652;;:570;4252:47;4657:27451:32;899:4:30;16467:29:18;:34;;3729:570;;:467;4148:48;4657:27451:32;899:4:30;16467:29:18;:34;;3729:467;;:362;4047:44;4657:27451:32;899:4:30;16467:29:18;:34;;3729:362;;:265;3949:45;4657:27451:32;899:4:30;16467:29:18;:34;;4657:27451:32;3915:79:18;;3729:265;;:166;3854:41;4657:27451:32;899:4:30;16467:29:18;:34;;3729:166;;4657:27451:32;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;:::o;:::-;;;;-1:-1:-1;4657:27451:32;;;;;-1:-1:-1;4657:27451:32;;;;;;-1:-1:-1;;4657:27451:32;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f803560e01c806321d0ee7014612310578063259982e5146122415780632a663606146121fd578063398c6f7e146121475780633ec7469214612104578063565429a814611b02578063575e24b4146119e85780635998013f146119a45780635cb1cc0b146112995780636c2bbe7e146112435780636fe7e6eb146111b95780637ec1be7614611175578063812e1a7b14610f715780639f063efc14610f1a578063acd98e2914610853578063b47b2fb1146107bb578063b6a8b0fa1461029f578063c3c95c7b146106fb578063c480e488146105e8578063c4e833ce1461047f578063d448a4ec146103f0578063d6a9b1bc146103b5578063dc4c90d314610370578063dc98354e14610301578063e1b4af691461029f578063e74d916d14610275578063e88dc465146102575763f1b156b214610159575061000e565b34610254576040366003190112610254576004356024358015158103610250577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610241578183526001602052604083205491828452836020528360408120925f1461020d575050602060088260077f81e6139d4590ae37e3bcbb2dc42f1a436d8350fd4aab6319f9c3bb2dbbca83149401600160ff198254161790550154604051908152a280f35b9060209160087fbc19aba8b34ebe13f2c82d885af0ad7f5fdcb0a8f316d7e7a082a9c36577e12c940155604051908152a280f35b6380fee10560e01b8352600483fd5b8280fd5b80fd5b50346102545780600319360112610254576020600254604051908152f35b50346102545760203660031901126102545760406020916004358152600183522054604051908152f35b5034610254576004906102b136612489565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102f591505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346102545760e03660031901126102545761031b612364565b5060a036602319011261025457600490610333612473565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f557630a85dc2960e01b8152fd5b50346102545780600319360112610254576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461025457806003193601126102545760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5034610254576020366003190112610254576004357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104705780825260016020527fb0b7745dbc52ca54ee13627e6cabcdd84d9b9e98d4e7882af6daf1dae0747da76020604084205492604051908152a280f35b6380fee10560e01b8252600482fd5b5034610254578060031936011261025457806101c0916101a06040516104a4816125bd565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152015260405190610503826125bd565b80825260208201918183526040810160018152606082018381526080830184815260a0840185815260c085016001815260e08601908782526101008701928884526101208801948986526101408901968a88526101608a01988b8a526101a06101808c019b8d8d52019b808d5260206040519e8f92835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346102545760203660031901126102545760409060043581528060205220610160604051916106238361061c818461253c565b03846125d9565b60405161063e81610637816001860161253c565b03826125d9565b604051916106538361061c816002850161253c565b60018060a01b036003820154169260018060a01b03600483015416600583015460068401549060ff600786015416926106c96008870154956106bb600a60098a0154990154996106ad6040519e8f9e8f81815201906124e0565b8d810360208f0152906124e0565b908b820360408d01526124e0565b9760608a0152608089015260a088015260c0870152151560e08601526101008501526101208401526101408301520390f35b503461025457602036600319011261025457610160604061077f926004358152806020522060018060a01b036003820154169060018060a01b036004820154166005820154600683015460ff600785015416906008850154926009860154946106c960026106bb600a8a0154996040519d8e80610778818561253c565b03906125d9565b6107a7604051916107978361061c816001850161253c565b61061c604051809681930161253c565b6106ad6040519e8f9e8f81815201906124e0565b503461025457610160366003190112610254576107d6612364565b5060a03660231901126102545760603660c319011261025457610144356001600160401b03811161084f57906108116004923690840161237a565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f557630a85dc2960e01b8152fd5b5080fd5b5034610254576020366003190112610254576004358082526020829052604082206003810180549192916001600160a01b03168015610f0b5760ff60078501541615610efc576040516108ad81610637816001890161253c565b602081519101206040516108c8816106378160028a0161253c565b602081519101209060088601549081145f14610af357505090546040516370a0823160e01b81523360048201526001600160a01b03909116939150602081602481875afa908115610ae8578591610ab6575b508015610aa7576040516318160ddd60e01b8152859190602081600481895afa908115610a9c578391610a60575b506109609061095b600a8601548461265a565b61266d565b94803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610a3c575b5050600a905b01805490838203918211610a2857558280808085335af13d15610a23573d6109c881612612565b906109d660405192836125d9565b81528460203d92013e5b15610a14576040519182527f81230ad21489f10370ac678b2d388ac8e10c34303c5fad7f879cb33c4b0f534e60203393a380f35b630db2c7f160e31b8352600483fd5b6109e0565b634e487b7160e01b85526011600452602485fd5b81610a46916125d9565b610a5157835f61099b565b8380fd5b6040513d84823e3d90fd5b9250506020823d602011610a94575b81610a7c602093836125d9565b81010312610a905761096086925190610948565b5f80fd5b3d9150610a6f565b6040513d85823e3d90fd5b63c988bc4f60e01b8552600485fd5b90506020813d602011610ae0575b81610ad1602093836125d9565b81010312610a9057515f61091a565b3d9150610ac4565b6040513d87823e3d90fd5b91925003610c3e57506004828101546040516370a0823160e01b815233928101929092526001600160a01b03169290602081602481875afa908115610ae8578591610c0c575b508015610aa7576040516318160ddd60e01b8152859190602081600481895afa908115610a9c578391610bd4575b50610b7a9061095b600a8601548461265a565b94803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610bbf575b5050600a906109a1565b81610bc9916125d9565b610a5157835f610bb5565b9250506020823d602011610c04575b81610bf0602093836125d9565b81010312610a9057610b7a86925190610b67565b3d9150610be3565b90506020813d602011610c36575b81610c27602093836125d9565b81010312610a9057515f610b39565b3d9150610c1a565b916040516370a0823160e01b8152336004820152602081602481875afa908115610ae8578591610eca575b506004820160018060a01b0381541691604051926370a0823160e01b8452336004850152602084602481845afa938415610ebf578894610e8b575b50610caf848361262d565b908115610e7c576040516318160ddd60e01b81528995949392916020826004818d5afa918215610e3a578792610e45575b50906020600492604051938480926318160ddd60e01b82525afa918215610e3a578792610e00575b50610d1a610d26939261095b9261262d565b91600a8901549061265a565b9681610d9f575b505081610d40575b505050600a906109a1565b546001600160a01b0316803b1561025057604051632770a7eb60e21b8152336004820152602481019290925282908290604490829084905af18015610a5557610d8a575b80610d35565b81610d94916125d9565b610a5157835f610d84565b803b15610dfc57604051632770a7eb60e21b8152336004820152602481019290925284908290604490829084905af1908115610df157849115610d2d5781610de6916125d9565b61025057825f610d2d565b6040513d86823e3d90fd5b8480fd5b92915095506020823d602011610e32575b81610e1e602093836125d9565b81010312610a905790518995610d1a610d08565b3d9150610e11565b6040513d89823e3d90fd5b915095506020813d602011610e74575b81610e62602093836125d9565b81010312610a90575189956020610ce0565b3d9150610e55565b63c988bc4f60e01b8952600489fd5b9093506020813d602011610eb7575b81610ea7602093836125d9565b81010312610a905751925f610ca4565b3d9150610e9a565b6040513d8a823e3d90fd5b90506020813d602011610ef4575b81610ee5602093836125d9565b81010312610a9057515f610c69565b3d9150610ed8565b63174b639360e11b8552600485fd5b6307db1be560e41b8552600485fd5b503461025457600490610f2c3661240a565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102f59250505057630a85dc2960e01b8152fd5b506020366003190112610a90576040516307feec1960e21b81523360048281019190915235906020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611146575b5015611137573415611128575f81815260208190526040902060038101546001600160a01b031680156111195760ff60078301541661110a57803b15610a90576040516340c10f1960e01b8152336004820152346024820152905f908290604490829084905af180156110ff576110ea575b50600481015483906001600160a01b0316803b1561084f576040516340c10f1960e01b81523360048201523460248201529082908290604490829084905af18015610a55576110d5575b5050600a016110a334825461262d565b9055604051903482527fef616469a0b35ce807813d17c53c505b9d4796a93287cd361318dbca99ac925060203393a380f35b816110df916125d9565b61025057825f611093565b6110f79193505f906125d9565b5f915f611049565b6040513d5f823e3d90fd5b63aa43cb2d60e01b5f5260045ffd5b6307db1be560e41b5f5260045ffd5b630856e64360e21b5f5260045ffd5b637b5b95df60e11b5f5260045ffd5b611168915060203d60201161116e575b61116081836125d9565b8101906125fa565b5f610fd7565b503d611156565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a9057610100366003190112610a90576111d3612364565b5060a0366023190112610a90576111e8612473565b5060e4358060020b03610a90577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361123457630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610a90576112513661240a565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506112349250505057630a85dc2960e01b5f5260045ffd5b34610a905760a0366003190112610a90576004356001600160401b038111610a90576112c990369060040161237a565b6024356001600160401b038111610a90576112e890369060040161237a565b90916044356001600160401b038111610a905761130990369060040161237a565b6040516307feec1960e21b815233600482015291959093606435926020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611985575b5015611137576002546040516113ac8160208101936080855261138c8c8b60a085019161263a565b90426040840152336060840152608083015203601f1981018352826125d9565b51902095604051916a021a620ab902ca2a99016960ad1b60208401528689602b8501376113ec602b848981015f838201520301601f1981018552846125d9565b60405192610bc7938481018181106001600160401b03821117611708578160409161142661271595898785396060835260608301906124e0565b9080820360208201526005825264636c59455360d81b602083015283309101520301905ff09384156110ff576040519069021a620ab9027279016960b51b6020830152898c602a84013761148d602a838c81015f838201520301601f1981018452836125d9565b60405192818401908482106001600160401b038311176117085760409385936114c09285396060835260608301906124e0565b9080820360208201526004825263636c4e4f60e01b602083015283309101520301905ff09384156110ff5785611954575b885f525f60205260405f20966001600160401b038911611708576115158854612504565b601f811161190f575b50885f601f82116001146118ab575f916118a0575b508960011b905f198b60031b1c19161788555b60018801916001600160401b0382116117085781906115658454612504565b601f8111611850575b505f90601f83116001146117e9575f926117de575b50508160011b915f199060031b1c19161790555b60028601916001600160401b0382116117085781906115b68454612504565b601f811161178e575b505f90601f8311600114611727575f9261171c575b50508160011b915f199060031b1c19161790555b600384019060018060a01b03166bffffffffffffffffffffffff60a01b825416179055600483019060018060a01b03166bffffffffffffffffffffffff60a01b82541617905560058201556006608435910155600354680100000000000000008110156117085760018101806003558110156116f45760035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b018290556002545f1981146116e0577ff01ffee5464a2d2e852ed09b876d89913609461936ccf9e41a1d05778f7867cb6116d5602095600186940160025560405191829188835233968984019161263a565b0390a3604051908152f35b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b013590508a806115d4565b909150601f19831691845f5260205f20925f5b818110611776575090846001959493921061175d575b505050811b0190556115e8565b01355f19600384901b60f8161c191690558a8080611750565b9193602060018192878701358155019501920161173a565b909150835f5260205f20601f840160051c810191602085106117d4575b90601f859493920160051c01905b8181106117c657506115bf565b5f81558493506001016117b9565b90915081906117ab565b013590508c80611583565b909150601f19831691845f5260205f20925f5b818110611838575090846001959493921061181f575b505050811b019055611597565b01355f19600384901b60f8161c191690558c8080611812565b919360206001819287870135815501950192016117fc565b909150835f5260205f20601f840160051c81019160208510611896575b90601f859493920160051c01905b818110611888575061156e565b5f815584935060010161187b565b909150819061186d565b90508b01358c611533565b5f8a8152602081209290601f198216908f5b8282106118f4575050106118db575b5050600189811b018855611546565b8c01355f1960038c901b60f8161c191690558b806118cc565b84013585556001909401936020938401938e9350018f6118bd565b885f5260205f20601f8b0160051c81019160208c1061194a575b601f0160051c01905b81811061193f575061151e565b5f8155600101611932565b9091508190611929565b6119808630337f000000000000000000000000000000000000000000000000000000000000000061268b565b6114f1565b61199e915060203d60201161116e5761116081836125d9565b88611364565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a9057610140366003190112610a9057611a02612364565b5060a0366023190112610a905760603660c3190112610a9057610124356001600160401b038111610a9057611a3b90369060040161237a565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303611234576040516307feec1960e21b81523260048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f91611ae3575b50156111375760606040516315d7892d60e21b81525f60208201525f6040820152f35b611afc915060203d60201161116e5761116081836125d9565b81611ac0565b34610a90576040366003190112610a90576004356024356001600160401b038111610a9057611b3590369060040161237a565b6040516307feec1960e21b81523360048201529192916020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f916120e5575b501561113757815f525f60205260405f209260018060a01b03600385015416156111195760ff60078501541661110a576008840180546120d657611bce83612612565b611bdb60405191826125d9565b83815260208101903685850111610a9057848483375f6020868301015251902090604051611c10816106378160018b0161253c565b60208151910120604051611c2b816106378160028c0161253c565b602081519101209083141590816120cb575b5080612099575b61208a57604051634360af3d60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000818116600484018190529890927f000000000000000000000000000000000000000000000000000000000000000090921691602081602481865afa9081156110ff575f91612058575b50600682015490808211156120505750925b611ce58430338461268b565b611cf360058301548561262d565b9060405163095ea7b360e01b5f52846004528260245260205f60448180865af19060015f5114821615612041575b60405215611f68575b5050866040519167026b0b935b2ba1d160c51b6020840152875f91805490611d5182612504565b9160018116908115611f405750600114611efd575b505092611db560016014838686611ddc9860209c9b9a730171020b9b9b2b93a32b21037baba31b7b6b29d160651b5f9a528583013701601760f91b838201520301601e198101845201826125d9565b604051636457c97960e01b815261012060048201529b8c95869485936101248501906124e0565b913360248501523060448501528460648501526001600160401b037f000000000000000000000000000000000000000000000000000000000000000016608485015260a484015260c48301527f000000000000000000000000000000000000000000000000000000000000000060e48301528261010483015203925af19586156110ff575f96611ebf575b5091611eb1917fab12f57da170bb2466605c5ae79facc28eedb88c90b187555e5def705b0e09fb9493875f5260016020528660405f2055556040519260408452604084019161263a565b9360208201528033940390a3005b9193929095506020823d602011611ef5575b81611ede602093836125d9565b81010312610a905790519491929091611eb1611e67565b3d9150611ed1565b909192505f5260205f205f905b828210611f23575050830160280190611db56001611d66565b8054602883880101528b94508a9350602090910190600101611f0a565b60ff191660288089019190915283151590930287019092019350611db5915060019050611d66565b60405163095ea7b360e01b5f52846004525f60245260205f60448180865af19060015f5114821615612020575b6040521561200d576040519163095ea7b360e01b5f528460045260245260205f60448180855af19060015f5114821615611fee575b509060405215611fdb578980611d2a565b88635274afe760e01b5f5260045260245ffd5b6001821516612004573b15153d1516168b611fca565b823d5f823e3d90fd5b8a635274afe760e01b5f5260045260245ffd5b90600181151661203857823b15153d15161690611f95565b503d5f823e3d90fd5b90823b15153d15161690611d21565b905092611cd9565b90506020813d602011612082575b81612073602093836125d9565b81010312610a9057518a611cc7565b3d9150612066565b63c74a206d60e01b5f5260045ffd5b50600c60206040516120ac6040826125d9565b828152016b556e7265736f6c7661626c6560a01b815220821415611c44565b905082141587611c3d565b630aefc5a560e31b5f5260045ffd5b6120fe915060203d60201161116e5761116081836125d9565b84611b8b565b34610a90575f366003190112610a905760206040516001600160401b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610a90575f366003190112610a90576040518060206003549283815201809260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b905f5b8181106121e757505050816121a59103826125d9565b604051918291602083019060208452518091526040830191905f5b8181106121ce575050500390f35b82518452859450602093840193909201916001016121c0565b825484526020909301926001928301920161218f565b34610a90575f366003190112610a90576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610a905761224f366123a7565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330391506112349050576040516307feec1960e21b81523260048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156110ff575f916122f1575b50156111375760405163259982e560e01b8152602090f35b61230a915060203d60201161116e5761116081836125d9565b816122d9565b34610a905761231e366123a7565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150611234905057630a85dc2960e01b5f5260045ffd5b600435906001600160a01b0382168203610a9057565b9181601f84011215610a90578235916001600160401b038311610a905760208381860195010111610a9057565b90610160600319830112610a90576004356001600160a01b0381168103610a90579160a0602319820112610a9057602491608060c319830112610a905760c49161014435906001600160401b038211610a90576124069160040161237a565b9091565b906101a0600319830112610a90576004356001600160a01b0381168103610a90579160a0602319820112610a9057602491608060c319830112610a905760c4916101443591610164359161018435906001600160401b038211610a90576124069160040161237a565b60c435906001600160a01b0382168203610a9057565b610120600319820112610a90576004356001600160a01b0381168103610a90579160a0602319830112610a905760249160c4359160e4359161010435906001600160401b038211610a90576124069160040161237a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90600182811c92168015612532575b602083101461251e57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691612513565b5f929181549161254b83612504565b80835292600181169081156125a0575060011461256757505050565b5f9081526020812093945091925b838310612586575060209250010190565b600181602092949394548385870101520191019190612575565b915050602093945060ff929192191683830152151560051b010190565b6101c081019081106001600160401b0382111761170857604052565b90601f801991011681019081106001600160401b0382111761170857604052565b90816020910312610a9057518015158103610a905790565b6001600160401b03811161170857601f01601f191660200190565b919082018092116116e057565b908060209392818452848401375f828201840152601f01601f1916010190565b818102929181159184041417156116e057565b8115612677570490565b634e487b7160e01b5f52601260045260245ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f51148216156126fc575b6040525f606052156126dc5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b90600181151661203857823b15153d151616906126cd56fe60a06040523461034457610bc78038038061001981610348565b9283398101906060818303126103445780516001600160401b038111610344578261004591830161036d565b60208201519092906001600160401b0381116103445760409161006991840161036d565b9101516001600160a01b03811681036103445782516001600160401b03811161025557600354600181811c9116801561033a575b602082101461023757601f81116102d7575b506020601f821160011461027457819293945f92610269575b50508160011b915f199060031b1c1916176003555b81516001600160401b03811161025557600454600181811c9116801561024b575b602082101461023757601f81116101d4575b50602092601f821160011461017357928192935f92610168575b50508160011b915f199060031b1c1916176004555b60805260405161080890816103bf82396080518181816101440152818161034301526103c80152f35b015190505f8061012a565b601f1982169360045f52805f20915f5b8681106101bc57508360019596106101a4575b505050811b0160045561013f565b01515f1960f88460031b161c191690555f8080610196565b91926020600181928685015181550194019201610183565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c8101916020841061022d575b601f0160051c01905b8181106102225750610110565b5f8155600101610215565b909150819061020c565b634e487b7160e01b5f52602260045260245ffd5b90607f16906100fe565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100c8565b601f1982169060035f52805f20915f5b8181106102bf575095836001959697106102a7575b505050811b016003556100dd565b01515f1960f88460031b161c191690555f8080610299565b9192602060018192868b015181550194019201610284565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c81019160208410610330575b601f0160051c01905b81811061032557506100af565b5f8155600101610318565b909150819061030f565b90607f169061009d565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761025557604052565b81601f82011215610344578051906001600160401b0382116102555761039c601f8301601f1916602001610348565b928284526020838301011161034457815f9260208093018386015e830101529056fe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde031461061657508063095ea7b31461059457806318160ddd1461057757806323b872dd14610498578063313ce5671461047d57806340c10f19146103a957806370a08231146103725780637f5a7c7b1461032e57806395d89b41146102135780639dc29fac14610125578063a9059cbb146100f45763dd62ed3e146100a0575f80fd5b346100f05760403660031901126100f0576100b961070f565b6100c1610725565b6001600160a01b039182165f908152600160209081526040808320949093168252928352819020549051908152f35b5f80fd5b346100f05760403660031901126100f05761011a61011061070f565b602435903361073b565b602060405160018152f35b346100f05760403660031901126100f05761013e61070f565b602435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610204576001600160a01b031680156101f157805f525f60205260405f20548281106101d8576020835f947fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587528684520360408620558060025403600255604051908152a3005b9063391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b635a91834f60e01b5f5260045ffd5b346100f0575f3660031901126100f0576040515f6004548060011c90600181168015610324575b602083108114610310578285529081156102f4575060011461029f575b50819003601f01601f191681019067ffffffffffffffff82118183101761028b57610287829182604052826106e5565b0390f35b634e487b7160e01b5f52604160045260245ffd5b905060045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5f905b8282106102de57506020915082010182610257565b60018160209254838588010152019101906102c9565b90506020925060ff191682840152151560051b82010182610257565b634e487b7160e01b5f52602260045260245ffd5b91607f169161023a565b346100f0575f3660031901126100f0576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346100f05760203660031901126100f0576001600160a01b0361039361070f565b165f525f602052602060405f2054604051908152f35b346100f05760403660031901126100f0576103c261070f565b602435907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610204576001600160a01b031690811561046a57600254908082018092116104565760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3005b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b346100f0575f3660031901126100f057602060405160128152f35b346100f05760603660031901126100f0576104b161070f565b6104b9610725565b6001600160a01b0382165f818152600160209081526040808320338452909152902054909260443592915f1981106104f7575b5061011a935061073b565b83811061055c5784156105495733156105365761011a945f52600160205260405f2060018060a01b0333165f526020528360405f2091039055846104ec565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b8390637dc7a0d960e11b5f523360045260245260445260645ffd5b346100f0575f3660031901126100f0576020600254604051908152f35b346100f05760403660031901126100f0576105ad61070f565b602435903315610549576001600160a01b031690811561053657335f52600160205260405f20825f526020528060405f20556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346100f0575f3660031901126100f0575f6003548060011c906001811680156106db575b602083108114610310578285529081156102f457506001146106865750819003601f01601f191681019067ffffffffffffffff82118183101761028b57610287829182604052826106e5565b905060035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f905b8282106106c557506020915082010182610257565b60018160209254838588010152019101906106b0565b91607f169161063a565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036100f057565b602435906001600160a01b03821682036100f057565b6001600160a01b03169081156101f1576001600160a01b031691821561046a57815f525f60205260405f20548181106107b957817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f84520360405f2055845f525f825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffdfea26469706673582212209e2c80f9ddb0d9d45b19eb0141e39e64516de5237e97798ae0cb24aa56d56f6c64736f6c634300081a0033a26469706673582212200cf390336e1344374c0cd0f359641b5c31bc8a895b29a64e67cebaca58e5dc0664736f6c634300081a0033","sourceMap":"4657:27451:32:-:0;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;24375:4;-1:-1:-1;;;;;4657:27451:32;24353:10;:27;24349:77;;4657:27451;;;;;;;;;;;;;;;;;;;;;24546:504;;;;;24699:10;;4657:27451;24760:19;24699:10;;24735:45;24699:10;;4657:27451;8045:32;;4657:27451;;;;;;24760:19;4657:27451;;;;;;24735:45;4657:27451;;24546:504;24950:19;4657:27451;24950:19;;25001:38;24950:19;;8045:32;4657:27451;;;;;25001:38;4657:27451;;24349:77;-1:-1:-1;;;24403:12:32;;4657:27451;25494:12;24403;4657:27451;;;;;;;;;;;;;;;;;;;;;7787:28;4657:27451;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;;-1:-1:-1;646:63:28;;-1:-1:-1;;646:63:28;-1:-1:-1;;;3575:20:30;;;646:63:28;-1:-1:-1;;;693:16:28;;;4657:27451:32;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;:::i;:::-;-1:-1:-1;4657:27451:32;;-1:-1:-1;;4657:27451:32;;;;;;;;:::i;:::-;-1:-1:-1;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;646:63;;-1:-1:-1;;;3575:20:30;;;4657:27451:32;;;;;;;;;;;;;;;411:41:28;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;6954:44;4657:27451;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;25466:4;-1:-1:-1;;;;;4657:27451:32;25444:10;:27;25440:77;;4657:27451;;;;;;25593:40;4657:27451;;;;;;;;;;;25593:40;4657:27451;;25440:77;-1:-1:-1;;;25494:12:32;;4657:27451;25494:12;;4657:27451;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;13446:570;;4657:27451;;;;;13446:570;;4657:27451;;;;13446:570;;4657:27451;;;;13446:570;;4657:27451;;;;13446:570;;4657:27451;;;;13446:570;;4657:27451;;;;13446:570;;4657:27451;;;;;13446:570;;4657:27451;;;;;13446:570;;4657:27451;;;;;13446:570;;4657:27451;;;;;13446:570;;4657:27451;;;;;;13446:570;;4657:27451;;;;13446:570;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;7525:43;4657:27451;7525:43;4657:27451;7525:43;;4657:27451;:::i;:::-;;;;:::i;:::-;;;7525:43;4657:27451;7525:43;4657:27451;7525:43;;;;4657:27451;:::i;:::-;;;;;;7525:43;;;4657:27451;;;;;;;;;7525:43;;4657:27451;;7525:43;;;4657:27451;7525:43;;;4657:27451;7525:43;4657:27451;7525:43;;;4657:27451;;7525:43;4657:27451;7525:43;;;4657:27451;7525:43;4657:27451;7525:43;;;;4657:27451;7525:43;;4657:27451;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;31512:15;;;4657:27451;;;;;;;;;31550:15;;4657:27451;;31580:8;;;4657:27451;31602:14;;;4657:27451;;31630:10;;;4657:27451;;31654:19;;;;4657:27451;31687:8;;;;4657:27451;31709:17;4657:27451;31480:10;4657:27451;31709:17;;;4657:27451;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;31456:10;4657:27451;31456:10;4657:27451;31456:10;4657:27451;31456:10;;4657:27451;:::i;:::-;;;;31480:10;;;;;4657:27451;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;:::i;:::-;-1:-1:-1;4657:27451:32;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;646:63;;-1:-1:-1;;;3575:20:30;;;4657:27451:32;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;26973:15;;;4657:27451;;;;;-1:-1:-1;;;;;4657:27451:32;26965:38;;26961:92;;4657:27451;27067:10;;;4657:27451;;27066:11;27062:68;;4657:27451;;;27179:10;4657:27451;27179:10;4657:27451;27179:10;;4657:27451;:::i;:::-;;;;;;27163:28;4657:27451;;;27240:10;4657:27451;27240:10;;;;4657:27451;:::i;:::-;;;;;;27224:28;27288:19;;;;4657:27451;27318:14;27347:31;;27343:1793;27347:31;;;-1:-1:-1;;4657:27451:32;;;;-1:-1:-1;;;27487:37:32;;27513:10;4657:27451;27487:37;;4657:27451;-1:-1:-1;;;;;4657:27451:32;;;;;-1:-1:-1;4657:27451:32;;27487:37;4657:27451;;27487:37;;;;;;;;;;;27343:1793;27542:12;;;27538:43;;4657:27451;;-1:-1:-1;;;27618:29:32;;4657:27451;;;;;;;27618:29;;;;;;;;;;;;27343:1793;27826:17;27815:43;27826:17;27816:27;27826:17;;;4657:27451;27816:27;;:::i;:::-;27815:43;:::i;:::-;27949:41;;;;;;4657:27451;;-1:-1:-1;;;27949:41:32;;27513:10;4657:27451;27949:41;;4657:27451;;;;;;;;;;;;;;;;;;27949:41;;;;;;;;27343:1793;;;29211:17;27343:1793;;29211:17;4657:27451;;;;;;;;;;;8045:32;29306:10;;;;;;:34;;4657:27451;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;29354:8;29350:40;;4657:27451;;;;;29406:43;4657:27451;29306:10;29406:43;;4657:27451;;29350:40;-1:-1:-1;;;29371:19:32;;4657:27451;29371:19;;4657:27451;;;;-1:-1:-1;;;8045:32:32;;;4657:27451;8045:32;;4657:27451;8045:32;27949:41;;;;;:::i;:::-;4657:27451;;27949:41;;;;4657:27451;;;;27949:41;4657:27451;;;;;;;;;27618:29;;;;4657:27451;27618:29;;4657:27451;27618:29;;;;;;8045:32;27618:29;;;:::i;:::-;;;8045:32;;;;27815:43;8045:32;;;27618:29;;;8045:32;-1:-1:-1;4657:27451:32;;27618:29;;;-1:-1:-1;27618:29:32;;;4657:27451;;;;;;;;;27538:43;-1:-1:-1;;;27563:18:32;;4657:27451;28752:18;27563;27487:37;;;4657:27451;27487:37;;4657:27451;27487:37;;;;;;8045:32;27487:37;;;:::i;:::-;;;8045:32;;;;;27487:37;;;;;;-1:-1:-1;27487:37:32;;;4657:27451;;;;;;;;;27343:1793;28011:31;;-1:-1:-1;28011:31:32;;;-1:-1:-1;4657:27451:32;28151:15;;;4657:27451;;;-1:-1:-1;;;28151:37:32;;28177:10;28151:37;;;4657:27451;;;;-1:-1:-1;;;;;4657:27451:32;;28151:15;4657:27451;;28151:37;4657:27451;;28151:37;;;;;;;;;;;28007:1129;28206:12;;;28202:43;;4657:27451;;-1:-1:-1;;;28282:29:32;;4657:27451;;;;;;;28282:29;;;;;;;;;;;;28007:1129;28345:17;28334:43;28345:17;28335:27;28345:17;;;4657:27451;28335:27;;:::i;28334:43::-;28392:41;;;;;;4657:27451;;-1:-1:-1;;;28392:41:32;;28177:10;4657:27451;28392:41;;4657:27451;;;;;;;;;;;;;;;;;;28392:41;;;;;;;;28007:1129;;;29211:17;28007:1129;27343:1793;;28392:41;;;;;:::i;:::-;4657:27451;;28392:41;;;;28282:29;;;;4657:27451;28282:29;;4657:27451;28282:29;;;;;;8045:32;28282:29;;;:::i;:::-;;;8045:32;;;;28334:43;8045:32;;;28282:29;;;;;;-1:-1:-1;28282:29:32;;28151:37;;;4657:27451;28151:37;;4657:27451;28151:37;;;;;;8045:32;28151:37;;;:::i;:::-;;;8045:32;;;;;28151:37;;;;;;-1:-1:-1;28151:37:32;;28007:1129;4657:27451;;;;;;28547:37;;28573:10;4657:27451;28547:37;;4657:27451;;28547:37;;;;;;;;;;;;;;;28007:1129;28617:15;4657:27451;28617:15;;4657:27451;;;;;;;;;;;;;;;28617:37;;28573:10;4657:27451;28617:37;;4657:27451;;28617:37;28547;28617;;;;;;;;;;;;;28007:1129;28690:19;;;;;:::i;:::-;28727:16;;;28723:47;;4657:27451;;-1:-1:-1;;;28807:29:32;;4657:27451;;;;;;;;;;28807:29;;;;;;;;;;;;28007:1129;4657:27451;;;;;;;;;;;;;;28839:29;;;;;;;;;;;;;28007:1129;28807:61;;28891:47;28807:61;;28892:31;28807:61;;:::i;:::-;28906:17;;;;4657:27451;28892:31;;:::i;28891:47::-;28995:12;;28991:60;;28007:1129;29069:12;;;29065:60;;28007:1129;;;;29211:17;28007:1129;27343:1793;;29065:60;4657:27451;-1:-1:-1;;;;;4657:27451:32;29083:42;;;;;4657:27451;;-1:-1:-1;;;29083:42:32;;28573:10;4657:27451;29083:42;;4657:27451;;;;;;;;;;;;;;;;;;29083:42;;;;;;;;29065:60;;;;29083:42;;;;;:::i;:::-;4657:27451;;29083:42;;;;28991:60;29009:42;;;;;4657:27451;;-1:-1:-1;;;29009:42:32;;28573:10;4657:27451;29009:42;;4657:27451;;;;;;;;;;;;;;;;;;29009:42;;;;;;;;;;28991:60;29009:42;;;;;:::i;:::-;4657:27451;;29009:42;;28991:60;;29009:42;4657:27451;;;;;;;;;29009:42;4657:27451;;;28839:29;;;;;;4657:27451;28839:29;;4657:27451;28839:29;;;;;;8045:32;28839:29;;;:::i;:::-;;;8045:32;;;;;;;;28807:61;28839:29;;;;;-1:-1:-1;28839:29:32;;;4657:27451;;;;;;;;;28807:29;;;;;4657:27451;28807:29;;4657:27451;28807:29;;;;;;8045:32;28807:29;;;:::i;:::-;;;8045:32;;;;;;;4657:27451;28807:29;;;;;-1:-1:-1;28807:29:32;;28723:47;-1:-1:-1;;;28752:18:32;;4657:27451;28752:18;;28617:37;;;;4657:27451;28617:37;;4657:27451;28617:37;;;;;;8045:32;28617:37;;;:::i;:::-;;;8045:32;;;;;28617:37;;;;;;;-1:-1:-1;28617:37:32;;;4657:27451;;;;;;;;;28547:37;;;4657:27451;28547:37;;4657:27451;28547:37;;;;;;8045:32;28547:37;;;:::i;:::-;;;8045:32;;;;;28547:37;;;;;;-1:-1:-1;28547:37:32;;27062:68;-1:-1:-1;;;27100:19:32;;4657:27451;27100:19;;26961:92;-1:-1:-1;;;27026:16:32;;4657:27451;21113:16;27026;4657:27451;;;;;;;;;;:::i;:::-;-1:-1:-1;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;;-1:-1:-1;646:63:28;;-1:-1:-1;;;646:63:28;-1:-1:-1;;;3575:20:30;;;4657:27451:32;-1:-1:-1;4657:27451:32;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;;19351:30:32;;19370:10;4657:27451;19351:30;;;4657:27451;;;;;;;;19351:30;4657:27451;19351:10;-1:-1:-1;;;;;4657:27451:32;19351:30;;;;;;;4657:27451;19351:30;;;4657:27451;19350:31;;19346:89;;19448:9;:14;19444:68;;4657:27451;;;;;;;;;;;19582:15;;;4657:27451;-1:-1:-1;;;;;4657:27451:32;19574:38;;19570:92;;4657:27451;19675:10;;;4657:27451;;19671:71;;19814:43;;;;;4657:27451;;-1:-1:-1;;;19814:43:32;;19370:10;4657:27451;19814:43;;4657:27451;19448:9;4657:27451;;;;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;19814:43:32;;;;;;;;4657:27451;-1:-1:-1;4657:27451:32;19867:15;;4657:27451;;;-1:-1:-1;;;;;4657:27451:32;19867:43;;;;;4657:27451;;-1:-1:-1;;;19867:43:32;;19370:10;4657:27451;19867:43;;4657:27451;19448:9;4657:27451;;;;;;;;;;;;;;;19867:43;;;;;;;;4657:27451;19984:17;;;;:30;19448:9;4657:27451;;19984:30;:::i;:::-;8045:32;;4657:27451;;19448:9;;4657:27451;;20030:45;4657:27451;19370:10;20030:45;;4657:27451;;19867:43;;;;;:::i;:::-;4657:27451;;19867:43;;;;19814;;;;;4657:27451;19814:43;;:::i;:::-;4657:27451;19814:43;;;;;4657:27451;;;;;;;;;19671:71;21186:23;;;4657:27451;19708:23;4657:27451;;19708:23;19570:92;21113:16;;;4657:27451;19635:16;4657:27451;;19635:16;19444:68;19485:16;;;4657:27451;19485:16;4657:27451;;19485:16;19346:89;15671:20;;;4657:27451;19404:20;4657:27451;;19404:20;19351:30;;;;4657:27451;19351:30;4657:27451;19351:30;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4657:27451;;;;;;-1:-1:-1;;4657:27451:32;;;;;;6701:34;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;:::i;:::-;-1:-1:-1;4657:27451:32;;-1:-1:-1;;4657:27451:32;;;;;;:::i;:::-;;;;;;;;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;646:63;;3575:20:30;;;4657:27451:32;3575:20:30;4657:27451:32;;3575:20:30;646:63:28;693:16;;;4657:27451:32;693:16:28;4657:27451:32;;693:16:28;4657:27451:32;;;;;;;:::i;:::-;-1:-1:-1;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;;-1:-1:-1;646:63:28;;-1:-1:-1;;;646:63:28;3575:20:30;;;4657:27451:32;3575:20:30;4657:27451:32;;3575:20:30;4657:27451:32;;;;;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;17315:30:32;;17334:10;4657:27451;17315:30;;4657:27451;;;;;;;;;;;;17315:10;-1:-1:-1;;;;;4657:27451:32;17315:30;;;;;;;4657:27451;17315:30;;;4657:27451;17314:31;;17310:89;;17539:13;4657:27451;;;17486:67;;4657:27451;17486:67;;4657:27451;;;;;;;;;;;;:::i;:::-;17510:15;;4657:27451;;;;17334:10;4657:27451;;;;;;;;17486:67;;;;;;;;;:::i;:::-;4657:27451;17476:78;;4657:27451;;;;-1:-1:-1;;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;17486:67;;4657:27451;;;;;;:::i;:::-;;;17673:129;;;;;;;;;-1:-1:-1;;;;;17673:129:32;;;;;;4657:27451;17673:129;4657:27451;17673:129;;;;;;4657:27451;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;4657:27451:32;;;;17787:4;;4657:27451;;;17673:129;;;4657:27451;17673:129;;;;;;4657:27451;;;-1:-1:-1;;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;17486:67;;4657:27451;;;;;;:::i;:::-;;;17834:127;;;;;;;;-1:-1:-1;;;;;17834:127:32;;;;;4657:27451;17834:127;;;4657:27451;17834:127;;;4657:27451;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;4657:27451:32;;;;17787:4;;4657:27451;;;17834:127;;;4657:27451;17834:127;;;;;;18129:10;18125:103;;4657:27451;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18356:10;;4657:27451;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17539:13;18387:10;;4657:27451;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18418:15;;;4657:27451;;;;;;;;;;;;;;;;;18452:15;;4657:27451;;;;;;;;;;;;;;;;;18486:8;;8045:32;18513:14;4657:27451;;18513:14;;8045:32;18418:15;4657:27451;;;;;;;;;;;18418:15;4657:27451;;;;;;18418:15;4657:27451;;;;;;;17539:13;4657:27451;-1:-1:-1;;4657:27451:32;;;;18843:52;4657:27451;;;;;;;17539:13;8045:32;4657:27451;;;;;;;;17334:10;4657:27451;;;;;;:::i;:::-;18843:52;;;4657:27451;;;;;;;;;;;8045:32;;4657:27451;8045:32;4657:27451;;8045:32;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;17486:67;;;;;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;-1:-1:-1;4657:27451:32;;;;;17486:67;;;;;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;17486:67;-1:-1:-1;;4657:27451:32;;;17486:67;4657:27451;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;18125:103;18210:6;17787:4;;17334:10;18155;18210:6;:::i;:::-;18125:103;;17315:30;;;;4657:27451;17315:30;4657:27451;17315:30;;;;;;;:::i;:::-;;;;4657:27451;;;;;;-1:-1:-1;;4657:27451:32;;;;;;6581:49;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;:::i;:::-;-1:-1:-1;4657:27451:32;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;4657:27451:32;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;:::i;:::-;-1:-1:-1;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;646:63;;4657:27451:32;;-1:-1:-1;;;15044:29:32;;15063:9;4657:27451;15044:29;;4657:27451;;;;;15044:10;-1:-1:-1;;;;;4657:27451:32;15044:29;;;;;;;4657:27451;15044:29;;;4657:27451;15043:30;;15039:88;;4657:27451;;;;;;;;;;;;;;;;;;;15044:29;;;;4657:27451;15044:29;4657:27451;15044:29;;;;;;;:::i;:::-;;;;4657:27451;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;20906:30:32;;20925:10;4657:27451;20906:30;;4657:27451;;;;;;;;20906:10;-1:-1:-1;;;;;4657:27451:32;20906:30;;;;;;;4657:27451;20906:30;;;4657:27451;20905:31;;20901:89;;4657:27451;;;;;;;;;;;;;;;21060:15;;;4657:27451;;21052:38;21048:92;;4657:27451;21153:10;;;4657:27451;;21149:71;;21292:19;;;4657:27451;;21288:94;;4657:27451;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;21454:33;;4657:27451;;;;21536:10;4657:27451;21536:10;4657:27451;21536:10;;4657:27451;:::i;:::-;;;;;;21520:28;4657:27451;;;21597:10;4657:27451;21597:10;;;;4657:27451;:::i;:::-;;;;;;21581:28;21624:27;;;;:58;;;;4657:27451;21624:94;;;;4657:27451;21620:148;;4657:27451;;-1:-1:-1;;;21874:40:32;;-1:-1:-1;;;;;21902:10:32;4657:27451;;;;21874:40;;4657:27451;;;;21902:10;;21874:4;4657:27451;;;;;;;;;21874:40;;;;;;;4657:27451;21874:40;;;4657:27451;-1:-1:-1;21939:14:32;;;4657:27451;;21939:28;;;;;;:59;;;22108:4;22101;;20925:10;22108:4;;:::i;:::-;22214:15;22221:8;;;4657:27451;22214:15;;:::i;:::-;5190:42:7;4657:27451:32;12233:1072:7;12199:23;;;4657:27451:32;12233:1072:7;;4657:27451:32;12233:1072:7;;4657:27451:32;12233:1072:7;4657:27451:32;;12233:1072:7;;;;;;;4657:27451:32;;12233:1072:7;;;;;;;21939:59:32;4657:27451;12233:1072:7;5189:43;5185:274;;21939:59:32;4657:27451;;;;;22367:159;-1:-1:-1;;;4657:27451:32;22367:159;;8045:32;;4657:27451;8045:32;;;;;;;:::i;:::-;;4657:27451;8045:32;;;4657:27451;;;;8045:32;;;;;;;;;22367:159;4657:27451;8045:32;;;;;;4657:27451;8045:32;;;-1:-1:-1;;;4657:27451:32;8045:32;;;;;4657:27451;;-1:-1:-1;;;4657:27451:32;;;8045:32;22367:159;;;;;;;;;;;:::i;:::-;4657:27451;;-1:-1:-1;;;22604:390:32;;8045:32;4657:27451;22604:390;;8045:32;4657:27451;;;;;;;8045:32;;;;;:::i;:::-;20925:10;;4657:27451;8045:32;;4657:27451;22101:4;12233:1072:7;8045:32:32;;4657:27451;8045:32;;;;4657:27451;-1:-1:-1;;;;;22846:17:32;4657:27451;8045:32;;;4657:27451;8045:32;;;4657:27451;8045:32;;;4657:27451;22928:19;8045:32;;;4657:27451;8045:32;;;;4657:27451;22604:390;;;;;;;;;4657:27451;22604:390;;;8045:32;4657:27451;;8045:32;4657:27451;23156:66;4657:27451;;;;;;;;;;;;8045:32;;4657:27451;;8045:32;4657:27451;8045:32;;4657:27451;8045:32;;;;:::i;:::-;;4657:27451;8045:32;;4657:27451;20925:10;;23156:66;;;;4657:27451;22604:390;;;;;;;4657:27451;22604:390;;4657:27451;22604:390;;;;;;4657:27451;22604:390;;;:::i;:::-;;;8045:32;;;;;;;22604:390;;;;8045:32;22604:390;;;;;-1:-1:-1;22604:390:32;;8045:32;4657:27451;;;;;;;;;;8045:32;;;;;;;-1:-1:-1;;8045:32:32;;;;;22367:159;4657:27451;8045:32;;;;;;;;;;;;;-1:-1:-1;8045:32:32;;-1:-1:-1;4657:27451:32;8045:32;;;;4657:27451;8045:32;;;;-1:-1:-1;;8045:32:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22367:159:32;;-1:-1:-1;4657:27451:32;;-1:-1:-1;8045:32:32;;5185:274:7;4657:27451:32;12233:1072:7;12199:23;;;4657:27451:32;12233:1072:7;;4657:27451:32;12233:1072:7;4657:27451:32;;12233:1072:7;4657:27451:32;;12233:1072:7;;;;;;;4657:27451:32;;12233:1072:7;;;;;;;5185:274;4657:27451:32;12233:1072:7;5252:38;5248:91;;4657:27451:32;12233:1072:7;12199:23;;;;4657:27451:32;12233:1072:7;;4657:27451:32;12233:1072:7;4657:27451:32;12233:1072:7;4657:27451:32;;12233:1072:7;;;;;;;4657:27451:32;;12233:1072:7;;;;;;;5185:274;12233:1072;;4657:27451:32;12233:1072:7;5357:42;5353:95;;5185:274;;;;5353:95;5299:40;;;;4657:27451:32;5408:40:7;4657:27451:32;;;;5408:40:7;12233:1072;4657:27451:32;12233:1072:7;;;;;;;;;;;;;;;;;;4657:27451:32;12233:1072:7;;;;;5248:91;5299:40;;;;4657:27451:32;5299:40:7;4657:27451:32;;;;5299:40:7;12233:1072;;4657:27451:32;12233:1072:7;;;;;;;;;;;;;;;;;;;4657:27451:32;12233:1072:7;;;;;;;;;;;;;;;;;;21939:59:32;;;;;;21874:40;;;4657:27451;21874:40;;4657:27451;21874:40;;;;;;8045:32;21874:40;;;:::i;:::-;;;8045:32;;;;;21874:40;;;;;;-1:-1:-1;21874:40:32;;21620:148;21741:16;;;4657:27451;21741:16;4657:27451;;21741:16;21624:94;4657:27451;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;4657:27451:32;;8045:32;21686;;;21624:94;;:58;21655:27;;;;;21624:58;;;21288:94;21348:23;;;4657:27451;21348:23;4657:27451;;21348:23;20906:30;;;;4657:27451;20906:30;4657:27451;20906:30;;;;;;;:::i;:::-;;;;4657:27451;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;-1:-1:-1;;;;;6828:41:32;4657:27451;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;31969:11;4657:27451;;;;;;;;31969:11;4657:27451;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;6481:42;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;;-1:-1:-1;646:63:28;;-1:-1:-1;646:63:28;4657:27451:32;;-1:-1:-1;;;15619:29:32;;15638:9;4657:27451;15619:29;;4657:27451;;;15619:29;4657:27451;15619:10;-1:-1:-1;;;;;4657:27451:32;15619:29;;;;;;;4657:27451;15619:29;;;4657:27451;15618:30;;15614:88;;4657:27451;;-1:-1:-1;;;4657:27451:32;;;;;15619:29;;;;4657:27451;15619:29;4657:27451;15619:29;;;;;;;:::i;:::-;;;;4657:27451;;;;;;;:::i;:::-;-1:-1:-1;;;672:11:28;-1:-1:-1;;;;;4657:27451:32;650:10:28;:34;;-1:-1:-1;646:63:28;;-1:-1:-1;646:63:28;3575:20:30;;;4657:27451:32;3575:20:30;4657:27451:32;;3575:20:30;4657:27451:32;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;4657:27451:32;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;:::i;:::-;;;:::o;:::-;;;-1:-1:-1;;4657:27451:32;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;:::o;:::-;;-1:-1:-1;;4657:27451:32;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;4657:27451:32;;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;8045:32;;;4657:27451;8045:32;;;;;;;;4657:27451;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;:::o;:::-;;;17486:67;;4657:27451;;;;;;;;-1:-1:-1;;;;;4657:27451:32;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;4657:27451:32;;;;;;-1:-1:-1;;4657:27451:32;;;;:::o;8045:32::-;;;;;;;;;;:::o;:::-;;;4657:27451;8045:32;;4657:27451;;;;;;;-1:-1:-1;4657:27451:32;;;;;;;;-1:-1:-1;;4657:27451:32;8045:32;;;:::o;4657:27451::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;1662:232:7;10404:1148;;-1:-1:-1;;;;10404:1148:7;;;-1:-1:-1;;;;;10404:1148:7;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1662:232:7;10404:1148;;;1809:4;-1:-1:-1;10404:1148:7;;;;;;;1662:232;10404:1148;;-1:-1:-1;10404:1148:7;;1766:48;1762:126;;1662:232;:::o;1762:126::-;-1:-1:-1;;;;1837:40:7;;;-1:-1:-1;;;;;4657:27451:32;;;;10404:1148:7;4657:27451:32;10404:1148:7;;1837:40;10404:1148;;1809:4;10404:1148;;;;;;;;;;;;;;;","linkReferences":{},"immutableReferences":{"4382":[{"start":694,"length":32},{"start":822,"length":32},{"start":902,"length":32},{"start":2069,"length":32},{"start":3889,"length":32},{"start":4599,"length":32},{"start":4694,"length":32},{"start":6719,"length":32},{"start":8788,"length":32},{"start":8995,"length":32}],"5153":[{"start":3999,"length":32},{"start":4908,"length":32},{"start":6792,"length":32},{"start":6995,"length":32},{"start":8722,"length":32},{"start":8865,"length":32}],"5157":[{"start":379,"length":32},{"start":1031,"length":32},{"start":6585,"length":32},{"start":7309,"length":32}],"5161":[{"start":4490,"length":32},{"start":6492,"length":32},{"start":7263,"length":32}],"5164":[{"start":7673,"length":32},{"start":8483,"length":32}],"5167":[{"start":973,"length":32},{"start":7722,"length":32}]}},"methodIdentifiers":{"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"9f063efc","afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"e1b4af69","afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":"6fe7e6eb","afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":"6c2bbe7e","afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":"b47b2fb1","assertMarket(bytes32,string)":"565429a8","assertionDisputedCallback(bytes32)":"d448a4ec","assertionResolvedCallback(bytes32,bool)":"f1b156b2","beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"259982e5","beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":"b6a8b0fa","beforeInitialize(address,(address,address,uint24,int24,address),uint160)":"dc98354e","beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":"21d0ee70","beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":"575e24b4","getHookPermissions()":"c4e833ce","getMarket(bytes32)":"c3c95c7b","getMarketIds()":"398c6f7e","i_currency()":"7ec1be76","i_defaultIdentifier()":"d6a9b1bc","i_defaultLiveness()":"3ec74692","i_oo()":"5998013f","i_registry()":"2a663606","initializeMarket(string,string,string,uint256,uint256)":"5cb1cc0b","mintOutcomeTokens(bytes32)":"812e1a7b","poolManager()":"dc4c90d3","s_assertionToMarket(bytes32)":"e74d916d","s_marketCount()":"e88dc465","s_markets(bytes32)":"c480e488","settleOutcomeTokens(bytes32)":"acd98e29"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"_poolManager\",\"type\":\"address\"},{\"internalType\":\"contract IAgentRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"contract OptimisticOracleV3Interface\",\"name\":\"_oo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_currency\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_defaultLiveness\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ActiveAssertionExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EthTransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"HookNotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOutcome\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketAlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MarketNotResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoTokensToSettle\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredAgent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyOracle\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMintAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assertionId\",\"type\":\"bytes32\"}],\"name\":\"AssertionDisputed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assertionId\",\"type\":\"bytes32\"}],\"name\":\"AssertionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"assertedOutcome\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asserter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"assertionId\",\"type\":\"bytes32\"}],\"name\":\"MarketAsserted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"MarketInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"outcomeId\",\"type\":\"bytes32\"}],\"name\":\"MarketResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensMinted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"agent\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payout\",\"type\":\"uint256\"}],\"name\":\"TokensSettled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"feesAccrued\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"afterInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"internalType\":\"BalanceDelta\",\"name\":\"feesAccrued\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BalanceDelta\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"afterSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"int128\",\"name\":\"\",\"type\":\"int128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"assertedOutcome\",\"type\":\"string\"}],\"name\":\"assertMarket\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionId\",\"type\":\"bytes32\"}],\"name\":\"assertionDisputedCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"assertedTruthfully\",\"type\":\"bool\"}],\"name\":\"assertionResolvedCallback\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeAddLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeDonate\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"beforeInitialize\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int256\",\"name\":\"liquidityDelta\",\"type\":\"int256\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"}],\"internalType\":\"struct ModifyLiquidityParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeRemoveLiquidity\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey\",\"name\":\"key\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"internalType\":\"struct SwapParams\",\"name\":\"params\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"hookData\",\"type\":\"bytes\"}],\"name\":\"beforeSwap\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"},{\"internalType\":\"BeforeSwapDelta\",\"name\":\"\",\"type\":\"int256\"},{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getHookPermissions\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"beforeInitialize\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterInitialize\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"beforeAddLiquidity\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterAddLiquidity\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"beforeRemoveLiquidity\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterRemoveLiquidity\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"beforeSwap\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterSwap\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"beforeDonate\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterDonate\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"beforeSwapReturnDelta\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterSwapReturnDelta\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterAddLiquidityReturnDelta\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"afterRemoveLiquidityReturnDelta\",\"type\":\"bool\"}],\"internalType\":\"struct Hooks.Permissions\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"}],\"name\":\"getMarket\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outcome1\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outcome2\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"outcome1Token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"outcome2Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredBond\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"resolved\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"assertedOutcomeId\",\"type\":\"bytes32\"},{\"internalType\":\"PoolId\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMarketIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_currency\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_defaultIdentifier\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_defaultLiveness\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_oo\",\"outputs\":[{\"internalType\":\"contract OptimisticOracleV3Interface\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"i_registry\",\"outputs\":[{\"internalType\":\"contract IAgentRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"outcome1\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outcome2\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredBond\",\"type\":\"uint256\"}],\"name\":\"initializeMarket\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"}],\"name\":\"mintOutcomeTokens\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"s_assertionToMarket\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"s_marketCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"s_markets\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outcome1\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"outcome2\",\"type\":\"string\"},{\"internalType\":\"contract OutcomeToken\",\"name\":\"outcome1Token\",\"type\":\"address\"},{\"internalType\":\"contract OutcomeToken\",\"name\":\"outcome2Token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requiredBond\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"resolved\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"assertedOutcomeId\",\"type\":\"bytes32\"},{\"internalType\":\"PoolId\",\"name\":\"poolId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalCollateral\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"marketId\",\"type\":\"bytes32\"}],\"name\":\"settleOutcomeTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"$CLAWLOGIC Team\",\"details\":\"This contract is a HYBRID serving three roles: 1. **V4 Hook** -- extends BaseHook, implements `beforeSwap` and `beforeAddLiquidity` for agent-only gating. Only addresses registered in the AgentRegistry can trade or provide liquidity on V4 pools that reference this hook. 2. **Prediction Market** -- manages the full market lifecycle: initializeMarket -> mintOutcomeTokens -> assertMarket -> settleOutcomeTokens. Each market deploys a pair of OutcomeToken ERC-20s (one per outcome). Agents deposit ETH as collateral to mint equal quantities of both outcome tokens. After resolution the winning token redeems 1:1 for the collateral ETH. 3. **UMA Callback Recipient** -- implements `assertionResolvedCallback` and `assertionDisputedCallback` so UMA OOV3 can push resolution results back. **tx.origin usage (known limitation):** Hook callbacks (`beforeSwap`, `beforeAddLiquidity`) are invoked by the V4 PoolManager, so `msg.sender` is always the PoolManager address. To identify the originating agent, this contract checks `tx.origin` against the registry. This is a deliberate hackathon trade-off; in production the sender address would be forwarded through the hookData parameter or a router contract.\",\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"kind\":\"dev\",\"methods\":{\"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\":{\"params\":{\"delta\":\"The caller's balance delta after adding liquidity; the sum of principal delta, fees accrued, and hook delta\",\"feesAccrued\":\"The fees accrued since the last time fees were collected from this position\",\"hookData\":\"Arbitrary data handed into the PoolManager by the liquidity provider to be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for adding liquidity\",\"sender\":\"The initial msg.sender for the add liquidity call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\",\"_1\":\"BalanceDelta The hook's delta in token0 and token1. Positive: the hook is owed/took currency, negative: the hook owes/sent currency\"}},\"afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\":{\"params\":{\"amount0\":\"The amount of token0 being donated\",\"amount1\":\"The amount of token1 being donated\",\"hookData\":\"Arbitrary data handed into the PoolManager by the donor to be be passed on to the hook\",\"key\":\"The key for the pool\",\"sender\":\"The initial msg.sender for the donate call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)\":{\"params\":{\"key\":\"The key for the pool being initialized\",\"sender\":\"The initial msg.sender for the initialize call\",\"sqrtPriceX96\":\"The sqrt(price) of the pool as a Q64.96\",\"tick\":\"The current tick after the state of a pool is initialized\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\":{\"params\":{\"delta\":\"The caller's balance delta after removing liquidity; the sum of principal delta, fees accrued, and hook delta\",\"feesAccrued\":\"The fees accrued since the last time fees were collected from this position\",\"hookData\":\"Arbitrary data handed into the PoolManager by the liquidity provider to be be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for removing liquidity\",\"sender\":\"The initial msg.sender for the remove liquidity call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\",\"_1\":\"BalanceDelta The hook's delta in token0 and token1. Positive: the hook is owed/took currency, negative: the hook owes/sent currency\"}},\"afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)\":{\"params\":{\"delta\":\"The amount owed to the caller (positive) or owed to the pool (negative)\",\"hookData\":\"Arbitrary data handed into the PoolManager by the swapper to be be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for the swap\",\"sender\":\"The initial msg.sender for the swap call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\",\"_1\":\"int128 The hook's delta in unspecified currency. Positive: the hook is owed/took currency, negative: the hook owes/sent currency\"}},\"assertMarket(bytes32,string)\":{\"details\":\"Only registered agents. The asserted outcome must exactly match `outcome1`, `outcome2`, or the literal string \\\"Unresolvable\\\". The caller must have approved `bond` amount of `i_currency` to this contract. The bond is forwarded to UMA OOV3 along with any reward. If the assertion survives the liveness window, `assertionResolvedCallback` is called with `assertedTruthfully = true`.\",\"params\":{\"assertedOutcome\":\"The outcome string being asserted (must match outcome1/outcome2 or \\\"Unresolvable\\\").\",\"marketId\":\"The market to assert.\"}},\"assertionDisputedCallback(bytes32)\":{\"details\":\"This is informational only. The market stays in its current state until `assertionResolvedCallback` is called with the dispute outcome.\",\"params\":{\"assertionId\":\"The UMA assertion identifier that was disputed.\"}},\"assertionResolvedCallback(bytes32,bool)\":{\"details\":\"If `assertedTruthfully` is true the assertion survived the liveness window (or a dispute was resolved in the asserter's favour) and the market is marked resolved. If false, the assertion was disputed and the asserter lost; the market is reset so a new assertion can be made.\",\"params\":{\"assertedTruthfully\":\"True if the assertion was deemed truthful.\",\"assertionId\":\"The UMA assertion identifier.\"}},\"beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\":{\"params\":{\"hookData\":\"Arbitrary data handed into the PoolManager by the liquidity provider to be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for adding liquidity\",\"sender\":\"The initial msg.sender for the add liquidity call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\":{\"params\":{\"amount0\":\"The amount of token0 being donated\",\"amount1\":\"The amount of token1 being donated\",\"hookData\":\"Arbitrary data handed into the PoolManager by the donor to be be passed on to the hook\",\"key\":\"The key for the pool\",\"sender\":\"The initial msg.sender for the donate call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"beforeInitialize(address,(address,address,uint24,int24,address),uint160)\":{\"params\":{\"key\":\"The key for the pool being initialized\",\"sender\":\"The initial msg.sender for the initialize call\",\"sqrtPriceX96\":\"The sqrt(price) of the pool as a Q64.96\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\":{\"params\":{\"hookData\":\"Arbitrary data handed into the PoolManager by the liquidity provider to be be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for removing liquidity\",\"sender\":\"The initial msg.sender for the remove liquidity call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\"}},\"beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)\":{\"params\":{\"hookData\":\"Arbitrary data handed into the PoolManager by the swapper to be be passed on to the hook\",\"key\":\"The key for the pool\",\"params\":\"The parameters for the swap\",\"sender\":\"The initial msg.sender for the swap call\"},\"returns\":{\"_0\":\"bytes4 The function selector for the hook\",\"_1\":\"BeforeSwapDelta The hook's delta in specified and unspecified currencies. Positive: the hook is owed/took currency, negative: the hook owes/sent currency\",\"_2\":\"uint24 Optionally override the lp fee, only used if three conditions are met: 1. the Pool has a dynamic fee, 2. the value's 2nd highest bit is set (23rd bit, 0x400000), and 3. the value is less than or equal to the maximum fee (1 million)\"}},\"constructor\":{\"params\":{\"_currency\":\"The ERC-20 used as UMA bond currency (e.g., WETH or mock).\",\"_defaultLiveness\":\"The liveness window in seconds (120 for demo).\",\"_oo\":\"The UMA Optimistic Oracle V3 address.\",\"_poolManager\":\"The Uniswap V4 PoolManager instance.\",\"_registry\":\"The AgentRegistry used for Silicon Gate checks.\"}},\"getHookPermissions()\":{\"details\":\"Used at deployment to validate the address correctly represents the expected permissions\",\"returns\":{\"_0\":\"Permissions struct\"}},\"getMarket(bytes32)\":{\"params\":{\"marketId\":\"The identifier of the market.\"},\"returns\":{\"assertedOutcomeId\":\" The keccak256 hash of the asserted outcome (bytes32(0) if none).\",\"description\":\" The human-readable market question.\",\"outcome1\":\" The first outcome label.\",\"outcome1Token\":\" The address of the outcome1 ERC-20 token.\",\"outcome2\":\" The second outcome label.\",\"outcome2Token\":\" The address of the outcome2 ERC-20 token.\",\"poolId\":\" The V4 pool identifier (bytes32(0) if no pool associated).\",\"requiredBond\":\" The minimum assertion bond.\",\"resolved\":\" Whether the market has been resolved.\",\"reward\":\" The asserter reward amount.\",\"totalCollateral\":\" The total ETH collateral backing the market.\"}},\"getMarketIds()\":{\"returns\":{\"_0\":\"An array of all created marketId values.\"}},\"initializeMarket(string,string,string,uint256,uint256)\":{\"details\":\"Only registered agents may create markets. Deploys two OutcomeToken contracts (one per outcome) owned by this hook. The caller must have previously approved `reward` amount of `i_currency` to this contract so the reward can be held for the eventual asserter.\",\"params\":{\"description\":\"Human-readable market question.\",\"outcome1\":\"Label for the first outcome (e.g. \\\"yes\\\").\",\"outcome2\":\"Label for the second outcome (e.g. \\\"no\\\").\",\"requiredBond\":\"Minimum bond required from an asserter (may be raised by OOV3).\",\"reward\":\"Amount of `i_currency` offered as incentive to the asserter.\"},\"returns\":{\"marketId\":\" The unique identifier for the newly created market.\"}},\"mintOutcomeTokens(bytes32)\":{\"details\":\"Only registered agents. The ETH is held by this contract as collateral backing the eventual settlement. The caller receives `msg.value` of outcome1Token AND `msg.value` of outcome2Token.\",\"params\":{\"marketId\":\"The market to mint tokens for.\"}},\"settleOutcomeTokens(bytes32)\":{\"details\":\"The market must be resolved. The caller's winning tokens are burned and they receive a proportional share of the total collateral. If the resolved outcome is \\\"Unresolvable\\\", both tokens redeem equally (each token is worth 0.5 ETH per token-unit). Payout calculation: - Winning outcome: payout = (winnerBalance / totalWinnerSupply) * totalCollateral - Unresolvable: payout = (callerTotal / totalBothSupply) * totalCollateral where callerTotal = outcome1Balance + outcome2Balance\",\"params\":{\"marketId\":\"The resolved market.\"}}},\"title\":\"PredictionMarketHook\",\"version\":1},\"userdoc\":{\"errors\":{\"ActiveAssertionExists()\":[{\"notice\":\"Thrown when a new assertion is attempted while one is already active.\"}],\"EthTransferFailed()\":[{\"notice\":\"Thrown when an ETH transfer fails during settlement.\"}],\"InvalidOutcome()\":[{\"notice\":\"Thrown when the asserted outcome string does not match outcome1, outcome2, or \\\"Unresolvable\\\".\"}],\"MarketAlreadyResolved()\":[{\"notice\":\"Thrown when an operation is attempted on an already-resolved market.\"}],\"MarketNotFound()\":[{\"notice\":\"Thrown when a marketId does not correspond to an initialized market.\"}],\"MarketNotResolved()\":[{\"notice\":\"Thrown when settlement is attempted on a market that has not resolved.\"}],\"NoTokensToSettle()\":[{\"notice\":\"Thrown when the caller has zero winning tokens to settle.\"}],\"NotPoolManager()\":[{\"notice\":\"Thrown when the caller is not PoolManager\"}],\"NotRegisteredAgent()\":[{\"notice\":\"Thrown when the caller (or tx.origin in hook context) is not a registered agent.\"}],\"OnlyOracle()\":[{\"notice\":\"Thrown when a callback is received from an address other than UMA OOV3.\"}],\"ZeroMintAmount()\":[{\"notice\":\"Thrown when zero ETH is sent to mintOutcomeTokens.\"}]},\"events\":{\"AssertionDisputed(bytes32,bytes32)\":{\"notice\":\"Emitted when UMA OOV3 notifies that an assertion has been disputed.\"},\"AssertionFailed(bytes32,bytes32)\":{\"notice\":\"Emitted when UMA OOV3 resolves an assertion as NOT truthful (disputed and lost).\"},\"MarketAsserted(bytes32,string,address,bytes32)\":{\"notice\":\"Emitted when an agent asserts the outcome of a market via UMA OOV3.\"},\"MarketInitialized(bytes32,string,address)\":{\"notice\":\"Emitted when a new prediction market is initialized.\"},\"MarketResolved(bytes32,bytes32)\":{\"notice\":\"Emitted when UMA OOV3 resolves an assertion as truthful and the market settles.\"},\"TokensMinted(bytes32,address,uint256)\":{\"notice\":\"Emitted when an agent mints outcome token pairs by depositing ETH collateral.\"},\"TokensSettled(bytes32,address,uint256)\":{\"notice\":\"Emitted when an agent redeems winning outcome tokens for ETH.\"}},\"kind\":\"user\",\"methods\":{\"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\":{\"notice\":\"The hook called after liquidity is added\"},\"afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\":{\"notice\":\"The hook called after donate\"},\"afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)\":{\"notice\":\"The hook called after the state of a pool is initialized\"},\"afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)\":{\"notice\":\"The hook called after liquidity is removed\"},\"afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)\":{\"notice\":\"The hook called after a swap\"},\"assertMarket(bytes32,string)\":{\"notice\":\"Assert the outcome of a market via UMA Optimistic Oracle V3.\"},\"assertionDisputedCallback(bytes32)\":{\"notice\":\"Called by UMA OOV3 when an assertion is disputed.\"},\"assertionResolvedCallback(bytes32,bool)\":{\"notice\":\"Called by UMA OOV3 when an assertion is resolved.\"},\"beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\":{\"notice\":\"The hook called before liquidity is added\"},\"beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)\":{\"notice\":\"The hook called before donate\"},\"beforeInitialize(address,(address,address,uint24,int24,address),uint160)\":{\"notice\":\"The hook called before the state of a pool is initialized\"},\"beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)\":{\"notice\":\"The hook called before liquidity is removed\"},\"beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)\":{\"notice\":\"The hook called before a swap\"},\"constructor\":{\"notice\":\"Deploys the PredictionMarketHook, binding it to V4, the agent registry, and UMA OOV3.\"},\"getHookPermissions()\":{\"notice\":\"Returns a struct of permissions to signal which hook functions are to be implemented\"},\"getMarket(bytes32)\":{\"notice\":\"Returns the full Market struct for a given marketId.\"},\"getMarketIds()\":{\"notice\":\"Returns all market IDs for enumeration by front-ends and agents.\"},\"i_currency()\":{\"notice\":\"ERC-20 used as the UMA assertion bond currency.\"},\"i_defaultIdentifier()\":{\"notice\":\"Default UMA identifier, fetched from the OOV3 at deploy time.\"},\"i_defaultLiveness()\":{\"notice\":\"Default liveness window for UMA assertions (seconds). 120 s for demo.\"},\"i_oo()\":{\"notice\":\"UMA Optimistic Oracle V3 instance.\"},\"i_registry()\":{\"notice\":\"The agent identity registry used for Silicon Gate checks.\"},\"initializeMarket(string,string,string,uint256,uint256)\":{\"notice\":\"Create a new prediction market.\"},\"mintOutcomeTokens(bytes32)\":{\"notice\":\"Deposit ETH collateral to mint equal amounts of both outcome tokens.\"},\"poolManager()\":{\"notice\":\"The Uniswap v4 PoolManager contract\"},\"s_assertionToMarket(bytes32)\":{\"notice\":\"Maps a UMA assertionId back to the marketId it belongs to.\"},\"s_marketCount()\":{\"notice\":\"Running counter used for deterministic marketId generation.\"},\"s_markets(bytes32)\":{\"notice\":\"Maps marketId to its Market data.\"},\"settleOutcomeTokens(bytes32)\":{\"notice\":\"Redeem winning outcome tokens for proportional ETH collateral.\"}},\"notice\":\"The core contract of $CLAWLOGIC -- a Uniswap V4 Hook that doubles as a prediction market with UMA Optimistic Oracle V3 for resolution.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/PredictionMarketHook.sol\":\"PredictionMarketHook\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=lib/v4-core/node_modules/@ensdomains/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uma/core/=lib/protocol/packages/core/\",\":@uniswap/v4-core/=lib/v4-core/\",\":@uniswap/v4-periphery/=lib/v4-periphery/\",\":ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":hardhat/=lib/v4-core/node_modules/hardhat/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":permit2/=lib/v4-periphery/lib/permit2/\",\":solmate/=lib/v4-core/lib/solmate/\",\":v4-core/=lib/v4-core/\",\":v4-periphery/=lib/v4-periphery/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c\",\"dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195\",\"dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0\",\"dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"lib/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"lib/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"lib/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"lib/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"lib/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"lib/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"lib/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"lib/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"lib/v4-core/src/libraries/Hooks.sol\":{\"keccak256\":\"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb\",\"dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx\"]},\"lib/v4-core/src/libraries/LPFeeLibrary.sol\":{\"keccak256\":\"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475\",\"dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J\"]},\"lib/v4-core/src/libraries/ParseBytes.sol\":{\"keccak256\":\"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17\",\"dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa\"]},\"lib/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"lib/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"lib/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"lib/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"lib/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"lib/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"lib/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"lib/v4-periphery/src/base/ImmutableState.sol\":{\"keccak256\":\"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337\",\"dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU\"]},\"lib/v4-periphery/src/interfaces/IImmutableState.sol\":{\"keccak256\":\"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341\",\"dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq\"]},\"lib/v4-periphery/src/utils/BaseHook.sol\":{\"keccak256\":\"0x6268607345149d912996d1c2bac693b2102304cc97c19ec4fef184d6fa390e89\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6c0dddffa6c5eb3c10bc45d56d58bc3f4773778322fa10a4acf46e2292b61b3\",\"dweb:/ipfs/Qmc1Srhh6ne5Lsi2Y5BBz8pgPLmJdg8uN1UCeJzKnr6Kra\"]},\"src/OutcomeToken.sol\":{\"keccak256\":\"0xea4f09234896a444fa8d6ba5d465b3751cb47e71f926193703fdd0a9ec389b46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38bb7250277400cd8a453d6d4a78c60cf330fc5c3841639cee03df61a6009d1c\",\"dweb:/ipfs/QmSk5guaqRDy55dy4zrpnyZ63D92UMAjguNQ1EshzMizdm\"]},\"src/PredictionMarketHook.sol\":{\"keccak256\":\"0x0dbd6a8298952caa6d73adb3291c60a22ba97d7e99fa564ef39c70614d7d29e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://71962ec918955f0ec98e403c8e89bcd06847f27901a2ac3ef2932231c3119f59\",\"dweb:/ipfs/QmVV3Hm477bgqEZheS9ddW1vRSP4fBTPFMBAcpvT8C8Gv7\"]},\"src/interfaces/IAgentRegistry.sol\":{\"keccak256\":\"0x30d1efcf0a21e220efe81655b56463f23edfa202bfbaf9f94b1473ef7a753cab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://459b5d7e896f29c2c08b14d6fbeed3c0b85fb18c133a4acb5442a32df9ee3144\",\"dweb:/ipfs/QmYikmUzZbV9FWDHDbLVV1JACayAhGoHLsgQc544t8b5s2\"]},\"src/interfaces/IOutcomeToken.sol\":{\"keccak256\":\"0x7737a1fc3b22e323189445aabd442d0d653658efa4efab01957a1afe1461e7ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83b6640ca20b7aa03bbc30897fa0f6a24e21d65acce9c74db8b2f5634c4b7dfe\",\"dweb:/ipfs/QmfE3efRnJjAXU4UZ9NmyiRPdLUmgq8cyYQ9H42RC3vmF8\"]},\"src/interfaces/uma/OptimisticOracleV3CallbackRecipientInterface.sol\":{\"keccak256\":\"0xacdb1fea732dc188ae5f476bff406e570fa28cad38338115e60f7f773bdbd786\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://e6dcd03a1aa3daeb7f76a8fd0eb0bfed9b445a44d9eb7b6bd7c7abe7ebc64714\",\"dweb:/ipfs/QmecvsKkyracLYy7Zqv5bMCAoS9NrHDP1gdH3DXsgJq6rp\"]},\"src/interfaces/uma/OptimisticOracleV3Interface.sol\":{\"keccak256\":\"0x6c1d1ac1465955999fac987cbfa26dcbbd69a115dd3c7c15e9554a5416a7e933\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://ccfc671d611f85f881d11887b4957ad8229469c2fd20be5123098bf38646cc6c\",\"dweb:/ipfs/QmWxY74byNkKgqkEYmKm95UqcPhW5AmM1k6QFvyVj4PNYH\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"_poolManager","type":"address"},{"internalType":"contract IAgentRegistry","name":"_registry","type":"address"},{"internalType":"contract OptimisticOracleV3Interface","name":"_oo","type":"address"},{"internalType":"contract IERC20","name":"_currency","type":"address"},{"internalType":"uint64","name":"_defaultLiveness","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ActiveAssertionExists"},{"inputs":[],"type":"error","name":"EthTransferFailed"},{"inputs":[],"type":"error","name":"HookNotImplemented"},{"inputs":[],"type":"error","name":"InvalidOutcome"},{"inputs":[],"type":"error","name":"MarketAlreadyResolved"},{"inputs":[],"type":"error","name":"MarketNotFound"},{"inputs":[],"type":"error","name":"MarketNotResolved"},{"inputs":[],"type":"error","name":"NoTokensToSettle"},{"inputs":[],"type":"error","name":"NotPoolManager"},{"inputs":[],"type":"error","name":"NotRegisteredAgent"},{"inputs":[],"type":"error","name":"OnlyOracle"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"ZeroMintAmount"},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"assertionId","type":"bytes32","indexed":false}],"type":"event","name":"AssertionDisputed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"assertionId","type":"bytes32","indexed":false}],"type":"event","name":"AssertionFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"string","name":"assertedOutcome","type":"string","indexed":false},{"internalType":"address","name":"asserter","type":"address","indexed":true},{"internalType":"bytes32","name":"assertionId","type":"bytes32","indexed":false}],"type":"event","name":"MarketAsserted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"string","name":"description","type":"string","indexed":false},{"internalType":"address","name":"creator","type":"address","indexed":true}],"type":"event","name":"MarketInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"outcomeId","type":"bytes32","indexed":false}],"type":"event","name":"MarketResolved","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"address","name":"agent","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"TokensMinted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32","indexed":true},{"internalType":"address","name":"agent","type":"address","indexed":true},{"internalType":"uint256","name":"payout","type":"uint256","indexed":false}],"type":"event","name":"TokensSettled","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"feesAccrued","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"feesAccrued","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct SwapParams","name":"params","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","type":"int128"}]},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32"},{"internalType":"string","name":"assertedOutcome","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"assertMarket"},{"inputs":[{"internalType":"bytes32","name":"assertionId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"assertionDisputedCallback"},{"inputs":[{"internalType":"bytes32","name":"assertionId","type":"bytes32"},{"internalType":"bool","name":"assertedTruthfully","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"assertionResolvedCallback"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct ModifyLiquidityParams","name":"params","type":"tuple","components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"struct PoolKey","name":"key","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"struct SwapParams","name":"params","type":"tuple","components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}]},{"internalType":"bytes","name":"hookData","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getHookPermissions","outputs":[{"internalType":"struct Hooks.Permissions","name":"","type":"tuple","components":[{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}]}]},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getMarket","outputs":[{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"outcome1","type":"string"},{"internalType":"string","name":"outcome2","type":"string"},{"internalType":"address","name":"outcome1Token","type":"address"},{"internalType":"address","name":"outcome2Token","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"requiredBond","type":"uint256"},{"internalType":"bool","name":"resolved","type":"bool"},{"internalType":"bytes32","name":"assertedOutcomeId","type":"bytes32"},{"internalType":"PoolId","name":"poolId","type":"bytes32"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMarketIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"i_currency","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"i_defaultIdentifier","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"i_defaultLiveness","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"i_oo","outputs":[{"internalType":"contract OptimisticOracleV3Interface","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"i_registry","outputs":[{"internalType":"contract IAgentRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"string","name":"outcome1","type":"string"},{"internalType":"string","name":"outcome2","type":"string"},{"internalType":"string","name":"description","type":"string"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"requiredBond","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initializeMarket","outputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32"}],"stateMutability":"payable","type":"function","name":"mintOutcomeTokens"},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"s_assertionToMarket","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"s_marketCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"s_markets","outputs":[{"internalType":"string","name":"description","type":"string"},{"internalType":"string","name":"outcome1","type":"string"},{"internalType":"string","name":"outcome2","type":"string"},{"internalType":"contract OutcomeToken","name":"outcome1Token","type":"address"},{"internalType":"contract OutcomeToken","name":"outcome2Token","type":"address"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"requiredBond","type":"uint256"},{"internalType":"bool","name":"resolved","type":"bool"},{"internalType":"bytes32","name":"assertedOutcomeId","type":"bytes32"},{"internalType":"PoolId","name":"poolId","type":"bytes32"},{"internalType":"uint256","name":"totalCollateral","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"marketId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"settleOutcomeTokens"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":{"params":{"delta":"The caller's balance delta after adding liquidity; the sum of principal delta, fees accrued, and hook delta","feesAccrued":"The fees accrued since the last time fees were collected from this position","hookData":"Arbitrary data handed into the PoolManager by the liquidity provider to be passed on to the hook","key":"The key for the pool","params":"The parameters for adding liquidity","sender":"The initial msg.sender for the add liquidity call"},"returns":{"_0":"bytes4 The function selector for the hook","_1":"BalanceDelta The hook's delta in token0 and token1. Positive: the hook is owed/took currency, negative: the hook owes/sent currency"}},"afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":{"params":{"amount0":"The amount of token0 being donated","amount1":"The amount of token1 being donated","hookData":"Arbitrary data handed into the PoolManager by the donor to be be passed on to the hook","key":"The key for the pool","sender":"The initial msg.sender for the donate call"},"returns":{"_0":"bytes4 The function selector for the hook"}},"afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":{"params":{"key":"The key for the pool being initialized","sender":"The initial msg.sender for the initialize call","sqrtPriceX96":"The sqrt(price) of the pool as a Q64.96","tick":"The current tick after the state of a pool is initialized"},"returns":{"_0":"bytes4 The function selector for the hook"}},"afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":{"params":{"delta":"The caller's balance delta after removing liquidity; the sum of principal delta, fees accrued, and hook delta","feesAccrued":"The fees accrued since the last time fees were collected from this position","hookData":"Arbitrary data handed into the PoolManager by the liquidity provider to be be passed on to the hook","key":"The key for the pool","params":"The parameters for removing liquidity","sender":"The initial msg.sender for the remove liquidity call"},"returns":{"_0":"bytes4 The function selector for the hook","_1":"BalanceDelta The hook's delta in token0 and token1. Positive: the hook is owed/took currency, negative: the hook owes/sent currency"}},"afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":{"params":{"delta":"The amount owed to the caller (positive) or owed to the pool (negative)","hookData":"Arbitrary data handed into the PoolManager by the swapper to be be passed on to the hook","key":"The key for the pool","params":"The parameters for the swap","sender":"The initial msg.sender for the swap call"},"returns":{"_0":"bytes4 The function selector for the hook","_1":"int128 The hook's delta in unspecified currency. Positive: the hook is owed/took currency, negative: the hook owes/sent currency"}},"assertMarket(bytes32,string)":{"details":"Only registered agents. The asserted outcome must exactly match `outcome1`, `outcome2`, or the literal string \"Unresolvable\". The caller must have approved `bond` amount of `i_currency` to this contract. The bond is forwarded to UMA OOV3 along with any reward. If the assertion survives the liveness window, `assertionResolvedCallback` is called with `assertedTruthfully = true`.","params":{"assertedOutcome":"The outcome string being asserted (must match outcome1/outcome2 or \"Unresolvable\").","marketId":"The market to assert."}},"assertionDisputedCallback(bytes32)":{"details":"This is informational only. The market stays in its current state until `assertionResolvedCallback` is called with the dispute outcome.","params":{"assertionId":"The UMA assertion identifier that was disputed."}},"assertionResolvedCallback(bytes32,bool)":{"details":"If `assertedTruthfully` is true the assertion survived the liveness window (or a dispute was resolved in the asserter's favour) and the market is marked resolved. If false, the assertion was disputed and the asserter lost; the market is reset so a new assertion can be made.","params":{"assertedTruthfully":"True if the assertion was deemed truthful.","assertionId":"The UMA assertion identifier."}},"beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":{"params":{"hookData":"Arbitrary data handed into the PoolManager by the liquidity provider to be passed on to the hook","key":"The key for the pool","params":"The parameters for adding liquidity","sender":"The initial msg.sender for the add liquidity call"},"returns":{"_0":"bytes4 The function selector for the hook"}},"beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":{"params":{"amount0":"The amount of token0 being donated","amount1":"The amount of token1 being donated","hookData":"Arbitrary data handed into the PoolManager by the donor to be be passed on to the hook","key":"The key for the pool","sender":"The initial msg.sender for the donate call"},"returns":{"_0":"bytes4 The function selector for the hook"}},"beforeInitialize(address,(address,address,uint24,int24,address),uint160)":{"params":{"key":"The key for the pool being initialized","sender":"The initial msg.sender for the initialize call","sqrtPriceX96":"The sqrt(price) of the pool as a Q64.96"},"returns":{"_0":"bytes4 The function selector for the hook"}},"beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":{"params":{"hookData":"Arbitrary data handed into the PoolManager by the liquidity provider to be be passed on to the hook","key":"The key for the pool","params":"The parameters for removing liquidity","sender":"The initial msg.sender for the remove liquidity call"},"returns":{"_0":"bytes4 The function selector for the hook"}},"beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":{"params":{"hookData":"Arbitrary data handed into the PoolManager by the swapper to be be passed on to the hook","key":"The key for the pool","params":"The parameters for the swap","sender":"The initial msg.sender for the swap call"},"returns":{"_0":"bytes4 The function selector for the hook","_1":"BeforeSwapDelta The hook's delta in specified and unspecified currencies. Positive: the hook is owed/took currency, negative: the hook owes/sent currency","_2":"uint24 Optionally override the lp fee, only used if three conditions are met: 1. the Pool has a dynamic fee, 2. the value's 2nd highest bit is set (23rd bit, 0x400000), and 3. the value is less than or equal to the maximum fee (1 million)"}},"constructor":{"params":{"_currency":"The ERC-20 used as UMA bond currency (e.g., WETH or mock).","_defaultLiveness":"The liveness window in seconds (120 for demo).","_oo":"The UMA Optimistic Oracle V3 address.","_poolManager":"The Uniswap V4 PoolManager instance.","_registry":"The AgentRegistry used for Silicon Gate checks."}},"getHookPermissions()":{"details":"Used at deployment to validate the address correctly represents the expected permissions","returns":{"_0":"Permissions struct"}},"getMarket(bytes32)":{"params":{"marketId":"The identifier of the market."},"returns":{"assertedOutcomeId":" The keccak256 hash of the asserted outcome (bytes32(0) if none).","description":" The human-readable market question.","outcome1":" The first outcome label.","outcome1Token":" The address of the outcome1 ERC-20 token.","outcome2":" The second outcome label.","outcome2Token":" The address of the outcome2 ERC-20 token.","poolId":" The V4 pool identifier (bytes32(0) if no pool associated).","requiredBond":" The minimum assertion bond.","resolved":" Whether the market has been resolved.","reward":" The asserter reward amount.","totalCollateral":" The total ETH collateral backing the market."}},"getMarketIds()":{"returns":{"_0":"An array of all created marketId values."}},"initializeMarket(string,string,string,uint256,uint256)":{"details":"Only registered agents may create markets. Deploys two OutcomeToken contracts (one per outcome) owned by this hook. The caller must have previously approved `reward` amount of `i_currency` to this contract so the reward can be held for the eventual asserter.","params":{"description":"Human-readable market question.","outcome1":"Label for the first outcome (e.g. \"yes\").","outcome2":"Label for the second outcome (e.g. \"no\").","requiredBond":"Minimum bond required from an asserter (may be raised by OOV3).","reward":"Amount of `i_currency` offered as incentive to the asserter."},"returns":{"marketId":" The unique identifier for the newly created market."}},"mintOutcomeTokens(bytes32)":{"details":"Only registered agents. The ETH is held by this contract as collateral backing the eventual settlement. The caller receives `msg.value` of outcome1Token AND `msg.value` of outcome2Token.","params":{"marketId":"The market to mint tokens for."}},"settleOutcomeTokens(bytes32)":{"details":"The market must be resolved. The caller's winning tokens are burned and they receive a proportional share of the total collateral. If the resolved outcome is \"Unresolvable\", both tokens redeem equally (each token is worth 0.5 ETH per token-unit). Payout calculation: - Winning outcome: payout = (winnerBalance / totalWinnerSupply) * totalCollateral - Unresolvable: payout = (callerTotal / totalBothSupply) * totalCollateral where callerTotal = outcome1Balance + outcome2Balance","params":{"marketId":"The resolved market."}}},"version":1},"userdoc":{"kind":"user","methods":{"afterAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":{"notice":"The hook called after liquidity is added"},"afterDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":{"notice":"The hook called after donate"},"afterInitialize(address,(address,address,uint24,int24,address),uint160,int24)":{"notice":"The hook called after the state of a pool is initialized"},"afterRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),int256,int256,bytes)":{"notice":"The hook called after liquidity is removed"},"afterSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),int256,bytes)":{"notice":"The hook called after a swap"},"assertMarket(bytes32,string)":{"notice":"Assert the outcome of a market via UMA Optimistic Oracle V3."},"assertionDisputedCallback(bytes32)":{"notice":"Called by UMA OOV3 when an assertion is disputed."},"assertionResolvedCallback(bytes32,bool)":{"notice":"Called by UMA OOV3 when an assertion is resolved."},"beforeAddLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":{"notice":"The hook called before liquidity is added"},"beforeDonate(address,(address,address,uint24,int24,address),uint256,uint256,bytes)":{"notice":"The hook called before donate"},"beforeInitialize(address,(address,address,uint24,int24,address),uint160)":{"notice":"The hook called before the state of a pool is initialized"},"beforeRemoveLiquidity(address,(address,address,uint24,int24,address),(int24,int24,int256,bytes32),bytes)":{"notice":"The hook called before liquidity is removed"},"beforeSwap(address,(address,address,uint24,int24,address),(bool,int256,uint160),bytes)":{"notice":"The hook called before a swap"},"constructor":{"notice":"Deploys the PredictionMarketHook, binding it to V4, the agent registry, and UMA OOV3."},"getHookPermissions()":{"notice":"Returns a struct of permissions to signal which hook functions are to be implemented"},"getMarket(bytes32)":{"notice":"Returns the full Market struct for a given marketId."},"getMarketIds()":{"notice":"Returns all market IDs for enumeration by front-ends and agents."},"i_currency()":{"notice":"ERC-20 used as the UMA assertion bond currency."},"i_defaultIdentifier()":{"notice":"Default UMA identifier, fetched from the OOV3 at deploy time."},"i_defaultLiveness()":{"notice":"Default liveness window for UMA assertions (seconds). 120 s for demo."},"i_oo()":{"notice":"UMA Optimistic Oracle V3 instance."},"i_registry()":{"notice":"The agent identity registry used for Silicon Gate checks."},"initializeMarket(string,string,string,uint256,uint256)":{"notice":"Create a new prediction market."},"mintOutcomeTokens(bytes32)":{"notice":"Deposit ETH collateral to mint equal amounts of both outcome tokens."},"poolManager()":{"notice":"The Uniswap v4 PoolManager contract"},"s_assertionToMarket(bytes32)":{"notice":"Maps a UMA assertionId back to the marketId it belongs to."},"s_marketCount()":{"notice":"Running counter used for deterministic marketId generation."},"s_markets(bytes32)":{"notice":"Maps marketId to its Market data."},"settleOutcomeTokens(bytes32)":{"notice":"Redeem winning outcome tokens for proportional ETH collateral."}},"version":1}},"settings":{"remappings":["@ensdomains/=lib/v4-core/node_modules/@ensdomains/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@uma/core/=lib/protocol/packages/core/","@uniswap/v4-core/=lib/v4-core/","@uniswap/v4-periphery/=lib/v4-periphery/","ds-test/=lib/v4-core/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/v4-periphery/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","hardhat/=lib/v4-core/node_modules/hardhat/","openzeppelin-contracts/=lib/openzeppelin-contracts/","permit2/=lib/v4-periphery/lib/permit2/","solmate/=lib/v4-core/lib/solmate/","v4-core/=lib/v4-core/","v4-periphery/=lib/v4-periphery/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/PredictionMarketHook.sol":"PredictionMarketHook"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x1b88b3fb3d85ba5496d7d5f396f83ee1fddcdd6762059ff65992655b67920998","urls":["bzz-raw://89393bb3212da1c0889601b9706a07b39419ddc4d2faab9eaf6e7f9152cf6a1c","dweb:/ipfs/QmcCfzzxv1Bkdz1c1yF4gQCeYb6Us5BJANnzTFqawfd1HL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0x669464167428061ee0f8618b73b3ee90aff8405683e7ddde8cd77dadaa1afe29","urls":["bzz-raw://0dda78587a7358b4fdf6b9fca0fde5a5e34930f36d5268a16028627fc0170195","dweb:/ipfs/QmQ1b6cCceDRWNxti9HifsTCzmVP25Haxs1bWugm52vTqH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x304d732678032a9781ae85c8f204c8fba3d3a5e31c02616964e75cfdc5049098","urls":["bzz-raw://299ced486011781dc98f638059678323c03079fefae1482abaa2135b22fa92d0","dweb:/ipfs/QmbZNbcPTBxNvwChavN2kkZZs7xHhYL7mv51KrxMhsMs3j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"lib/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"lib/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"lib/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"lib/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"lib/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"lib/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"lib/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"lib/v4-core/src/libraries/Hooks.sol":{"keccak256":"0xd679b4b2d429689bc44f136050ebc958fb2d7d0d3a3c7b3e48c08ab4fba09aaa","urls":["bzz-raw://287190cb72840e5eb63cc7a8a1d0b9150af17d8e4ea0323f47c7e7928f2033cb","dweb:/ipfs/QmVfqWBnAQM2jUcuREDdvjcP21gNuLU35CoL3NG5CEhNcx"],"license":"MIT"},"lib/v4-core/src/libraries/LPFeeLibrary.sol":{"keccak256":"0xbf6914e01014e7c1044111feb7df7a3d96bb503b3da827ad8464b1955580d13b","urls":["bzz-raw://33823c20a91882c9aacdcbb02f0558c05209f4d5954aa6dd4fa17c95664db475","dweb:/ipfs/QmR7owkFgpfztpp1QUg3ut3nw9iPVQqLGP4hzgmZtRUQ2J"],"license":"MIT"},"lib/v4-core/src/libraries/ParseBytes.sol":{"keccak256":"0x7533b13f53ee2c2c55500100b22ffd6e37e7523c27874edc98663d53a8672b15","urls":["bzz-raw://82449058634fde28a085f3c59a6a5f412550c02181590593fd84c3e8b329aa17","dweb:/ipfs/Qmev4E9Au6SsE4wsArChCwfg94KhHc5gYsEsZUnjF5sRLa"],"license":"MIT"},"lib/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"lib/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"lib/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"lib/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"lib/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"lib/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"lib/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"lib/v4-periphery/src/base/ImmutableState.sol":{"keccak256":"0x1867c9fa2f9b4fa73bab0fcdc9d19ccef4eeac552273d8b84a170cd1cc90350a","urls":["bzz-raw://af2d699b439e13b599632fddfe82718aebd41055fba7c075f186675c588d1337","dweb:/ipfs/Qmc111gckSKb9aESn3wRFLeLiS4KGujaUcaYJgRnCRfwQU"],"license":"MIT"},"lib/v4-periphery/src/interfaces/IImmutableState.sol":{"keccak256":"0x36ab3100e87457ecf04887f4f540e34fd7f21d8e3b83880cb679239e60b7b06b","urls":["bzz-raw://7f290c7ce8e4832608d637a51b13dff95abecf6549485448e647a11c8ed01341","dweb:/ipfs/QmfD1R6mTp8j4EjQXmQZW3vCh11EYFjnvoaw8rXRP27mMq"],"license":"MIT"},"lib/v4-periphery/src/utils/BaseHook.sol":{"keccak256":"0x6268607345149d912996d1c2bac693b2102304cc97c19ec4fef184d6fa390e89","urls":["bzz-raw://d6c0dddffa6c5eb3c10bc45d56d58bc3f4773778322fa10a4acf46e2292b61b3","dweb:/ipfs/Qmc1Srhh6ne5Lsi2Y5BBz8pgPLmJdg8uN1UCeJzKnr6Kra"],"license":"MIT"},"src/OutcomeToken.sol":{"keccak256":"0xea4f09234896a444fa8d6ba5d465b3751cb47e71f926193703fdd0a9ec389b46","urls":["bzz-raw://38bb7250277400cd8a453d6d4a78c60cf330fc5c3841639cee03df61a6009d1c","dweb:/ipfs/QmSk5guaqRDy55dy4zrpnyZ63D92UMAjguNQ1EshzMizdm"],"license":"MIT"},"src/PredictionMarketHook.sol":{"keccak256":"0x0dbd6a8298952caa6d73adb3291c60a22ba97d7e99fa564ef39c70614d7d29e4","urls":["bzz-raw://71962ec918955f0ec98e403c8e89bcd06847f27901a2ac3ef2932231c3119f59","dweb:/ipfs/QmVV3Hm477bgqEZheS9ddW1vRSP4fBTPFMBAcpvT8C8Gv7"],"license":"MIT"},"src/interfaces/IAgentRegistry.sol":{"keccak256":"0x30d1efcf0a21e220efe81655b56463f23edfa202bfbaf9f94b1473ef7a753cab","urls":["bzz-raw://459b5d7e896f29c2c08b14d6fbeed3c0b85fb18c133a4acb5442a32df9ee3144","dweb:/ipfs/QmYikmUzZbV9FWDHDbLVV1JACayAhGoHLsgQc544t8b5s2"],"license":"MIT"},"src/interfaces/IOutcomeToken.sol":{"keccak256":"0x7737a1fc3b22e323189445aabd442d0d653658efa4efab01957a1afe1461e7ba","urls":["bzz-raw://83b6640ca20b7aa03bbc30897fa0f6a24e21d65acce9c74db8b2f5634c4b7dfe","dweb:/ipfs/QmfE3efRnJjAXU4UZ9NmyiRPdLUmgq8cyYQ9H42RC3vmF8"],"license":"MIT"},"src/interfaces/uma/OptimisticOracleV3CallbackRecipientInterface.sol":{"keccak256":"0xacdb1fea732dc188ae5f476bff406e570fa28cad38338115e60f7f773bdbd786","urls":["bzz-raw://e6dcd03a1aa3daeb7f76a8fd0eb0bfed9b445a44d9eb7b6bd7c7abe7ebc64714","dweb:/ipfs/QmecvsKkyracLYy7Zqv5bMCAoS9NrHDP1gdH3DXsgJq6rp"],"license":"AGPL-3.0-only"},"src/interfaces/uma/OptimisticOracleV3Interface.sol":{"keccak256":"0x6c1d1ac1465955999fac987cbfa26dcbbd69a115dd3c7c15e9554a5416a7e933","urls":["bzz-raw://ccfc671d611f85f881d11887b4957ad8229469c2fd20be5123098bf38646cc6c","dweb:/ipfs/QmWxY74byNkKgqkEYmKm95UqcPhW5AmM1k6QFvyVj4PNYH"],"license":"AGPL-3.0-only"}},"version":1},"ast":{"absolutePath":"src/PredictionMarketHook.sol","id":6350,"exportedSymbols":{"BaseHook":[4998],"BeforeSwapDelta":[3944],"BeforeSwapDeltaLibrary":[3988],"Hooks":[3420],"IAgentRegistry":[6417],"IERC20":[819],"IPoolManager":[1879],"ModifyLiquidityParams":[4358],"OptimisticOracleV3CallbackRecipientInterface":[6635],"OptimisticOracleV3Interface":[6747],"OutcomeToken":[5078],"PoolId":[4296],"PoolIdLibrary":[4310],"PoolKey":[4342],"PredictionMarketHook":[6349],"SafeERC20":[1300],"SwapParams":[4369]},"nodeType":"SourceUnit","src":"32:32077:32","nodes":[{"id":5080,"nodeType":"PragmaDirective","src":"32:24:32","nodes":[],"literals":["solidity","^","0.8",".26"]},{"id":5082,"nodeType":"ImportDirective","src":"557:61:32","nodes":[],"absolutePath":"lib/v4-periphery/src/utils/BaseHook.sol","file":"v4-periphery/src/utils/BaseHook.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":4999,"symbolAliases":[{"foreign":{"id":5081,"name":"BaseHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4998,"src":"565:8:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5084,"nodeType":"ImportDirective","src":"619:54:32","nodes":[],"absolutePath":"lib/v4-core/src/libraries/Hooks.sol","file":"v4-core/src/libraries/Hooks.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":3421,"symbolAliases":[{"foreign":{"id":5083,"name":"Hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3420,"src":"627:5:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5086,"nodeType":"ImportDirective","src":"674:69:32","nodes":[],"absolutePath":"lib/v4-core/src/interfaces/IPoolManager.sol","file":"v4-core/src/interfaces/IPoolManager.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":1880,"symbolAliases":[{"foreign":{"id":5085,"name":"IPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1879,"src":"682:12:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5088,"nodeType":"ImportDirective","src":"744:54:32","nodes":[],"absolutePath":"lib/v4-core/src/types/PoolKey.sol","file":"v4-core/src/types/PoolKey.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":4343,"symbolAliases":[{"foreign":{"id":5087,"name":"PoolKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"752:7:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5091,"nodeType":"ImportDirective","src":"799:67:32","nodes":[],"absolutePath":"lib/v4-core/src/types/PoolId.sol","file":"v4-core/src/types/PoolId.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":4311,"symbolAliases":[{"foreign":{"id":5089,"name":"PoolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4296,"src":"807:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5090,"name":"PoolIdLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"815:13:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"867:94:32","nodes":[],"absolutePath":"lib/v4-core/src/types/BeforeSwapDelta.sol","file":"v4-core/src/types/BeforeSwapDelta.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":3989,"symbolAliases":[{"foreign":{"id":5092,"name":"BeforeSwapDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3944,"src":"875:15:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5093,"name":"BeforeSwapDeltaLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"892:22:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5097,"nodeType":"ImportDirective","src":"962:86:32","nodes":[],"absolutePath":"lib/v4-core/src/types/PoolOperation.sol","file":"v4-core/src/types/PoolOperation.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":4370,"symbolAliases":[{"foreign":{"id":5095,"name":"ModifyLiquidityParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4358,"src":"970:21:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":5096,"name":"SwapParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4369,"src":"993:10:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5099,"nodeType":"ImportDirective","src":"1542:70:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":820,"symbolAliases":[{"foreign":{"id":5098,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":819,"src":"1550:6:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5101,"nodeType":"ImportDirective","src":"1613:82:32","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":1301,"symbolAliases":[{"foreign":{"id":5100,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"1621:9:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5103,"nodeType":"ImportDirective","src":"2191:93:32","nodes":[],"absolutePath":"src/interfaces/uma/OptimisticOracleV3Interface.sol","file":"./interfaces/uma/OptimisticOracleV3Interface.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":6748,"symbolAliases":[{"foreign":{"id":5102,"name":"OptimisticOracleV3Interface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6747,"src":"2199:27:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5105,"nodeType":"ImportDirective","src":"2285:131:32","nodes":[],"absolutePath":"src/interfaces/uma/OptimisticOracleV3CallbackRecipientInterface.sol","file":"./interfaces/uma/OptimisticOracleV3CallbackRecipientInterface.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":6636,"symbolAliases":[{"foreign":{"id":5104,"name":"OptimisticOracleV3CallbackRecipientInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"2293:44:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5107,"nodeType":"ImportDirective","src":"2915:63:32","nodes":[],"absolutePath":"src/interfaces/IAgentRegistry.sol","file":"./interfaces/IAgentRegistry.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":6418,"symbolAliases":[{"foreign":{"id":5106,"name":"IAgentRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6417,"src":"2923:14:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5109,"nodeType":"ImportDirective","src":"2979:48:32","nodes":[],"absolutePath":"src/OutcomeToken.sol","file":"./OutcomeToken.sol","nameLocation":"-1:-1:-1","scope":6350,"sourceUnit":5079,"symbolAliases":[{"foreign":{"id":5108,"name":"OutcomeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5078,"src":"2987:12:32","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6349,"nodeType":"ContractDefinition","src":"4657:27451:32","nodes":[{"id":5118,"nodeType":"UsingForDirective","src":"4751:27:32","nodes":[],"global":false,"libraryName":{"id":5115,"name":"SafeERC20","nameLocations":["4757:9:32"],"nodeType":"IdentifierPath","referencedDeclaration":1300,"src":"4757:9:32"},"typeName":{"id":5117,"nodeType":"UserDefinedTypeName","pathNode":{"id":5116,"name":"IERC20","nameLocations":["4771:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":819,"src":"4771:6:32"},"referencedDeclaration":819,"src":"4771:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}},{"id":5122,"nodeType":"UsingForDirective","src":"4783:32:32","nodes":[],"global":false,"libraryName":{"id":5119,"name":"PoolIdLibrary","nameLocations":["4789:13:32"],"nodeType":"IdentifierPath","referencedDeclaration":4310,"src":"4789:13:32"},"typeName":{"id":5121,"nodeType":"UserDefinedTypeName","pathNode":{"id":5120,"name":"PoolKey","nameLocations":["4807:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"4807:7:32"},"referencedDeclaration":4342,"src":"4807:7:32","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$4342_storage_ptr","typeString":"struct PoolKey"}}},{"id":5149,"nodeType":"StructDefinition","src":"5351:577:32","nodes":[],"canonicalName":"PredictionMarketHook.Market","documentation":{"id":5123,"nodeType":"StructuredDocumentation","src":"5291:55:32","text":"@notice Full representation of a prediction market."},"members":[{"constant":false,"id":5125,"mutability":"mutable","name":"description","nameLocation":"5382:11:32","nodeType":"VariableDeclaration","scope":5149,"src":"5375:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5124,"name":"string","nodeType":"ElementaryTypeName","src":"5375:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5127,"mutability":"mutable","name":"outcome1","nameLocation":"5410:8:32","nodeType":"VariableDeclaration","scope":5149,"src":"5403:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5126,"name":"string","nodeType":"ElementaryTypeName","src":"5403:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5129,"mutability":"mutable","name":"outcome2","nameLocation":"5449:8:32","nodeType":"VariableDeclaration","scope":5149,"src":"5442:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":5128,"name":"string","nodeType":"ElementaryTypeName","src":"5442:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5132,"mutability":"mutable","name":"outcome1Token","nameLocation":"5493:13:32","nodeType":"VariableDeclaration","scope":5149,"src":"5480:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"},"typeName":{"id":5131,"nodeType":"UserDefinedTypeName","pathNode":{"id":5130,"name":"OutcomeToken","nameLocations":["5480:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"5480:12:32"},"referencedDeclaration":5078,"src":"5480:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"visibility":"internal"},{"constant":false,"id":5135,"mutability":"mutable","name":"outcome2Token","nameLocation":"5529:13:32","nodeType":"VariableDeclaration","scope":5149,"src":"5516:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"},"typeName":{"id":5134,"nodeType":"UserDefinedTypeName","pathNode":{"id":5133,"name":"OutcomeToken","nameLocations":["5516:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"5516:12:32"},"referencedDeclaration":5078,"src":"5516:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"visibility":"internal"},{"constant":false,"id":5137,"mutability":"mutable","name":"reward","nameLocation":"5560:6:32","nodeType":"VariableDeclaration","scope":5149,"src":"5552:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5136,"name":"uint256","nodeType":"ElementaryTypeName","src":"5552:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5139,"mutability":"mutable","name":"requiredBond","nameLocation":"5614:12:32","nodeType":"VariableDeclaration","scope":5149,"src":"5606:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5138,"name":"uint256","nodeType":"ElementaryTypeName","src":"5606:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5141,"mutability":"mutable","name":"resolved","nameLocation":"5680:8:32","nodeType":"VariableDeclaration","scope":5149,"src":"5675:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5140,"name":"bool","nodeType":"ElementaryTypeName","src":"5675:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5143,"mutability":"mutable","name":"assertedOutcomeId","nameLocation":"5706:17:32","nodeType":"VariableDeclaration","scope":5149,"src":"5698:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5698:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5146,"mutability":"mutable","name":"poolId","nameLocation":"5794:6:32","nodeType":"VariableDeclaration","scope":5149,"src":"5787:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PoolId_$4296","typeString":"PoolId"},"typeName":{"id":5145,"nodeType":"UserDefinedTypeName","pathNode":{"id":5144,"name":"PoolId","nameLocations":["5787:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":4296,"src":"5787:6:32"},"referencedDeclaration":4296,"src":"5787:6:32","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PoolId_$4296","typeString":"PoolId"}},"visibility":"internal"},{"constant":false,"id":5148,"mutability":"mutable","name":"totalCollateral","nameLocation":"5872:15:32","nodeType":"VariableDeclaration","scope":5149,"src":"5864:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5147,"name":"uint256","nodeType":"ElementaryTypeName","src":"5864:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"Market","nameLocation":"5358:6:32","scope":6349,"visibility":"public"},{"id":5153,"nodeType":"VariableDeclaration","src":"6481:42:32","nodes":[],"constant":false,"documentation":{"id":5150,"nodeType":"StructuredDocumentation","src":"6407:69:32","text":"@notice The agent identity registry used for Silicon Gate checks."},"functionSelector":"2a663606","mutability":"immutable","name":"i_registry","nameLocation":"6513:10:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"},"typeName":{"id":5152,"nodeType":"UserDefinedTypeName","pathNode":{"id":5151,"name":"IAgentRegistry","nameLocations":["6481:14:32"],"nodeType":"IdentifierPath","referencedDeclaration":6417,"src":"6481:14:32"},"referencedDeclaration":6417,"src":"6481:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"visibility":"public"},{"id":5157,"nodeType":"VariableDeclaration","src":"6581:49:32","nodes":[],"constant":false,"documentation":{"id":5154,"nodeType":"StructuredDocumentation","src":"6530:46:32","text":"@notice UMA Optimistic Oracle V3 instance."},"functionSelector":"5998013f","mutability":"immutable","name":"i_oo","nameLocation":"6626:4:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"},"typeName":{"id":5156,"nodeType":"UserDefinedTypeName","pathNode":{"id":5155,"name":"OptimisticOracleV3Interface","nameLocations":["6581:27:32"],"nodeType":"IdentifierPath","referencedDeclaration":6747,"src":"6581:27:32"},"referencedDeclaration":6747,"src":"6581:27:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"visibility":"public"},{"id":5161,"nodeType":"VariableDeclaration","src":"6701:34:32","nodes":[],"constant":false,"documentation":{"id":5158,"nodeType":"StructuredDocumentation","src":"6637:59:32","text":"@notice ERC-20 used as the UMA assertion bond currency."},"functionSelector":"7ec1be76","mutability":"immutable","name":"i_currency","nameLocation":"6725:10:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"},"typeName":{"id":5160,"nodeType":"UserDefinedTypeName","pathNode":{"id":5159,"name":"IERC20","nameLocations":["6701:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":819,"src":"6701:6:32"},"referencedDeclaration":819,"src":"6701:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"visibility":"public"},{"id":5164,"nodeType":"VariableDeclaration","src":"6828:41:32","nodes":[],"constant":false,"documentation":{"id":5162,"nodeType":"StructuredDocumentation","src":"6742:81:32","text":"@notice Default liveness window for UMA assertions (seconds). 120 s for demo."},"functionSelector":"3ec74692","mutability":"immutable","name":"i_defaultLiveness","nameLocation":"6852:17:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5163,"name":"uint64","nodeType":"ElementaryTypeName","src":"6828:6:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"public"},{"id":5167,"nodeType":"VariableDeclaration","src":"6954:44:32","nodes":[],"constant":false,"documentation":{"id":5165,"nodeType":"StructuredDocumentation","src":"6876:73:32","text":"@notice Default UMA identifier, fetched from the OOV3 at deploy time."},"functionSelector":"d6a9b1bc","mutability":"immutable","name":"i_defaultIdentifier","nameLocation":"6979:19:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6954:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":5173,"nodeType":"VariableDeclaration","src":"7525:43:32","nodes":[],"constant":false,"documentation":{"id":5168,"nodeType":"StructuredDocumentation","src":"7475:45:32","text":"@notice Maps marketId to its Market data."},"functionSelector":"c480e488","mutability":"mutable","name":"s_markets","nameLocation":"7559:9:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market)"},"typeName":{"id":5172,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7533:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"7525:26:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5171,"nodeType":"UserDefinedTypeName","pathNode":{"id":5170,"name":"Market","nameLocations":["7544:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"7544:6:32"},"referencedDeclaration":5149,"src":"7544:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}}},"visibility":"public"},{"id":5178,"nodeType":"VariableDeclaration","src":"7650:54:32","nodes":[],"constant":false,"documentation":{"id":5174,"nodeType":"StructuredDocumentation","src":"7575:70:32","text":"@notice Maps a UMA assertionId back to the marketId it belongs to."},"functionSelector":"e74d916d","mutability":"mutable","name":"s_assertionToMarket","nameLocation":"7685:19:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"typeName":{"id":5177,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7658:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"7650:27:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7669:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":5181,"nodeType":"VariableDeclaration","src":"7787:28:32","nodes":[],"constant":false,"documentation":{"id":5179,"nodeType":"StructuredDocumentation","src":"7711:71:32","text":"@notice Running counter used for deterministic marketId generation."},"functionSelector":"e88dc465","mutability":"mutable","name":"s_marketCount","nameLocation":"7802:13:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5180,"name":"uint256","nodeType":"ElementaryTypeName","src":"7787:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":5185,"nodeType":"VariableDeclaration","src":"7878:29:32","nodes":[],"constant":false,"documentation":{"id":5182,"nodeType":"StructuredDocumentation","src":"7822:51:32","text":"@notice Array of all marketIds for enumeration."},"mutability":"mutable","name":"s_marketIds","nameLocation":"7896:11:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[]"},"typeName":{"baseType":{"id":5183,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7878:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5184,"nodeType":"ArrayTypeName","src":"7878:9:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"private"},{"id":5194,"nodeType":"VariableDeclaration","src":"8000:77:32","nodes":[],"constant":true,"documentation":{"id":5186,"nodeType":"StructuredDocumentation","src":"7914:81:32","text":"@notice The hash of the \"Unresolvable\" outcome string, cached for comparison."},"mutability":"constant","name":"UNRESOLVABLE_HASH","nameLocation":"8025:17:32","scope":6349,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8000:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"arguments":[{"hexValue":"556e7265736f6c7661626c65","id":5191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8061:14:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_ffa5c42fda42ac0bea9ca62d68dcc08a4b371f06b6e71afb99dee2ce276cbe4e","typeString":"literal_string \"Unresolvable\""},"value":"Unresolvable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ffa5c42fda42ac0bea9ca62d68dcc08a4b371f06b6e71afb99dee2ce276cbe4e","typeString":"literal_string \"Unresolvable\""}],"id":5190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8055:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5189,"name":"bytes","nodeType":"ElementaryTypeName","src":"8055:5:32","typeDescriptions":{}}},"id":5192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8055:21:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5188,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"8045:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8045:32:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"private"},{"id":5197,"nodeType":"ErrorDefinition","src":"8657:27:32","nodes":[],"documentation":{"id":5195,"nodeType":"StructuredDocumentation","src":"8560:92:32","text":"@notice Thrown when the caller (or tx.origin in hook context) is not a registered agent."},"errorSelector":"f6b72bbe","name":"NotRegisteredAgent","nameLocation":"8663:18:32","parameters":{"id":5196,"nodeType":"ParameterList","parameters":[],"src":"8681:2:32"}},{"id":5200,"nodeType":"ErrorDefinition","src":"8775:23:32","nodes":[],"documentation":{"id":5198,"nodeType":"StructuredDocumentation","src":"8690:80:32","text":"@notice Thrown when a marketId does not correspond to an initialized market."},"errorSelector":"7db1be50","name":"MarketNotFound","nameLocation":"8781:14:32","parameters":{"id":5199,"nodeType":"ParameterList","parameters":[],"src":"8795:2:32"}},{"id":5203,"nodeType":"ErrorDefinition","src":"8889:30:32","nodes":[],"documentation":{"id":5201,"nodeType":"StructuredDocumentation","src":"8804:80:32","text":"@notice Thrown when an operation is attempted on an already-resolved market."},"errorSelector":"aa43cb2d","name":"MarketAlreadyResolved","nameLocation":"8895:21:32","parameters":{"id":5202,"nodeType":"ParameterList","parameters":[],"src":"8916:2:32"}},{"id":5206,"nodeType":"ErrorDefinition","src":"9011:30:32","nodes":[],"documentation":{"id":5204,"nodeType":"StructuredDocumentation","src":"8925:81:32","text":"@notice Thrown when a new assertion is attempted while one is already active."},"errorSelector":"577e2d28","name":"ActiveAssertionExists","nameLocation":"9017:21:32","parameters":{"id":5205,"nodeType":"ParameterList","parameters":[],"src":"9038:2:32"}},{"id":5209,"nodeType":"ErrorDefinition","src":"9173:23:32","nodes":[],"documentation":{"id":5207,"nodeType":"StructuredDocumentation","src":"9047:121:32","text":"@notice Thrown when the asserted outcome string does not match outcome1, outcome2,\n or \"Unresolvable\"."},"errorSelector":"c74a206d","name":"InvalidOutcome","nameLocation":"9179:14:32","parameters":{"id":5208,"nodeType":"ParameterList","parameters":[],"src":"9193:2:32"}},{"id":5212,"nodeType":"ErrorDefinition","src":"9289:26:32","nodes":[],"documentation":{"id":5210,"nodeType":"StructuredDocumentation","src":"9202:82:32","text":"@notice Thrown when settlement is attempted on a market that has not resolved."},"errorSelector":"2e96c726","name":"MarketNotResolved","nameLocation":"9295:17:32","parameters":{"id":5211,"nodeType":"ParameterList","parameters":[],"src":"9312:2:32"}},{"id":5215,"nodeType":"ErrorDefinition","src":"9395:25:32","nodes":[],"documentation":{"id":5213,"nodeType":"StructuredDocumentation","src":"9321:69:32","text":"@notice Thrown when the caller has zero winning tokens to settle."},"errorSelector":"c988bc4f","name":"NoTokensToSettle","nameLocation":"9401:16:32","parameters":{"id":5214,"nodeType":"ParameterList","parameters":[],"src":"9417:2:32"}},{"id":5218,"nodeType":"ErrorDefinition","src":"9514:19:32","nodes":[],"documentation":{"id":5216,"nodeType":"StructuredDocumentation","src":"9426:83:32","text":"@notice Thrown when a callback is received from an address other than UMA OOV3."},"errorSelector":"80fee105","name":"OnlyOracle","nameLocation":"9520:10:32","parameters":{"id":5217,"nodeType":"ParameterList","parameters":[],"src":"9530:2:32"}},{"id":5221,"nodeType":"ErrorDefinition","src":"9606:23:32","nodes":[],"documentation":{"id":5219,"nodeType":"StructuredDocumentation","src":"9539:62:32","text":"@notice Thrown when zero ETH is sent to mintOutcomeTokens."},"errorSelector":"215b990c","name":"ZeroMintAmount","nameLocation":"9612:14:32","parameters":{"id":5220,"nodeType":"ParameterList","parameters":[],"src":"9626:2:32"}},{"id":5224,"nodeType":"ErrorDefinition","src":"9704:26:32","nodes":[],"documentation":{"id":5222,"nodeType":"StructuredDocumentation","src":"9635:64:32","text":"@notice Thrown when an ETH transfer fails during settlement."},"errorSelector":"6d963f88","name":"EthTransferFailed","nameLocation":"9710:17:32","parameters":{"id":5223,"nodeType":"ParameterList","parameters":[],"src":"9727:2:32"}},{"id":5233,"nodeType":"EventDefinition","src":"10274:95:32","nodes":[],"anonymous":false,"documentation":{"id":5225,"nodeType":"StructuredDocumentation","src":"10205:64:32","text":"@notice Emitted when a new prediction market is initialized."},"eventSelector":"f01ffee5464a2d2e852ed09b876d89913609461936ccf9e41a1d05778f7867cb","name":"MarketInitialized","nameLocation":"10280:17:32","parameters":{"id":5232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5227,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"10314:8:32","nodeType":"VariableDeclaration","scope":5233,"src":"10298:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10298:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5229,"indexed":false,"mutability":"mutable","name":"description","nameLocation":"10331:11:32","nodeType":"VariableDeclaration","scope":5233,"src":"10324:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5228,"name":"string","nodeType":"ElementaryTypeName","src":"10324:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5231,"indexed":true,"mutability":"mutable","name":"creator","nameLocation":"10360:7:32","nodeType":"VariableDeclaration","scope":5233,"src":"10344:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5230,"name":"address","nodeType":"ElementaryTypeName","src":"10344:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10297:71:32"}},{"id":5242,"nodeType":"EventDefinition","src":"10469:84:32","nodes":[],"anonymous":false,"documentation":{"id":5234,"nodeType":"StructuredDocumentation","src":"10375:89:32","text":"@notice Emitted when an agent mints outcome token pairs by depositing ETH collateral."},"eventSelector":"ef616469a0b35ce807813d17c53c505b9d4796a93287cd361318dbca99ac9250","name":"TokensMinted","nameLocation":"10475:12:32","parameters":{"id":5241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5236,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"10504:8:32","nodeType":"VariableDeclaration","scope":5242,"src":"10488:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10488:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5238,"indexed":true,"mutability":"mutable","name":"agent","nameLocation":"10530:5:32","nodeType":"VariableDeclaration","scope":5242,"src":"10514:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5237,"name":"address","nodeType":"ElementaryTypeName","src":"10514:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5240,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"10545:6:32","nodeType":"VariableDeclaration","scope":5242,"src":"10537:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5239,"name":"uint256","nodeType":"ElementaryTypeName","src":"10537:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10487:65:32"}},{"id":5253,"nodeType":"EventDefinition","src":"10643:132:32","nodes":[],"anonymous":false,"documentation":{"id":5243,"nodeType":"StructuredDocumentation","src":"10559:79:32","text":"@notice Emitted when an agent asserts the outcome of a market via UMA OOV3."},"eventSelector":"ab12f57da170bb2466605c5ae79facc28eedb88c90b187555e5def705b0e09fb","name":"MarketAsserted","nameLocation":"10649:14:32","parameters":{"id":5252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5245,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"10689:8:32","nodeType":"VariableDeclaration","scope":5253,"src":"10673:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10673:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5247,"indexed":false,"mutability":"mutable","name":"assertedOutcome","nameLocation":"10706:15:32","nodeType":"VariableDeclaration","scope":5253,"src":"10699:22:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5246,"name":"string","nodeType":"ElementaryTypeName","src":"10699:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5249,"indexed":true,"mutability":"mutable","name":"asserter","nameLocation":"10739:8:32","nodeType":"VariableDeclaration","scope":5253,"src":"10723:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5248,"name":"address","nodeType":"ElementaryTypeName","src":"10723:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5251,"indexed":false,"mutability":"mutable","name":"assertionId","nameLocation":"10757:11:32","nodeType":"VariableDeclaration","scope":5253,"src":"10749:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5250,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10749:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10663:111:32"}},{"id":5260,"nodeType":"EventDefinition","src":"10877:66:32","nodes":[],"anonymous":false,"documentation":{"id":5254,"nodeType":"StructuredDocumentation","src":"10781:91:32","text":"@notice Emitted when UMA OOV3 resolves an assertion as truthful and the market settles."},"eventSelector":"81e6139d4590ae37e3bcbb2dc42f1a436d8350fd4aab6319f9c3bb2dbbca8314","name":"MarketResolved","nameLocation":"10883:14:32","parameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5256,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"10914:8:32","nodeType":"VariableDeclaration","scope":5260,"src":"10898:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5255,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10898:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5258,"indexed":false,"mutability":"mutable","name":"outcomeId","nameLocation":"10932:9:32","nodeType":"VariableDeclaration","scope":5260,"src":"10924:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10924:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10897:45:32"}},{"id":5267,"nodeType":"EventDefinition","src":"11046:69:32","nodes":[],"anonymous":false,"documentation":{"id":5261,"nodeType":"StructuredDocumentation","src":"10949:92:32","text":"@notice Emitted when UMA OOV3 resolves an assertion as NOT truthful (disputed and lost)."},"eventSelector":"bc19aba8b34ebe13f2c82d885af0ad7f5fdcb0a8f316d7e7a082a9c36577e12c","name":"AssertionFailed","nameLocation":"11052:15:32","parameters":{"id":5266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5263,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"11084:8:32","nodeType":"VariableDeclaration","scope":5267,"src":"11068:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11068:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5265,"indexed":false,"mutability":"mutable","name":"assertionId","nameLocation":"11102:11:32","nodeType":"VariableDeclaration","scope":5267,"src":"11094:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5264,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11094:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11067:47:32"}},{"id":5274,"nodeType":"EventDefinition","src":"11205:71:32","nodes":[],"anonymous":false,"documentation":{"id":5268,"nodeType":"StructuredDocumentation","src":"11121:79:32","text":"@notice Emitted when UMA OOV3 notifies that an assertion has been disputed."},"eventSelector":"b0b7745dbc52ca54ee13627e6cabcdd84d9b9e98d4e7882af6daf1dae0747da7","name":"AssertionDisputed","nameLocation":"11211:17:32","parameters":{"id":5273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5270,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"11245:8:32","nodeType":"VariableDeclaration","scope":5274,"src":"11229:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11229:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5272,"indexed":false,"mutability":"mutable","name":"assertionId","nameLocation":"11263:11:32","nodeType":"VariableDeclaration","scope":5274,"src":"11255:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5271,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11255:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11228:47:32"}},{"id":5283,"nodeType":"EventDefinition","src":"11360:85:32","nodes":[],"anonymous":false,"documentation":{"id":5275,"nodeType":"StructuredDocumentation","src":"11282:73:32","text":"@notice Emitted when an agent redeems winning outcome tokens for ETH."},"eventSelector":"81230ad21489f10370ac678b2d388ac8e10c34303c5fad7f879cb33c4b0f534e","name":"TokensSettled","nameLocation":"11366:13:32","parameters":{"id":5282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5277,"indexed":true,"mutability":"mutable","name":"marketId","nameLocation":"11396:8:32","nodeType":"VariableDeclaration","scope":5283,"src":"11380:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11380:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5279,"indexed":true,"mutability":"mutable","name":"agent","nameLocation":"11422:5:32","nodeType":"VariableDeclaration","scope":5283,"src":"11406:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5278,"name":"address","nodeType":"ElementaryTypeName","src":"11406:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5281,"indexed":false,"mutability":"mutable","name":"payout","nameLocation":"11437:6:32","nodeType":"VariableDeclaration","scope":5283,"src":"11429:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5280,"name":"uint256","nodeType":"ElementaryTypeName","src":"11429:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11379:65:32"}},{"id":5327,"nodeType":"FunctionDefinition","src":"12424:402:32","nodes":[],"body":{"id":5326,"nodeType":"Block","src":"12634:192:32","nodes":[],"statements":[{"expression":{"id":5306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5304,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"12644:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5305,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5290,"src":"12657:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"src":"12644:22:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5307,"nodeType":"ExpressionStatement","src":"12644:22:32"},{"expression":{"id":5310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5308,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"12676:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5309,"name":"_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5293,"src":"12683:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"src":"12676:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"id":5311,"nodeType":"ExpressionStatement","src":"12676:10:32"},{"expression":{"id":5314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5312,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"12696:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5313,"name":"_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5296,"src":"12709:9:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"src":"12696:22:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":5315,"nodeType":"ExpressionStatement","src":"12696:22:32"},{"expression":{"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5316,"name":"i_defaultLiveness","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"12728:17:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5317,"name":"_defaultLiveness","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"12748:16:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"12728:36:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":5319,"nodeType":"ExpressionStatement","src":"12728:36:32"},{"expression":{"id":5324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5320,"name":"i_defaultIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5167,"src":"12774:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":5321,"name":"_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5293,"src":"12796:3:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"id":5322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12800:17:32","memberName":"defaultIdentifier","nodeType":"MemberAccess","referencedDeclaration":6746,"src":"12796:21:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":5323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12796:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12774:45:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5325,"nodeType":"ExpressionStatement","src":"12774:45:32"}]},"documentation":{"id":5284,"nodeType":"StructuredDocumentation","src":"11925:494:32","text":"@notice Deploys the PredictionMarketHook, binding it to V4, the agent registry,\n and UMA OOV3.\n @param _poolManager The Uniswap V4 PoolManager instance.\n @param _registry The AgentRegistry used for Silicon Gate checks.\n @param _oo The UMA Optimistic Oracle V3 address.\n @param _currency The ERC-20 used as UMA bond currency (e.g., WETH or mock).\n @param _defaultLiveness The liveness window in seconds (120 for demo)."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":5301,"name":"_poolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5287,"src":"12620:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_IPoolManager_$1879","typeString":"contract IPoolManager"}}],"id":5302,"kind":"baseConstructorSpecifier","modifierName":{"id":5300,"name":"BaseHook","nameLocations":["12611:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"12611:8:32"},"nodeType":"ModifierInvocation","src":"12611:22:32"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5287,"mutability":"mutable","name":"_poolManager","nameLocation":"12458:12:32","nodeType":"VariableDeclaration","scope":5327,"src":"12445:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPoolManager_$1879","typeString":"contract IPoolManager"},"typeName":{"id":5286,"nodeType":"UserDefinedTypeName","pathNode":{"id":5285,"name":"IPoolManager","nameLocations":["12445:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":1879,"src":"12445:12:32"},"referencedDeclaration":1879,"src":"12445:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_IPoolManager_$1879","typeString":"contract IPoolManager"}},"visibility":"internal"},{"constant":false,"id":5290,"mutability":"mutable","name":"_registry","nameLocation":"12495:9:32","nodeType":"VariableDeclaration","scope":5327,"src":"12480:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"},"typeName":{"id":5289,"nodeType":"UserDefinedTypeName","pathNode":{"id":5288,"name":"IAgentRegistry","nameLocations":["12480:14:32"],"nodeType":"IdentifierPath","referencedDeclaration":6417,"src":"12480:14:32"},"referencedDeclaration":6417,"src":"12480:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"visibility":"internal"},{"constant":false,"id":5293,"mutability":"mutable","name":"_oo","nameLocation":"12542:3:32","nodeType":"VariableDeclaration","scope":5327,"src":"12514:31:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"},"typeName":{"id":5292,"nodeType":"UserDefinedTypeName","pathNode":{"id":5291,"name":"OptimisticOracleV3Interface","nameLocations":["12514:27:32"],"nodeType":"IdentifierPath","referencedDeclaration":6747,"src":"12514:27:32"},"referencedDeclaration":6747,"src":"12514:27:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"visibility":"internal"},{"constant":false,"id":5296,"mutability":"mutable","name":"_currency","nameLocation":"12562:9:32","nodeType":"VariableDeclaration","scope":5327,"src":"12555:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"},"typeName":{"id":5295,"nodeType":"UserDefinedTypeName","pathNode":{"id":5294,"name":"IERC20","nameLocations":["12555:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":819,"src":"12555:6:32"},"referencedDeclaration":819,"src":"12555:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":5298,"mutability":"mutable","name":"_defaultLiveness","nameLocation":"12588:16:32","nodeType":"VariableDeclaration","scope":5327,"src":"12581:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":5297,"name":"uint64","nodeType":"ElementaryTypeName","src":"12581:6:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"12435:175:32"},"returnParameters":{"id":5303,"nodeType":"ParameterList","parameters":[],"src":"12634:0:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5354,"nodeType":"FunctionDefinition","src":"13343:680:32","nodes":[],"body":{"id":5353,"nodeType":"Block","src":"13429:594:32","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"66616c7365","id":5337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13496:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13532:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":5339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13571:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"66616c7365","id":5340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13608:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13650:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13691:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"74727565","id":5343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13722:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"66616c7365","id":5344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13751:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13784:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13816:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13858:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13899:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13948:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"66616c7365","id":5350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14000:5:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5335,"name":"Hooks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3420,"src":"13446:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hooks_$3420_$","typeString":"type(library Hooks)"}},"id":5336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13452:11:32","memberName":"Permissions","nodeType":"MemberAccess","referencedDeclaration":2405,"src":"13446:17:32","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Permissions_$2405_storage_ptr_$","typeString":"type(struct Hooks.Permissions storage pointer)"}},"id":5351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["13478:16:32","13515:15:32","13551:18:32","13589:17:32","13627:21:32","13669:20:32","13710:10:32","13740:9:32","13770:12:32","13803:11:32","13835:21:32","13877:20:32","13918:28:32","13967:31:32"],"names":["beforeInitialize","afterInitialize","beforeAddLiquidity","afterAddLiquidity","beforeRemoveLiquidity","afterRemoveLiquidity","beforeSwap","afterSwap","beforeDonate","afterDonate","beforeSwapReturnDelta","afterSwapReturnDelta","afterAddLiquidityReturnDelta","afterRemoveLiquidityReturnDelta"],"nodeType":"FunctionCall","src":"13446:570:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$2405_memory_ptr","typeString":"struct Hooks.Permissions memory"}},"functionReturnParameters":5334,"id":5352,"nodeType":"Return","src":"13439:577:32"}]},"baseFunctions":[4473],"documentation":{"id":5328,"nodeType":"StructuredDocumentation","src":"13314:24:32","text":"@inheritdoc BaseHook"},"functionSelector":"c4e833ce","implemented":true,"kind":"function","modifiers":[],"name":"getHookPermissions","nameLocation":"13352:18:32","overrides":{"id":5330,"nodeType":"OverrideSpecifier","overrides":[],"src":"13385:8:32"},"parameters":{"id":5329,"nodeType":"ParameterList","parameters":[],"src":"13370:2:32"},"returnParameters":{"id":5334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5333,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5354,"src":"13403:24:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$2405_memory_ptr","typeString":"struct Hooks.Permissions"},"typeName":{"id":5332,"nodeType":"UserDefinedTypeName","pathNode":{"id":5331,"name":"Hooks.Permissions","nameLocations":["13403:5:32","13409:11:32"],"nodeType":"IdentifierPath","referencedDeclaration":2405,"src":"13403:17:32"},"referencedDeclaration":2405,"src":"13403:17:32","typeDescriptions":{"typeIdentifier":"t_struct$_Permissions_$2405_storage_ptr","typeString":"struct Hooks.Permissions"}},"visibility":"internal"}],"src":"13402:26:32"},"scope":6349,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":5396,"nodeType":"FunctionDefinition","src":"14790:424:32","nodes":[],"body":{"id":5395,"nodeType":"Block","src":"14976:238:32","nodes":[],"statements":[{"condition":{"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15043:30:32","subExpression":{"arguments":[{"expression":{"id":5378,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"15063:2:32","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15066:6:32","memberName":"origin","nodeType":"MemberAccess","src":"15063:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5376,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"15044:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15055:7:32","memberName":"isAgent","nodeType":"MemberAccess","referencedDeclaration":6394,"src":"15044:18:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15044:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5386,"nodeType":"IfStatement","src":"15039:88:32","trueBody":{"id":5385,"nodeType":"Block","src":"15075:52:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5382,"name":"NotRegisteredAgent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"15096:18:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15096:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5384,"nodeType":"RevertStatement","src":"15089:27:32"}]}},{"expression":{"components":[{"expression":{"expression":{"id":5387,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15144:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15149:10:32","memberName":"beforeSwap","nodeType":"MemberAccess","referencedDeclaration":4821,"src":"15144:15:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_PoolKey_$4342_memory_ptr_$_t_struct$_SwapParams_$4369_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$_t_userDefinedValueType$_BeforeSwapDelta_$3944_$_t_uint24_$","typeString":"function (address,struct PoolKey memory,struct SwapParams memory,bytes memory) external returns (bytes4,BeforeSwapDelta,uint24)"}},"id":5389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15160:8:32","memberName":"selector","nodeType":"MemberAccess","src":"15144:24:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":5390,"name":"BeforeSwapDeltaLibrary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3988,"src":"15170:22:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BeforeSwapDeltaLibrary_$3988_$","typeString":"type(library BeforeSwapDeltaLibrary)"}},"id":5391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15193:10:32","memberName":"ZERO_DELTA","nodeType":"MemberAccess","referencedDeclaration":3965,"src":"15170:33:32","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BeforeSwapDelta_$3944","typeString":"BeforeSwapDelta"}},{"hexValue":"30","id":5392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15205:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":5393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"15143:64:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bytes4_$_t_userDefinedValueType$_BeforeSwapDelta_$3944_$_t_rational_0_by_1_$","typeString":"tuple(bytes4,BeforeSwapDelta,int_const 0)"}},"functionReturnParameters":5375,"id":5394,"nodeType":"Return","src":"15136:71:32"}]},"baseFunctions":[4845],"documentation":{"id":5355,"nodeType":"StructuredDocumentation","src":"14524:261:32","text":"@notice Enforces that only registered agents can execute swaps on pools using this hook.\n @dev Uses `tx.origin` because `msg.sender` in the hook callback is always the V4\n PoolManager. This is a known hackathon trade-off documented above."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeSwap","nameLocation":"14799:11:32","overrides":{"id":5367,"nodeType":"OverrideSpecifier","overrides":[],"src":"14913:8:32"},"parameters":{"id":5366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14811:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5356,"name":"address","nodeType":"ElementaryTypeName","src":"14811:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5360,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14820:16:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$4342_calldata_ptr","typeString":"struct PoolKey"},"typeName":{"id":5359,"nodeType":"UserDefinedTypeName","pathNode":{"id":5358,"name":"PoolKey","nameLocations":["14820:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"14820:7:32"},"referencedDeclaration":4342,"src":"14820:7:32","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$4342_storage_ptr","typeString":"struct PoolKey"}},"visibility":"internal"},{"constant":false,"id":5363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14838:19:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SwapParams_$4369_calldata_ptr","typeString":"struct SwapParams"},"typeName":{"id":5362,"nodeType":"UserDefinedTypeName","pathNode":{"id":5361,"name":"SwapParams","nameLocations":["14838:10:32"],"nodeType":"IdentifierPath","referencedDeclaration":4369,"src":"14838:10:32"},"referencedDeclaration":4369,"src":"14838:10:32","typeDescriptions":{"typeIdentifier":"t_struct$_SwapParams_$4369_storage_ptr","typeString":"struct SwapParams"}},"visibility":"internal"},{"constant":false,"id":5365,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14859:14:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5364,"name":"bytes","nodeType":"ElementaryTypeName","src":"14859:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"14810:64:32"},"returnParameters":{"id":5375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5369,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14939:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5368,"name":"bytes4","nodeType":"ElementaryTypeName","src":"14939:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":5372,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14947:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BeforeSwapDelta_$3944","typeString":"BeforeSwapDelta"},"typeName":{"id":5371,"nodeType":"UserDefinedTypeName","pathNode":{"id":5370,"name":"BeforeSwapDelta","nameLocations":["14947:15:32"],"nodeType":"IdentifierPath","referencedDeclaration":3944,"src":"14947:15:32"},"referencedDeclaration":3944,"src":"14947:15:32","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_BeforeSwapDelta_$3944","typeString":"BeforeSwapDelta"}},"visibility":"internal"},{"constant":false,"id":5374,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5396,"src":"14964:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":5373,"name":"uint24","nodeType":"ElementaryTypeName","src":"14964:6:32","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"14938:33:32"},"scope":6349,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":5429,"nodeType":"FunctionDefinition","src":"15371:386:32","nodes":[],"body":{"id":5428,"nodeType":"Block","src":"15551:206:32","nodes":[],"statements":[{"condition":{"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15618:30:32","subExpression":{"arguments":[{"expression":{"id":5415,"name":"tx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-26,"src":"15638:2:32","typeDescriptions":{"typeIdentifier":"t_magic_transaction","typeString":"tx"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15641:6:32","memberName":"origin","nodeType":"MemberAccess","src":"15638:9:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5413,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"15619:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15630:7:32","memberName":"isAgent","nodeType":"MemberAccess","referencedDeclaration":6394,"src":"15619:18:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15619:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5423,"nodeType":"IfStatement","src":"15614:88:32","trueBody":{"id":5422,"nodeType":"Block","src":"15650:52:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5419,"name":"NotRegisteredAgent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"15671:18:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15671:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5421,"nodeType":"RevertStatement","src":"15664:27:32"}]}},{"expression":{"expression":{"expression":{"id":5424,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15718:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}},"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15723:18:32","memberName":"beforeAddLiquidity","nodeType":"MemberAccess","referencedDeclaration":4596,"src":"15718:23:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_struct$_PoolKey_$4342_memory_ptr_$_t_struct$_ModifyLiquidityParams_$4358_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$","typeString":"function (address,struct PoolKey memory,struct ModifyLiquidityParams memory,bytes memory) external returns (bytes4)"}},"id":5426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15742:8:32","memberName":"selector","nodeType":"MemberAccess","src":"15718:32:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":5412,"id":5427,"nodeType":"Return","src":"15711:39:32"}]},"baseFunctions":[4615],"documentation":{"id":5397,"nodeType":"StructuredDocumentation","src":"15220:146:32","text":"@notice Enforces that only registered agents can add liquidity to pools using this hook.\n @dev Same tx.origin rationale as _beforeSwap."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeAddLiquidity","nameLocation":"15380:19:32","overrides":{"id":5409,"nodeType":"OverrideSpecifier","overrides":[],"src":"15513:8:32"},"parameters":{"id":5408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"15400:7:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5398,"name":"address","nodeType":"ElementaryTypeName","src":"15400:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"15409:16:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$4342_calldata_ptr","typeString":"struct PoolKey"},"typeName":{"id":5401,"nodeType":"UserDefinedTypeName","pathNode":{"id":5400,"name":"PoolKey","nameLocations":["15409:7:32"],"nodeType":"IdentifierPath","referencedDeclaration":4342,"src":"15409:7:32"},"referencedDeclaration":4342,"src":"15409:7:32","typeDescriptions":{"typeIdentifier":"t_struct$_PoolKey_$4342_storage_ptr","typeString":"struct PoolKey"}},"visibility":"internal"},{"constant":false,"id":5405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"15427:30:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ModifyLiquidityParams_$4358_calldata_ptr","typeString":"struct ModifyLiquidityParams"},"typeName":{"id":5404,"nodeType":"UserDefinedTypeName","pathNode":{"id":5403,"name":"ModifyLiquidityParams","nameLocations":["15427:21:32"],"nodeType":"IdentifierPath","referencedDeclaration":4358,"src":"15427:21:32"},"referencedDeclaration":4358,"src":"15427:21:32","typeDescriptions":{"typeIdentifier":"t_struct$_ModifyLiquidityParams_$4358_storage_ptr","typeString":"struct ModifyLiquidityParams"}},"visibility":"internal"},{"constant":false,"id":5407,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"15459:14:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5406,"name":"bytes","nodeType":"ElementaryTypeName","src":"15459:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"15399:75:32"},"returnParameters":{"id":5412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5411,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5429,"src":"15539:6:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":5410,"name":"bytes4","nodeType":"ElementaryTypeName","src":"15539:6:32","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"15538:8:32"},"scope":6349,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":5591,"nodeType":"FunctionDefinition","src":"17073:1829:32","nodes":[],"body":{"id":5590,"nodeType":"Block","src":"17300:1602:32","nodes":[],"statements":[{"condition":{"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17314:31:32","subExpression":{"arguments":[{"expression":{"id":5447,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17334:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17338:6:32","memberName":"sender","nodeType":"MemberAccess","src":"17334:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5445,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"17315:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17326:7:32","memberName":"isAgent","nodeType":"MemberAccess","referencedDeclaration":6394,"src":"17315:18:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17315:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5455,"nodeType":"IfStatement","src":"17310:89:32","trueBody":{"id":5454,"nodeType":"Block","src":"17347:52:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5451,"name":"NotRegisteredAgent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"17368:18:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17368:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5453,"nodeType":"RevertStatement","src":"17361:27:32"}]}},{"expression":{"id":5468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5456,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"17465:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":5460,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"17497:11:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":5461,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"17510:5:32","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17516:9:32","memberName":"timestamp","nodeType":"MemberAccess","src":"17510:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17527:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17531:6:32","memberName":"sender","nodeType":"MemberAccess","src":"17527:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5465,"name":"s_marketCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"17539:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5458,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17486:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5459,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17490:6:32","memberName":"encode","nodeType":"MemberAccess","src":"17486:10:32","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17486:67:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5457,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"17476:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17476:78:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"17465:89:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5469,"nodeType":"ExpressionStatement","src":"17465:89:32"},{"assignments":[5472],"declarations":[{"constant":false,"id":5472,"mutability":"mutable","name":"token1","nameLocation":"17664:6:32","nodeType":"VariableDeclaration","scope":5590,"src":"17651:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"},"typeName":{"id":5471,"nodeType":"UserDefinedTypeName","pathNode":{"id":5470,"name":"OutcomeToken","nameLocations":["17651:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"17651:12:32"},"referencedDeclaration":5078,"src":"17651:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"visibility":"internal"}],"id":5488,"initialValue":{"arguments":[{"arguments":[{"hexValue":"434c415720594553202d20","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17717:13:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_ff31e145c69b35fb0da3bc4b5af9b7c0977d63008a4a2d0e2c950db986351bc0","typeString":"literal_string \"CLAW YES - \""},"value":"CLAW YES - "},{"id":5480,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"17732:11:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ff31e145c69b35fb0da3bc4b5af9b7c0977d63008a4a2d0e2c950db986351bc0","typeString":"literal_string \"CLAW YES - \""},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":5477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17703:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5476,"name":"string","nodeType":"ElementaryTypeName","src":"17703:6:32","typeDescriptions":{}}},"id":5478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17710:6:32","memberName":"concat","nodeType":"MemberAccess","src":"17703:13:32","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17703:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"636c594553","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17758:7:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_61008e41ef8e8b493b3955145a5aeda81443bf5965522e85b4356d9cc5c5f1bf","typeString":"literal_string \"clYES\""},"value":"clYES"},{"arguments":[{"id":5485,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17787:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}],"id":5484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17779:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5483,"name":"address","nodeType":"ElementaryTypeName","src":"17779:7:32","typeDescriptions":{}}},"id":5486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17779:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_61008e41ef8e8b493b3955145a5aeda81443bf5965522e85b4356d9cc5c5f1bf","typeString":"literal_string \"clYES\""},{"typeIdentifier":"t_address","typeString":"address"}],"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17673:16:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_OutcomeToken_$5078_$","typeString":"function (string memory,string memory,address) returns (contract OutcomeToken)"},"typeName":{"id":5474,"nodeType":"UserDefinedTypeName","pathNode":{"id":5473,"name":"OutcomeToken","nameLocations":["17677:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"17677:12:32"},"referencedDeclaration":5078,"src":"17677:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}},"id":5487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17673:129:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"nodeType":"VariableDeclarationStatement","src":"17651:151:32"},{"assignments":[5491],"declarations":[{"constant":false,"id":5491,"mutability":"mutable","name":"token2","nameLocation":"17825:6:32","nodeType":"VariableDeclaration","scope":5590,"src":"17812:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"},"typeName":{"id":5490,"nodeType":"UserDefinedTypeName","pathNode":{"id":5489,"name":"OutcomeToken","nameLocations":["17812:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"17812:12:32"},"referencedDeclaration":5078,"src":"17812:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"visibility":"internal"}],"id":5507,"initialValue":{"arguments":[{"arguments":[{"hexValue":"434c4157204e4f202d20","id":5498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17878:12:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_30c95a914549cfbc4b57fcce84a6f01f62c1050a03c53f1127f066cb76e54287","typeString":"literal_string \"CLAW NO - \""},"value":"CLAW NO - "},{"id":5499,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"17892:11:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_30c95a914549cfbc4b57fcce84a6f01f62c1050a03c53f1127f066cb76e54287","typeString":"literal_string \"CLAW NO - \""},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"id":5496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17864:6:32","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":5495,"name":"string","nodeType":"ElementaryTypeName","src":"17864:6:32","typeDescriptions":{}}},"id":5497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17871:6:32","memberName":"concat","nodeType":"MemberAccess","src":"17864:13:32","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17864:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"636c4e4f","id":5501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17918:6:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e1fbe88ed2acd98fd672e997bcb104082abff649e6cd379f435689c3dd26311","typeString":"literal_string \"clNO\""},"value":"clNO"},{"arguments":[{"id":5504,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17946:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}],"id":5503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17938:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5502,"name":"address","nodeType":"ElementaryTypeName","src":"17938:7:32","typeDescriptions":{}}},"id":5505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17938:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0e1fbe88ed2acd98fd672e997bcb104082abff649e6cd379f435689c3dd26311","typeString":"literal_string \"clNO\""},{"typeIdentifier":"t_address","typeString":"address"}],"id":5494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"17834:16:32","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$_t_contract$_OutcomeToken_$5078_$","typeString":"function (string memory,string memory,address) returns (contract OutcomeToken)"},"typeName":{"id":5493,"nodeType":"UserDefinedTypeName","pathNode":{"id":5492,"name":"OutcomeToken","nameLocations":["17838:12:32"],"nodeType":"IdentifierPath","referencedDeclaration":5078,"src":"17838:12:32"},"referencedDeclaration":5078,"src":"17838:12:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17834:127:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"nodeType":"VariableDeclarationStatement","src":"17812:149:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5508,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"18129:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":5509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18138:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18129:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5524,"nodeType":"IfStatement","src":"18125:103:32","trueBody":{"id":5523,"nodeType":"Block","src":"18141:87:32","statements":[{"expression":{"arguments":[{"expression":{"id":5514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18183:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18187:6:32","memberName":"sender","nodeType":"MemberAccess","src":"18183:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5518,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18203:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}],"id":5517,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18195:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5516,"name":"address","nodeType":"ElementaryTypeName","src":"18195:7:32","typeDescriptions":{}}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18195:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5520,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"18210:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5511,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"18155:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":5513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18166:16:32","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":925,"src":"18155:27:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$819_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$819_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":5521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18155:62:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5522,"nodeType":"ExpressionStatement","src":"18155:62:32"}]}},{"assignments":[5527],"declarations":[{"constant":false,"id":5527,"mutability":"mutable","name":"m","nameLocation":"18286:1:32","nodeType":"VariableDeclaration","scope":5590,"src":"18271:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":5526,"nodeType":"UserDefinedTypeName","pathNode":{"id":5525,"name":"Market","nameLocations":["18271:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"18271:6:32"},"referencedDeclaration":5149,"src":"18271:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":5531,"initialValue":{"baseExpression":{"id":5528,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"18290:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":5530,"indexExpression":{"id":5529,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"18300:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18290:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18271:38:32"},{"expression":{"id":5536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5532,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18319:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5534,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18321:11:32","memberName":"description","nodeType":"MemberAccess","referencedDeclaration":5125,"src":"18319:13:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5535,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"18335:11:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"18319:27:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5537,"nodeType":"ExpressionStatement","src":"18319:27:32"},{"expression":{"id":5542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5538,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18356:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18358:8:32","memberName":"outcome1","nodeType":"MemberAccess","referencedDeclaration":5127,"src":"18356:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5541,"name":"outcome1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5432,"src":"18369:8:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"18356:21:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5543,"nodeType":"ExpressionStatement","src":"18356:21:32"},{"expression":{"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5544,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18387:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18389:8:32","memberName":"outcome2","nodeType":"MemberAccess","referencedDeclaration":5129,"src":"18387:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5547,"name":"outcome2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5434,"src":"18400:8:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"18387:21:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5549,"nodeType":"ExpressionStatement","src":"18387:21:32"},{"expression":{"id":5554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5550,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18418:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18420:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"18418:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5553,"name":"token1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"18436:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"src":"18418:24:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":5555,"nodeType":"ExpressionStatement","src":"18418:24:32"},{"expression":{"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5556,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18452:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18454:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"18452:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5559,"name":"token2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5491,"src":"18470:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"src":"18452:24:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":5561,"nodeType":"ExpressionStatement","src":"18452:24:32"},{"expression":{"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5562,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18486:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18488:6:32","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":5137,"src":"18486:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5565,"name":"reward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"18497:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18486:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5567,"nodeType":"ExpressionStatement","src":"18486:17:32"},{"expression":{"id":5572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5568,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5527,"src":"18513:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"18515:12:32","memberName":"requiredBond","nodeType":"MemberAccess","referencedDeclaration":5139,"src":"18513:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5571,"name":"requiredBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5440,"src":"18530:12:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18513:29:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5573,"nodeType":"ExpressionStatement","src":"18513:29:32"},{"expression":{"arguments":[{"id":5577,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"18793:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5574,"name":"s_marketIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5185,"src":"18776:11:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":5576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18788:4:32","memberName":"push","nodeType":"MemberAccess","src":"18776:16:32","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":5578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18776:26:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5579,"nodeType":"ExpressionStatement","src":"18776:26:32"},{"expression":{"id":5581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18812:15:32","subExpression":{"id":5580,"name":"s_marketCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"18812:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5582,"nodeType":"ExpressionStatement","src":"18812:15:32"},{"eventCall":{"arguments":[{"id":5584,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"18861:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5585,"name":"description","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5436,"src":"18871:11:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":5586,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18884:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18888:6:32","memberName":"sender","nodeType":"MemberAccess","src":"18884:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5583,"name":"MarketInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5233,"src":"18843:17:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes32,string memory,address)"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18843:52:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5589,"nodeType":"EmitStatement","src":"18838:57:32"}]},"documentation":{"id":5430,"nodeType":"StructuredDocumentation","src":"16253:815:32","text":"@notice Create a new prediction market.\n @dev Only registered agents may create markets. Deploys two OutcomeToken contracts\n (one per outcome) owned by this hook. The caller must have previously approved\n `reward` amount of `i_currency` to this contract so the reward can be held for\n the eventual asserter.\n @param outcome1 Label for the first outcome (e.g. \"yes\").\n @param outcome2 Label for the second outcome (e.g. \"no\").\n @param description Human-readable market question.\n @param reward Amount of `i_currency` offered as incentive to the asserter.\n @param requiredBond Minimum bond required from an asserter (may be raised by OOV3).\n @return marketId The unique identifier for the newly created market."},"functionSelector":"5cb1cc0b","implemented":true,"kind":"function","modifiers":[],"name":"initializeMarket","nameLocation":"17082:16:32","parameters":{"id":5441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5432,"mutability":"mutable","name":"outcome1","nameLocation":"17124:8:32","nodeType":"VariableDeclaration","scope":5591,"src":"17108:24:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5431,"name":"string","nodeType":"ElementaryTypeName","src":"17108:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5434,"mutability":"mutable","name":"outcome2","nameLocation":"17158:8:32","nodeType":"VariableDeclaration","scope":5591,"src":"17142:24:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5433,"name":"string","nodeType":"ElementaryTypeName","src":"17142:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5436,"mutability":"mutable","name":"description","nameLocation":"17192:11:32","nodeType":"VariableDeclaration","scope":5591,"src":"17176:27:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5435,"name":"string","nodeType":"ElementaryTypeName","src":"17176:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5438,"mutability":"mutable","name":"reward","nameLocation":"17221:6:32","nodeType":"VariableDeclaration","scope":5591,"src":"17213:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"17213:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5440,"mutability":"mutable","name":"requiredBond","nameLocation":"17245:12:32","nodeType":"VariableDeclaration","scope":5591,"src":"17237:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5439,"name":"uint256","nodeType":"ElementaryTypeName","src":"17237:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17098:165:32"},"returnParameters":{"id":5444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5443,"mutability":"mutable","name":"marketId","nameLocation":"17290:8:32","nodeType":"VariableDeclaration","scope":5591,"src":"17282:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17282:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17281:18:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5684,"nodeType":"FunctionDefinition","src":"19274:808:32","nodes":[],"body":{"id":5683,"nodeType":"Block","src":"19336:746:32","nodes":[],"statements":[{"condition":{"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19350:31:32","subExpression":{"arguments":[{"expression":{"id":5599,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19370:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19374:6:32","memberName":"sender","nodeType":"MemberAccess","src":"19370:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5597,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"19351:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19362:7:32","memberName":"isAgent","nodeType":"MemberAccess","referencedDeclaration":6394,"src":"19351:18:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19351:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5607,"nodeType":"IfStatement","src":"19346:89:32","trueBody":{"id":5606,"nodeType":"Block","src":"19383:52:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5603,"name":"NotRegisteredAgent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"19404:18:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19404:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5605,"nodeType":"RevertStatement","src":"19397:27:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19448:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19452:5:32","memberName":"value","nodeType":"MemberAccess","src":"19448:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19461:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19448:14:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5616,"nodeType":"IfStatement","src":"19444:68:32","trueBody":{"id":5615,"nodeType":"Block","src":"19464:48:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5612,"name":"ZeroMintAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"19485:14:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19485:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5614,"nodeType":"RevertStatement","src":"19478:23:32"}]}},{"assignments":[5619],"declarations":[{"constant":false,"id":5619,"mutability":"mutable","name":"m","nameLocation":"19537:1:32","nodeType":"VariableDeclaration","scope":5683,"src":"19522:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":5618,"nodeType":"UserDefinedTypeName","pathNode":{"id":5617,"name":"Market","nameLocations":["19522:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"19522:6:32"},"referencedDeclaration":5149,"src":"19522:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":5623,"initialValue":{"baseExpression":{"id":5620,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"19541:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":5622,"indexExpression":{"id":5621,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5594,"src":"19551:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19541:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19522:38:32"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":5626,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19582:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19584:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"19582:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}],"id":5625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19574:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5624,"name":"address","nodeType":"ElementaryTypeName","src":"19574:7:32","typeDescriptions":{}}},"id":5628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19574:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19610:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19602:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5629,"name":"address","nodeType":"ElementaryTypeName","src":"19602:7:32","typeDescriptions":{}}},"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19602:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19574:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5638,"nodeType":"IfStatement","src":"19570:92:32","trueBody":{"id":5637,"nodeType":"Block","src":"19614:48:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5634,"name":"MarketNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"19635:14:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19635:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5636,"nodeType":"RevertStatement","src":"19628:23:32"}]}},{"condition":{"expression":{"id":5639,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19675:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19677:8:32","memberName":"resolved","nodeType":"MemberAccess","referencedDeclaration":5141,"src":"19675:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5645,"nodeType":"IfStatement","src":"19671:71:32","trueBody":{"id":5644,"nodeType":"Block","src":"19687:55:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5641,"name":"MarketAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5203,"src":"19708:21:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5643,"nodeType":"RevertStatement","src":"19701:30:32"}]}},{"expression":{"arguments":[{"expression":{"id":5651,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19835:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19839:6:32","memberName":"sender","nodeType":"MemberAccess","src":"19835:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19847:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19851:5:32","memberName":"value","nodeType":"MemberAccess","src":"19847:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":5646,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19814:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5649,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19816:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"19814:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":5650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19830:4:32","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":5061,"src":"19814:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19814:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5656,"nodeType":"ExpressionStatement","src":"19814:43:32"},{"expression":{"arguments":[{"expression":{"id":5662,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19888:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19892:6:32","memberName":"sender","nodeType":"MemberAccess","src":"19888:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5664,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19900:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19904:5:32","memberName":"value","nodeType":"MemberAccess","src":"19900:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":5657,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19867:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19869:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"19867:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19883:4:32","memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":5061,"src":"19867:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19867:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5667,"nodeType":"ExpressionStatement","src":"19867:43:32"},{"expression":{"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5668,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5619,"src":"19984:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19986:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"19984:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":5671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20005:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20009:5:32","memberName":"value","nodeType":"MemberAccess","src":"20005:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19984:30:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5674,"nodeType":"ExpressionStatement","src":"19984:30:32"},{"eventCall":{"arguments":[{"id":5676,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5594,"src":"20043:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5677,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20053:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20057:6:32","memberName":"sender","nodeType":"MemberAccess","src":"20053:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5679,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20065:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20069:5:32","memberName":"value","nodeType":"MemberAccess","src":"20065:9:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5675,"name":"TokensMinted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5242,"src":"20030:12:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20030:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5682,"nodeType":"EmitStatement","src":"20025:50:32"}]},"documentation":{"id":5592,"nodeType":"StructuredDocumentation","src":"18908:361:32","text":"@notice Deposit ETH collateral to mint equal amounts of both outcome tokens.\n @dev Only registered agents. The ETH is held by this contract as collateral backing\n the eventual settlement. The caller receives `msg.value` of outcome1Token AND\n `msg.value` of outcome2Token.\n @param marketId The market to mint tokens for."},"functionSelector":"812e1a7b","implemented":true,"kind":"function","modifiers":[],"name":"mintOutcomeTokens","nameLocation":"19283:17:32","parameters":{"id":5595,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5594,"mutability":"mutable","name":"marketId","nameLocation":"19309:8:32","nodeType":"VariableDeclaration","scope":5684,"src":"19301:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19301:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19300:18:32"},"returnParameters":{"id":5596,"nodeType":"ParameterList","parameters":[],"src":"19336:0:32"},"scope":6349,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":5900,"nodeType":"FunctionDefinition","src":"20809:2420:32","nodes":[],"body":{"id":5899,"nodeType":"Block","src":"20891:2338:32","nodes":[],"statements":[{"condition":{"id":5697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20905:31:32","subExpression":{"arguments":[{"expression":{"id":5694,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20925:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20929:6:32","memberName":"sender","nodeType":"MemberAccess","src":"20925:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5692,"name":"i_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5153,"src":"20906:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IAgentRegistry_$6417","typeString":"contract IAgentRegistry"}},"id":5693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20917:7:32","memberName":"isAgent","nodeType":"MemberAccess","referencedDeclaration":6394,"src":"20906:18:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":5696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20906:30:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5702,"nodeType":"IfStatement","src":"20901:89:32","trueBody":{"id":5701,"nodeType":"Block","src":"20938:52:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5698,"name":"NotRegisteredAgent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"20959:18:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20959:20:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5700,"nodeType":"RevertStatement","src":"20952:27:32"}]}},{"assignments":[5705],"declarations":[{"constant":false,"id":5705,"mutability":"mutable","name":"m","nameLocation":"21015:1:32","nodeType":"VariableDeclaration","scope":5899,"src":"21000:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":5704,"nodeType":"UserDefinedTypeName","pathNode":{"id":5703,"name":"Market","nameLocations":["21000:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"21000:6:32"},"referencedDeclaration":5149,"src":"21000:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":5709,"initialValue":{"baseExpression":{"id":5706,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"21019:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":5708,"indexExpression":{"id":5707,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"21029:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21019:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21000:38:32"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":5712,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21060:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21062:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"21060:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}],"id":5711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21052:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5710,"name":"address","nodeType":"ElementaryTypeName","src":"21052:7:32","typeDescriptions":{}}},"id":5714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21052:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21088:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21080:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5715,"name":"address","nodeType":"ElementaryTypeName","src":"21080:7:32","typeDescriptions":{}}},"id":5718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21080:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21052:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5724,"nodeType":"IfStatement","src":"21048:92:32","trueBody":{"id":5723,"nodeType":"Block","src":"21092:48:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5720,"name":"MarketNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"21113:14:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21113:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5722,"nodeType":"RevertStatement","src":"21106:23:32"}]}},{"condition":{"expression":{"id":5725,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21153:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21155:8:32","memberName":"resolved","nodeType":"MemberAccess","referencedDeclaration":5141,"src":"21153:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5731,"nodeType":"IfStatement","src":"21149:71:32","trueBody":{"id":5730,"nodeType":"Block","src":"21165:55:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5727,"name":"MarketAlreadyResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5203,"src":"21186:21:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21186:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5729,"nodeType":"RevertStatement","src":"21179:30:32"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5732,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21292:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21294:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"21292:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":5736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21323:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21315:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21315:7:32","typeDescriptions":{}}},"id":5737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21315:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21292:33:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5743,"nodeType":"IfStatement","src":"21288:94:32","trueBody":{"id":5742,"nodeType":"Block","src":"21327:55:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5739,"name":"ActiveAssertionExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"21348:21:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21348:23:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5741,"nodeType":"RevertStatement","src":"21341:30:32"}]}},{"assignments":[5745],"declarations":[{"constant":false,"id":5745,"mutability":"mutable","name":"outcomeHash","nameLocation":"21440:11:32","nodeType":"VariableDeclaration","scope":5899,"src":"21432:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21432:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5752,"initialValue":{"arguments":[{"arguments":[{"id":5749,"name":"assertedOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"21470:15:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":5748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21464:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5747,"name":"bytes","nodeType":"ElementaryTypeName","src":"21464:5:32","typeDescriptions":{}}},"id":5750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21464:22:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5746,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21454:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21454:33:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21432:55:32"},{"assignments":[5754],"declarations":[{"constant":false,"id":5754,"mutability":"mutable","name":"outcome1Hash","nameLocation":"21505:12:32","nodeType":"VariableDeclaration","scope":5899,"src":"21497:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21497:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5762,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":5758,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21536:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21538:8:32","memberName":"outcome1","nodeType":"MemberAccess","referencedDeclaration":5127,"src":"21536:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":5757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21530:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5756,"name":"bytes","nodeType":"ElementaryTypeName","src":"21530:5:32","typeDescriptions":{}}},"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21530:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":5755,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21520:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21520:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21497:51:32"},{"assignments":[5764],"declarations":[{"constant":false,"id":5764,"mutability":"mutable","name":"outcome2Hash","nameLocation":"21566:12:32","nodeType":"VariableDeclaration","scope":5899,"src":"21558:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21558:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5772,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":5768,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21597:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21599:8:32","memberName":"outcome2","nodeType":"MemberAccess","referencedDeclaration":5129,"src":"21597:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":5767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21591:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":5766,"name":"bytes","nodeType":"ElementaryTypeName","src":"21591:5:32","typeDescriptions":{}}},"id":5770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21591:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":5765,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"21581:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21581:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"21558:51:32"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5773,"name":"outcomeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"21624:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5774,"name":"outcome1Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5754,"src":"21639:12:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21624:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5776,"name":"outcomeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"21655:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5777,"name":"outcome2Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5764,"src":"21670:12:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21655:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21624:58:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":5782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5780,"name":"outcomeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"21686:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":5781,"name":"UNRESOLVABLE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5194,"src":"21701:17:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21686:32:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21624:94:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5788,"nodeType":"IfStatement","src":"21620:148:32","trueBody":{"id":5787,"nodeType":"Block","src":"21720:48:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5784,"name":"InvalidOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5209,"src":"21741:14:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21741:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5786,"nodeType":"RevertStatement","src":"21734:23:32"}]}},{"assignments":[5790],"declarations":[{"constant":false,"id":5790,"mutability":"mutable","name":"minimumBond","nameLocation":"21860:11:32","nodeType":"VariableDeclaration","scope":5899,"src":"21852:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5789,"name":"uint256","nodeType":"ElementaryTypeName","src":"21852:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5798,"initialValue":{"arguments":[{"arguments":[{"id":5795,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"21902:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":5794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21894:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5793,"name":"address","nodeType":"ElementaryTypeName","src":"21894:7:32","typeDescriptions":{}}},"id":5796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21894:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5791,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"21874:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21879:14:32","memberName":"getMinimumBond","nodeType":"MemberAccess","referencedDeclaration":6740,"src":"21874:19:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21874:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21852:62:32"},{"assignments":[5800],"declarations":[{"constant":false,"id":5800,"mutability":"mutable","name":"bond","nameLocation":"21932:4:32","nodeType":"VariableDeclaration","scope":5899,"src":"21924:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5799,"name":"uint256","nodeType":"ElementaryTypeName","src":"21924:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5809,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5801,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21939:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21941:12:32","memberName":"requiredBond","nodeType":"MemberAccess","referencedDeclaration":5139,"src":"21939:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":5803,"name":"minimumBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5790,"src":"21956:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21939:28:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":5807,"name":"minimumBond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5790,"src":"21987:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21939:59:32","trueExpression":{"expression":{"id":5805,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"21970:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21972:12:32","memberName":"requiredBond","nodeType":"MemberAccess","referencedDeclaration":5139,"src":"21970:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21924:74:32"},{"expression":{"arguments":[{"expression":{"id":5813,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22081:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22085:6:32","memberName":"sender","nodeType":"MemberAccess","src":"22081:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5817,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22101:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}],"id":5816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22093:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5815,"name":"address","nodeType":"ElementaryTypeName","src":"22093:7:32","typeDescriptions":{}}},"id":5818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22093:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5819,"name":"bond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5800,"src":"22108:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5810,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"22053:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":5812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22064:16:32","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":925,"src":"22053:27:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$819_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$819_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":5820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22053:60:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5821,"nodeType":"ExpressionStatement","src":"22053:60:32"},{"assignments":[5823],"declarations":[{"constant":false,"id":5823,"mutability":"mutable","name":"totalApproval","nameLocation":"22198:13:32","nodeType":"VariableDeclaration","scope":5899,"src":"22190:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5822,"name":"uint256","nodeType":"ElementaryTypeName","src":"22190:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5828,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5824,"name":"bond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5800,"src":"22214:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":5825,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"22221:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22223:6:32","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":5137,"src":"22221:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22214:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22190:39:32"},{"expression":{"arguments":[{"arguments":[{"id":5834,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"22271:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}],"id":5833,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22263:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5832,"name":"address","nodeType":"ElementaryTypeName","src":"22263:7:32","typeDescriptions":{}}},"id":5835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22263:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5836,"name":"totalApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5823,"src":"22278:13:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5829,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"22239:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}},"id":5831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22250:12:32","memberName":"forceApprove","nodeType":"MemberAccess","referencedDeclaration":1095,"src":"22239:23:32","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$819_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$819_$","typeString":"function (contract IERC20,address,uint256)"}},"id":5837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22239:53:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5838,"nodeType":"ExpressionStatement","src":"22239:53:32"},{"assignments":[5840],"declarations":[{"constant":false,"id":5840,"mutability":"mutable","name":"claim","nameLocation":"22359:5:32","nodeType":"VariableDeclaration","scope":5899,"src":"22346:18:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5839,"name":"bytes","nodeType":"ElementaryTypeName","src":"22346:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5850,"initialValue":{"arguments":[{"hexValue":"4d61726b65743a20","id":5843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22397:10:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a8c073cdc75775eff3cbfbf29e33d7a2eb592265770bb9576b9f66a0790380d","typeString":"literal_string \"Market: \""},"value":"Market: "},{"expression":{"id":5844,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"22421:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22423:11:32","memberName":"description","nodeType":"MemberAccess","referencedDeclaration":5125,"src":"22421:13:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"hexValue":"2e204173736572746564206f7574636f6d653a20","id":5846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22448:22:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e7827fb6f2a3c173106fadad8f611697b66ecca0fba64759ac07547f76294df","typeString":"literal_string \". Asserted outcome: \""},"value":". Asserted outcome: "},{"id":5847,"name":"assertedOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"22484:15:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"hexValue":"2e","id":5848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22513:3:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""},"value":"."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a8c073cdc75775eff3cbfbf29e33d7a2eb592265770bb9576b9f66a0790380d","typeString":"literal_string \"Market: \""},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_stringliteral_3e7827fb6f2a3c173106fadad8f611697b66ecca0fba64759ac07547f76294df","typeString":"literal_string \". Asserted outcome: \""},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""}],"expression":{"id":5841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22367:3:32","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22371:12:32","memberName":"encodePacked","nodeType":"MemberAccess","src":"22367:16:32","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22367:159:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"22346:180:32"},{"assignments":[5852],"declarations":[{"constant":false,"id":5852,"mutability":"mutable","name":"assertionId","nameLocation":"22590:11:32","nodeType":"VariableDeclaration","scope":5899,"src":"22582:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22582:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5878,"initialValue":{"arguments":[{"id":5855,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5840,"src":"22634:5:32","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":5856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22653:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22657:6:32","memberName":"sender","nodeType":"MemberAccess","src":"22653:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5860,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22731:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_PredictionMarketHook_$6349","typeString":"contract PredictionMarketHook"}],"id":5859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22723:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5858,"name":"address","nodeType":"ElementaryTypeName","src":"22723:7:32","typeDescriptions":{}}},"id":5861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22723:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":5864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22805:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22797:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5862,"name":"address","nodeType":"ElementaryTypeName","src":"22797:7:32","typeDescriptions":{}}},"id":5865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22797:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5866,"name":"i_defaultLiveness","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5164,"src":"22846:17:32","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},{"arguments":[{"id":5869,"name":"i_currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5161,"src":"22885:10:32","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$819","typeString":"contract IERC20"}],"id":5868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22877:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5867,"name":"address","nodeType":"ElementaryTypeName","src":"22877:7:32","typeDescriptions":{}}},"id":5870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22877:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5871,"name":"bond","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5800,"src":"22910:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5872,"name":"i_defaultIdentifier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5167,"src":"22928:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":5875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22969:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22961:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22961:7:32","typeDescriptions":{}}},"id":5876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22961:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint64","typeString":"uint64"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5853,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"22604:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}},"id":5854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22609:11:32","memberName":"assertTruth","nodeType":"MemberAccess","referencedDeclaration":6699,"src":"22604:16:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_address_$_t_address_$_t_address_$_t_uint64_$_t_address_$_t_uint256_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes memory,address,address,address,uint64,address,uint256,bytes32,bytes32) external returns (bytes32)"}},"id":5877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22604:390:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22582:412:32"},{"expression":{"id":5883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5879,"name":"s_assertionToMarket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"23054:19:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":5881,"indexExpression":{"id":5880,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"23074:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23054:32:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5882,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"23089:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23054:43:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5884,"nodeType":"ExpressionStatement","src":"23054:43:32"},{"expression":{"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5885,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5705,"src":"23107:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23109:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"23107:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5888,"name":"outcomeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5745,"src":"23129:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23107:33:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5890,"nodeType":"ExpressionStatement","src":"23107:33:32"},{"eventCall":{"arguments":[{"id":5892,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5687,"src":"23171:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5893,"name":"assertedOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5689,"src":"23181:15:32","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"expression":{"id":5894,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23198:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23202:6:32","memberName":"sender","nodeType":"MemberAccess","src":"23198:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5896,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5852,"src":"23210:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5891,"name":"MarketAsserted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"23156:14:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,string memory,address,bytes32)"}},"id":5897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23156:66:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5898,"nodeType":"EmitStatement","src":"23151:71:32"}]},"documentation":{"id":5685,"nodeType":"StructuredDocumentation","src":"20088:716:32","text":"@notice Assert the outcome of a market via UMA Optimistic Oracle V3.\n @dev Only registered agents. The asserted outcome must exactly match `outcome1`,\n `outcome2`, or the literal string \"Unresolvable\". The caller must have approved\n `bond` amount of `i_currency` to this contract. The bond is forwarded to UMA\n OOV3 along with any reward. If the assertion survives the liveness window,\n `assertionResolvedCallback` is called with `assertedTruthfully = true`.\n @param marketId The market to assert.\n @param assertedOutcome The outcome string being asserted (must match outcome1/outcome2\n or \"Unresolvable\")."},"functionSelector":"565429a8","implemented":true,"kind":"function","modifiers":[],"name":"assertMarket","nameLocation":"20818:12:32","parameters":{"id":5690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5687,"mutability":"mutable","name":"marketId","nameLocation":"20839:8:32","nodeType":"VariableDeclaration","scope":5900,"src":"20831:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20831:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5689,"mutability":"mutable","name":"assertedOutcome","nameLocation":"20865:15:32","nodeType":"VariableDeclaration","scope":5900,"src":"20849:31:32","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":5688,"name":"string","nodeType":"ElementaryTypeName","src":"20849:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20830:51:32"},"returnParameters":{"id":5691,"nodeType":"ParameterList","parameters":[],"src":"20891:0:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5964,"nodeType":"FunctionDefinition","src":"24249:807:32","nodes":[],"body":{"id":5963,"nodeType":"Block","src":"24339:717:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5908,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24353:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24357:6:32","memberName":"sender","nodeType":"MemberAccess","src":"24353:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":5912,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"24375:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}],"id":5911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24367:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5910,"name":"address","nodeType":"ElementaryTypeName","src":"24367:7:32","typeDescriptions":{}}},"id":5913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24367:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24353:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5919,"nodeType":"IfStatement","src":"24349:77:32","trueBody":{"id":5918,"nodeType":"Block","src":"24382:44:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5915,"name":"OnlyOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"24403:10:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24403:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5917,"nodeType":"RevertStatement","src":"24396:19:32"}]}},{"assignments":[5921],"declarations":[{"constant":false,"id":5921,"mutability":"mutable","name":"marketId","nameLocation":"24444:8:32","nodeType":"VariableDeclaration","scope":5963,"src":"24436:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5920,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24436:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5925,"initialValue":{"baseExpression":{"id":5922,"name":"s_assertionToMarket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"24455:19:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":5924,"indexExpression":{"id":5923,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"24475:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24455:32:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24436:51:32"},{"assignments":[5928],"declarations":[{"constant":false,"id":5928,"mutability":"mutable","name":"m","nameLocation":"24512:1:32","nodeType":"VariableDeclaration","scope":5963,"src":"24497:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":5927,"nodeType":"UserDefinedTypeName","pathNode":{"id":5926,"name":"Market","nameLocations":["24497:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"24497:6:32"},"referencedDeclaration":5149,"src":"24497:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":5932,"initialValue":{"baseExpression":{"id":5929,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"24516:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":5931,"indexExpression":{"id":5930,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"24526:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24516:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24497:38:32"},{"condition":{"id":5933,"name":"assertedTruthfully","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5905,"src":"24550:18:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5961,"nodeType":"Block","src":"24797:253:32","statements":[{"expression":{"id":5954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5947,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"24950:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24952:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"24950:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24980:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24972:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":5950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24972:7:32","typeDescriptions":{}}},"id":5953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24972:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24950:32:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5955,"nodeType":"ExpressionStatement","src":"24950:32:32"},{"eventCall":{"arguments":[{"id":5957,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"25017:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5958,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5903,"src":"25027:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5956,"name":"AssertionFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"25001:15:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25001:38:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5960,"nodeType":"EmitStatement","src":"24996:43:32"}]},"id":5962,"nodeType":"IfStatement","src":"24546:504:32","trueBody":{"id":5946,"nodeType":"Block","src":"24570:221:32","statements":[{"expression":{"id":5938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5934,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"24699:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24701:8:32","memberName":"resolved","nodeType":"MemberAccess","referencedDeclaration":5141,"src":"24699:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":5937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24712:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"24699:17:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5939,"nodeType":"ExpressionStatement","src":"24699:17:32"},{"eventCall":{"arguments":[{"id":5941,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5921,"src":"24750:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":5942,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5928,"src":"24760:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":5943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24762:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"24760:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5940,"name":"MarketResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5260,"src":"24735:14:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":5944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24735:45:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5945,"nodeType":"EmitStatement","src":"24730:50:32"}]}}]},"baseFunctions":[6628],"documentation":{"id":5901,"nodeType":"StructuredDocumentation","src":"23716:528:32","text":"@notice Called by UMA OOV3 when an assertion is resolved.\n @dev If `assertedTruthfully` is true the assertion survived the liveness window (or\n a dispute was resolved in the asserter's favour) and the market is marked\n resolved. If false, the assertion was disputed and the asserter lost; the market\n is reset so a new assertion can be made.\n @param assertionId The UMA assertion identifier.\n @param assertedTruthfully True if the assertion was deemed truthful."},"functionSelector":"f1b156b2","implemented":true,"kind":"function","modifiers":[],"name":"assertionResolvedCallback","nameLocation":"24258:25:32","parameters":{"id":5906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5903,"mutability":"mutable","name":"assertionId","nameLocation":"24292:11:32","nodeType":"VariableDeclaration","scope":5964,"src":"24284:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5902,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24284:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":5905,"mutability":"mutable","name":"assertedTruthfully","nameLocation":"24310:18:32","nodeType":"VariableDeclaration","scope":5964,"src":"24305:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5904,"name":"bool","nodeType":"ElementaryTypeName","src":"24305:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24283:46:32"},"returnParameters":{"id":5907,"nodeType":"ParameterList","parameters":[],"src":"24339:0:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5994,"nodeType":"FunctionDefinition","src":"25365:275:32","nodes":[],"body":{"id":5993,"nodeType":"Block","src":"25430:210:32","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5970,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25444:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25448:6:32","memberName":"sender","nodeType":"MemberAccess","src":"25444:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":5974,"name":"i_oo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5157,"src":"25466:4:32","typeDescriptions":{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OptimisticOracleV3Interface_$6747","typeString":"contract OptimisticOracleV3Interface"}],"id":5973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25458:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5972,"name":"address","nodeType":"ElementaryTypeName","src":"25458:7:32","typeDescriptions":{}}},"id":5975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25458:13:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25444:27:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5981,"nodeType":"IfStatement","src":"25440:77:32","trueBody":{"id":5980,"nodeType":"Block","src":"25473:44:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":5977,"name":"OnlyOracle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5218,"src":"25494:10:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":5978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25494:12:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5979,"nodeType":"RevertStatement","src":"25487:19:32"}]}},{"assignments":[5983],"declarations":[{"constant":false,"id":5983,"mutability":"mutable","name":"marketId","nameLocation":"25535:8:32","nodeType":"VariableDeclaration","scope":5993,"src":"25527:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25527:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5987,"initialValue":{"baseExpression":{"id":5984,"name":"s_assertionToMarket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"25546:19:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_bytes32_$","typeString":"mapping(bytes32 => bytes32)"}},"id":5986,"indexExpression":{"id":5985,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5967,"src":"25566:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25546:32:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"25527:51:32"},{"eventCall":{"arguments":[{"id":5989,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"25611:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":5990,"name":"assertionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5967,"src":"25621:11:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5988,"name":"AssertionDisputed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5274,"src":"25593:17:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":5991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25593:40:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5992,"nodeType":"EmitStatement","src":"25588:45:32"}]},"baseFunctions":[6634],"documentation":{"id":5965,"nodeType":"StructuredDocumentation","src":"25062:298:32","text":"@notice Called by UMA OOV3 when an assertion is disputed.\n @dev This is informational only. The market stays in its current state until\n `assertionResolvedCallback` is called with the dispute outcome.\n @param assertionId The UMA assertion identifier that was disputed."},"functionSelector":"d448a4ec","implemented":true,"kind":"function","modifiers":[],"name":"assertionDisputedCallback","nameLocation":"25374:25:32","parameters":{"id":5968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5967,"mutability":"mutable","name":"assertionId","nameLocation":"25408:11:32","nodeType":"VariableDeclaration","scope":5994,"src":"25400:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5966,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25400:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"25399:21:32"},"returnParameters":{"id":5969,"nodeType":"ParameterList","parameters":[],"src":"25430:0:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6266,"nodeType":"FunctionDefinition","src":"26846:2610:32","nodes":[],"body":{"id":6265,"nodeType":"Block","src":"26902:2554:32","nodes":[],"statements":[{"assignments":[6002],"declarations":[{"constant":false,"id":6002,"mutability":"mutable","name":"m","nameLocation":"26927:1:32","nodeType":"VariableDeclaration","scope":6265,"src":"26912:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":6001,"nodeType":"UserDefinedTypeName","pathNode":{"id":6000,"name":"Market","nameLocations":["26912:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"26912:6:32"},"referencedDeclaration":5149,"src":"26912:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":6006,"initialValue":{"baseExpression":{"id":6003,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"26931:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":6005,"indexExpression":{"id":6004,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"26941:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26931:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26912:38:32"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":6009,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"26973:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6010,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26975:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"26973:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}],"id":6008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26965:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6007,"name":"address","nodeType":"ElementaryTypeName","src":"26965:7:32","typeDescriptions":{}}},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26965:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":6014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27001:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6013,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26993:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6012,"name":"address","nodeType":"ElementaryTypeName","src":"26993:7:32","typeDescriptions":{}}},"id":6015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26993:10:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26965:38:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6021,"nodeType":"IfStatement","src":"26961:92:32","trueBody":{"id":6020,"nodeType":"Block","src":"27005:48:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6017,"name":"MarketNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5200,"src":"27026:14:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27026:16:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6019,"nodeType":"RevertStatement","src":"27019:23:32"}]}},{"condition":{"id":6024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27066:11:32","subExpression":{"expression":{"id":6022,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27067:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27069:8:32","memberName":"resolved","nodeType":"MemberAccess","referencedDeclaration":5141,"src":"27067:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6029,"nodeType":"IfStatement","src":"27062:68:32","trueBody":{"id":6028,"nodeType":"Block","src":"27079:51:32","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6025,"name":"MarketNotResolved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"27100:17:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27100:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6027,"nodeType":"RevertStatement","src":"27093:26:32"}]}},{"assignments":[6031],"declarations":[{"constant":false,"id":6031,"mutability":"mutable","name":"outcome1Hash","nameLocation":"27148:12:32","nodeType":"VariableDeclaration","scope":6265,"src":"27140:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27140:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6039,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6035,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27179:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27181:8:32","memberName":"outcome1","nodeType":"MemberAccess","referencedDeclaration":5127,"src":"27179:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":6034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27173:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6033,"name":"bytes","nodeType":"ElementaryTypeName","src":"27173:5:32","typeDescriptions":{}}},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27173:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":6032,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27163:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27163:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27140:51:32"},{"assignments":[6041],"declarations":[{"constant":false,"id":6041,"mutability":"mutable","name":"outcome2Hash","nameLocation":"27209:12:32","nodeType":"VariableDeclaration","scope":6265,"src":"27201:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6040,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27201:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6049,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6045,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27240:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27242:8:32","memberName":"outcome2","nodeType":"MemberAccess","referencedDeclaration":5129,"src":"27240:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":6044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27234:5:32","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":6043,"name":"bytes","nodeType":"ElementaryTypeName","src":"27234:5:32","typeDescriptions":{}}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27234:17:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":6042,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"27224:9:32","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27224:28:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27201:51:32"},{"assignments":[6051],"declarations":[{"constant":false,"id":6051,"mutability":"mutable","name":"resolvedOutcome","nameLocation":"27270:15:32","nodeType":"VariableDeclaration","scope":6265,"src":"27262:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6050,"name":"bytes32","nodeType":"ElementaryTypeName","src":"27262:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":6054,"initialValue":{"expression":{"id":6052,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27288:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27290:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"27288:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"27262:45:32"},{"assignments":[6056],"declarations":[{"constant":false,"id":6056,"mutability":"mutable","name":"payout","nameLocation":"27326:6:32","nodeType":"VariableDeclaration","scope":6265,"src":"27318:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6055,"name":"uint256","nodeType":"ElementaryTypeName","src":"27318:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6057,"nodeType":"VariableDeclarationStatement","src":"27318:14:32"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6058,"name":"resolvedOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"27347:15:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6059,"name":"outcome1Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"27366:12:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"27347:31:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6105,"name":"resolvedOutcome","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6051,"src":"28011:15:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":6106,"name":"outcome2Hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"28030:12:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"28011:31:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6233,"nodeType":"Block","src":"28450:686:32","statements":[{"assignments":[6153],"declarations":[{"constant":false,"id":6153,"mutability":"mutable","name":"balance1","nameLocation":"28536:8:32","nodeType":"VariableDeclaration","scope":6233,"src":"28528:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6152,"name":"uint256","nodeType":"ElementaryTypeName","src":"28528:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6160,"initialValue":{"arguments":[{"expression":{"id":6157,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28573:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28577:6:32","memberName":"sender","nodeType":"MemberAccess","src":"28573:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":6154,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28547:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28549:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"28547:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28563:9:32","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":327,"src":"28547:25:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28547:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28528:56:32"},{"assignments":[6162],"declarations":[{"constant":false,"id":6162,"mutability":"mutable","name":"balance2","nameLocation":"28606:8:32","nodeType":"VariableDeclaration","scope":6233,"src":"28598:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6161,"name":"uint256","nodeType":"ElementaryTypeName","src":"28598:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6169,"initialValue":{"arguments":[{"expression":{"id":6166,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28643:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28647:6:32","memberName":"sender","nodeType":"MemberAccess","src":"28643:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":6163,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28617:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28619:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"28617:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28633:9:32","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":327,"src":"28617:25:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28617:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28598:56:32"},{"assignments":[6171],"declarations":[{"constant":false,"id":6171,"mutability":"mutable","name":"callerTotal","nameLocation":"28676:11:32","nodeType":"VariableDeclaration","scope":6233,"src":"28668:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6170,"name":"uint256","nodeType":"ElementaryTypeName","src":"28668:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6175,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6172,"name":"balance1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"28690:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":6173,"name":"balance2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6162,"src":"28701:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28690:19:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28668:41:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6176,"name":"callerTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"28727:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28742:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28727:16:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6182,"nodeType":"IfStatement","src":"28723:47:32","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6179,"name":"NoTokensToSettle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"28752:16:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28752:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6181,"nodeType":"RevertStatement","src":"28745:25:32"}},{"assignments":[6184],"declarations":[{"constant":false,"id":6184,"mutability":"mutable","name":"totalSupply","nameLocation":"28793:11:32","nodeType":"VariableDeclaration","scope":6233,"src":"28785:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6183,"name":"uint256","nodeType":"ElementaryTypeName","src":"28785:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6194,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6185,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28807:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28809:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"28807:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28823:11:32","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":314,"src":"28807:27:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28807:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6189,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28839:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28841:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"28839:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28855:11:32","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":314,"src":"28839:27:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28839:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28807:61:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28785:83:32"},{"expression":{"id":6203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6195,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"28882:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6196,"name":"callerTotal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6171,"src":"28892:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6197,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28906:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28908:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"28906:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28892:31:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6200,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28891:33:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6201,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6184,"src":"28927:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28891:47:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28882:56:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6204,"nodeType":"ExpressionStatement","src":"28882:56:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6205,"name":"balance1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"28995:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29006:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28995:12:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6218,"nodeType":"IfStatement","src":"28991:60:32","trueBody":{"expression":{"arguments":[{"expression":{"id":6213,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29030:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29034:6:32","memberName":"sender","nodeType":"MemberAccess","src":"29030:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6215,"name":"balance1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"29042:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":6208,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"29009:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29011:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"29009:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29025:4:32","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":5077,"src":"29009:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":6216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29009:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6217,"nodeType":"ExpressionStatement","src":"29009:42:32"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6219,"name":"balance2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6162,"src":"29069:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":6220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29069:12:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6232,"nodeType":"IfStatement","src":"29065:60:32","trueBody":{"expression":{"arguments":[{"expression":{"id":6227,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29104:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29108:6:32","memberName":"sender","nodeType":"MemberAccess","src":"29104:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6229,"name":"balance2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6162,"src":"29116:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":6222,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"29083:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29085:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"29083:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29099:4:32","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":5077,"src":"29083:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":6230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29083:42:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6231,"nodeType":"ExpressionStatement","src":"29083:42:32"}}]},"id":6234,"nodeType":"IfStatement","src":"28007:1129:32","trueBody":{"id":6151,"nodeType":"Block","src":"28044:400:32","statements":[{"assignments":[6109],"declarations":[{"constant":false,"id":6109,"mutability":"mutable","name":"balance","nameLocation":"28141:7:32","nodeType":"VariableDeclaration","scope":6151,"src":"28133:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6108,"name":"uint256","nodeType":"ElementaryTypeName","src":"28133:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6116,"initialValue":{"arguments":[{"expression":{"id":6113,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28177:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28181:6:32","memberName":"sender","nodeType":"MemberAccess","src":"28177:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":6110,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28151:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28153:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"28151:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28167:9:32","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":327,"src":"28151:25:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28151:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28133:55:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6117,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6109,"src":"28206:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28217:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28206:12:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6123,"nodeType":"IfStatement","src":"28202:43:32","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6120,"name":"NoTokensToSettle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"28227:16:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28227:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6122,"nodeType":"RevertStatement","src":"28220:25:32"}},{"assignments":[6125],"declarations":[{"constant":false,"id":6125,"mutability":"mutable","name":"totalSupply","nameLocation":"28268:11:32","nodeType":"VariableDeclaration","scope":6151,"src":"28260:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6124,"name":"uint256","nodeType":"ElementaryTypeName","src":"28260:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6130,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6126,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28282:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28284:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"28282:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28298:11:32","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":314,"src":"28282:27:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28282:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28260:51:32"},{"expression":{"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6131,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"28325:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6132,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6109,"src":"28335:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6133,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28345:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28347:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"28345:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28335:27:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6136,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28334:29:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6137,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6125,"src":"28366:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28334:43:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28325:52:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6140,"nodeType":"ExpressionStatement","src":"28325:52:32"},{"expression":{"arguments":[{"expression":{"id":6146,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28413:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28417:6:32","memberName":"sender","nodeType":"MemberAccess","src":"28413:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6148,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6109,"src":"28425:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":6141,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"28392:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28394:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"28392:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28408:4:32","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":5077,"src":"28392:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":6149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28392:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6150,"nodeType":"ExpressionStatement","src":"28392:41:32"}]}},"id":6235,"nodeType":"IfStatement","src":"27343:1793:32","trueBody":{"id":6104,"nodeType":"Block","src":"27380:621:32","statements":[{"assignments":[6062],"declarations":[{"constant":false,"id":6062,"mutability":"mutable","name":"balance","nameLocation":"27477:7:32","nodeType":"VariableDeclaration","scope":6104,"src":"27469:15:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6061,"name":"uint256","nodeType":"ElementaryTypeName","src":"27469:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6069,"initialValue":{"arguments":[{"expression":{"id":6066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27513:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27517:6:32","memberName":"sender","nodeType":"MemberAccess","src":"27513:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":6063,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27487:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6064,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27489:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"27487:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27503:9:32","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":327,"src":"27487:25:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27487:37:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27469:55:32"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6070,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6062,"src":"27542:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":6071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27553:1:32","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27542:12:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6076,"nodeType":"IfStatement","src":"27538:43:32","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6073,"name":"NoTokensToSettle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"27563:16:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27563:18:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6075,"nodeType":"RevertStatement","src":"27556:25:32"}},{"assignments":[6078],"declarations":[{"constant":false,"id":6078,"mutability":"mutable","name":"totalSupply","nameLocation":"27604:11:32","nodeType":"VariableDeclaration","scope":6104,"src":"27596:19:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6077,"name":"uint256","nodeType":"ElementaryTypeName","src":"27596:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6083,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":6079,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27618:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6080,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27620:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"27618:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27634:11:32","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":314,"src":"27618:27:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27618:29:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27596:51:32"},{"expression":{"id":6092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6084,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"27806:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6085,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6062,"src":"27816:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":6086,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27826:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6087,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27828:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"27826:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27816:27:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6089,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27815:29:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":6090,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6078,"src":"27847:11:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27815:43:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27806:52:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6093,"nodeType":"ExpressionStatement","src":"27806:52:32"},{"expression":{"arguments":[{"expression":{"id":6099,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27970:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27974:6:32","memberName":"sender","nodeType":"MemberAccess","src":"27970:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6101,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6062,"src":"27982:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":6094,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"27949:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6097,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27951:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"27949:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}},"id":6098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27965:4:32","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":5077,"src":"27949:20:32","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":6102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27949:41:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6103,"nodeType":"ExpressionStatement","src":"27949:41:32"}]}},{"expression":{"id":6240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":6236,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6002,"src":"29211:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"29213:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"29211:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":6239,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"29232:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29211:27:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6241,"nodeType":"ExpressionStatement","src":"29211:27:32"},{"assignments":[6243,null],"declarations":[{"constant":false,"id":6243,"mutability":"mutable","name":"success","nameLocation":"29294:7:32","nodeType":"VariableDeclaration","scope":6265,"src":"29289:12:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6242,"name":"bool","nodeType":"ElementaryTypeName","src":"29289:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6251,"initialValue":{"arguments":[{"hexValue":"","id":6249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29337:2:32","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":6244,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29306:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29310:6:32","memberName":"sender","nodeType":"MemberAccess","src":"29306:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29317:4:32","memberName":"call","nodeType":"MemberAccess","src":"29306:15:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":6247,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"29329:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"29306:30:32","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29306:34:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"29288:52:32"},{"condition":{"id":6253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29354:8:32","subExpression":{"id":6252,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6243,"src":"29355:7:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6257,"nodeType":"IfStatement","src":"29350:40:32","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":6254,"name":"EthTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5224,"src":"29371:17:32","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":6255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29371:19:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6256,"nodeType":"RevertStatement","src":"29364:26:32"}},{"eventCall":{"arguments":[{"id":6259,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"29420:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6260,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"29430:3:32","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29434:6:32","memberName":"sender","nodeType":"MemberAccess","src":"29430:10:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6262,"name":"payout","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6056,"src":"29442:6:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6258,"name":"TokensSettled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5283,"src":"29406:13:32","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":6263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29406:43:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6264,"nodeType":"EmitStatement","src":"29401:48:32"}]},"documentation":{"id":5995,"nodeType":"StructuredDocumentation","src":"26119:722:32","text":"@notice Redeem winning outcome tokens for proportional ETH collateral.\n @dev The market must be resolved. The caller's winning tokens are burned and they\n receive a proportional share of the total collateral. If the resolved outcome\n is \"Unresolvable\", both tokens redeem equally (each token is worth 0.5 ETH\n per token-unit).\n Payout calculation:\n - Winning outcome: payout = (winnerBalance / totalWinnerSupply) * totalCollateral\n - Unresolvable: payout = (callerTotal / totalBothSupply) * totalCollateral\n where callerTotal = outcome1Balance + outcome2Balance\n @param marketId The resolved market."},"functionSelector":"acd98e29","implemented":true,"kind":"function","modifiers":[],"name":"settleOutcomeTokens","nameLocation":"26855:19:32","parameters":{"id":5998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5997,"mutability":"mutable","name":"marketId","nameLocation":"26883:8:32","nodeType":"VariableDeclaration","scope":6266,"src":"26875:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5996,"name":"bytes32","nodeType":"ElementaryTypeName","src":"26875:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"26874:18:32"},"returnParameters":{"id":5999,"nodeType":"ParameterList","parameters":[],"src":"26902:0:32"},"scope":6349,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6333,"nodeType":"FunctionDefinition","src":"30879:864:32","nodes":[],"body":{"id":6332,"nodeType":"Block","src":"31350:393:32","nodes":[],"statements":[{"assignments":[6297],"declarations":[{"constant":false,"id":6297,"mutability":"mutable","name":"m","nameLocation":"31375:1:32","nodeType":"VariableDeclaration","scope":6332,"src":"31360:16:32","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"},"typeName":{"id":6296,"nodeType":"UserDefinedTypeName","pathNode":{"id":6295,"name":"Market","nameLocations":["31360:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":5149,"src":"31360:6:32"},"referencedDeclaration":5149,"src":"31360:6:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market"}},"visibility":"internal"}],"id":6301,"initialValue":{"baseExpression":{"id":6298,"name":"s_markets","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5173,"src":"31379:9:32","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Market_$5149_storage_$","typeString":"mapping(bytes32 => struct PredictionMarketHook.Market storage ref)"}},"id":6300,"indexExpression":{"id":6299,"name":"marketId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6269,"src":"31389:8:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31379:19:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage","typeString":"struct PredictionMarketHook.Market storage ref"}},"nodeType":"VariableDeclarationStatement","src":"31360:38:32"},{"expression":{"components":[{"expression":{"id":6302,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31429:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31431:11:32","memberName":"description","nodeType":"MemberAccess","referencedDeclaration":5125,"src":"31429:13:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":6304,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31456:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31458:8:32","memberName":"outcome1","nodeType":"MemberAccess","referencedDeclaration":5127,"src":"31456:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":6306,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31480:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31482:8:32","memberName":"outcome2","nodeType":"MemberAccess","referencedDeclaration":5129,"src":"31480:10:32","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"arguments":[{"expression":{"id":6310,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31512:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31514:13:32","memberName":"outcome1Token","nodeType":"MemberAccess","referencedDeclaration":5132,"src":"31512:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}],"id":6309,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31504:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6308,"name":"address","nodeType":"ElementaryTypeName","src":"31504:7:32","typeDescriptions":{}}},"id":6312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31504:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":6315,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31550:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31552:13:32","memberName":"outcome2Token","nodeType":"MemberAccess","referencedDeclaration":5135,"src":"31550:15:32","typeDescriptions":{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_OutcomeToken_$5078","typeString":"contract OutcomeToken"}],"id":6314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31542:7:32","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6313,"name":"address","nodeType":"ElementaryTypeName","src":"31542:7:32","typeDescriptions":{}}},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31542:24:32","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6318,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31580:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31582:6:32","memberName":"reward","nodeType":"MemberAccess","referencedDeclaration":5137,"src":"31580:8:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":6320,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31602:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31604:12:32","memberName":"requiredBond","nodeType":"MemberAccess","referencedDeclaration":5139,"src":"31602:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":6322,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31630:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31632:8:32","memberName":"resolved","nodeType":"MemberAccess","referencedDeclaration":5141,"src":"31630:10:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":6324,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31654:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31656:17:32","memberName":"assertedOutcomeId","nodeType":"MemberAccess","referencedDeclaration":5143,"src":"31654:19:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":6326,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31687:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31689:6:32","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":5146,"src":"31687:8:32","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PoolId_$4296","typeString":"PoolId"}},{"expression":{"id":6328,"name":"m","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"31709:1:32","typeDescriptions":{"typeIdentifier":"t_struct$_Market_$5149_storage_ptr","typeString":"struct PredictionMarketHook.Market storage pointer"}},"id":6329,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31711:15:32","memberName":"totalCollateral","nodeType":"MemberAccess","referencedDeclaration":5148,"src":"31709:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":6330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"31415:321:32","typeDescriptions":{"typeIdentifier":"t_tuple$_t_string_storage_$_t_string_storage_$_t_string_storage_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$_t_bytes32_$_t_userDefinedValueType$_PoolId_$4296_$_t_uint256_$","typeString":"tuple(string storage ref,string storage ref,string storage ref,address,address,uint256,uint256,bool,bytes32,PoolId,uint256)"}},"functionReturnParameters":6294,"id":6331,"nodeType":"Return","src":"31408:328:32"}]},"documentation":{"id":6267,"nodeType":"StructuredDocumentation","src":"29937:937:32","text":"@notice Returns the full Market struct for a given marketId.\n @param marketId The identifier of the market.\n @return description The human-readable market question.\n @return outcome1 The first outcome label.\n @return outcome2 The second outcome label.\n @return outcome1Token The address of the outcome1 ERC-20 token.\n @return outcome2Token The address of the outcome2 ERC-20 token.\n @return reward The asserter reward amount.\n @return requiredBond The minimum assertion bond.\n @return resolved Whether the market has been resolved.\n @return assertedOutcomeId The keccak256 hash of the asserted outcome (bytes32(0) if none).\n @return poolId The V4 pool identifier (bytes32(0) if no pool associated).\n @return totalCollateral The total ETH collateral backing the market."},"functionSelector":"c3c95c7b","implemented":true,"kind":"function","modifiers":[],"name":"getMarket","nameLocation":"30888:9:32","parameters":{"id":6270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6269,"mutability":"mutable","name":"marketId","nameLocation":"30906:8:32","nodeType":"VariableDeclaration","scope":6333,"src":"30898:16:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"30898:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"30897:18:32"},"returnParameters":{"id":6294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6272,"mutability":"mutable","name":"description","nameLocation":"30990:11:32","nodeType":"VariableDeclaration","scope":6333,"src":"30976:25:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6271,"name":"string","nodeType":"ElementaryTypeName","src":"30976:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6274,"mutability":"mutable","name":"outcome1","nameLocation":"31029:8:32","nodeType":"VariableDeclaration","scope":6333,"src":"31015:22:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6273,"name":"string","nodeType":"ElementaryTypeName","src":"31015:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6276,"mutability":"mutable","name":"outcome2","nameLocation":"31065:8:32","nodeType":"VariableDeclaration","scope":6333,"src":"31051:22:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6275,"name":"string","nodeType":"ElementaryTypeName","src":"31051:6:32","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6278,"mutability":"mutable","name":"outcome1Token","nameLocation":"31095:13:32","nodeType":"VariableDeclaration","scope":6333,"src":"31087:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6277,"name":"address","nodeType":"ElementaryTypeName","src":"31087:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6280,"mutability":"mutable","name":"outcome2Token","nameLocation":"31130:13:32","nodeType":"VariableDeclaration","scope":6333,"src":"31122:21:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6279,"name":"address","nodeType":"ElementaryTypeName","src":"31122:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6282,"mutability":"mutable","name":"reward","nameLocation":"31165:6:32","nodeType":"VariableDeclaration","scope":6333,"src":"31157:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6281,"name":"uint256","nodeType":"ElementaryTypeName","src":"31157:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6284,"mutability":"mutable","name":"requiredBond","nameLocation":"31193:12:32","nodeType":"VariableDeclaration","scope":6333,"src":"31185:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6283,"name":"uint256","nodeType":"ElementaryTypeName","src":"31185:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6286,"mutability":"mutable","name":"resolved","nameLocation":"31224:8:32","nodeType":"VariableDeclaration","scope":6333,"src":"31219:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6285,"name":"bool","nodeType":"ElementaryTypeName","src":"31219:4:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6288,"mutability":"mutable","name":"assertedOutcomeId","nameLocation":"31254:17:32","nodeType":"VariableDeclaration","scope":6333,"src":"31246:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31246:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":6291,"mutability":"mutable","name":"poolId","nameLocation":"31292:6:32","nodeType":"VariableDeclaration","scope":6333,"src":"31285:13:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PoolId_$4296","typeString":"PoolId"},"typeName":{"id":6290,"nodeType":"UserDefinedTypeName","pathNode":{"id":6289,"name":"PoolId","nameLocations":["31285:6:32"],"nodeType":"IdentifierPath","referencedDeclaration":4296,"src":"31285:6:32"},"referencedDeclaration":4296,"src":"31285:6:32","typeDescriptions":{"typeIdentifier":"t_userDefinedValueType$_PoolId_$4296","typeString":"PoolId"}},"visibility":"internal"},{"constant":false,"id":6293,"mutability":"mutable","name":"totalCollateral","nameLocation":"31320:15:32","nodeType":"VariableDeclaration","scope":6333,"src":"31312:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6292,"name":"uint256","nodeType":"ElementaryTypeName","src":"31312:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30962:383:32"},"scope":6349,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6343,"nodeType":"FunctionDefinition","src":"31887:100:32","nodes":[],"body":{"id":6342,"nodeType":"Block","src":"31952:35:32","nodes":[],"statements":[{"expression":{"id":6340,"name":"s_marketIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5185,"src":"31969:11:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":6339,"id":6341,"nodeType":"Return","src":"31962:18:32"}]},"documentation":{"id":6334,"nodeType":"StructuredDocumentation","src":"31749:133:32","text":"@notice Returns all market IDs for enumeration by front-ends and agents.\n @return An array of all created marketId values."},"functionSelector":"398c6f7e","implemented":true,"kind":"function","modifiers":[],"name":"getMarketIds","nameLocation":"31896:12:32","parameters":{"id":6335,"nodeType":"ParameterList","parameters":[],"src":"31908:2:32"},"returnParameters":{"id":6339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6343,"src":"31934:16:32","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":6336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"31934:7:32","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6337,"nodeType":"ArrayTypeName","src":"31934:9:32","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"31933:18:32"},"scope":6349,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6348,"nodeType":"FunctionDefinition","src":"32077:29:32","nodes":[],"body":{"id":6347,"nodeType":"Block","src":"32104:2:32","nodes":[],"statements":[]},"documentation":{"id":6344,"nodeType":"StructuredDocumentation","src":"31993:79:32","text":"@notice Allow the contract to receive ETH (required for mintOutcomeTokens)."},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":6345,"nodeType":"ParameterList","parameters":[],"src":"32084:2:32"},"returnParameters":{"id":6346,"nodeType":"ParameterList","parameters":[],"src":"32104:0:32"},"scope":6349,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":5111,"name":"BaseHook","nameLocations":["4690:8:32"],"nodeType":"IdentifierPath","referencedDeclaration":4998,"src":"4690:8:32"},"id":5112,"nodeType":"InheritanceSpecifier","src":"4690:8:32"},{"baseName":{"id":5113,"name":"OptimisticOracleV3CallbackRecipientInterface","nameLocations":["4700:44:32"],"nodeType":"IdentifierPath","referencedDeclaration":6635,"src":"4700:44:32"},"id":5114,"nodeType":"InheritanceSpecifier","src":"4700:44:32"}],"canonicalName":"PredictionMarketHook","contractDependencies":[5078],"contractKind":"contract","documentation":{"id":5110,"nodeType":"StructuredDocumentation","src":"3029:1628:32","text":"@title PredictionMarketHook\n @author $CLAWLOGIC Team\n @notice The core contract of $CLAWLOGIC -- a Uniswap V4 Hook that doubles as a\n prediction market with UMA Optimistic Oracle V3 for resolution.\n @dev This contract is a HYBRID serving three roles:\n 1. **V4 Hook** -- extends BaseHook, implements `beforeSwap` and `beforeAddLiquidity`\n for agent-only gating. Only addresses registered in the AgentRegistry can trade\n or provide liquidity on V4 pools that reference this hook.\n 2. **Prediction Market** -- manages the full market lifecycle:\n initializeMarket -> mintOutcomeTokens -> assertMarket -> settleOutcomeTokens.\n Each market deploys a pair of OutcomeToken ERC-20s (one per outcome). Agents\n deposit ETH as collateral to mint equal quantities of both outcome tokens. After\n resolution the winning token redeems 1:1 for the collateral ETH.\n 3. **UMA Callback Recipient** -- implements `assertionResolvedCallback` and\n `assertionDisputedCallback` so UMA OOV3 can push resolution results back.\n **tx.origin usage (known limitation):**\n Hook callbacks (`beforeSwap`, `beforeAddLiquidity`) are invoked by the V4\n PoolManager, so `msg.sender` is always the PoolManager address. To identify\n the originating agent, this contract checks `tx.origin` against the registry.\n This is a deliberate hackathon trade-off; in production the sender address\n would be forwarded through the hookData parameter or a router contract."},"fullyImplemented":true,"linearizedBaseContracts":[6349,6635,4998,4413,4426,1596],"name":"PredictionMarketHook","nameLocation":"4666:20:32","scope":6350,"usedErrors":[857,4385,4452,5197,5200,5203,5206,5209,5212,5215,5218,5221,5224],"usedEvents":[5233,5242,5253,5260,5267,5274,5283]}],"license":"MIT"},"id":32}
|