{ "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AtLeastOneRequestIsRequired", "type": "error" }, { "inputs": [], "name": "EmptyPartialSignatures", "type": "error" }, { "inputs": [ { "internalType": "uint32", "name": "have", "type": "uint32" }, { "internalType": "uint32", "name": "want", "type": "uint32" } ], "name": "GasLimitTooBig", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "groupIndex", "type": "uint256" } ], "name": "GroupNotExist", "type": "error" }, { "inputs": [], "name": "IdenticalSubscription", "type": "error" }, { "inputs": [], "name": "IncorrectCommitment", "type": "error" }, { "inputs": [], "name": "InsufficientBalanceWhenFulfill", "type": "error" }, { "inputs": [], "name": "InsufficientBalanceWhenRequest", "type": "error" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "name": "InvalidConsumer", "type": "error" }, { "inputs": [], "name": "InvalidPartialSignatureFormat", "type": "error" }, { "inputs": [], "name": "InvalidPartialSignatures", "type": "error" }, { "inputs": [], "name": "InvalidRequestByEOA", "type": "error" }, { "inputs": [ { "internalType": "uint16", "name": "have", "type": "uint16" }, { "internalType": "uint16", "name": "min", "type": "uint16" }, { "internalType": "uint16", "name": "max", "type": "uint16" } ], "name": "InvalidRequestConfirmations", "type": "error" }, { "inputs": [], "name": "InvalidSignature", "type": "error" }, { "inputs": [], "name": "InvalidSignatureFormat", "type": "error" }, { "inputs": [], "name": "InvalidSubscription", "type": "error" }, { "inputs": [], "name": "InvalidZeroAddress", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "MustBeSubOwner", "type": "error" }, { "inputs": [], "name": "NoAvailableGroups", "type": "error" }, { "inputs": [], "name": "NoCorrespondingRequest", "type": "error" }, { "inputs": [], "name": "NotFromCommitter", "type": "error" }, { "inputs": [], "name": "PendingRequestExists", "type": "error" }, { "inputs": [], "name": "Reentrant", "type": "error" }, { "inputs": [], "name": "ReferralPromotionDisabled", "type": "error" }, { "inputs": [], "name": "RequestNotExpired", "type": "error" }, { "inputs": [], "name": "SenderNotController", "type": "error" }, { "inputs": [], "name": "SubscriptionAlreadyHasReferral", "type": "error" }, { "inputs": [], "name": "TaskStillExclusive", "type": "error" }, { "inputs": [], "name": "TaskStillWithinRequestConfirmations", "type": "error" }, { "inputs": [], "name": "TooManyConsumers", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16" }, { "indexed": false, "internalType": "uint32", "name": "maxGasLimit", "type": "uint32" }, { "indexed": false, "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32" }, { "indexed": false, "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "indexed": false, "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256" } ], "name": "AdapterConfigSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" } ], "indexed": false, "internalType": "struct IAdapterOwner.FeeConfig", "name": "flatFeeConfig", "type": "tuple" }, { "indexed": false, "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16" }, { "indexed": false, "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool" }, { "indexed": false, "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256" } ], "name": "FlatFeeConfigSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" } ], "name": "OvertimeRequestCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": true, "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "indexed": false, "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "indexed": false, "internalType": "bytes", "name": "params", "type": "bytes" }, { "indexed": false, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "seed", "type": "uint256" }, { "indexed": false, "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "indexed": false, "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "indexed": false, "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "estimatedPayment", "type": "uint256" } ], "name": "RandomnessRequest", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "indexed": true, "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "indexed": true, "internalType": "address", "name": "committer", "type": "address" }, { "indexed": false, "internalType": "address[]", "name": "participantMembers", "type": "address[]" }, { "indexed": false, "internalType": "uint256", "name": "randommness", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "payment", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "flatFee", "type": "uint256" }, { "indexed": false, "internalType": "bool", "name": "success", "type": "bool" } ], "name": "RandomnessRequestResult", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isReferralEnabled", "type": "bool" }, { "indexed": false, "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16" } ], "name": "ReferralConfigSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "SubscriptionCanceled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "consumer", "type": "address" } ], "name": "SubscriptionConsumerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": false, "internalType": "address", "name": "consumer", "type": "address" } ], "name": "SubscriptionConsumerRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" } ], "name": "SubscriptionCreated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": false, "internalType": "uint256", "name": "oldBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newBalance", "type": "uint256" } ], "name": "SubscriptionFunded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint64", "name": "subId", "type": "uint64" }, { "indexed": true, "internalType": "uint64", "name": "referralSubId", "type": "uint64" } ], "name": "SubscriptionReferralSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "DEFAULT_MINIMUM_THRESHOLD", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_CONSUMERS", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_REQUEST_CONFIRMATIONS", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "RANDOMNESS_REWARD_GAS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "name": "addConsumer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "components": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "address", "name": "callbackContract", "type": "address" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "blockNum", "type": "uint256" } ], "internalType": "struct IAdapter.RequestDetail", "name": "requestDetail", "type": "tuple" } ], "name": "cancelOvertimeRequest", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "cancelSubscription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "createSubscription", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPM", "type": "uint32" }, { "internalType": "uint256", "name": "weiPerUnitGas", "type": "uint256" }, { "internalType": "uint32", "name": "groupSize", "type": "uint32" } ], "name": "estimatePaymentAmountInETH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "internalType": "uint256", "name": "signature", "type": "uint256" }, { "components": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "address", "name": "callbackContract", "type": "address" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "blockNum", "type": "uint256" } ], "internalType": "struct IAdapter.RequestDetail", "name": "requestDetail", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "partialSignature", "type": "uint256" } ], "internalType": "struct IAdapter.PartialSignature[]", "name": "partialSignatures", "type": "tuple[]" } ], "name": "fulfillRandomness", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "name": "fundSubscription", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "getAdapterConfig", "outputs": [ { "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "maxGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256" }, { "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getController", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCumulativeData", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getCurrentSubId", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "reqCount", "type": "uint64" } ], "name": "getFeeTier", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFlatFeeConfig", "outputs": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" }, { "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16" }, { "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool" }, { "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastAssignedGroupIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getLastRandomness", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "consumer", "type": "address" } ], "name": "getLastSubscription", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32" } ], "name": "getPendingRequestCommitment", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getRandomnessCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getReferralConfig", "outputs": [ { "internalType": "bool", "name": "isReferralEnabled", "type": "bool" }, { "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16" }, { "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "name": "getSubscription", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address[]", "name": "consumers", "type": "address[]" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "inflightCost", "type": "uint256" }, { "internalType": "uint64", "name": "reqCount", "type": "uint64" }, { "internalType": "uint64", "name": "freeRequestCount", "type": "uint64" }, { "internalType": "uint64", "name": "referralSubId", "type": "uint64" }, { "internalType": "uint64", "name": "reqCountInCurrentPeriod", "type": "uint64" }, { "internalType": "uint256", "name": "lastRequestTimestamp", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "controller", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "ethAmount", "type": "uint256" } ], "name": "nodeWithdrawETH", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "name": "ownerCancelSubscription", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "name": "removeConsumer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" } ], "internalType": "struct IAdapter.RandomnessRequestParams", "name": "params", "type": "tuple" } ], "name": "requestRandomness", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "maxGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256" }, { "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256" } ], "name": "setAdapterConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" } ], "internalType": "struct IAdapterOwner.FeeConfig", "name": "flatFeeConfig", "type": "tuple" }, { "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16" }, { "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool" }, { "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256" } ], "name": "setFlatFeeConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64[]", "name": "subIds", "type": "uint64[]" }, { "internalType": "uint64[]", "name": "freeRequestCounts", "type": "uint64[]" } ], "name": "setFreeRequestCount", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint64", "name": "referralSubId", "type": "uint64" } ], "name": "setReferral", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "isReferralEnabled", "type": "bool" }, { "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16" }, { "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16" } ], "name": "setReferralConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" } ], "bytecode": { "object": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e8565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000e6576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051615f306200012060003960008181610af701528181610b4001528181610bdc01528181610c1c0152610caf0152615f306000f3fe6080604052600436106102565760003560e01c806391a6fe7711610149578063c725a833116100c6578063dcdb7b881161008a578063f2fde38b11610064578063f2fde38b1461090a578063f362ca611461092a578063f4cc97fc1461094a57600080fd5b8063dcdb7b8814610721578063dfaba79414610889578063ef6f42731461089c57600080fd5b8063c725a83314610670578063caba5284146106a1578063d2f9f9a7146106c1578063d7ae1d30146106e1578063d89f241f1461070157600080fd5b8063a39402d71161010d578063a39402d7146105d1578063a47c7696146105f1578063a4c343f214610626578063aa81d59a1461063b578063c4d66de81461065057600080fd5b806391a6fe7714610541578063931d92041461055c5780639f87fad71461057c578063a141bbd81461059c578063a21a23e4146105bc57600080fd5b806352d1902d116101d75780637341c10c1161019b5780637341c10c1461048057806376a911bc146104a05780638166d459146104e2578063877d38bb1461050d5780638da5cb5b1461052357600080fd5b806352d1902d1461040c578063636021741461042157806364d51a2a14610436578063715018a61461044b57806371b7ca051461046057600080fd5b806315c48b841161021e57806315c48b841461032f5780631e58a872146103575780633018205f146103a75780633659cfe6146103d95780634f1ef286146103f957600080fd5b806302bcc5b61461025b578063056e5ede1461027d57806306bfa6371461029d5780630ad98f6a146102d45780631565034c146102f4575b600080fd5b34801561026757600080fd5b5061027b6102763660046147c2565b61096a565b005b34801561028957600080fd5b5061027b61029836600461496a565b6109e1565b3480156102a957600080fd5b5060d7546001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b3480156102e057600080fd5b5061027b6102ef3660046149ed565b610a8c565b34801561030057600080fd5b5061032161030f366004614a19565b600090815260d4602052604090205490565b6040519081526020016102cb565b34801561033b57600080fd5b5061034460c881565b60405161ffff90911681526020016102cb565b34801561036357600080fd5b5061038560d85460ff81169161ffff6101008304811692630100000090041690565b60408051931515845261ffff92831660208501529116908201526060016102cb565b3480156103b357600080fd5b5060c9546001600160a01b03165b6040516001600160a01b0390911681526020016102cb565b3480156103e557600080fd5b5061027b6103f4366004614a32565b610aed565b61027b610407366004614abe565b610bd2565b34801561041857600080fd5b50610321610ca2565b34801561042d57600080fd5b5060cf54610321565b34801561044257600080fd5b50610344606481565b34801561045757600080fd5b5061027b610d55565b34801561046c57600080fd5b5061027b61047b366004614b32565b610d69565b34801561048c57600080fd5b5061027b61049b366004614ba7565b610ebd565b3480156104ac57600080fd5b506102b76104bb366004614a32565b6001600160a01b0316600090815260d560205260409020600101546001600160401b031690565b3480156104ee57600080fd5b506104f861232881565b60405163ffffffff90911681526020016102cb565b34801561051957600080fd5b506104f861c35081565b34801561052f57600080fd5b506097546001600160a01b03166103c1565b34801561054d57600080fd5b5060cd5463ffffffff16610321565b34801561056857600080fd5b5061027b610577366004614bde565b611080565b34801561058857600080fd5b5061027b610597366004614ba7565b61135d565b3480156105a857600080fd5b506103216105b7366004614c11565b611693565b3480156105c857600080fd5b506102b76117e6565b3480156105dd57600080fd5b506103216105ec366004614c79565b6118df565b3480156105fd57600080fd5b5061061161060c3660046147c2565b611cfd565b6040516102cb99989796959493929190614cf7565b34801561063257600080fd5b5060ce54610321565b34801561064757600080fd5b506104f8600381565b34801561065c57600080fd5b5061027b61066b366004614a32565b611e1d565b34801561067c57600080fd5b5060ca5460cb5460cc54604080519384526020840192909252908201526060016102cb565b3480156106ad57600080fd5b5061027b6106bc366004614d7a565b611f49565b3480156106cd57600080fd5b506104f86106dc3660046147c2565b612397565b3480156106ed57600080fd5b5061027b6106fc366004614ba7565b612514565b34801561070d57600080fd5b5061027b61071c366004614e38565b612620565b34801561072d57600080fd5b50604080516101208101825260d95463ffffffff8082168084526401000000008304821660208501819052600160401b84048316958501869052600160601b8404831660608601819052600160801b85049093166080860181905262ffffff600160a01b8604811660a08801819052600160b81b8704821660c08901819052600160d01b8804831660e08a01819052600160e81b90980490921661010090980188905260da5460db5460dc54969a95999598949692959394939261ffff83169260ff620100009091041691906040516102cb9d9c9b9a9998979695949392919063ffffffff9d8e1681529b8d1660208d0152998c1660408c0152978b1660608b015295909916608089015262ffffff93841660a089015291831660c0880152821660e08701521661010085015261ffff949094166101208401529215156101408301526101608201929092526101808101919091526101a00190565b61027b6108973660046147c2565b612971565b3480156108a857600080fd5b5060d05460d15460d25460d3546040805161ffff8616815263ffffffff62010000870481166020830152600160381b8704811692820192909252600160581b909504166060850152608084019290925260a083015260c082015260e0016102cb565b34801561091657600080fd5b5061027b610925366004614a32565b612a5d565b34801561093657600080fd5b5061027b610945366004614e8d565b612ad3565b34801561095657600080fd5b5061027b610965366004614ee5565b612b6d565b610972612da7565b6001600160401b038116600090815260d660205260409020546001600160a01b03166109b157604051630fb532db60e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260409020546109de9082906001600160a01b0316612e01565b50565b6109e9612da7565b60005b8251811015610a8757818181518110610a0757610a07614fe7565b602002602001015160d66000858481518110610a2557610a25614fe7565b60200260200101516001600160401b03166001600160401b0316815260200190815260200160002060060160086101000a8154816001600160401b0302191690836001600160401b031602179055508080610a7f90615013565b9150506109ec565b505050565b60c9546001600160a01b03163314610ab757604051630f5caa3360e41b815260040160405180910390fd5b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610a87573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b8152600401610b359061502c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b87600080516020615eb4833981519152546001600160a01b031690565b6001600160a01b031614610bad5760405162461bcd60e51b8152600401610b3590615078565b610bb681612ed3565b604080516000808252602082019092526109de91839190612edb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c1a5760405162461bcd60e51b8152600401610b359061502c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c63600080516020615eb4833981519152546001600160a01b031690565b6001600160a01b031614610c895760405162461bcd60e51b8152600401610b3590615078565b610c9282612ed3565b610c9e82826001612edb565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d425760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610b35565b50600080516020615eb483398151915290565b610d5d612da7565b610d676000613046565b565b610d71612da7565b60c861ffff88161115610dab5760405163539c34bb60e11b815261ffff881660048201819052602482015260c86044820152606401610b35565b604080516101008101825261ffff891680825263ffffffff89811660208085018290526000858701528a83166060808701829052938b16608080880182905260a08089018d905260c0808a018d905260e0998a018c905260d0805465ffffffffffff19168a17620100008902176effffffffffffffffff0000000000001916600160381b87026effffffff0000000000000000000000191617600160581b860217905560d18e905560d28d905560d38c90558a519889529488019590955297860191909152928401929092529382018790529281018590529182018390527fefeb3292465cf72a302efdd83695ad560a2828353a1e018844e9abd19a642037910160405180910390a150505050505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b031680610eff57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b03821614610f3357604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff1615610f5e5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038416600090815260d6602052604090206002015460631901610f9b576040516305a48e0f60e01b815260040160405180910390fd5b6001600160a01b038316600090815260d5602090815260408083206001600160401b038089168552925282205416900361107a576001600160a01b038316600081815260d5602090815260408083206001600160401b0389168085528184528285208054600167ffffffffffffffff1991821681179092559281018054909316821790925560d68452828520600201805492830181558552938390200180546001600160a01b031916851790555192835290917f43dc749a04ac8fb825cbd514f7c0e13f13bc6f2ee66043b76629d51776cff8e0910160405180910390a25b50505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b0316806110c257604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146110f657604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156111215760405163769dd35360e11b815260040160405180910390fd5b60d85460ff1661114457604051636dac270160e01b815260040160405180910390fd5b6001600160401b03808416600090815260d660205260408082205492871682529020546001600160a01b039182169116036111925760405163027f035560e51b815260040160405180910390fd5b6001600160401b03808516600090815260d66020526040902060060154600160801b900416156111d55760405163cae26ee160e01b815260040160405180910390fd5b6001600160401b03808516600090815260d6602052604090206006015416158061121a57506001600160401b03808416600090815260d6602052604090206006015416155b156112385760405163a760a23760e01b815260040160405180910390fd5b60d8546001600160401b03848116600090815260d660205260409020600601805461010090930461ffff1692909160089161127c918591600160401b9004166150c4565b82546101009290920a6001600160401b0381810219909316918316021790915560d854868216600090815260d6602052604090206006018054630100000090920461ffff169350916008916112da918591600160401b9004166150c4565b82546101009290920a6001600160401b03818102199093169183160217909155858116600081815260d66020526040808220600601805467ffffffffffffffff60801b1916600160801b958a169586021790555192935090917fb661d46b53034f62a6c7d50df2a5e055fab98889aaf62f8c618e457edd96c6889190a350505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b03168061139f57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146113d357604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156113fe5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038416600090815260d660205260409020600401541561143857604051631685ecdd60e31b815260040160405180910390fd5b6001600160401b038416600090815260d660209081526040808320600201805482518185028101850190935280835291929091908301828280156114a557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611487575b5050505050905080516000036114e857604051637800cff360e11b81526001600160401b03861660048201526001600160a01b0385166024820152604401610b35565b60005b815181101561165f57846001600160a01b031682828151811061151057611510614fe7565b60200260200101516001600160a01b03160361164d57816001835161153591906150eb565b8151811061154557611545614fe7565b602002602001015160d66000886001600160401b03166001600160401b03168152602001908152602001600020600201828154811061158657611586614fe7565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092556001600160401b038816815260d6909152604090206002018054806115da576115da6150fe565b6000828152602090819020600019908301810180546001600160a01b03191690559091019091556040516001600160a01b03871681526001600160401b038816917f182bff9831466789164ca77075fffd84916d35a8180ba73c27e45634549b445b910160405180910390a2505061107a565b8061165781615013565b9150506114eb565b50604051637800cff360e11b81526001600160401b03861660048201526001600160a01b0385166024820152604401610b35565b60405163745e0dcf60e01b815263ffffffff82166004820152600090819060029073__$12cfec358bb780f6fb6addaaa16de5538e$__90638e3976f690829063745e0dcf90602401602060405180830381865af41580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c9190615114565b6040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865af4158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190615114565b61178690600361512d565b611790919061515a565b905060008161179f898961516e565b6117af9063ffffffff168761512d565b6117b9919061518b565b90506117d063ffffffff871664e8d4a5100061512d565b6117da908261518b565b98975050505050505050565b60d054600090600160301b900460ff16156118145760405163769dd35360e11b815260040160405180910390fd5b60d780546001600160401b031690600061182d8361519e565b82546001600160401b039182166101009390930a92830292820219169190911790915560d780548216600090815260d6602052604080822080546001600160a01b0319163390811790915583548516835281832060060180546fffffffffffffffff00000000000000001916600160401b17905592549051929450909216917f464722b4166576d3dcbba877b999bc35cf911f4eaf434b7eba68fa113951d0bf91a35060d7546001600160401b031690565b60d054600090600160301b900460ff161561190d5760405163769dd35360e11b815260040160405180910390fd5b6000611918836151d3565b905032330361193a57604051638a3150e760e01b815260040160405180910390fd5b6040808201516001600160401b0316600090815260d66020522080546001600160a01b031661197c57604051630fb532db60e11b815260040160405180910390fd5b33600090815260d560209081526040808320858201516001600160401b03908116855292528220541690036119db576040808301519051637800cff360e11b81526001600160401b039091166004820152336024820152604401610b35565b60d054608083015161ffff91821691161080611a03575060c861ffff16826080015161ffff16115b15611a3e57608082015160d05460405163539c34bb60e11b815261ffff92831660048201529116602482015260c86044820152606401610b35565b60d05460a083015163ffffffff62010000909204821691161115611a955760a082015160d054604051637aebf00f60e11b815263ffffffff9283166004820152620100009091049091166024820152604401610b35565b611a9d613098565b60cd805463ffffffff191663ffffffff9290921691909117905560608201516040808401805133600081815260d5602090815285822094516001600160401b039081168352949052938420549394611af794909316613209565b6040848101805133600090815260d560209081528482206001808201805467ffffffffffffffff19166001600160401b03968716179055945184168352905292832080549495509193919291611b4f918591166150c4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506000611b7e82613268565b60c95460cd5460405163f49e0ba960e01b815263ffffffff90911660048201529192506000916001600160a01b039091169063f49e0ba9906024016040805180830381865afa158015611bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf99190615271565b9150506000611c138584848960a001518a60c0015161329a565b60408088015160cd5489516020808c015160808d015160a08e015160c08f01519751989950611c59988c9863ffffffff90971696939433948f949392909143910161531d565b60408051601f198184030181528282528051602091820120600087815260d483528390205560cd54918901518951918a015160808b015160a08c015160c08d015163ffffffff909616966001600160401b03909416958a957fd26299589dd9197a8dc30a0fa17b0fe7dd432bc3441aa5f5631ea1e14c1af74495611ce7959194919333938f93928d906153a8565b60405180910390a450909450505050505b919050565b6001600160401b038116600090815260d660205260408120805460609183918291829182918291829182916001600160a01b0316611d4e57604051630fb532db60e11b815260040160405180910390fd5b80546003820154600483015460068401546007850154600286018054604080516020808402820181019092528281526001600160a01b0390981697929695946001600160401b0380821695600160401b8304821695600160801b8404831695600160c01b9094049092169390928a91830182828015611df657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611dd8575b50505050509750995099509950995099509950995099509950509193959799909294969850565b600054610100900460ff1615808015611e3d5750600054600160ff909116105b80611e575750303b158015611e57575060005460ff166001145b611eba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b35565b6000805460ff191660011790558015611edd576000805461ff0019166101001790555b60c980546001600160a01b0319166001600160a01b038416179055611f00613420565b8015610c9e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60d054600160301b900460ff1615611f745760405163769dd35360e11b815260040160405180910390fd5b60005a600087815260d46020526040812054919250819003611fa957604051631b44092560e11b815260040160405180910390fd5b86611fb760208701876147c2565b611fc7604088016020890161540f565b611fd76060890160408a0161542c565b611fe460608a018a615447565b611ff460a08c0160808d01614a32565b60a08c013561200960e08e0160c08f01615494565b8d60e001602081019061201c919061540f565b8e61010001358f61012001356040516020016120439c9b9a999897969594939291906154af565b6040516020818303038152906040528051906020012081146120785760405163354a450b60e21b815260040160405180910390fd5b61208860e0860160c08701615494565b61209b9061ffff1661012087013561518b565b4310156120bb5760405163619a4abd60e01b815260040160405180910390fd5b6120cb604086016020870161540f565b63ffffffff168863ffffffff16141580156120f7575060d1546120f39061012087013561518b565b4311155b15612115576040516378373bbd60e11b815260040160405180910390fd5b60c960009054906101000a90046001600160a01b03166001600160a01b03166306545a936040518163ffffffff1660e01b8152600401602060405180830381865afa158015612168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218c9190615114565b8863ffffffff16106121b957604051637f6efcb560e11b815263ffffffff89166004820152602401610b35565b60006122298963ffffffff168760a001358861012001358a8989808060200260200160405190810160405280939291908181526020016000905b8282101561221f5761221060408302860136819003810190615557565b815260200190600101906121f3565b505050505061344f565b600089815260d46020908152604080832083905580518083018c9052815180820384018152908201909152805191012060cf805493945090926001929061227190849061518b565b909155505060ce81905560c9546040516379ef840160e11b8152600481018390526001600160a01b039091169063f3df080290602401600060405180830381600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b5050505060006122ef8a838a6122ea90615589565b613b3a565b905060008061232860d68261230760208e018e6147c2565b6001600160401b0316815260208101919091526040016000208d8a8a613dd5565b9150915061233785838361408e565b336001600160a01b03168d63ffffffff168d7f6fc1bcb4bd7d5fdf4017f746304b61ae4472496256e906c6bb44682aa2c9a6d8888887878a604051612380959493929190615656565b60405180910390a450505050505050505050505050565b604080516101208101825260d95463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b8104909216608082015262ffffff600160a01b8304811660a08301819052600160b81b8404821660c0840152600160d01b8404821660e0840152600160e81b909304166101008201526000916001600160401b03841611612443575192915050565b826001600160401b03168160a0015162ffffff1610801561247657508060c0015162ffffff16836001600160401b031611155b15612485576020015192915050565b826001600160401b03168160c0015162ffffff161080156124b857508060e0015162ffffff16836001600160401b031611155b156124c7576040015192915050565b826001600160401b03168160e0015162ffffff161080156124fb575080610100015162ffffff16836001600160401b031611155b1561250a576060015192915050565b6080015192915050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b03168061255657604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b0382161461258a57604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156125b55760405163769dd35360e11b815260040160405180910390fd5b6001600160a01b0383166125dc5760405163f6b2911f60e01b815260040160405180910390fd5b6001600160401b038416600090815260d660205260409020600401541561261657604051631685ecdd60e31b815260040160405180910390fd5b61107a8484612e01565b61262d60208201826147c2565b6001600160401b038116600090815260d660205260409020546001600160a01b03168061266d57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146126a157604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b600084815260d4602052604081205490036126cf57604051631b44092560e11b815260040160405180910390fd5b836126dd60208501856147c2565b6126ed604086016020870161540f565b6126fd606087016040880161542c565b61270a6060880188615447565b61271a60a08a0160808b01614a32565b60a08a013561272f60e08c0160c08d01615494565b6127406101008d0160e08e0161540f565b8c61010001358d61012001356040516020016127679c9b9a999897969594939291906154af565b60408051601f198184030181529181528151602092830120600087815260d4909352912054146127aa5760405163354a450b60e21b815260040160405180910390fd5b600073__$12cfec358bb780f6fb6addaaa16de5538e$__6387ceff096040518163ffffffff1660e01b8152600401602060405180830381865af41580156127f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128199190615114565b612826906201518061515a565b90506128378161012086013561518b565b43101561285757604051636c804b5d60e01b815260040160405180910390fd5b600085815260d460209081526040822082905560d6919061287a908701876147c2565b6001600160401b03168152602080820192909252604090810160009081208882526005018352908120549160d691906128b5908801886147c2565b6001600160401b03166001600160401b0316815260200190815260200160002060040160008282546128e791906150eb565b9091555060d6905060006128fe60208701876147c2565b6001600160401b0316815260208082019290925260409081016000908120888252600501835290812055612934908501856147c2565b6001600160401b0316857fc1cf1d318384ee8dee53eed48bbf121b2b14fa61e9da5fd2f597dfbee4e5c2e660405160405180910390a35050505050565b60d054600160301b900460ff161561299c5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260409020546001600160a01b03166129db57604051630fb532db60e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260408120600301805491349190612a06838561518b565b90915550506001600160401b0382167fd39ec07f4e209f627a4c427971473820dc129761ba28de8906bd56f57101d4f882612a41348261518b565b6040805192835260208301919091520160405180910390a25050565b612a65612da7565b6001600160a01b038116612aca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b35565b6109de81613046565b612adb612da7565b604080516060808201835285151580835261ffff868116602080860182905291871694860185905260d8805462ffffff191662ffff001985161761010083021764ffff000000191663010000008702179055855192835290820152928301919091527faf8d657c268b3f943977d5288bfb2306420bcb17b7ef17397cffa5d2f4891643910160405180910390a1505050565b612b75612da7565b6040518060a001604052808681526020018561ffff16815260200184151581526020018381526020018281525060d960008201518160000160008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160000160146101000a81548162ffffff021916908362ffffff16021790555060c08201518160000160176101000a81548162ffffff021916908362ffffff16021790555060e082015181600001601a6101000a81548162ffffff021916908362ffffff16021790555061010082015181600001601d6101000a81548162ffffff021916908362ffffff160217905550505060208201518160010160006101000a81548161ffff021916908361ffff16021790555060408201518160010160026101000a81548160ff02191690831515021790555060608201518160020155608082015181600301559050507f1851d8853c0ab5ed26d95d456344506f759953621e7c115677f2244696b8ba978585858585604051612d9895949392919061568f565b60405180910390a15050505050565b6097546001600160a01b03163314610d675760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b35565b60d054600160301b900460ff1615612e2c5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038216600081815260d66020908152604091829020600381015481546001600160a01b03191690915582516001600160a01b038616815291820181905292917fe8ed5b475a5b5987aa9165e8731bb78043f39eee32ec5a1169a89e27fcd49815910160405180910390a26040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561107a573d6000803e3d6000fd5b6109de612da7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612f0e57610a8783614206565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612f68575060408051601f3d908101601f19168201909252612f6591810190615114565b60015b612fcb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610b35565b600080516020615eb4833981519152811461303a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610b35565b50610a878383836142a2565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008060c960009054906101000a90046001600160a01b03166001600160a01b031663b330a0fd6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156130ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131169190810190615751565b9050805160000361313a57604051636905ab6760e01b815260040160405180910390fd5b60c954604080516306545a9360e01b815290516000926001600160a01b0316916306545a939160048083019260209291908290030181865afa158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a89190615114565b60cd5490915060009082906131c49063ffffffff16600161516e565b63ffffffff166131d491906157e1565b90505b6131e183826142c7565b61320257816131f182600161518b565b6131fb91906157e1565b90506131d7565b9392505050565b604080514660208201529081018590526001600160401b03841660608201526001600160a01b038316608082015260a0810182905260009060c0016040516020818303038152906040528051906020012060001c90505b949350505050565b60008160405160200161327d91815260200190565b604051602081830303815290604052805190602001209050919050565b60da54600090819062010000900460ff16156132c4575060068601546001600160401b0316613316565b60db5442108015906132d8575060dc544211155b156133165760db54600788015410156132f357506001613316565b600687015461331390600160c01b90046001600160401b031660016150c4565b90505b60006133b2856133276003896157f5565b6133339061c350615812565b61333f89612328615812565b60d0546133599190600160581b900463ffffffff1661516e565b613363919061516e565b60068b0154600160401b90046001600160401b03166133a85760da5460649061ffff1661338f87612397565b6133999190615812565b6133a3919061583a565b6133ab565b60005b878a611693565b905080886004015489600301546133c991906150eb565b10156133e85760405163444a5eaf60e11b815260040160405180910390fd5b808860040160008282546133fc919061518b565b90915550506000878152600589016020526040902081905591505095945050505050565b600054610100900460ff166134475760405162461bcd60e51b8152600401610b359061585d565b610d6761431c565b60405162f577a560e81b81526004810183905260609073__$34d23ddaee48904c6c566425acbfa0fc0e$__9063f577a50090602401602060405180830381865af41580156134a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c591906158b3565b6134e257604051638529df1f60e01b815260040160405180910390fd5b815160000361350457604051638bdcc37560e01b815260040160405180910390fd5b60c9546040516333ad819560e21b8152600481018890526000916001600160a01b03169063ceb6065490602401600060405180830381865afa15801561354e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135769190810190615b60565b90506135868160a001513361434c565b6135a35760405163d9ce719d60e01b815260040160405180910390fd5b60408051602081018890528082018790528151808203830181526060820192839052633033cc5160e01b90925260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__90633033cc51906135fd908590606401615c65565b6040805180830381865af4158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615c78565b905073__$34d23ddaee48904c6c566425acbfa0fc0e$__63ebbdac9173__$34d23ddaee48904c6c566425acbfa0fc0e$__6313bc64ee896040518263ffffffff1660e01b815260040161369291815260200190565b6040805180830381865af41580156136ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d29190615c78565b856101000151846040518463ffffffff1660e01b81526004016136f793929190615d1e565b602060405180830381865af4158015613714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373891906158b3565b61375557604051638baa579f60e01b815260040160405180910390fd5b600085516001600160401b03811115613770576137706147dd565b6040519080825280602002602001820160405280156137a957816020015b61379661476f565b81526020019060019003908161378e5790505b509050600086516001600160401b038111156137c7576137c76147dd565b60405190808252806020026020018201604052801561380057816020015b6137ed61478d565b8152602001906001900390816137e55790505b50905086516001600160401b0381111561381c5761381c6147dd565b604051908082528060200260200182016040528015613845578160200160208202803683370190505b50955060005b8751811015613a925773__$34d23ddaee48904c6c566425acbfa0fc0e$__63f577a50089838151811061388057613880614fe7565b6020026020010151602001516040518263ffffffff1660e01b81526004016138aa91815260200190565b602060405180830381865af41580156138c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138eb91906158b3565b61390857604051636b849b7d60e11b815260040160405180910390fd5b73__$34d23ddaee48904c6c566425acbfa0fc0e$__6313bc64ee89838151811061393457613934614fe7565b6020026020010151602001516040518263ffffffff1660e01b815260040161395e91815260200190565b6040805180830381865af415801561397a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399e9190615c78565b8382815181106139b0576139b0614fe7565b602002602001018190525085608001518882815181106139d2576139d2614fe7565b602002602001015160000151815181106139ee576139ee614fe7565b602002602001015160200151828281518110613a0c57613a0c614fe7565b60200260200101819052508560800151888281518110613a2e57613a2e614fe7565b60200260200101516000015181518110613a4a57613a4a614fe7565b602002602001015160000151878281518110613a6857613a68614fe7565b6001600160a01b039092166020928302919091019091015280613a8a81615013565b91505061384b565b50604051630d6870d760e21b815273__$34d23ddaee48904c6c566425acbfa0fc0e$__906335a1c35c90613ace90859085908890600401615d47565b602060405180830381865af4158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f91906158b3565b613b2c57604051639c2d1c6d60e01b815260040160405180910390fd5b505050505095945050505050565b60008060608184604001516002811115613b5657613b56615295565b03613ba05750604080516024810187905260448082018790528251808303909101815260649091019091526020810180516001600160e01b03166394985ddd60e01b179052613d8a565b600184604001516002811115613bb857613bb8615295565b03613ceb5760008460600151806020019051810190613bd79190615ddd565b905060008163ffffffff166001600160401b03811115613bf957613bf96147dd565b604051908082528060200260200182016040528015613c22578160200160208202803683370190505b50905060005b8263ffffffff16811015613c925760408051602081018a90529081018290526060016040516020818303038152906040528051906020012060001c828281518110613c7557613c75614fe7565b602090810291909101015280613c8a81615013565b915050613c28565b506040516375bf929b60e01b90613caf908a908490602401615dfa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250613d8a915050565b600284604001516002811115613d0357613d03615295565b03613d8a5760008460600151806020019051810190613d229190615ddd565b90506000613d368263ffffffff16886143a7565b9050639e5836f660e01b8882604051602401613d53929190615dfa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152925050505b60d0805466ff0000000000001916600160301b17905560e08401516080850151613dbb9163ffffffff169083614502565b60d0805466ff000000000000191690559695505050505050565b6006840180546000918291600191908390613dfa9084906001600160401b03166150c4565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600060d960010160029054906101000a900460ff1615613e4c575060068601546001600160401b0316613f03565b60db544210801590613e60575060dc544211155b15613f035760db5460078801541015613ea05760068701805477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b179055613eec565b60018760060160188282829054906101000a90046001600160401b0316613ec791906150c4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b506006860154600160c01b90046001600160401b03165b4260078801556006870154600090600160401b90046001600160401b031615613f765760018860060160088282829054906101000a90046001600160401b0316613f4d9190615e3b565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550613fb5565b60da5460649061ffff16613f8984612397565b613f9e9063ffffffff1664e8d4a5100061512d565b613fa8919061512d565b613fb2919061515a565b90505b6000613fe886613fc78961232861512d565b60d054613fe19190600160381b900463ffffffff1661518b565b843a61454e565b9050808960030154101561400f5760405163964d765f60e01b815260040160405180910390fd5b600088815260058a01602052604081205460048b018054919290916140359084906150eb565b9091555050600088815260058a016020526040812081905560038a0180548392906140619084906150eb565b925050819055508160ca600082825461407a919061518b565b909155509099919850909650505050505050565b60d35460cb80546000906140a390849061518b565b9091555050825160d2546140b7919061512d565b60cc60008282546140c8919061518b565b909155505060408051600180825281830190925260009160208083019080368337019050509050338160008151811061410357614103614fe7565b6001600160a01b03928316602091820292909201015260c9541663914eb34d8261412d85876150eb565b60d3546040516001600160e01b031960e086901b16815261415393929190600401615e5b565b600060405180830381600087803b15801561416d57600080fd5b505af1158015614181573d6000803e3d6000fd5b505060c95486516001600160a01b03909116925063914eb34d915086906141a8908661515a565b60d2546040516001600160e01b031960e086901b1681526141ce93929190600401615e5b565b600060405180830381600087803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0381163b6142735760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b35565b600080516020615eb483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6142ab836145fd565b6000825111806142b85750805b15610a875761107a838361463d565b6000805b835181101561431057828482815181106142e7576142e7614fe7565b6020026020010151036142fe576001915050614316565b8061430881615013565b9150506142cb565b50600090505b92915050565b600054610100900460ff166143435760405162461bcd60e51b8152600401610b359061585d565b610d6733613046565b6000805b835181101561431057826001600160a01b031684828151811061437557614375614fe7565b60200260200101516001600160a01b031603614395576001915050614316565b8061439f81615013565b915050614350565b60606000836001600160401b038111156143c3576143c36147dd565b6040519080825280602002602001820160405280156143ec578160200160208202803683370190505b50905060005b8481101561442a578082828151811061440d5761440d614fe7565b60209081029190910101528061442281615013565b9150506143f2565b5080516000805b600061443c84615e80565b93508311156144f75761444f83876157e1565b91508560405160200161446491815260200190565b6040516020818303038152906040528051906020012060001c955083838151811061449157614491614fe7565b602002602001015190508382815181106144ad576144ad614fe7565b60200260200101518484815181106144c7576144c7614fe7565b602002602001018181525050808483815181106144e6576144e6614fe7565b602002602001018181525050614431565b509195945050505050565b60005a61138881101561451457600080fd5b61138881039050846040820482031161452c57600080fd5b50823b61453857600080fd5b60008083516020850160008789f1949350505050565b60008073__$12cfec358bb780f6fb6addaaa16de5538e$__63c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865af415801561459a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145be9190615114565b5a6145c9888861518b565b6145d391906150eb565b6145dd908561512d565b6145e7919061518b565b90506145f3848261518b565b9695505050505050565b61460681614206565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6146a55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b35565b600080846001600160a01b0316846040516146c09190615e97565b600060405180830381855af49150503d80600081146146fb576040519150601f19603f3d011682016040523d82523d6000602084013e614700565b606091505b50915091506147288282604051806060016040528060278152602001615ed460279139614731565b95945050505050565b60608315614740575081613202565b61320283838151156147555781518083602001fd5b8060405162461bcd60e51b8152600401610b359190615c65565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b80356001600160401b0381168114611cf857600080fd5b6000602082840312156147d457600080fd5b613202826147ab565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614816576148166147dd565b60405290565b60405160e081016001600160401b0381118282101715614816576148166147dd565b604080519081016001600160401b0381118282101715614816576148166147dd565b60405161014081016001600160401b0381118282101715614816576148166147dd565b604051606081016001600160401b0381118282101715614816576148166147dd565b604051601f8201601f191681016001600160401b03811182821017156148cd576148cd6147dd565b604052919050565b60006001600160401b038211156148ee576148ee6147dd565b5060051b60200190565b600082601f83011261490957600080fd5b8135602061491e614919836148d5565b6148a5565b82815260059290921b8401810191818101908684111561493d57600080fd5b8286015b8481101561495f57614952816147ab565b8352918301918301614941565b509695505050505050565b6000806040838503121561497d57600080fd5b82356001600160401b038082111561499457600080fd5b6149a0868387016148f8565b935060208501359150808211156149b657600080fd5b506149c3858286016148f8565b9150509250929050565b6001600160a01b03811681146109de57600080fd5b8035611cf8816149cd565b60008060408385031215614a0057600080fd5b8235614a0b816149cd565b946020939093013593505050565b600060208284031215614a2b57600080fd5b5035919050565b600060208284031215614a4457600080fd5b8135613202816149cd565b600082601f830112614a6057600080fd5b81356001600160401b03811115614a7957614a796147dd565b614a8c601f8201601f19166020016148a5565b818152846020838601011115614aa157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614ad157600080fd5b8235614adc816149cd565b915060208301356001600160401b03811115614af757600080fd5b6149c385828601614a4f565b803561ffff81168114611cf857600080fd5b63ffffffff811681146109de57600080fd5b8035611cf881614b15565b600080600080600080600060e0888a031215614b4d57600080fd5b614b5688614b03565b96506020880135614b6681614b15565b95506040880135614b7681614b15565b94506060880135614b8681614b15565b9699959850939660808101359560a0820135955060c0909101359350915050565b60008060408385031215614bba57600080fd5b614bc3836147ab565b91506020830135614bd3816149cd565b809150509250929050565b60008060408385031215614bf157600080fd5b614bfa836147ab565b9150614c08602084016147ab565b90509250929050565b600080600080600060a08688031215614c2957600080fd5b8535614c3481614b15565b94506020860135614c4481614b15565b93506040860135614c5481614b15565b9250606086013591506080860135614c6b81614b15565b809150509295509295909350565b600060208284031215614c8b57600080fd5b81356001600160401b03811115614ca157600080fd5b820160e0818503121561320257600080fd5b600081518084526020808501945080840160005b83811015614cec5781516001600160a01b031687529582019590820190600101614cc7565b509495945050505050565b60006101206001600160a01b038c168352806020840152614d1a8184018c614cb3565b604084019a909a52505060608101969096526001600160401b03948516608087015292841660a086015290831660c085015290911660e08301526101009091015292915050565b60006101408284031215614d7457600080fd5b50919050565b60008060008060008060a08789031215614d9357600080fd5b8635614d9e81614b15565b9550602087013594506040870135935060608701356001600160401b0380821115614dc857600080fd5b614dd48a838b01614d61565b94506080890135915080821115614dea57600080fd5b818901915089601f830112614dfe57600080fd5b813581811115614e0d57600080fd5b8a60208260061b8501011115614e2257600080fd5b6020830194508093505050509295509295509295565b60008060408385031215614e4b57600080fd5b8235915060208301356001600160401b03811115614e6857600080fd5b6149c385828601614d61565b80151581146109de57600080fd5b8035611cf881614e74565b600080600060608486031215614ea257600080fd5b8335614ead81614e74565b9250614ebb60208501614b03565b9150614ec960408501614b03565b90509250925092565b803562ffffff81168114611cf857600080fd5b60008060008060008587036101a0811215614eff57600080fd5b61012080821215614f0f57600080fd5b614f176147f3565b9150614f2288614b27565b8252614f3060208901614b27565b6020830152614f4160408901614b27565b6040830152614f5260608901614b27565b6060830152614f6360808901614b27565b6080830152614f7460a08901614ed2565b60a0830152614f8560c08901614ed2565b60c0830152614f9660e08901614ed2565b60e0830152610100614fa9818a01614ed2565b8184015250819650614fbc818901614b03565b95505050614fcd6101408701614e82565b949793965093946101608101359450610180013592915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161502557615025614ffd565b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160401b038181168382160190808211156150e4576150e4614ffd565b5092915050565b8181038181111561431657614316614ffd565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561512657600080fd5b5051919050565b808202811582820484141761431657614316614ffd565b634e487b7160e01b600052601260045260246000fd5b60008261516957615169615144565b500490565b63ffffffff8181168382160190808211156150e4576150e4614ffd565b8082018082111561431657614316614ffd565b60006001600160401b038083168181036151ba576151ba614ffd565b6001019392505050565b803560038110611cf857600080fd5b600060e082360312156151e557600080fd5b6151ed61481c565b6151f6836151c4565b815260208301356001600160401b0381111561521157600080fd5b61521d36828601614a4f565b60208301525061522f604084016147ab565b60408201526060830135606082015261524a60808401614b03565b608082015261525b60a08401614b27565b60a082015260c092830135928101929092525090565b6000806040838503121561528457600080fd5b505080516020909101519092909150565b634e487b7160e01b600052602160045260246000fd5b600381106152c957634e487b7160e01b600052602160045260246000fd5b9052565b60005b838110156152e85781810151838201526020016152d0565b50506000910152565b600081518084526153098160208601602086016152cd565b601f01601f19169290920160200192915050565b60006101608d83526001600160401b038d16602084015263ffffffff808d16604085015261534e606085018d6152ab565b8160808501526153608285018c6152f1565b6001600160a01b039a909a1660a085015260c0840198909852505061ffff9490941660e085015291909316610100830152610120820192909252610140015295945050505050565b60006101006153b7838c6152ab565b8060208401526153c98184018b6152f1565b6001600160a01b039990991660408401525050606081019590955261ffff93909316608085015263ffffffff9190911660a084015260c083015260e09091015292915050565b60006020828403121561542157600080fd5b813561320281614b15565b60006020828403121561543e57600080fd5b613202826151c4565b6000808335601e1984360301811261545e57600080fd5b8301803591506001600160401b0382111561547857600080fd5b60200191503681900382131561548d57600080fd5b9250929050565b6000602082840312156154a657600080fd5b61320282614b03565b60006101608e83526001600160401b038e16602084015263ffffffff8d1660408401526154df606084018d6152ab565b806080840152898184015250610180898b8285013760008a84018201526001600160a01b03891660a0840152601f19601f8b011683010190508660c083015261552e60e083018761ffff169052565b63ffffffff851661010083015261012082019390935261014001529a9950505050505050505050565b60006040828403121561556957600080fd5b61557161483e565b82358152602083013560208201528091505092915050565b6000610140823603121561559c57600080fd5b6155a4614860565b6155ad836147ab565b81526155bb60208401614b27565b60208201526155cc604084016151c4565b604082015260608301356001600160401b038111156155ea57600080fd5b6155f636828601614a4f565b606083015250615608608084016149e2565b608082015260a083013560a082015261562360c08401614b03565b60c082015261563460e08401614b27565b60e0820152610100838101359082015261012092830135928101929092525090565b60a08152600061566960a0830188614cb3565b905085602083015284604083015283606083015282151560808301529695505050505050565b855163ffffffff9081168252602080880151821690830152604080880151821690830152606080880151821690830152608080880151918216908301526101a08201905060a08701516156e960a084018262ffffff169052565b5060c087015161570060c084018262ffffff169052565b5060e087015161571760e084018262ffffff169052565b506101009687015162ffffff169682019690965261ffff949094166101208501529115156101408401526101608301526101809091015290565b6000602080838503121561576457600080fd5b82516001600160401b0381111561577a57600080fd5b8301601f8101851361578b57600080fd5b8051615799614919826148d5565b81815260059190911b820183019083810190878311156157b857600080fd5b928401925b828410156157d6578351825292840192908401906157bd565b979650505050505050565b6000826157f0576157f0615144565b500690565b63ffffffff8281168282160390808211156150e4576150e4614ffd565b63ffffffff81811683821602808216919082811461583257615832614ffd565b505092915050565b600063ffffffff8084168061585157615851615144565b92169190910492915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8051611cf881614e74565b6000602082840312156158c557600080fd5b815161320281614e74565b600082601f8301126158e157600080fd5b604051608081018181106001600160401b0382111715615903576159036147dd565b60405280608084018581111561591857600080fd5b845b818110156144f757805183526020928301920161591a565b600082601f83011261594357600080fd5b81516020615953614919836148d5565b82815260a0928302850182019282820191908785111561597257600080fd5b8387015b858110156159c05781818a03121561598e5760008081fd5b61599661483e565b81516159a1816149cd565b81526159af8a8388016158d0565b818701528452928401928101615976565b5090979650505050505050565b600082601f8301126159de57600080fd5b815160206159ee614919836148d5565b82815260059290921b84018101918181019086841115615a0d57600080fd5b8286015b8481101561495f578051615a24816149cd565b8352918301918301615a11565b600082601f830112615a4257600080fd5b81516020615a52614919836148d5565b82815260059290921b84018101918181019086841115615a7157600080fd5b8286015b8481101561495f5780516001600160401b0380821115615a9457600080fd5b908801906040601f19838c038101821315615aae57600080fd5b615ab661483e565b8885015184811115615ac757600080fd5b615ad58e8b838901016159cd565b8252508285015184811115615ae957600080fd5b949094019360c0858e0383011215615b015760008081fd5b615b09614883565b9150888501518252615b1d8d8487016158d0565b8983015260c085015184811115615b345760008081fd5b615b428e8b838901016159cd565b93830193909352808901919091528652505050918301918301615a75565b600060208284031215615b7257600080fd5b81516001600160401b0380821115615b8957600080fd5b908301906101808286031215615b9e57600080fd5b615ba66147f3565b82518152602083015160208201526040830151604082015260608301516060820152608083015182811115615bda57600080fd5b615be687828601615932565b60808301525060a083015182811115615bfe57600080fd5b615c0a878286016159cd565b60a08301525060c083015182811115615c2257600080fd5b615c2e87828601615a31565b60c083015250615c4060e084016158a8565b60e08201526101009150615c56868385016158d0565b91810191909152949350505050565b60208152600061320260208301846152f1565b600060408284031215615c8a57600080fd5b82601f830112615c9957600080fd5b615ca161483e565b806040840185811115615cb357600080fd5b845b81811015615ccd578051845260209384019301615cb5565b509095945050505050565b8060005b600281101561107a578151845260209384019390910190600101615cdc565b8060005b600481101561107a578151845260209384019390910190600101615cff565b6101008101615d2d8286615cd8565b615d3a6040830185615cfb565b61326060c0830184615cd8565b608080825284518282018190526000919060209060a0850190828901855b82811015615d8b57615d78848351615cd8565b6040939093019290840190600101615d65565b5050508481038286015286518082528783019183019060005b81811015615dc757615db7838551615cfb565b9284019291850191600101615da4565b5050809450505050506132606040830184615cd8565b600060208284031215615def57600080fd5b815161320281614b15565b6000604082018483526020604081850152818551808452606086019150828701935060005b818110156159c057845183529383019391830191600101615e1f565b6001600160401b038281168282160390808211156150e4576150e4614ffd565b606081526000615e6e6060830186614cb3565b60208301949094525060400152919050565b600081615e8f57615e8f614ffd565b506000190190565b60008251615ea98184602087016152cd565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017e2debd03af54b263f22261c522d35c5df4cc75eaa046d59bf4589096082a9364736f6c63430008120033", "sourceMap": "959:37380:71:-:0;;;1332:4:33;1289:48;;6710:53:71;;;;;;;;;-1:-1:-1;6734:22:71;:20;:22::i;:::-;959:37380;;5928:279:32;5996:13;;;;;;;5995:14;5987:66;;;;-1:-1:-1;;;5987:66:32;;216:2:127;5987:66:32;;;198:21:127;255:2;235:18;;;228:30;294:34;274:18;;;267:62;-1:-1:-1;;;345:18:127;;;338:37;392:19;;5987:66:32;;;;;;;;6067:12;;6082:15;6067:12;;;:30;6063:138;;;6113:12;:30;;-1:-1:-1;;6113:30:32;6128:15;6113:30;;;;;;6162:28;;564:36:127;;;6162:28:32;;552:2:127;537:18;6162:28:32;;;;;;;6063:138;5928:279::o;422:184:127:-;959:37380:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", "linkReferences": { "src/libraries/BLS.sol": { "BLS": [ { "start": 13703, "length": 20 }, { "start": 14069, "length": 20 }, { "start": 14177, "length": 20 }, { "start": 14203, "length": 20 }, { "start": 14710, "length": 20 }, { "start": 14890, "length": 20 }, { "start": 15298, "length": 20 } ] }, "src/libraries/ChainHelper.sol": { "ChainHelper": [ { "start": 6102, "length": 20 }, { "start": 10446, "length": 20 }, { "start": 18035, "length": 20 } ] } } }, "deployedBytecode": { "object": "0x6080604052600436106102565760003560e01c806391a6fe7711610149578063c725a833116100c6578063dcdb7b881161008a578063f2fde38b11610064578063f2fde38b1461090a578063f362ca611461092a578063f4cc97fc1461094a57600080fd5b8063dcdb7b8814610721578063dfaba79414610889578063ef6f42731461089c57600080fd5b8063c725a83314610670578063caba5284146106a1578063d2f9f9a7146106c1578063d7ae1d30146106e1578063d89f241f1461070157600080fd5b8063a39402d71161010d578063a39402d7146105d1578063a47c7696146105f1578063a4c343f214610626578063aa81d59a1461063b578063c4d66de81461065057600080fd5b806391a6fe7714610541578063931d92041461055c5780639f87fad71461057c578063a141bbd81461059c578063a21a23e4146105bc57600080fd5b806352d1902d116101d75780637341c10c1161019b5780637341c10c1461048057806376a911bc146104a05780638166d459146104e2578063877d38bb1461050d5780638da5cb5b1461052357600080fd5b806352d1902d1461040c578063636021741461042157806364d51a2a14610436578063715018a61461044b57806371b7ca051461046057600080fd5b806315c48b841161021e57806315c48b841461032f5780631e58a872146103575780633018205f146103a75780633659cfe6146103d95780634f1ef286146103f957600080fd5b806302bcc5b61461025b578063056e5ede1461027d57806306bfa6371461029d5780630ad98f6a146102d45780631565034c146102f4575b600080fd5b34801561026757600080fd5b5061027b6102763660046147c2565b61096a565b005b34801561028957600080fd5b5061027b61029836600461496a565b6109e1565b3480156102a957600080fd5b5060d7546001600160401b03165b6040516001600160401b0390911681526020015b60405180910390f35b3480156102e057600080fd5b5061027b6102ef3660046149ed565b610a8c565b34801561030057600080fd5b5061032161030f366004614a19565b600090815260d4602052604090205490565b6040519081526020016102cb565b34801561033b57600080fd5b5061034460c881565b60405161ffff90911681526020016102cb565b34801561036357600080fd5b5061038560d85460ff81169161ffff6101008304811692630100000090041690565b60408051931515845261ffff92831660208501529116908201526060016102cb565b3480156103b357600080fd5b5060c9546001600160a01b03165b6040516001600160a01b0390911681526020016102cb565b3480156103e557600080fd5b5061027b6103f4366004614a32565b610aed565b61027b610407366004614abe565b610bd2565b34801561041857600080fd5b50610321610ca2565b34801561042d57600080fd5b5060cf54610321565b34801561044257600080fd5b50610344606481565b34801561045757600080fd5b5061027b610d55565b34801561046c57600080fd5b5061027b61047b366004614b32565b610d69565b34801561048c57600080fd5b5061027b61049b366004614ba7565b610ebd565b3480156104ac57600080fd5b506102b76104bb366004614a32565b6001600160a01b0316600090815260d560205260409020600101546001600160401b031690565b3480156104ee57600080fd5b506104f861232881565b60405163ffffffff90911681526020016102cb565b34801561051957600080fd5b506104f861c35081565b34801561052f57600080fd5b506097546001600160a01b03166103c1565b34801561054d57600080fd5b5060cd5463ffffffff16610321565b34801561056857600080fd5b5061027b610577366004614bde565b611080565b34801561058857600080fd5b5061027b610597366004614ba7565b61135d565b3480156105a857600080fd5b506103216105b7366004614c11565b611693565b3480156105c857600080fd5b506102b76117e6565b3480156105dd57600080fd5b506103216105ec366004614c79565b6118df565b3480156105fd57600080fd5b5061061161060c3660046147c2565b611cfd565b6040516102cb99989796959493929190614cf7565b34801561063257600080fd5b5060ce54610321565b34801561064757600080fd5b506104f8600381565b34801561065c57600080fd5b5061027b61066b366004614a32565b611e1d565b34801561067c57600080fd5b5060ca5460cb5460cc54604080519384526020840192909252908201526060016102cb565b3480156106ad57600080fd5b5061027b6106bc366004614d7a565b611f49565b3480156106cd57600080fd5b506104f86106dc3660046147c2565b612397565b3480156106ed57600080fd5b5061027b6106fc366004614ba7565b612514565b34801561070d57600080fd5b5061027b61071c366004614e38565b612620565b34801561072d57600080fd5b50604080516101208101825260d95463ffffffff8082168084526401000000008304821660208501819052600160401b84048316958501869052600160601b8404831660608601819052600160801b85049093166080860181905262ffffff600160a01b8604811660a08801819052600160b81b8704821660c08901819052600160d01b8804831660e08a01819052600160e81b90980490921661010090980188905260da5460db5460dc54969a95999598949692959394939261ffff83169260ff620100009091041691906040516102cb9d9c9b9a9998979695949392919063ffffffff9d8e1681529b8d1660208d0152998c1660408c0152978b1660608b015295909916608089015262ffffff93841660a089015291831660c0880152821660e08701521661010085015261ffff949094166101208401529215156101408301526101608201929092526101808101919091526101a00190565b61027b6108973660046147c2565b612971565b3480156108a857600080fd5b5060d05460d15460d25460d3546040805161ffff8616815263ffffffff62010000870481166020830152600160381b8704811692820192909252600160581b909504166060850152608084019290925260a083015260c082015260e0016102cb565b34801561091657600080fd5b5061027b610925366004614a32565b612a5d565b34801561093657600080fd5b5061027b610945366004614e8d565b612ad3565b34801561095657600080fd5b5061027b610965366004614ee5565b612b6d565b610972612da7565b6001600160401b038116600090815260d660205260409020546001600160a01b03166109b157604051630fb532db60e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260409020546109de9082906001600160a01b0316612e01565b50565b6109e9612da7565b60005b8251811015610a8757818181518110610a0757610a07614fe7565b602002602001015160d66000858481518110610a2557610a25614fe7565b60200260200101516001600160401b03166001600160401b0316815260200190815260200160002060060160086101000a8154816001600160401b0302191690836001600160401b031602179055508080610a7f90615013565b9150506109ec565b505050565b60c9546001600160a01b03163314610ab757604051630f5caa3360e41b815260040160405180910390fd5b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015610a87573d6000803e3d6000fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b3e5760405162461bcd60e51b8152600401610b359061502c565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b87600080516020615eb4833981519152546001600160a01b031690565b6001600160a01b031614610bad5760405162461bcd60e51b8152600401610b3590615078565b610bb681612ed3565b604080516000808252602082019092526109de91839190612edb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610c1a5760405162461bcd60e51b8152600401610b359061502c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c63600080516020615eb4833981519152546001600160a01b031690565b6001600160a01b031614610c895760405162461bcd60e51b8152600401610b3590615078565b610c9282612ed3565b610c9e82826001612edb565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d425760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610b35565b50600080516020615eb483398151915290565b610d5d612da7565b610d676000613046565b565b610d71612da7565b60c861ffff88161115610dab5760405163539c34bb60e11b815261ffff881660048201819052602482015260c86044820152606401610b35565b604080516101008101825261ffff891680825263ffffffff89811660208085018290526000858701528a83166060808701829052938b16608080880182905260a08089018d905260c0808a018d905260e0998a018c905260d0805465ffffffffffff19168a17620100008902176effffffffffffffffff0000000000001916600160381b87026effffffff0000000000000000000000191617600160581b860217905560d18e905560d28d905560d38c90558a519889529488019590955297860191909152928401929092529382018790529281018590529182018390527fefeb3292465cf72a302efdd83695ad560a2828353a1e018844e9abd19a642037910160405180910390a150505050505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b031680610eff57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b03821614610f3357604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff1615610f5e5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038416600090815260d6602052604090206002015460631901610f9b576040516305a48e0f60e01b815260040160405180910390fd5b6001600160a01b038316600090815260d5602090815260408083206001600160401b038089168552925282205416900361107a576001600160a01b038316600081815260d5602090815260408083206001600160401b0389168085528184528285208054600167ffffffffffffffff1991821681179092559281018054909316821790925560d68452828520600201805492830181558552938390200180546001600160a01b031916851790555192835290917f43dc749a04ac8fb825cbd514f7c0e13f13bc6f2ee66043b76629d51776cff8e0910160405180910390a25b50505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b0316806110c257604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146110f657604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156111215760405163769dd35360e11b815260040160405180910390fd5b60d85460ff1661114457604051636dac270160e01b815260040160405180910390fd5b6001600160401b03808416600090815260d660205260408082205492871682529020546001600160a01b039182169116036111925760405163027f035560e51b815260040160405180910390fd5b6001600160401b03808516600090815260d66020526040902060060154600160801b900416156111d55760405163cae26ee160e01b815260040160405180910390fd5b6001600160401b03808516600090815260d6602052604090206006015416158061121a57506001600160401b03808416600090815260d6602052604090206006015416155b156112385760405163a760a23760e01b815260040160405180910390fd5b60d8546001600160401b03848116600090815260d660205260409020600601805461010090930461ffff1692909160089161127c918591600160401b9004166150c4565b82546101009290920a6001600160401b0381810219909316918316021790915560d854868216600090815260d6602052604090206006018054630100000090920461ffff169350916008916112da918591600160401b9004166150c4565b82546101009290920a6001600160401b03818102199093169183160217909155858116600081815260d66020526040808220600601805467ffffffffffffffff60801b1916600160801b958a169586021790555192935090917fb661d46b53034f62a6c7d50df2a5e055fab98889aaf62f8c618e457edd96c6889190a350505050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b03168061139f57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146113d357604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156113fe5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038416600090815260d660205260409020600401541561143857604051631685ecdd60e31b815260040160405180910390fd5b6001600160401b038416600090815260d660209081526040808320600201805482518185028101850190935280835291929091908301828280156114a557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611487575b5050505050905080516000036114e857604051637800cff360e11b81526001600160401b03861660048201526001600160a01b0385166024820152604401610b35565b60005b815181101561165f57846001600160a01b031682828151811061151057611510614fe7565b60200260200101516001600160a01b03160361164d57816001835161153591906150eb565b8151811061154557611545614fe7565b602002602001015160d66000886001600160401b03166001600160401b03168152602001908152602001600020600201828154811061158657611586614fe7565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092556001600160401b038816815260d6909152604090206002018054806115da576115da6150fe565b6000828152602090819020600019908301810180546001600160a01b03191690559091019091556040516001600160a01b03871681526001600160401b038816917f182bff9831466789164ca77075fffd84916d35a8180ba73c27e45634549b445b910160405180910390a2505061107a565b8061165781615013565b9150506114eb565b50604051637800cff360e11b81526001600160401b03861660048201526001600160a01b0385166024820152604401610b35565b60405163745e0dcf60e01b815263ffffffff82166004820152600090819060029073__$12cfec358bb780f6fb6addaaa16de5538e$__90638e3976f690829063745e0dcf90602401602060405180830381865af41580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c9190615114565b6040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865af4158015611757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177b9190615114565b61178690600361512d565b611790919061515a565b905060008161179f898961516e565b6117af9063ffffffff168761512d565b6117b9919061518b565b90506117d063ffffffff871664e8d4a5100061512d565b6117da908261518b565b98975050505050505050565b60d054600090600160301b900460ff16156118145760405163769dd35360e11b815260040160405180910390fd5b60d780546001600160401b031690600061182d8361519e565b82546001600160401b039182166101009390930a92830292820219169190911790915560d780548216600090815260d6602052604080822080546001600160a01b0319163390811790915583548516835281832060060180546fffffffffffffffff00000000000000001916600160401b17905592549051929450909216917f464722b4166576d3dcbba877b999bc35cf911f4eaf434b7eba68fa113951d0bf91a35060d7546001600160401b031690565b60d054600090600160301b900460ff161561190d5760405163769dd35360e11b815260040160405180910390fd5b6000611918836151d3565b905032330361193a57604051638a3150e760e01b815260040160405180910390fd5b6040808201516001600160401b0316600090815260d66020522080546001600160a01b031661197c57604051630fb532db60e11b815260040160405180910390fd5b33600090815260d560209081526040808320858201516001600160401b03908116855292528220541690036119db576040808301519051637800cff360e11b81526001600160401b039091166004820152336024820152604401610b35565b60d054608083015161ffff91821691161080611a03575060c861ffff16826080015161ffff16115b15611a3e57608082015160d05460405163539c34bb60e11b815261ffff92831660048201529116602482015260c86044820152606401610b35565b60d05460a083015163ffffffff62010000909204821691161115611a955760a082015160d054604051637aebf00f60e11b815263ffffffff9283166004820152620100009091049091166024820152604401610b35565b611a9d613098565b60cd805463ffffffff191663ffffffff9290921691909117905560608201516040808401805133600081815260d5602090815285822094516001600160401b039081168352949052938420549394611af794909316613209565b6040848101805133600090815260d560209081528482206001808201805467ffffffffffffffff19166001600160401b03968716179055945184168352905292832080549495509193919291611b4f918591166150c4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506000611b7e82613268565b60c95460cd5460405163f49e0ba960e01b815263ffffffff90911660048201529192506000916001600160a01b039091169063f49e0ba9906024016040805180830381865afa158015611bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf99190615271565b9150506000611c138584848960a001518a60c0015161329a565b60408088015160cd5489516020808c015160808d015160a08e015160c08f01519751989950611c59988c9863ffffffff90971696939433948f949392909143910161531d565b60408051601f198184030181528282528051602091820120600087815260d483528390205560cd54918901518951918a015160808b015160a08c015160c08d015163ffffffff909616966001600160401b03909416958a957fd26299589dd9197a8dc30a0fa17b0fe7dd432bc3441aa5f5631ea1e14c1af74495611ce7959194919333938f93928d906153a8565b60405180910390a450909450505050505b919050565b6001600160401b038116600090815260d660205260408120805460609183918291829182918291829182916001600160a01b0316611d4e57604051630fb532db60e11b815260040160405180910390fd5b80546003820154600483015460068401546007850154600286018054604080516020808402820181019092528281526001600160a01b0390981697929695946001600160401b0380821695600160401b8304821695600160801b8404831695600160c01b9094049092169390928a91830182828015611df657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611dd8575b50505050509750995099509950995099509950995099509950509193959799909294969850565b600054610100900460ff1615808015611e3d5750600054600160ff909116105b80611e575750303b158015611e57575060005460ff166001145b611eba5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b35565b6000805460ff191660011790558015611edd576000805461ff0019166101001790555b60c980546001600160a01b0319166001600160a01b038416179055611f00613420565b8015610c9e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60d054600160301b900460ff1615611f745760405163769dd35360e11b815260040160405180910390fd5b60005a600087815260d46020526040812054919250819003611fa957604051631b44092560e11b815260040160405180910390fd5b86611fb760208701876147c2565b611fc7604088016020890161540f565b611fd76060890160408a0161542c565b611fe460608a018a615447565b611ff460a08c0160808d01614a32565b60a08c013561200960e08e0160c08f01615494565b8d60e001602081019061201c919061540f565b8e61010001358f61012001356040516020016120439c9b9a999897969594939291906154af565b6040516020818303038152906040528051906020012081146120785760405163354a450b60e21b815260040160405180910390fd5b61208860e0860160c08701615494565b61209b9061ffff1661012087013561518b565b4310156120bb5760405163619a4abd60e01b815260040160405180910390fd5b6120cb604086016020870161540f565b63ffffffff168863ffffffff16141580156120f7575060d1546120f39061012087013561518b565b4311155b15612115576040516378373bbd60e11b815260040160405180910390fd5b60c960009054906101000a90046001600160a01b03166001600160a01b03166306545a936040518163ffffffff1660e01b8152600401602060405180830381865afa158015612168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218c9190615114565b8863ffffffff16106121b957604051637f6efcb560e11b815263ffffffff89166004820152602401610b35565b60006122298963ffffffff168760a001358861012001358a8989808060200260200160405190810160405280939291908181526020016000905b8282101561221f5761221060408302860136819003810190615557565b815260200190600101906121f3565b505050505061344f565b600089815260d46020908152604080832083905580518083018c9052815180820384018152908201909152805191012060cf805493945090926001929061227190849061518b565b909155505060ce81905560c9546040516379ef840160e11b8152600481018390526001600160a01b039091169063f3df080290602401600060405180830381600087803b1580156122c157600080fd5b505af11580156122d5573d6000803e3d6000fd5b5050505060006122ef8a838a6122ea90615589565b613b3a565b905060008061232860d68261230760208e018e6147c2565b6001600160401b0316815260208101919091526040016000208d8a8a613dd5565b9150915061233785838361408e565b336001600160a01b03168d63ffffffff168d7f6fc1bcb4bd7d5fdf4017f746304b61ae4472496256e906c6bb44682aa2c9a6d8888887878a604051612380959493929190615656565b60405180910390a450505050505050505050505050565b604080516101208101825260d95463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b8104909216608082015262ffffff600160a01b8304811660a08301819052600160b81b8404821660c0840152600160d01b8404821660e0840152600160e81b909304166101008201526000916001600160401b03841611612443575192915050565b826001600160401b03168160a0015162ffffff1610801561247657508060c0015162ffffff16836001600160401b031611155b15612485576020015192915050565b826001600160401b03168160c0015162ffffff161080156124b857508060e0015162ffffff16836001600160401b031611155b156124c7576040015192915050565b826001600160401b03168160e0015162ffffff161080156124fb575080610100015162ffffff16836001600160401b031611155b1561250a576060015192915050565b6080015192915050565b6001600160401b038216600090815260d6602052604090205482906001600160a01b03168061255657604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b0382161461258a57604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b60d054600160301b900460ff16156125b55760405163769dd35360e11b815260040160405180910390fd5b6001600160a01b0383166125dc5760405163f6b2911f60e01b815260040160405180910390fd5b6001600160401b038416600090815260d660205260409020600401541561261657604051631685ecdd60e31b815260040160405180910390fd5b61107a8484612e01565b61262d60208201826147c2565b6001600160401b038116600090815260d660205260409020546001600160a01b03168061266d57604051630fb532db60e11b815260040160405180910390fd5b336001600160a01b038216146126a157604051636c51fda960e11b81526001600160a01b0382166004820152602401610b35565b600084815260d4602052604081205490036126cf57604051631b44092560e11b815260040160405180910390fd5b836126dd60208501856147c2565b6126ed604086016020870161540f565b6126fd606087016040880161542c565b61270a6060880188615447565b61271a60a08a0160808b01614a32565b60a08a013561272f60e08c0160c08d01615494565b6127406101008d0160e08e0161540f565b8c61010001358d61012001356040516020016127679c9b9a999897969594939291906154af565b60408051601f198184030181529181528151602092830120600087815260d4909352912054146127aa5760405163354a450b60e21b815260040160405180910390fd5b600073__$12cfec358bb780f6fb6addaaa16de5538e$__6387ceff096040518163ffffffff1660e01b8152600401602060405180830381865af41580156127f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128199190615114565b612826906201518061515a565b90506128378161012086013561518b565b43101561285757604051636c804b5d60e01b815260040160405180910390fd5b600085815260d460209081526040822082905560d6919061287a908701876147c2565b6001600160401b03168152602080820192909252604090810160009081208882526005018352908120549160d691906128b5908801886147c2565b6001600160401b03166001600160401b0316815260200190815260200160002060040160008282546128e791906150eb565b9091555060d6905060006128fe60208701876147c2565b6001600160401b0316815260208082019290925260409081016000908120888252600501835290812055612934908501856147c2565b6001600160401b0316857fc1cf1d318384ee8dee53eed48bbf121b2b14fa61e9da5fd2f597dfbee4e5c2e660405160405180910390a35050505050565b60d054600160301b900460ff161561299c5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260409020546001600160a01b03166129db57604051630fb532db60e11b815260040160405180910390fd5b6001600160401b038116600090815260d660205260408120600301805491349190612a06838561518b565b90915550506001600160401b0382167fd39ec07f4e209f627a4c427971473820dc129761ba28de8906bd56f57101d4f882612a41348261518b565b6040805192835260208301919091520160405180910390a25050565b612a65612da7565b6001600160a01b038116612aca5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b35565b6109de81613046565b612adb612da7565b604080516060808201835285151580835261ffff868116602080860182905291871694860185905260d8805462ffffff191662ffff001985161761010083021764ffff000000191663010000008702179055855192835290820152928301919091527faf8d657c268b3f943977d5288bfb2306420bcb17b7ef17397cffa5d2f4891643910160405180910390a1505050565b612b75612da7565b6040518060a001604052808681526020018561ffff16815260200184151581526020018381526020018281525060d960008201518160000160008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a81548163ffffffff021916908363ffffffff16021790555060408201518160000160086101000a81548163ffffffff021916908363ffffffff160217905550606082015181600001600c6101000a81548163ffffffff021916908363ffffffff16021790555060808201518160000160106101000a81548163ffffffff021916908363ffffffff16021790555060a08201518160000160146101000a81548162ffffff021916908362ffffff16021790555060c08201518160000160176101000a81548162ffffff021916908362ffffff16021790555060e082015181600001601a6101000a81548162ffffff021916908362ffffff16021790555061010082015181600001601d6101000a81548162ffffff021916908362ffffff160217905550505060208201518160010160006101000a81548161ffff021916908361ffff16021790555060408201518160010160026101000a81548160ff02191690831515021790555060608201518160020155608082015181600301559050507f1851d8853c0ab5ed26d95d456344506f759953621e7c115677f2244696b8ba978585858585604051612d9895949392919061568f565b60405180910390a15050505050565b6097546001600160a01b03163314610d675760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b35565b60d054600160301b900460ff1615612e2c5760405163769dd35360e11b815260040160405180910390fd5b6001600160401b038216600081815260d66020908152604091829020600381015481546001600160a01b03191690915582516001600160a01b038616815291820181905292917fe8ed5b475a5b5987aa9165e8731bb78043f39eee32ec5a1169a89e27fcd49815910160405180910390a26040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561107a573d6000803e3d6000fd5b6109de612da7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612f0e57610a8783614206565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612f68575060408051601f3d908101601f19168201909252612f6591810190615114565b60015b612fcb5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610b35565b600080516020615eb4833981519152811461303a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610b35565b50610a878383836142a2565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008060c960009054906101000a90046001600160a01b03166001600160a01b031663b330a0fd6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156130ee573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526131169190810190615751565b9050805160000361313a57604051636905ab6760e01b815260040160405180910390fd5b60c954604080516306545a9360e01b815290516000926001600160a01b0316916306545a939160048083019260209291908290030181865afa158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a89190615114565b60cd5490915060009082906131c49063ffffffff16600161516e565b63ffffffff166131d491906157e1565b90505b6131e183826142c7565b61320257816131f182600161518b565b6131fb91906157e1565b90506131d7565b9392505050565b604080514660208201529081018590526001600160401b03841660608201526001600160a01b038316608082015260a0810182905260009060c0016040516020818303038152906040528051906020012060001c90505b949350505050565b60008160405160200161327d91815260200190565b604051602081830303815290604052805190602001209050919050565b60da54600090819062010000900460ff16156132c4575060068601546001600160401b0316613316565b60db5442108015906132d8575060dc544211155b156133165760db54600788015410156132f357506001613316565b600687015461331390600160c01b90046001600160401b031660016150c4565b90505b60006133b2856133276003896157f5565b6133339061c350615812565b61333f89612328615812565b60d0546133599190600160581b900463ffffffff1661516e565b613363919061516e565b60068b0154600160401b90046001600160401b03166133a85760da5460649061ffff1661338f87612397565b6133999190615812565b6133a3919061583a565b6133ab565b60005b878a611693565b905080886004015489600301546133c991906150eb565b10156133e85760405163444a5eaf60e11b815260040160405180910390fd5b808860040160008282546133fc919061518b565b90915550506000878152600589016020526040902081905591505095945050505050565b600054610100900460ff166134475760405162461bcd60e51b8152600401610b359061585d565b610d6761431c565b60405162f577a560e81b81526004810183905260609073__$34d23ddaee48904c6c566425acbfa0fc0e$__9063f577a50090602401602060405180830381865af41580156134a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134c591906158b3565b6134e257604051638529df1f60e01b815260040160405180910390fd5b815160000361350457604051638bdcc37560e01b815260040160405180910390fd5b60c9546040516333ad819560e21b8152600481018890526000916001600160a01b03169063ceb6065490602401600060405180830381865afa15801561354e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526135769190810190615b60565b90506135868160a001513361434c565b6135a35760405163d9ce719d60e01b815260040160405180910390fd5b60408051602081018890528082018790528151808203830181526060820192839052633033cc5160e01b90925260009073__$34d23ddaee48904c6c566425acbfa0fc0e$__90633033cc51906135fd908590606401615c65565b6040805180830381865af4158015613619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061363d9190615c78565b905073__$34d23ddaee48904c6c566425acbfa0fc0e$__63ebbdac9173__$34d23ddaee48904c6c566425acbfa0fc0e$__6313bc64ee896040518263ffffffff1660e01b815260040161369291815260200190565b6040805180830381865af41580156136ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136d29190615c78565b856101000151846040518463ffffffff1660e01b81526004016136f793929190615d1e565b602060405180830381865af4158015613714573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061373891906158b3565b61375557604051638baa579f60e01b815260040160405180910390fd5b600085516001600160401b03811115613770576137706147dd565b6040519080825280602002602001820160405280156137a957816020015b61379661476f565b81526020019060019003908161378e5790505b509050600086516001600160401b038111156137c7576137c76147dd565b60405190808252806020026020018201604052801561380057816020015b6137ed61478d565b8152602001906001900390816137e55790505b50905086516001600160401b0381111561381c5761381c6147dd565b604051908082528060200260200182016040528015613845578160200160208202803683370190505b50955060005b8751811015613a925773__$34d23ddaee48904c6c566425acbfa0fc0e$__63f577a50089838151811061388057613880614fe7565b6020026020010151602001516040518263ffffffff1660e01b81526004016138aa91815260200190565b602060405180830381865af41580156138c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138eb91906158b3565b61390857604051636b849b7d60e11b815260040160405180910390fd5b73__$34d23ddaee48904c6c566425acbfa0fc0e$__6313bc64ee89838151811061393457613934614fe7565b6020026020010151602001516040518263ffffffff1660e01b815260040161395e91815260200190565b6040805180830381865af415801561397a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061399e9190615c78565b8382815181106139b0576139b0614fe7565b602002602001018190525085608001518882815181106139d2576139d2614fe7565b602002602001015160000151815181106139ee576139ee614fe7565b602002602001015160200151828281518110613a0c57613a0c614fe7565b60200260200101819052508560800151888281518110613a2e57613a2e614fe7565b60200260200101516000015181518110613a4a57613a4a614fe7565b602002602001015160000151878281518110613a6857613a68614fe7565b6001600160a01b039092166020928302919091019091015280613a8a81615013565b91505061384b565b50604051630d6870d760e21b815273__$34d23ddaee48904c6c566425acbfa0fc0e$__906335a1c35c90613ace90859085908890600401615d47565b602060405180830381865af4158015613aeb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b0f91906158b3565b613b2c57604051639c2d1c6d60e01b815260040160405180910390fd5b505050505095945050505050565b60008060608184604001516002811115613b5657613b56615295565b03613ba05750604080516024810187905260448082018790528251808303909101815260649091019091526020810180516001600160e01b03166394985ddd60e01b179052613d8a565b600184604001516002811115613bb857613bb8615295565b03613ceb5760008460600151806020019051810190613bd79190615ddd565b905060008163ffffffff166001600160401b03811115613bf957613bf96147dd565b604051908082528060200260200182016040528015613c22578160200160208202803683370190505b50905060005b8263ffffffff16811015613c925760408051602081018a90529081018290526060016040516020818303038152906040528051906020012060001c828281518110613c7557613c75614fe7565b602090810291909101015280613c8a81615013565b915050613c28565b506040516375bf929b60e01b90613caf908a908490602401615dfa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250613d8a915050565b600284604001516002811115613d0357613d03615295565b03613d8a5760008460600151806020019051810190613d229190615ddd565b90506000613d368263ffffffff16886143a7565b9050639e5836f660e01b8882604051602401613d53929190615dfa565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152925050505b60d0805466ff0000000000001916600160301b17905560e08401516080850151613dbb9163ffffffff169083614502565b60d0805466ff000000000000191690559695505050505050565b6006840180546000918291600191908390613dfa9084906001600160401b03166150c4565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550600060d960010160029054906101000a900460ff1615613e4c575060068601546001600160401b0316613f03565b60db544210801590613e60575060dc544211155b15613f035760db5460078801541015613ea05760068701805477ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b179055613eec565b60018760060160188282829054906101000a90046001600160401b0316613ec791906150c4565b92506101000a8154816001600160401b0302191690836001600160401b031602179055505b506006860154600160c01b90046001600160401b03165b4260078801556006870154600090600160401b90046001600160401b031615613f765760018860060160088282829054906101000a90046001600160401b0316613f4d9190615e3b565b92506101000a8154816001600160401b0302191690836001600160401b03160217905550613fb5565b60da5460649061ffff16613f8984612397565b613f9e9063ffffffff1664e8d4a5100061512d565b613fa8919061512d565b613fb2919061515a565b90505b6000613fe886613fc78961232861512d565b60d054613fe19190600160381b900463ffffffff1661518b565b843a61454e565b9050808960030154101561400f5760405163964d765f60e01b815260040160405180910390fd5b600088815260058a01602052604081205460048b018054919290916140359084906150eb565b9091555050600088815260058a016020526040812081905560038a0180548392906140619084906150eb565b925050819055508160ca600082825461407a919061518b565b909155509099919850909650505050505050565b60d35460cb80546000906140a390849061518b565b9091555050825160d2546140b7919061512d565b60cc60008282546140c8919061518b565b909155505060408051600180825281830190925260009160208083019080368337019050509050338160008151811061410357614103614fe7565b6001600160a01b03928316602091820292909201015260c9541663914eb34d8261412d85876150eb565b60d3546040516001600160e01b031960e086901b16815261415393929190600401615e5b565b600060405180830381600087803b15801561416d57600080fd5b505af1158015614181573d6000803e3d6000fd5b505060c95486516001600160a01b03909116925063914eb34d915086906141a8908661515a565b60d2546040516001600160e01b031960e086901b1681526141ce93929190600401615e5b565b600060405180830381600087803b1580156141e857600080fd5b505af11580156141fc573d6000803e3d6000fd5b5050505050505050565b6001600160a01b0381163b6142735760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b35565b600080516020615eb483398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6142ab836145fd565b6000825111806142b85750805b15610a875761107a838361463d565b6000805b835181101561431057828482815181106142e7576142e7614fe7565b6020026020010151036142fe576001915050614316565b8061430881615013565b9150506142cb565b50600090505b92915050565b600054610100900460ff166143435760405162461bcd60e51b8152600401610b359061585d565b610d6733613046565b6000805b835181101561431057826001600160a01b031684828151811061437557614375614fe7565b60200260200101516001600160a01b031603614395576001915050614316565b8061439f81615013565b915050614350565b60606000836001600160401b038111156143c3576143c36147dd565b6040519080825280602002602001820160405280156143ec578160200160208202803683370190505b50905060005b8481101561442a578082828151811061440d5761440d614fe7565b60209081029190910101528061442281615013565b9150506143f2565b5080516000805b600061443c84615e80565b93508311156144f75761444f83876157e1565b91508560405160200161446491815260200190565b6040516020818303038152906040528051906020012060001c955083838151811061449157614491614fe7565b602002602001015190508382815181106144ad576144ad614fe7565b60200260200101518484815181106144c7576144c7614fe7565b602002602001018181525050808483815181106144e6576144e6614fe7565b602002602001018181525050614431565b509195945050505050565b60005a61138881101561451457600080fd5b61138881039050846040820482031161452c57600080fd5b50823b61453857600080fd5b60008083516020850160008789f1949350505050565b60008073__$12cfec358bb780f6fb6addaaa16de5538e$__63c6f7de0e6040518163ffffffff1660e01b8152600401602060405180830381865af415801561459a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145be9190615114565b5a6145c9888861518b565b6145d391906150eb565b6145dd908561512d565b6145e7919061518b565b90506145f3848261518b565b9695505050505050565b61460681614206565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6146a55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b35565b600080846001600160a01b0316846040516146c09190615e97565b600060405180830381855af49150503d80600081146146fb576040519150601f19603f3d011682016040523d82523d6000602084013e614700565b606091505b50915091506147288282604051806060016040528060278152602001615ed460279139614731565b95945050505050565b60608315614740575081613202565b61320283838151156147555781518083602001fd5b8060405162461bcd60e51b8152600401610b359190615c65565b60405180604001604052806002906020820280368337509192915050565b60405180608001604052806004906020820280368337509192915050565b80356001600160401b0381168114611cf857600080fd5b6000602082840312156147d457600080fd5b613202826147ab565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b0381118282101715614816576148166147dd565b60405290565b60405160e081016001600160401b0381118282101715614816576148166147dd565b604080519081016001600160401b0381118282101715614816576148166147dd565b60405161014081016001600160401b0381118282101715614816576148166147dd565b604051606081016001600160401b0381118282101715614816576148166147dd565b604051601f8201601f191681016001600160401b03811182821017156148cd576148cd6147dd565b604052919050565b60006001600160401b038211156148ee576148ee6147dd565b5060051b60200190565b600082601f83011261490957600080fd5b8135602061491e614919836148d5565b6148a5565b82815260059290921b8401810191818101908684111561493d57600080fd5b8286015b8481101561495f57614952816147ab565b8352918301918301614941565b509695505050505050565b6000806040838503121561497d57600080fd5b82356001600160401b038082111561499457600080fd5b6149a0868387016148f8565b935060208501359150808211156149b657600080fd5b506149c3858286016148f8565b9150509250929050565b6001600160a01b03811681146109de57600080fd5b8035611cf8816149cd565b60008060408385031215614a0057600080fd5b8235614a0b816149cd565b946020939093013593505050565b600060208284031215614a2b57600080fd5b5035919050565b600060208284031215614a4457600080fd5b8135613202816149cd565b600082601f830112614a6057600080fd5b81356001600160401b03811115614a7957614a796147dd565b614a8c601f8201601f19166020016148a5565b818152846020838601011115614aa157600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215614ad157600080fd5b8235614adc816149cd565b915060208301356001600160401b03811115614af757600080fd5b6149c385828601614a4f565b803561ffff81168114611cf857600080fd5b63ffffffff811681146109de57600080fd5b8035611cf881614b15565b600080600080600080600060e0888a031215614b4d57600080fd5b614b5688614b03565b96506020880135614b6681614b15565b95506040880135614b7681614b15565b94506060880135614b8681614b15565b9699959850939660808101359560a0820135955060c0909101359350915050565b60008060408385031215614bba57600080fd5b614bc3836147ab565b91506020830135614bd3816149cd565b809150509250929050565b60008060408385031215614bf157600080fd5b614bfa836147ab565b9150614c08602084016147ab565b90509250929050565b600080600080600060a08688031215614c2957600080fd5b8535614c3481614b15565b94506020860135614c4481614b15565b93506040860135614c5481614b15565b9250606086013591506080860135614c6b81614b15565b809150509295509295909350565b600060208284031215614c8b57600080fd5b81356001600160401b03811115614ca157600080fd5b820160e0818503121561320257600080fd5b600081518084526020808501945080840160005b83811015614cec5781516001600160a01b031687529582019590820190600101614cc7565b509495945050505050565b60006101206001600160a01b038c168352806020840152614d1a8184018c614cb3565b604084019a909a52505060608101969096526001600160401b03948516608087015292841660a086015290831660c085015290911660e08301526101009091015292915050565b60006101408284031215614d7457600080fd5b50919050565b60008060008060008060a08789031215614d9357600080fd5b8635614d9e81614b15565b9550602087013594506040870135935060608701356001600160401b0380821115614dc857600080fd5b614dd48a838b01614d61565b94506080890135915080821115614dea57600080fd5b818901915089601f830112614dfe57600080fd5b813581811115614e0d57600080fd5b8a60208260061b8501011115614e2257600080fd5b6020830194508093505050509295509295509295565b60008060408385031215614e4b57600080fd5b8235915060208301356001600160401b03811115614e6857600080fd5b6149c385828601614d61565b80151581146109de57600080fd5b8035611cf881614e74565b600080600060608486031215614ea257600080fd5b8335614ead81614e74565b9250614ebb60208501614b03565b9150614ec960408501614b03565b90509250925092565b803562ffffff81168114611cf857600080fd5b60008060008060008587036101a0811215614eff57600080fd5b61012080821215614f0f57600080fd5b614f176147f3565b9150614f2288614b27565b8252614f3060208901614b27565b6020830152614f4160408901614b27565b6040830152614f5260608901614b27565b6060830152614f6360808901614b27565b6080830152614f7460a08901614ed2565b60a0830152614f8560c08901614ed2565b60c0830152614f9660e08901614ed2565b60e0830152610100614fa9818a01614ed2565b8184015250819650614fbc818901614b03565b95505050614fcd6101408701614e82565b949793965093946101608101359450610180013592915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161502557615025614ffd565b5060010190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6001600160401b038181168382160190808211156150e4576150e4614ffd565b5092915050565b8181038181111561431657614316614ffd565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561512657600080fd5b5051919050565b808202811582820484141761431657614316614ffd565b634e487b7160e01b600052601260045260246000fd5b60008261516957615169615144565b500490565b63ffffffff8181168382160190808211156150e4576150e4614ffd565b8082018082111561431657614316614ffd565b60006001600160401b038083168181036151ba576151ba614ffd565b6001019392505050565b803560038110611cf857600080fd5b600060e082360312156151e557600080fd5b6151ed61481c565b6151f6836151c4565b815260208301356001600160401b0381111561521157600080fd5b61521d36828601614a4f565b60208301525061522f604084016147ab565b60408201526060830135606082015261524a60808401614b03565b608082015261525b60a08401614b27565b60a082015260c092830135928101929092525090565b6000806040838503121561528457600080fd5b505080516020909101519092909150565b634e487b7160e01b600052602160045260246000fd5b600381106152c957634e487b7160e01b600052602160045260246000fd5b9052565b60005b838110156152e85781810151838201526020016152d0565b50506000910152565b600081518084526153098160208601602086016152cd565b601f01601f19169290920160200192915050565b60006101608d83526001600160401b038d16602084015263ffffffff808d16604085015261534e606085018d6152ab565b8160808501526153608285018c6152f1565b6001600160a01b039a909a1660a085015260c0840198909852505061ffff9490941660e085015291909316610100830152610120820192909252610140015295945050505050565b60006101006153b7838c6152ab565b8060208401526153c98184018b6152f1565b6001600160a01b039990991660408401525050606081019590955261ffff93909316608085015263ffffffff9190911660a084015260c083015260e09091015292915050565b60006020828403121561542157600080fd5b813561320281614b15565b60006020828403121561543e57600080fd5b613202826151c4565b6000808335601e1984360301811261545e57600080fd5b8301803591506001600160401b0382111561547857600080fd5b60200191503681900382131561548d57600080fd5b9250929050565b6000602082840312156154a657600080fd5b61320282614b03565b60006101608e83526001600160401b038e16602084015263ffffffff8d1660408401526154df606084018d6152ab565b806080840152898184015250610180898b8285013760008a84018201526001600160a01b03891660a0840152601f19601f8b011683010190508660c083015261552e60e083018761ffff169052565b63ffffffff851661010083015261012082019390935261014001529a9950505050505050505050565b60006040828403121561556957600080fd5b61557161483e565b82358152602083013560208201528091505092915050565b6000610140823603121561559c57600080fd5b6155a4614860565b6155ad836147ab565b81526155bb60208401614b27565b60208201526155cc604084016151c4565b604082015260608301356001600160401b038111156155ea57600080fd5b6155f636828601614a4f565b606083015250615608608084016149e2565b608082015260a083013560a082015261562360c08401614b03565b60c082015261563460e08401614b27565b60e0820152610100838101359082015261012092830135928101929092525090565b60a08152600061566960a0830188614cb3565b905085602083015284604083015283606083015282151560808301529695505050505050565b855163ffffffff9081168252602080880151821690830152604080880151821690830152606080880151821690830152608080880151918216908301526101a08201905060a08701516156e960a084018262ffffff169052565b5060c087015161570060c084018262ffffff169052565b5060e087015161571760e084018262ffffff169052565b506101009687015162ffffff169682019690965261ffff949094166101208501529115156101408401526101608301526101809091015290565b6000602080838503121561576457600080fd5b82516001600160401b0381111561577a57600080fd5b8301601f8101851361578b57600080fd5b8051615799614919826148d5565b81815260059190911b820183019083810190878311156157b857600080fd5b928401925b828410156157d6578351825292840192908401906157bd565b979650505050505050565b6000826157f0576157f0615144565b500690565b63ffffffff8281168282160390808211156150e4576150e4614ffd565b63ffffffff81811683821602808216919082811461583257615832614ffd565b505092915050565b600063ffffffff8084168061585157615851615144565b92169190910492915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b8051611cf881614e74565b6000602082840312156158c557600080fd5b815161320281614e74565b600082601f8301126158e157600080fd5b604051608081018181106001600160401b0382111715615903576159036147dd565b60405280608084018581111561591857600080fd5b845b818110156144f757805183526020928301920161591a565b600082601f83011261594357600080fd5b81516020615953614919836148d5565b82815260a0928302850182019282820191908785111561597257600080fd5b8387015b858110156159c05781818a03121561598e5760008081fd5b61599661483e565b81516159a1816149cd565b81526159af8a8388016158d0565b818701528452928401928101615976565b5090979650505050505050565b600082601f8301126159de57600080fd5b815160206159ee614919836148d5565b82815260059290921b84018101918181019086841115615a0d57600080fd5b8286015b8481101561495f578051615a24816149cd565b8352918301918301615a11565b600082601f830112615a4257600080fd5b81516020615a52614919836148d5565b82815260059290921b84018101918181019086841115615a7157600080fd5b8286015b8481101561495f5780516001600160401b0380821115615a9457600080fd5b908801906040601f19838c038101821315615aae57600080fd5b615ab661483e565b8885015184811115615ac757600080fd5b615ad58e8b838901016159cd565b8252508285015184811115615ae957600080fd5b949094019360c0858e0383011215615b015760008081fd5b615b09614883565b9150888501518252615b1d8d8487016158d0565b8983015260c085015184811115615b345760008081fd5b615b428e8b838901016159cd565b93830193909352808901919091528652505050918301918301615a75565b600060208284031215615b7257600080fd5b81516001600160401b0380821115615b8957600080fd5b908301906101808286031215615b9e57600080fd5b615ba66147f3565b82518152602083015160208201526040830151604082015260608301516060820152608083015182811115615bda57600080fd5b615be687828601615932565b60808301525060a083015182811115615bfe57600080fd5b615c0a878286016159cd565b60a08301525060c083015182811115615c2257600080fd5b615c2e87828601615a31565b60c083015250615c4060e084016158a8565b60e08201526101009150615c56868385016158d0565b91810191909152949350505050565b60208152600061320260208301846152f1565b600060408284031215615c8a57600080fd5b82601f830112615c9957600080fd5b615ca161483e565b806040840185811115615cb357600080fd5b845b81811015615ccd578051845260209384019301615cb5565b509095945050505050565b8060005b600281101561107a578151845260209384019390910190600101615cdc565b8060005b600481101561107a578151845260209384019390910190600101615cff565b6101008101615d2d8286615cd8565b615d3a6040830185615cfb565b61326060c0830184615cd8565b608080825284518282018190526000919060209060a0850190828901855b82811015615d8b57615d78848351615cd8565b6040939093019290840190600101615d65565b5050508481038286015286518082528783019183019060005b81811015615dc757615db7838551615cfb565b9284019291850191600101615da4565b5050809450505050506132606040830184615cd8565b600060208284031215615def57600080fd5b815161320281614b15565b6000604082018483526020604081850152818551808452606086019150828701935060005b818110156159c057845183529383019391830191600101615e1f565b6001600160401b038281168282160390808211156150e4576150e4614ffd565b606081526000615e6e6060830186614cb3565b60208301949094525060400152919050565b600081615e8f57615e8f614ffd565b506000190190565b60008251615ea98184602087016152cd565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122017e2debd03af54b263f22261c522d35c5df4cc75eaa046d59bf4589096082a9364736f6c63430008120033", "sourceMap": "959:37380:71:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10351:277;;;;;;;;;;-1:-1:-1;10351:277:71;;;;;:::i;:::-;;:::i;:::-;;10036:309;;;;;;;;;;-1:-1:-1;10036:309:71;;;;;:::i;:::-;;:::i;24117:114::-;;;;;;;;;;-1:-1:-1;24211:13:71;;-1:-1:-1;;;;;24211:13:71;24117:114;;;-1:-1:-1;;;;;3698:31:127;;;3680:50;;3668:2;3653:18;24117:114:71;;;;;;;;10692:248;;;;;;;;;;-1:-1:-1;10692:248:71;;;;;:::i;:::-;;:::i;23559:159::-;;;;;;;;;;-1:-1:-1;23559:159:71;;;;;:::i;:::-;23655:7;23681:30;;;:19;:30;;;;;;;23559:159;;;;4690:25:127;;;4678:2;4663:18;23559:159:71;4544:177:127;1192:54:71;;;;;;;;;;;;1243:3;1192:54;;;;;4995:6:127;4983:19;;;4965:38;;4953:2;4938:18;1192:54:71;4821:188:127;26736:396:71;;;;;;;;;;;;26969:15;:33;;;;;27016:43;26969:33;27016:43;;;;;27073:42;;;;;26736:396;;;;;5327:14:127;;5320:22;5302:41;;5362:6;5404:15;;;5399:2;5384:18;;5377:43;5456:15;;5436:18;;;5429:43;5290:2;5275:18;26736:396:71;5110:368:127;24448:120:71;;;;;;;;;;-1:-1:-1;24549:11:71;;-1:-1:-1;;;;;24549:11:71;24448:120;;;-1:-1:-1;;;;;5779:55:127;;;5761:74;;5749:2;5734:18;24448:120:71;5615:226:127;3317:197:33;;;;;;;;;;-1:-1:-1;3317:197:33;;;;;:::i;:::-;;:::i;3763:222::-;;;;;;:::i;:::-;;:::i;3006:131::-;;;;;;;;;;;;;:::i;23990:121:71:-;;;;;;;;;;-1:-1:-1;24088:16:71;;23990:121;;1144:42;;;;;;;;;;;;1183:3;1144:42;;2071:101:27;;;;;;;;;;;;;:::i;7099:1396:71:-;;;;;;;;;;-1:-1:-1;7099:1396:71;;;;;:::i;:::-;;:::i;11352:803::-;;;;;;;;;;-1:-1:-1;11352:803:71;;;;;:::i;:::-;;:::i;22490:156::-;;;;;;;;;;-1:-1:-1;22490:156:71;;;;;:::i;:::-;-1:-1:-1;;;;;22602:20:71;22577:6;22602:20;;;:10;:20;;;;;:37;;;-1:-1:-1;;;;;22602:37:71;;22490:156;1252:51;;;;;;;;;;;;1299:4;1252:51;;;;;9107:10:127;9095:23;;;9077:42;;9065:2;9050:18;1252:51:71;8933:192:127;1309:70:71;;;;;;;;;;;;1374:5;1309:70;;1441:85:27;;;;;;;;;;-1:-1:-1;1513:6:27;;-1:-1:-1;;;;;1513:6:27;1441:85;;23724:135:71;;;;;;;;;;-1:-1:-1;23829:23:71;;;;23724:135;;13570:1001;;;;;;;;;;-1:-1:-1;13570:1001:71;;;;;:::i;:::-;;:::i;12161:886::-;;;;;;;;;;-1:-1:-1;12161:886:71;;;;;:::i;:::-;;:::i;27852:667::-;;;;;;;;;;-1:-1:-1;27852:667:71;;;;;:::i;:::-;;:::i;10946:400::-;;;;;;;;;;;;;:::i;16564:3194::-;;;;;;;;;;-1:-1:-1;16564:3194:71;;;;;:::i;:::-;;:::i;22652:901::-;;;;;;;;;;-1:-1:-1;22652:901:71;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;23865:119::-;;;;;;;;;;-1:-1:-1;23962:15:71;;23865:119;;1385:52;;;;;;;;;;;;1436:1;1385:52;;6769:140;;;;;;;;;;-1:-1:-1;6769:140:71;;;;;:::i;:::-;;:::i;24237:205::-;;;;;;;;;;-1:-1:-1;24353:18:71;;24373:26;;24401:33;;24237:205;;;12203:25:127;;;12259:2;12244:18;;12237:34;;;;12287:18;;;12280:34;12191:2;12176:18;24237:205:71;12001:319:127;19764:2720:71;;;;;;;;;;-1:-1:-1;19764:2720:71;;;;;:::i;:::-;;:::i;27138:708::-;;;;;;;;;;-1:-1:-1;27138:708:71;;;;;:::i;:::-;;:::i;14577:395::-;;;;;;;;;;-1:-1:-1;14577:395:71;;;;;:::i;:::-;;:::i;14978:1580::-;;;;;;;;;;-1:-1:-1;14978:1580:71;;;;;:::i;:::-;;:::i;25342:1388::-;;;;;;;;;;-1:-1:-1;26065:43:71;;;;;;;;26087:14;26065:43;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;-1:-1:-1;;;26065:43:71;;;;;;;;;;;;;26485:47;;26611:45;;26670:43;;26065;;;;;;;;;;;;;;26485:47;;;;26546:51;;;;;;;26611:45;25342:1388;;;;;;;;;;;;;;;;;14696:10:127;14684:23;;;14666:42;;14744:23;;;14739:2;14724:18;;14717:51;14804:23;;;14799:2;14784:18;;14777:51;14864:23;;;14859:2;14844:18;;14837:51;14925:23;;;;14919:3;14904:19;;14897:52;14998:8;14986:21;;;14980:3;14965:19;;14958:50;14174:20;;;15058:3;15043:19;;14162:33;14174:20;;15113:3;15098:19;;14162:33;14174:20;15168:3;15153:19;;14162:33;4802:6;4791:18;;;;15223:3;15208:19;;4779:31;5084:13;;5077:21;15277:3;15262:19;;5065:34;15313:3;15298:19;;15291:36;;;;15358:3;15343:19;;15336:36;;;;14653:3;14638:19;;14206:1172;13053:511:71;;;;;;:::i;:::-;;:::i;24574:762::-;;;;;;;;;;-1:-1:-1;25025:7:71;:35;25194:36;;25244:26;;25284:35;;24574:762;;;25025:35;;;15690:38:127;;25074:19:71;;;;;;15788:2:127;15773:18;;15766:43;-1:-1:-1;;;25107:34:71;;;;15825:18:127;;;15818:43;;;;-1:-1:-1;;;25155:25:71;;;;15892:2:127;15877:18;;15870:43;15944:3;15929:19;;15922:35;;;;15988:3;15973:19;;15966:35;16032:3;16017:19;;16010:35;15677:3;15662:19;24574:762:71;15383:668:127;2321:198:27;;;;;;;;;;-1:-1:-1;2321:198:27;;;;;:::i;:::-;;:::i;9477:553:71:-;;;;;;;;;;-1:-1:-1;9477:553:71;;;;;:::i;:::-;;:::i;8501:970::-;;;;;;;;;;-1:-1:-1;8501:970:71;;;;;:::i;:::-;;:::i;10351:277::-;1334:13:27;:11;:13::i;:::-;-1:-1:-1;;;;;10455:21:71;::::1;10494:1;10455:21:::0;;;:14:::1;:21;::::0;;;;:27;-1:-1:-1;;;;;10455:27:71::1;10451:100;;10519:21;;-1:-1:-1::0;;;10519:21:71::1;;;;;;;;;;;10451:100;-1:-1:-1::0;;;;;10593:21:71;::::1;;::::0;;;:14:::1;:21;::::0;;;;:27;10560:61:::1;::::0;10586:5;;-1:-1:-1;;;;;10593:27:71::1;10560:25;:61::i;:::-;10351:277:::0;:::o;10036:309::-;1334:13:27;:11;:13::i;:::-;10210:9:71::1;10205:134;10229:6;:13;10225:1;:17;10205:134;;;10308:17;10326:1;10308:20;;;;;;;;:::i;:::-;;;;;;;10263:14;:25;10278:6;10285:1;10278:9;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;10263:25:71::1;-1:-1:-1::0;;;;;10263:25:71::1;;;;;;;;;;;;:42;;;:65;;;;;-1:-1:-1::0;;;;;10263:65:71::1;;;;;-1:-1:-1::0;;;;;10263:65:71::1;;;;;;10244:3;;;;;:::i;:::-;;;;10205:134;;;;10036:309:::0;;:::o;10692:248::-;10819:11;;-1:-1:-1;;;;;10819:11:71;10797:10;:34;10793:93;;10854:21;;-1:-1:-1;;;10854:21:71;;;;;;;;;;;10793:93;10895:38;;-1:-1:-1;;;;;10895:27:71;;;:38;;;;;10923:9;;10895:38;;;;10923:9;10895:27;:38;;;;;;;;;;;;;;;;;;;3317:197:33;-1:-1:-1;;;;;1898:6:33;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:33;;;;;;;:::i;:::-;;;;;;;;;1995:6;-1:-1:-1;;;;;1971:30:33;:20;-1:-1:-1;;;;;;;;;;;1588:65:30;-1:-1:-1;;;;;1588:65:30;;1509:151;1971:20:33;-1:-1:-1;;;;;1971:30:33;;1963:87;;;;-1:-1:-1;;;1963:87:33;;;;;;;:::i;:::-;3400:36:::1;3418:17;3400;:36::i;:::-;3487:12;::::0;;3497:1:::1;3487:12:::0;;;::::1;::::0;::::1;::::0;;;3446:61:::1;::::0;3468:17;;3487:12;3446:21:::1;:61::i;3763:222::-:0;-1:-1:-1;;;;;1898:6:33;1881:23;1889:4;1881:23;1873:80;;;;-1:-1:-1;;;1873:80:33;;;;;;;:::i;:::-;1995:6;-1:-1:-1;;;;;1971:30:33;:20;-1:-1:-1;;;;;;;;;;;1588:65:30;-1:-1:-1;;;;;1588:65:30;;1509:151;1971:20:33;-1:-1:-1;;;;;1971:30:33;;1963:87;;;;-1:-1:-1;;;1963:87:33;;;;;;;:::i;:::-;3880:36:::1;3898:17;3880;:36::i;:::-;3926:52;3948:17;3967:4;3973;3926:21;:52::i;:::-;3763:222:::0;;:::o;3006:131::-;3084:7;2324:4;-1:-1:-1;;;;;2333:6:33;2316:23;;2308:92;;;;-1:-1:-1;;;2308:92:33;;19547:2:127;2308:92:33;;;19529:21:127;19586:2;19566:18;;;19559:30;19625:34;19605:18;;;19598:62;19696:26;19676:18;;;19669:54;19740:19;;2308:92:33;19345:420:127;2308:92:33;-1:-1:-1;;;;;;;;;;;;3006:131:33;:::o;2071:101:27:-;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;7099:1396:71:-;1334:13:27;:11;:13::i;:::-;1243:3:71::1;7464:55;::::0;::::1;;7460:235;;;7542:142;::::0;-1:-1:-1;;;7542:142:71;;19976:6:127;20009:15;;7542:142:71::1;::::0;::::1;19991:34:127::0;;;20041:18;;;20034:43;1243:3:71::1;20093:18:127::0;;;20086:43;19939:18;;7542:142:71::1;19770:365:127::0;7460:235:71::1;7714:480;::::0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;::::0;;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;-1:-1:-1;7714:480:71;;;;;;::::1;::::0;;;;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7704:7:::1;:490:::0;;-1:-1:-1;;7704:490:71;;;;;::::1;;-1:-1:-1::0;;7704:490:71;-1:-1:-1;;;7704:490:71;::::1;-1:-1:-1::0;;7704:490:71;;-1:-1:-1;;;7704:490:71;::::1;;::::0;;;;;;;;;;;;;;8210:278;;15690:38:127;;;15773:18;;;15766:43;;;;15825:18;;;15818:43;;;;15877:18;;;15870:43;;;;15929:19;;;15922:35;;;15973:19;;;15966:35;;;16017:19;;;16010:35;;;8210:278:71::1;::::0;15662:19:127;8210:278:71::1;;;;;;;7099:1396:::0;;;;;;;:::o;11352:803::-;-1:-1:-1;;;;;6304:21:71;;6288:13;6304:21;;;:14;:21;;;;;:27;11446:5;;-1:-1:-1;;;;;6304:27:71;;6341:78;;6387:21;;-1:-1:-1;;;6387:21:71;;;;;;;;;;;6341:78;6432:10;-1:-1:-1;;;;;6432:19:71;;;6428:78;;6474:21;;-1:-1:-1;;;6474:21:71;;-1:-1:-1;;;;;5779:55:127;;6474:21:71;;;5761:74:127;5734:18;;6474:21:71;5615:226:127;6428:78:71;6567:7:::1;:22:::0;-1:-1:-1;;;6567:22:71;::::1;;;6563:71;;;6612:11;;-1:-1:-1::0;;;6612:11:71::1;;;;;;;;;;;6563:71;-1:-1:-1::0;;;;;11537:21:71;::::2;;::::0;;;:14:::2;:21;::::0;;;;:31:::2;;:38:::0;-1:-1:-1;;11537:55:71;11533:111:::2;;11615:18;;-1:-1:-1::0;;;11615:18:71::2;;;;;;;;;;;11533:111;-1:-1:-1::0;;;;;11657:20:71;::::2;;::::0;;;:10:::2;:20;::::0;;;;;;;-1:-1:-1;;;;;11657:34:71;;::::2;::::0;;;;;;;::::2;:39:::0;;11839:7:::2;11653:203;-1:-1:-1::0;;;;;11941:20:71;::::2;;::::0;;;:10:::2;:20;::::0;;;;;;;-1:-1:-1;;;;;11941:34:71;::::2;::::0;;;;;;;;;:38;;11978:1:::2;-1:-1:-1::0;;11941:38:71;;::::2;::::0;::::2;::::0;;;11989:37;;::::2;:45:::0;;;;::::2;::::0;::::2;::::0;;;12044:14:::2;:21:::0;;;;;:31:::2;;:46:::0;;;;::::2;::::0;;;;;;;;::::2;::::0;;-1:-1:-1;;;;;;12044:46:71::2;::::0;::::2;::::0;;12106:42;5761:74:127;;;11941:34:71;;12106:42:::2;::::0;5734:18:127;12106:42:71::2;;;;;;;6643:1;6278:245:::0;11352:803;;;:::o;13570:1001::-;-1:-1:-1;;;;;6304:21:71;;6288:13;6304:21;;;:14;:21;;;;;:27;13692:5;;-1:-1:-1;;;;;6304:27:71;;6341:78;;6387:21;;-1:-1:-1;;;6387:21:71;;;;;;;;;;;6341:78;6432:10;-1:-1:-1;;;;;6432:19:71;;;6428:78;;6474:21;;-1:-1:-1;;;6474:21:71;;-1:-1:-1;;;;;5779:55:127;;6474:21:71;;;5761:74:127;5734:18;;6474:21:71;5615:226:127;6428:78:71;6567:7:::1;:22:::0;-1:-1:-1;;;6567:22:71;::::1;;;6563:71;;;6612:11;;-1:-1:-1::0;;;6612:11:71::1;;;;;;;;;;;6563:71;13739:15:::2;:33:::0;::::2;;13734:99;;13795:27;;-1:-1:-1::0;;;13795:27:71::2;;;;;;;;;;;13734:99;-1:-1:-1::0;;;;;13877:29:71;;::::2;;::::0;;;:14:::2;:29;::::0;;;;;:35;13846:21;;::::2;::::0;;;;:27;-1:-1:-1;;;;;13877:35:71;;::::2;13846:27:::0;::::2;:66:::0;13842:127:::2;;13935:23;;-1:-1:-1::0;;;13935:23:71::2;;;;;;;;;;;13842:127;-1:-1:-1::0;;;;;13982:21:71;;::::2;;::::0;;;:14:::2;:21;::::0;;;;:35:::2;;::::0;-1:-1:-1;;;13982:35:71;::::2;;:40:::0;13978:110:::2;;14045:32;;-1:-1:-1::0;;;14045:32:71::2;;;;;;;;;;;13978:110;-1:-1:-1::0;;;;;14101:21:71;;::::2;;::::0;;;:14:::2;:21;::::0;;;;:30:::2;;::::0;::::2;:35:::0;;:82:::2;;-1:-1:-1::0;;;;;;14140:29:71;;::::2;;::::0;;;:14:::2;:29;::::0;;;;:38:::2;;::::0;::::2;:43:::0;14101:82:::2;14097:149;;;14206:29;;-1:-1:-1::0;;;14206:29:71::2;;;;;;;;;;;14097:149;14305:15;:43:::0;-1:-1:-1;;;;;14255:29:71;;::::2;14305:43;14255:29:::0;;;:14:::2;:29;::::0;;;;:46:::2;;:93:::0;;14305:43:::2;::::0;;::::2;;;::::0;14255:46;;::::2;::::0;:93:::2;::::0;14305:43;;-1:-1:-1;;;14255:93:71;::::2;;;:::i;:::-;::::0;;::::2;::::0;;;::::2;-1:-1:-1::0;;;;;14255:93:71;;::::2;;::::0;;::::2;::::0;;::::2;;;::::0;;;14400:15:::2;:42:::0;14358:21;;::::2;-1:-1:-1::0;14358:21:71;;;:14:::2;:21;::::0;;;;:38:::2;;:84:::0;;14400:42;;;::::2;;;::::0;-1:-1:-1;14358:38:71;::::2;::::0;:84:::2;::::0;14400:42;;-1:-1:-1;;;14358:84:71;::::2;;;:::i;:::-;::::0;;::::2;::::0;;;::::2;-1:-1:-1::0;;;;;14358:84:71;;::::2;;::::0;;::::2;::::0;;::::2;;;::::0;;;14452:21;;::::2;-1:-1:-1::0;14452:21:71;;;:14:::2;:21;::::0;;;;;:35:::2;;:51:::0;;-1:-1:-1;;;;14452:51:71::2;-1:-1:-1::0;;;14452:51:71;;::::2;::::0;;::::2;;::::0;;14519:45;14452:51;;-1:-1:-1;14452:21:71;;14519:45:::2;::::0;-1:-1:-1;14519:45:71::2;6278:245:::0;13570:1001;;;:::o;12161:886::-;-1:-1:-1;;;;;6304:21:71;;6288:13;6304:21;;;:14;:21;;;;;:27;12282:5;;-1:-1:-1;;;;;6304:27:71;;6341:78;;6387:21;;-1:-1:-1;;;6387:21:71;;;;;;;;;;;6341:78;6432:10;-1:-1:-1;;;;;6432:19:71;;;6428:78;;6474:21;;-1:-1:-1;;;6474:21:71;;-1:-1:-1;;;;;5779:55:127;;6474:21:71;;;5761:74:127;5734:18;;6474:21:71;5615:226:127;6428:78:71;6567:7:::1;:22:::0;-1:-1:-1;;;6567:22:71;::::1;;;6563:71;;;6612:11;;-1:-1:-1::0;;;6612:11:71::1;;;;;;;;;;;6563:71;-1:-1:-1::0;;;;;12328:21:71;::::2;;::::0;;;:14:::2;:21;::::0;;;;:34:::2;;::::0;:39;12324:99:::2;;12390:22;;-1:-1:-1::0;;;12390:22:71::2;;;;;;;;;;;12324:99;-1:-1:-1::0;;;;;12461:21:71;::::2;12432:26;12461:21:::0;;;:14:::2;:21;::::0;;;;;;;:31:::2;;12432:60:::0;;;;;;::::2;::::0;;;;;;;;;;;;12461:31;;12432:60;;::::2;12461:31:::0;12432:60;;::::2;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;12432:60:71::2;::::0;;;;;::::2;::::0;::::2;;::::0;;::::2;;;;;;;;;;;12506:9;:16;12526:1;12506:21:::0;12502:91:::2;;12550:32;::::0;-1:-1:-1;;;12550:32:71;;-1:-1:-1;;;;;20515:31:127;;12550:32:71::2;::::0;::::2;20497:50:127::0;-1:-1:-1;;;;;20583:55:127;;20563:18;;;20556:83;20470:18;;12550:32:71::2;20325:320:127::0;12502:91:71::2;12648:9;12643:349;12667:9;:16;12663:1;:20;12643:349;;;12724:8;-1:-1:-1::0;;;;;12708:24:71::2;:9;12718:1;12708:12;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;12708:24:71::2;::::0;12704:278:::2;;12789:9;12818:1;12799:9;:16;:20;;;;:::i;:::-;12789:31;;;;;;;;:::i;:::-;;;;;;;12752:14;:21;12767:5;-1:-1:-1::0;;;;;12752:21:71::2;-1:-1:-1::0;;;;;12752:21:71::2;;;;;;;;;;;;:31;;12784:1;12752:34;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;;;::::2;:68:::0;;-1:-1:-1;;;;;;12752:68:71::2;-1:-1:-1::0;;;;;12752:68:71;;;::::2;::::0;;;::::2;::::0;;;-1:-1:-1;;;;;12838:21:71;::::2;::::0;;:14:::2;:21:::0;;;;;;:31:::2;;:37:::0;;;::::2;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;12838:37:71;;;;;;;-1:-1:-1;;;;;;12838:37:71::2;::::0;;;;;;;;12899:44:::2;::::0;-1:-1:-1;;;;;5779:55:127;;5761:74;;-1:-1:-1;;;;;12899:44:71;::::2;::::0;::::2;::::0;5734:18:127;12899:44:71::2;;;;;;;12961:7;;;;12704:278;12685:3:::0;::::2;::::0;::::2;:::i;:::-;;;;12643:349;;;-1:-1:-1::0;13008:32:71::2;::::0;-1:-1:-1;;;13008:32:71;;-1:-1:-1;;;;;20515:31:127;;13008:32:71::2;::::0;::::2;20497:50:127::0;-1:-1:-1;;;;;20583:55:127;;20563:18;;;20556:83;20470:18;;13008:32:71::2;20325:320:127::0;27852:667:71;28262:48;;-1:-1:-1;;;28262:48:71;;;9095:23:127;;28262:48:71;;;9077:42:127;28099:7:71;;;;28318:1;;28235:11;;:26;;:11;;28262:37;;9050:18:127;;28262:48:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28235:76;;;;;;;;;;;;;4690:25:127;;4678:2;4663:18;;4544:177;28235:76:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:80;;28314:1;28235:80;:::i;:::-;:84;;;;:::i;:::-;28183:136;-1:-1:-1;28329:20:71;28183:136;28369:36;28389:16;28369:17;:36;:::i;:::-;28352:54;;;;:13;:54;:::i;:::-;:86;;;;:::i;:::-;28329:109;-1:-1:-1;28471:40:71;28478:33;;;28471:4;:40;:::i;:::-;28456:55;;:12;:55;:::i;:::-;28448:64;27852:667;-1:-1:-1;;;;;;;;27852:667:71:o;10946:400::-;6567:7;:22;11026:6;;-1:-1:-1;;;6567:22:71;;;;6563:71;;;6612:11;;-1:-1:-1;;;6612:11:71;;;;;;;;;;;6563:71;11044:13:::1;:15:::0;;-1:-1:-1;;;;;11044:15:71::1;::::0;:13:::1;:15;::::0;::::1;:::i;:::-;::::0;;-1:-1:-1;;;;;11044:15:71;;::::1;;::::0;;;::::1;::::0;;::::1;::::0;;::::1;;;::::0;;;::::1;::::0;;;11085:13:::1;::::0;;;::::1;-1:-1:-1::0;11070:29:71;;;:14:::1;:29;::::0;;;;;:48;;-1:-1:-1;;;;;;11070:48:71::1;11108:10;11070:48:::0;;::::1;::::0;;;11212:13;;;::::1;11197:29:::0;;;;;:46:::1;;:50:::0;;-1:-1:-1;;11197:50:71::1;-1:-1:-1::0;;;11197:50:71::1;::::0;;11283:13;;11263:46;;11108:10;;-1:-1:-1;11283:13:71;;::::1;::::0;11263:46:::1;::::0;::::1;-1:-1:-1::0;11326:13:71::1;::::0;-1:-1:-1;;;;;11326:13:71::1;10946:400:::0;:::o;16564:3194::-;6567:7;:22;16728:7;;-1:-1:-1;;;6567:22:71;;;;6563:71;;;6612:11;;-1:-1:-1;;;6612:11:71;;;;;;;;;;;6563:71;16751:32:::1;:41;16786:6:::0;16751:41:::1;:::i;:::-;::::0;-1:-1:-1;16874:9:71::1;16860:10;:23:::0;16856:82:::1;;16906:21;;-1:-1:-1::0;;;16906:21:71::1;;;;;;;;;;;16856:82;16990:7;::::0;;::::1;::::0;-1:-1:-1;;;;;16975:23:71::1;16948:24;16975:23:::0;;;:14:::1;:23;::::0;;17073:9;;-1:-1:-1;;;;;17073:9:71::1;17069:82;;17119:21;;-1:-1:-1::0;;;17119:21:71::1;;;;;;;;;;;17069:82;17407:10;17396:22;::::0;;;:10:::1;:22;::::0;;;;;;;17426:7;;::::1;::::0;-1:-1:-1;;;;;17396:38:71;;::::1;::::0;;;;;;;::::1;:43:::0;;17392:117:::1;;17478:7;::::0;;::::1;::::0;17462:36;;-1:-1:-1;;;17462:36:71;;-1:-1:-1;;;;;20515:31:127;;;17462:36:71::1;::::0;::::1;20497:50:127::0;17487:10:71::1;20563:18:127::0;;;20556:83;20470:18;;17462:36:71::1;20325:320:127::0;17392:117:71::1;17561:7;:35:::0;17536:22:::1;::::0;::::1;::::0;17561:35:::1;::::0;;::::1;17536:60:::0;::::1;;::::0;:130:::1;;;1243:3;17616:50;;:1;:22;;;:50;;;17536:130;17519:335;;;17743:22;::::0;::::1;::::0;17767:7:::1;:35:::0;17698:145:::1;::::0;-1:-1:-1;;;17698:145:71;;17767:35:::1;20009:15:127::0;;;17698:145:71::1;::::0;::::1;19991:34:127::0;17767:35:71;::::1;20041:18:127::0;;;20034:43;1243:3:71::1;20093:18:127::0;;;20086:43;19939:18;;17698:145:71::1;19770:365:127::0;17519:335:71::1;18105:7;:19:::0;18084:18:::1;::::0;::::1;::::0;18105:19:::1;::::0;;;::::1;::::0;::::1;18084:40:::0;::::1;;18080:133;;;18162:18;::::0;::::1;::::0;18182:7:::1;:19:::0;18147:55:::1;::::0;-1:-1:-1;;;18147:55:71;;18182:19:::1;23720:15:127::0;;;18147:55:71::1;::::0;::::1;23702:34:127::0;18182:19:71;;;::::1;::::0;;::::1;23752:18:127::0;;;23745:43;23646:18;;18147:55:71::1;23503:291:127::0;18080:133:71::1;18343:24;:22;:24::i;:::-;18310:23;:58:::0;;-1:-1:-1;;18310:58:71::1;;::::0;;;::::1;::::0;;;::::1;::::0;;18464:6:::1;::::0;::::1;::::0;18472:7:::1;::::0;;::::1;::::0;;18481:10:::1;-1:-1:-1::0;18493:22:71;;;:10:::1;:22;::::0;;;;;;18523:7;;-1:-1:-1;;;;;18493:38:71;;::::1;::::0;;;;;;;;;-1:-1:-1;;18441:91:71::1;::::0;18464:6;;18493:38:::1;18441:22;:91::i;:::-;18584:7;::::0;;::::1;::::0;;18553:10:::1;18542:22;::::0;;;:10:::1;:22;::::0;;;;;;:39:::1;::::0;;::::1;:49:::0;;-1:-1:-1;;18542:49:71::1;-1:-1:-1::0;;;;;18542:49:71;;::::1;;::::0;;18631:7;;18601:38;::::1;::::0;;;;;;;:43;;18423:109;;-1:-1:-1;18542:39:71;;18601:38;;18542:22;18601:43:::1;::::0;18542:39;;18601:43:::1;;:::i;:::-;;;;;;;;-1:-1:-1::0;;;;;18601:43:71::1;;;;;-1:-1:-1::0;;;;;18601:43:71::1;;;;;;18654:17;18674:23;18689:7;18674:14;:23::i;:::-;18732:11;::::0;18762:23:::1;::::0;18732:54:::1;::::0;-1:-1:-1;;;18732:54:71;;18762:23:::1;::::0;;::::1;18732:54;::::0;::::1;9077:42:127::0;18654:43:71;;-1:-1:-1;18711:17:71::1;::::0;-1:-1:-1;;;;;18732:11:71;;::::1;::::0;:29:::1;::::0;9050:18:127;;18732:54:71::1;::::0;::::1;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18708:78;;;18797:15;18827:106;18856:3;18861:9;18879;18891:1;:18;;;18911:1;:21;;;18827:28;:106::i;:::-;19055:7;::::0;;::::1;::::0;19080:23:::1;::::0;19121:13;;19152:8:::1;::::0;;::::1;::::0;19231:22:::1;::::0;::::1;::::0;19271:18:::1;::::0;::::1;::::0;19307:21:::1;::::0;::::1;::::0;19000:372;;18797:136;;-1:-1:-1;19000:372:71::1;::::0;19028:9;;19080:23:::1;::::0;;::::1;::::0;19152:8;;19178:10:::1;::::0;19206:7;;19231:22;19271:18;19307:21;;19346:12:::1;::::0;19000:372:::1;;:::i;:::-;;::::0;;-1:-1:-1;;19000:372:71;;::::1;::::0;;;;;;18977:405;;19000:372:::1;18977:405:::0;;::::1;::::0;18944:30:::1;::::0;;;:19:::1;:30:::0;;;;;:438;19473:23:::1;::::0;19452:7;;::::1;::::0;19510:13;;19537:8;;::::1;::::0;19604:22:::1;::::0;::::1;::::0;19640:18:::1;::::0;::::1;::::0;19672:21:::1;::::0;::::1;::::0;19473:23:::1;::::0;;::::1;::::0;-1:-1:-1;;;;;19398:326:71;;::::1;::::0;18964:9;;19398:326:::1;::::0;::::1;::::0;19510:13;;19537:8;;19559:10:::1;::::0;19583:7;;19604:22;19707:7;;19398:326:::1;:::i;:::-;;;;;;;;-1:-1:-1::0;19742:9:71;;-1:-1:-1;;;;;6643:1:71::1;16564:3194:::0;;;:::o;22652:901::-;-1:-1:-1;;;;;23132:21:71;;22778:13;23132:21;;;:14;:21;;;;;23167:9;;22805:26;;22778:13;;;;;;;;;;;;;;-1:-1:-1;;;;;23167:9:71;23163:82;;23213:21;;-1:-1:-1;;;23213:21:71;;;;;;;;;;;23163:82;23275:9;;23325:11;;;;23350:16;;;;23380:12;;;;23512:24;;;;23298:13;;;23254:292;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23275:9:71;;;;23298:13;;23325:11;23350:16;-1:-1:-1;;;;;23380:12:71;;;;-1:-1:-1;;;23406:20:71;;;;;-1:-1:-1;;;23440:17:71;;;;;-1:-1:-1;;;23471:27:71;;;;;;;23512:24;;23298:13;;23254:292;;23298:13;23254:292;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23254:292:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22652:901;;;;;;;;;;;:::o;6769:140::-;3268:19:32;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:32;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:32;1476:19:34;:23;;;3376:66:32;;-1:-1:-1;3425:12:32;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:32;;27336:2:127;3314:201:32;;;27318:21:127;27375:2;27355:18;;;27348:30;27414:34;27394:18;;;27387:62;-1:-1:-1;;;27465:18:127;;;27458:44;27519:19;;3314:201:32;27134:410:127;3314:201:32;3525:12;:16;;-1:-1:-1;;3525:16:32;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:32;;;;;3551:65;6838:11:71::1;:37:::0;;-1:-1:-1;;;;;;6838:37:71::1;-1:-1:-1::0;;;;;6838:37:71;::::1;;::::0;;6886:16:::1;:14;:16::i;:::-;3640:14:32::0;3636:99;;;3686:5;3670:21;;-1:-1:-1;;3670:21:32;;;3710:14;;-1:-1:-1;27701:36:127;;3710:14:32;;27689:2:127;27674:18;3710:14:32;;;;;;;3258:483;6769:140:71;:::o;19764:2720::-;6567:7;:22;-1:-1:-1;;;6567:22:71;;;;6563:71;;;6612:11;;-1:-1:-1;;;6612:11:71;;;;;;;;;;;6563:71;20036:16:::1;20055:9;20075:18;20096:30:::0;;;:19:::1;:30;::::0;;;;;20036:28;;-1:-1:-1;20140:15:71;;;20136:77:::1;;20178:24;;-1:-1:-1::0;;;20178:24:71::1;;;;;;;;;;;20136:77;20336:9:::0;20371:19:::1;;::::0;::::1;:13:::0;:19:::1;:::i;:::-;20416:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;20466:25;::::0;;;::::1;::::0;::::1;;:::i;:::-;20517:20;;::::0;::::1;:13:::0;:20:::1;:::i;:::-;20563:30;::::0;;;::::1;::::0;::::1;;:::i;:::-;20619:18;::::0;::::1;;20663:34;::::0;;;::::1;::::0;::::1;;:::i;:::-;20723:13;:30;;;;;;;;;;:::i;:::-;20779:13;:33;;;20838:13;:22;;;20300:582;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;20269:631;;;;;;20239:10;:661;20222:742;;20932:21;;-1:-1:-1::0;;;20932:21:71::1;;;;;;;;;;;20222:742;21018:34;::::0;;;::::1;::::0;::::1;;:::i;:::-;20993:59;::::0;::::1;;:22;::::0;::::1;;:59;:::i;:::-;20978:12;:74;20974:149;;;21075:37;;-1:-1:-1::0;;;21075:37:71::1;;;;;;;;;;;20974:149;21164:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;21150:38;;:10;:38;;;;:135;;;;-1:-1:-1::0;21249:36:71;;21224:61:::1;::::0;:22:::1;::::0;::::1;;:61;:::i;:::-;21208:12;:77;;21150:135;21133:215;;;21317:20;;-1:-1:-1::0;;;21317:20:71::1;;;;;;;;;;;21133:215;21375:11;;;;;;;;;-1:-1:-1::0;;;;;21375:11:71::1;-1:-1:-1::0;;;;;21375:25:71::1;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21361:10;:41;;;21357:104;;21425:25;::::0;-1:-1:-1;;;21425:25:71;;9107:10:127;9095:23;;21425:25:71::1;::::0;::::1;9077:42:127::0;9050:18;;21425:25:71::1;8933:192:127::0;21357:104:71::1;21471:35;21521:102;21538:10;21521:102;;21550:13;:18;;;21570:13;:22;;;21594:9;21605:17;;21521:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;::::1;;::::0;;::::1;::::0;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;:16;:102::i;:::-;21641:30;::::0;;;:19:::1;:30;::::0;;;;;;;21634:37;;;21721:21;;;;::::1;4690:25:127::0;;;21721:21:71;;;;;;;;;4663:18:127;;;21721:21:71;;;21711:32;;;::::1;::::0;21755:16:::1;:21:::0;;21471:152;;-1:-1:-1;21711:32:71;;21775:1:::1;::::0;21641:30;21755:21:::1;::::0;21775:1;;21755:21:::1;:::i;:::-;::::0;;;-1:-1:-1;;21786:15:71::1;:28:::0;;;21824:11:::1;::::0;:37:::1;::::0;-1:-1:-1;;;21824:37:71;;::::1;::::0;::::1;4690:25:127::0;;;-1:-1:-1;;;;;21824:11:71;;::::1;::::0;:25:::1;::::0;4663:18:127;;21824:37:71::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21920:12;21935:54;21952:9;21963:10;21975:13;21935:54;;;:::i;:::-;:16;:54::i;:::-;21920:69:::0;-1:-1:-1;22001:15:71::1;::::0;22049:102:::1;22068:14;22001:15:::0;22083:19:::1;;::::0;::::1;:13:::0;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;22068:35:71::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;22068:35:71;22105:9;22116:17;22142:8;22049:18:::1;:102::i;:::-;22000:151;;;;22207:55;22225:18;22245:7;22254;22207:17;:55::i;:::-;22398:10;-1:-1:-1::0;;;;;22338:139:71::1;22386:10;22338:139;;22375:9;22338:139;22410:18;22430:10;22442:7;22451;22460;22338:139;;;;;;;;;;:::i;:::-;;;;;;;;20026:2458;;;;;;;19764:2720:::0;;;;;;:::o;27138:708::-;27233:43;;;;;;;;27255:14;27233:43;;;;;;;;;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;-1:-1:-1;;;27233:43:71;;;;;;;;27215:6;;-1:-1:-1;;;;;27290:27:71;;;27286:97;;27340:32;;27138:708;-1:-1:-1;;27138:708:71:o;27286:97::-;27414:8;-1:-1:-1;;;;;27396:26:71;:2;:15;;;:26;;;:57;;;;;27438:2;:15;;;27426:27;;:8;-1:-1:-1;;;;;27426:27:71;;;27396:57;27392:127;;;27476:32;;;;27138:708;-1:-1:-1;;27138:708:71:o;27392:127::-;27550:8;-1:-1:-1;;;;;27532:26:71;:2;:15;;;:26;;;:57;;;;;27574:2;:15;;;27562:27;;:8;-1:-1:-1;;;;;27562:27:71;;;27532:57;27528:127;;;27612:32;;;;27138:708;-1:-1:-1;;27138:708:71:o;27528:127::-;27686:8;-1:-1:-1;;;;;27668:26:71;:2;:15;;;:26;;;:57;;;;;27710:2;:15;;;27698:27;;:8;-1:-1:-1;;;;;27698:27:71;;;27668:57;27664:127;;;27748:32;;;;27138:708;-1:-1:-1;;27138:708:71:o;27664:127::-;27807:32;;;;27138:708;-1:-1:-1;;27138:708:71:o;14577:395::-;-1:-1:-1;;;;;6304:21:71;;6288:13;6304:21;;;:14;:21;;;;;:27;14696:5;;-1:-1:-1;;;;;6304:27:71;;6341:78;;6387:21;;-1:-1:-1;;;6387:21:71;;;;;;;;;;;6341:78;6432:10;-1:-1:-1;;;;;6432:19:71;;;6428:78;;6474:21;;-1:-1:-1;;;6474:21:71;;-1:-1:-1;;;;;5779:55:127;;6474:21:71;;;5761:74:127;5734:18;;6474:21:71;5615:226:127;6428:78:71;6567:7:::1;:22:::0;-1:-1:-1;;;6567:22:71;::::1;;;6563:71;;;6612:11;;-1:-1:-1::0;;;6612:11:71::1;;;;;;;;;;;6563:71;-1:-1:-1::0;;;;;14742:16:71;::::2;14738:74;;14781:20;;-1:-1:-1::0;;;14781:20:71::2;;;;;;;;;;;14738:74;-1:-1:-1::0;;;;;14825:21:71;::::2;;::::0;;;:14:::2;:21;::::0;;;;:34:::2;;::::0;:39;14821:99:::2;;14887:22;;-1:-1:-1::0;;;14887:22:71::2;;;;;;;;;;;14821:99;14929:36;14955:5;14962:2;14929:25;:36::i;14978:1580::-:0;15131:19;;;;:13;:19;:::i;:::-;-1:-1:-1;;;;;6304:21:71;;6288:13;6304:21;;;:14;:21;;;;;:27;-1:-1:-1;;;;;6304:27:71;;6341:78;;6387:21;;-1:-1:-1;;;6387:21:71;;;;;;;;;;;6341:78;6432:10;-1:-1:-1;;;;;6432:19:71;;;6428:78;;6474:21;;-1:-1:-1;;;6474:21:71;;-1:-1:-1;;;;;5779:55:127;;6474:21:71;;;5761:74:127;5734:18;;6474:21:71;5615:226:127;6428:78:71;15170:30:::1;::::0;;;:19:::1;:30;::::0;;;;;:35;;15166:97:::1;;15228:24;;-1:-1:-1::0;;;15228:24:71::1;;;;;;;;;;;15166:97;15406:9:::0;15441:19:::1;;::::0;::::1;:13:::0;:19:::1;:::i;:::-;15486:24;::::0;;;::::1;::::0;::::1;;:::i;:::-;15536:25;::::0;;;::::1;::::0;::::1;;:::i;:::-;15587:20;;::::0;::::1;:13:::0;:20:::1;:::i;:::-;15633:30;::::0;;;::::1;::::0;::::1;;:::i;:::-;15689:18;::::0;::::1;;15733:34;::::0;;;::::1;::::0;::::1;;:::i;:::-;15793:30;::::0;;;::::1;::::0;::::1;;:::i;:::-;15849:13;:33;;;15908:13;:22;;;15370:582;;;;;;;;;;;;;;;;;;;:::i;:::-;;::::0;;-1:-1:-1;;15370:582:71;;::::1;::::0;;;;;;15339:631;;15370:582:::1;15339:631:::0;;::::1;::::0;15289:30:::1;::::0;;;:19:::1;:30:::0;;;;;;:681:::1;15272:762;;16002:21;;-1:-1:-1::0;;;16002:21:71::1;;;;;;;;;;;15272:762;16043:19;16074:11;:24;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16065:35;::::0;:6:::1;:35;:::i;:::-;16043:57:::0;-1:-1:-1;16129:36:71::1;16043:57:::0;16129:22:::1;::::0;::::1;;:36;:::i;:::-;16114:12;:51;16110:108;;;16188:19;;-1:-1:-1::0;;;16188:19:71::1;;;;;;;;;;;16110:108;16234:30;::::0;;;:19:::1;:30;::::0;;;;;;16227:37;;;16338:14:::1;::::0;16234:30;16353:19:::1;::::0;;::::1;:13:::0;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;16338:35:71::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;16338:35:71;;;:63;;;:52:::1;;:63:::0;;;;;;;16274:14:::1;::::0;-1:-1:-1;16289:19:71::1;::::0;;::::1;:13:::0;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;16274:35:71::1;-1:-1:-1::0;;;;;16274:35:71::1;;;;;;;;;;;;:48;;;:127;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;16418:14:71::1;::::0;-1:-1:-1;16418:35:71::1;16433:19;;::::0;::::1;:13:::0;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;16418:35:71::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;16418:35:71;;;:63;;;:52:::1;;:63:::0;;;;;16411:70;16531:19:::1;::::0;;::::1;:13:::0;:19:::1;:::i;:::-;-1:-1:-1::0;;;;;16496:55:71::1;16520:9;16496:55;;;;;;;;;;15156:1402;6278:245:::0;14978:1580;;;:::o;13053:511::-;6567:7;:22;-1:-1:-1;;;6567:22:71;;;;6563:71;;;6612:11;;-1:-1:-1;;;6612:11:71;;;;;;;;;;;6563:71;-1:-1:-1;;;;;13156:21:71;::::1;13195:1;13156:21:::0;;;:14:::1;:21;::::0;;;;:27;-1:-1:-1;;;;;13156:27:71::1;13152:100;;13220:21;;-1:-1:-1::0;;;13220:21:71::1;;;;;;;;;;;13152:100;-1:-1:-1::0;;;;;13400:21:71;::::1;13379:18;13400:21:::0;;;:14:::1;:21;::::0;;;;:29:::1;;::::0;;;13472:9:::1;::::0;13400:29;13439:42:::1;13472:9:::0;13400:29;13439:42:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;13496:61:71;::::1;;13522:10:::0;13534:22:::1;13547:9;13522:10:::0;13534:22:::1;:::i;:::-;13496:61;::::0;;32411:25:127;;;32467:2;32452:18;;32445:34;;;;32384:18;13496:61:71::1;;;;;;;13142:422;13053:511:::0;:::o;2321:198:27:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:27;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:27;;32692:2:127;2401:73:27::1;::::0;::::1;32674:21:127::0;32731:2;32711:18;;;32704:30;32770:34;32750:18;;;32743:62;-1:-1:-1;;;32821:18:127;;;32814:36;32867:19;;2401:73:27::1;32490:402:127::0;2401:73:27::1;2484:28;2503:8;2484:18;:28::i;9477:553:71:-:0;1334:13:27;:11;:13::i;:::-;9700:214:71::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;::::1;::::0;;::::1;;::::0;;::::1;::::0;;;;;::::1;::::0;;;;;;9682:15:::1;:232:::0;;-1:-1:-1;;9682:232:71;-1:-1:-1;;9682:232:71;;;::::1;::::0;::::1;;-1:-1:-1::0;;9682:232:71::1;::::0;;::::1;;::::0;;9930:93;;5302:41:127;;;5384:18;;;5377:43;5436:18;;;5429:43;;;;9930:93:71::1;::::0;5275:18:127;9930:93:71::1;;;;;;;9477:553:::0;;;:::o;8501:970::-;1334:13:27;:11;:13::i;:::-;8837:376:71::1;;;;;;;;8873:13;8837:376;;;;8934:32;8837:376;;;;;;9018:36;8837:376;;;;;;9100:30;8837:376;;;;9174:28;8837:376;;::::0;8820:14:::1;:393;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9229:235;9259:13;9286:32;9332:36;9382:30;9426:28;9229:235;;;;;;;;;;:::i;:::-;;;;;;;;8501:970:::0;;;;;:::o;1599:130:27:-;1513:6;;-1:-1:-1;;;;;1513:6:27;929:10:35;1662:23:27;1654:68;;;;-1:-1:-1;;;1654:68:27;;34605:2:127;1654:68:27;;;34587:21:127;;;34624:18;;;34617:30;34683:34;34663:18;;;34656:62;34735:18;;1654:68:27;34403:356:127;35084:285:71;6567:7;:22;-1:-1:-1;;;6567:22:71;;;;6563:71;;;6612:11;;-1:-1:-1;;;6612:11:71;;;;;;;;;;;6563:71;-1:-1:-1;;;;;35195:21:71;::::1;35177:15;35195:21:::0;;;:14:::1;:21;::::0;;;;;;;;:29:::1;::::0;::::1;::::0;35234:34;;-1:-1:-1;;;;;;35234:34:71::1;::::0;;;35283:40;;-1:-1:-1;;;;;34956:55:127;;34938:74;;35028:18;;;35021:34;;;35195:29:71;:21;35283:40:::1;::::0;34911:18:127;35283:40:71::1;;;;;;;35333:29;::::0;-1:-1:-1;;;;;35333:20:71;::::1;::::0;:29;::::1;;;::::0;35354:7;;35333:29:::1;::::0;;;35354:7;35333:20;:29;::::1;;;;;;;;;;;;;::::0;::::1;;;;6964:66:::0;1334:13:27;:11;:13::i;2884:974:30:-;1023:66;3330:59;;;3326:526;;;3405:37;3424:17;3405:18;:37::i;3326:526::-;3506:17;-1:-1:-1;;;;;3477:61:30;;:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3477:63:30;;;;;;;;-1:-1:-1;;3477:63:30;;;;;;;;;;;;:::i;:::-;;;3473:302;;3704:56;;-1:-1:-1;;;3704:56:30;;35457:2:127;3704:56:30;;;35439:21:127;35496:2;35476:18;;;35469:30;35535:34;35515:18;;;35508:62;-1:-1:-1;;;35586:18:127;;;35579:44;35640:19;;3704:56:30;35255:410:127;3473:302:30;-1:-1:-1;;;;;;;;;;;3590:28:30;;3582:82;;;;-1:-1:-1;;;3582:82:30;;35872:2:127;3582:82:30;;;35854:21:127;35911:2;35891:18;;;35884:30;35950:34;35930:18;;;35923:62;-1:-1:-1;;;36001:18:127;;;35994:39;36050:19;;3582:82:30;35670:405:127;3582:82:30;3541:138;3788:53;3806:17;3825:4;3831:9;3788:17;:53::i;2673:187:27:-;2765:6;;;-1:-1:-1;;;;;2781:17:27;;;-1:-1:-1;;;;;;2781:17:27;;;;;;;2813:40;;2765:6;;;2781:17;2765:6;;2813:40;;2746:16;;2813:40;2736:124;2673:187;:::o;35829:624:71:-;35886:7;35905:34;35942:11;;;;;;;;;-1:-1:-1;;;;;35942:11:71;-1:-1:-1;;;;;35942:32:71;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35942:34:71;;;;;;;;;;;;:::i;:::-;35905:71;;35991:17;:24;36019:1;35991:29;35987:86;;36043:19;;-1:-1:-1;;;36043:19:71;;;;;;;;;;;35987:86;36104:11;;:27;;;-1:-1:-1;;;36104:27:71;;;;36083:18;;-1:-1:-1;;;;;36104:11:71;;:25;;:27;;;;;;;;;;;;;;:11;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36179:23;;36083:48;;-1:-1:-1;36142:33:71;;36083:48;;36179:27;;:23;;;:27;:::i;:::-;36178:42;;;;;;:::i;:::-;36142:78;;36231:173;36239:66;36260:17;36279:25;36239:20;:66::i;:::-;36231:173;;36383:10;36350:29;:25;36378:1;36350:29;:::i;:::-;36349:44;;;;:::i;:::-;36321:72;;36231:173;;;36421:25;35829:624;-1:-1:-1;;;35829:624:71:o;87:262:105:-;280:60;;;291:13;280:60;;;37339:25:127;37380:18;;;37373:34;;;-1:-1:-1;;;;;37443:31:127;;37423:18;;;37416:59;-1:-1:-1;;;;;37511:55:127;;37491:18;;;37484:83;37583:19;;;37576:35;;;232:7:105;;37311:19:127;;280:60:105;;;;;;;;;;;;270:71;;;;;;262:80;;255:87;;87:262;;;;;;;:::o;355:137::-;421:7;474:9;457:27;;;;;;37751:19:127;;37795:2;37786:12;;37622:182;457:27:105;;;;;;;;;;;;;447:38;;;;;;440:45;;355:137;;;:::o;31016:1680:71:-;31283:51;;31235:7;;;;31283:51;;;;;31279:644;;;-1:-1:-1;31361:12:71;;;;-1:-1:-1;;;;;31361:12:71;31279:644;;;31407:123;;31534:15;-1:-1:-1;31407:142:71;;;:277;;-1:-1:-1;31641:43:71;;31622:15;:62;;31407:277;31390:533;;;31740:45;;31713:24;;;;:72;31709:204;;;-1:-1:-1;31816:1:71;31709:204;;;31867:27;;;;:31;;-1:-1:-1;;;31867:27:71;;-1:-1:-1;;;;;31867:27:71;31897:1;31867:31;:::i;:::-;31856:42;;31709:204;31985:15;32003:452;32043:16;32196:37;1436:1;32196:9;:37;:::i;:::-;32153:81;;1374:5;32153:81;:::i;:::-;32101:33;32125:9;1299:4;32101:33;:::i;:::-;32073:7;:25;:61;;;-1:-1:-1;;;32073:25:71;;;;:61;:::i;:::-;:161;;;;:::i;:::-;32248:20;;;;-1:-1:-1;;;32248:20:71;;-1:-1:-1;;;;;32248:20:71;:141;;32335:47;;32385:3;;32335:47;;32312:20;32323:8;32312:10;:20::i;:::-;:70;;;;:::i;:::-;:76;;;;:::i;:::-;32248:141;;;32291:1;32248:141;32403:19;32436:9;32003:26;:452::i;:::-;31985:470;;32503:7;32484:3;:16;;;32470:3;:11;;;:30;;;;:::i;:::-;:40;32466:110;;;32533:32;;-1:-1:-1;;;32533:32:71;;;;;;;;;;;32466:110;32606:7;32586:3;:16;;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;;32623:31:71;;;;:20;;;:31;;;;;:41;;;32657:7;-1:-1:-1;;31016:1680:71;;;;;;;:::o;1003:95:27:-;5363:13:32;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:32;;;;;;;:::i;:::-;1065:26:27::1;:24;:26::i;36459:1878:71:-:0;36722:22;;-1:-1:-1;;;36722:22:71;;;;;4690:25:127;;;36670:35:71;;36722:3;;:11;;4663:18:127;;36722:22:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36717:89;;36767:28;;-1:-1:-1;;;36767:28:71;;;;;;;;;;;36717:89;36820:17;:24;36848:1;36820:29;36816:95;;36872:28;;-1:-1:-1;;;36872:28:71;;;;;;;;;;;36816:95;36950:11;;:32;;-1:-1:-1;;;36950:32:71;;;;;4690:25:127;;;36921:26:71;;-1:-1:-1;;;;;36950:11:71;;:20;;4663:18:127;;36950:32:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;36950:32:71;;;;;;;;;;;;:::i;:::-;36921:61;;36998:46;37019:1;:12;;;37033:10;36998:20;:46::i;:::-;36993:103;;37067:18;;-1:-1:-1;;;37067:18:71;;;;;;;;;;;36993:103;37132:32;;;;;;45283:19:127;;;45318:12;;;45311:28;;;37132:32:71;;;;;;;;;45355:12:127;;;37132:32:71;;;;-1:-1:-1;;;37203:27:71;;;-1:-1:-1;;37203:3:71;;:15;;:27;;37132:32;;37203:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37175:55;;37305:3;:16;37322:3;:14;37337:9;37322:25;;;;;;;;;;;;;4690::127;;4678:2;4663:18;;4544:177;37322:25:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37349:1;:11;;;37362:7;37305:65;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37300:126;;37393:22;;-1:-1:-1;;;37393:22:71;;;;;;;;;;;37300:126;37510:28;37558:17;:24;-1:-1:-1;;;;;37541:42:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;37510:73;;37593:27;37640:17;:24;-1:-1:-1;;;;;37623:42:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;37593:72;;37710:17;:24;-1:-1:-1;;;;;37696:39:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37696:39:71;;37675:60;;37750:9;37745:462;37769:17;:24;37765:1;:28;37745:462;;;37819:3;:11;37831:17;37849:1;37831:20;;;;;;;;:::i;:::-;;;;;;;:37;;;37819:50;;;;;;;;;;;;;4690:25:127;;4678:2;4663:18;;4544:177;37819:50:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37814:132;;37896:35;;-1:-1:-1;;;37896:35:71;;;;;;;;;;;37814:132;37973:3;:14;37988:17;38006:1;37988:20;;;;;;;;:::i;:::-;;;;;;;:37;;;37973:53;;;;;;;;;;;;;4690:25:127;;4678:2;4663:18;;4544:177;37973:53:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37959:8;37968:1;37959:11;;;;;;;;:::i;:::-;;;;;;:67;;;;38053:1;:9;;;38063:17;38081:1;38063:20;;;;;;;;:::i;:::-;;;;;;;:26;;;38053:37;;;;;;;;:::i;:::-;;;;;;;:54;;;38040:7;38048:1;38040:10;;;;;;;;:::i;:::-;;;;;;:67;;;;38145:1;:9;;;38155:17;38173:1;38155:20;;;;;;;;:::i;:::-;;;;;;;:26;;;38145:37;;;;;;;;:::i;:::-;;;;;;;:51;;;38121:18;38140:1;38121:21;;;;;;;;:::i;:::-;-1:-1:-1;;;;;38121:75:71;;;:21;;;;;;;;;;;:75;37795:3;;;;:::i;:::-;;;;37745:462;;;-1:-1:-1;38221:46:71;;-1:-1:-1;;;38221:46:71;;:3;;:18;;:46;;38240:8;;38250:7;;38259;;38221:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38216:115;;38290:30;;-1:-1:-1;;;38290:30:71;;;;;;;;;;;38216:115;36707:1630;;;;;36459:1878;;;;;;;:::o;29185:1825::-;29320:12;;29386:17;29320:12;29417:13;:25;;;:51;;;;;;;;:::i;:::-;;29413:960;;-1:-1:-1;29491:78:71;;;;;;32411:25:127;;;32452:18;;;;32445:34;;;29491:78:71;;;;;;;;;;32384:18:127;;;;29491:78:71;;;;;;;;-1:-1:-1;;;;;29491:78:71;-1:-1:-1;;;29491:78:71;;;29413:960;;;29619:23;29590:13;:25;;;:52;;;;;;;;:::i;:::-;;29586:787;;29658:15;29687:13;:20;;;29676:42;;;;;;;;;;;;:::i;:::-;29658:60;;29732:28;29777:8;29763:23;;-1:-1:-1;;;;;29763:23:71;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29763:23:71;;29732:54;;29805:9;29800:134;29824:8;29820:12;;:1;:12;29800:134;;;29892:25;;;;;;32411::127;;;32452:18;;;32445:34;;;32384:18;;29892:25:71;;;;;;;;;;;;29882:36;;;;;;29874:45;;29857:11;29869:1;29857:14;;;;;;;;:::i;:::-;;;;;;;;;;:62;29834:3;;;;:::i;:::-;;;;29800:134;;;-1:-1:-1;29954:80:71;;-1:-1:-1;;;29977:32:71;29954:80;;30011:9;;30022:11;;29954:80;;;:::i;:::-;;;;-1:-1:-1;;29954:80:71;;;;;;;;;;;;;;-1:-1:-1;;;;;29954:80:71;-1:-1:-1;;;;;;29954:80:71;;;;;;;;;;;-1:-1:-1;29586:787:71;;-1:-1:-1;;29586:787:71;;30084:21;30055:13;:25;;;:50;;;;;;;;:::i;:::-;;30051:322;;30121:12;30147:13;:20;;;30136:42;;;;;;;;;;;;:::i;:::-;30121:57;;30192:30;30225:32;30239:5;30225:32;;30246:10;30225:13;:32::i;:::-;30192:65;;30301:34;;;30337:9;30348:13;30278:84;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;30278:84:71;;;;;;;;;;;;;;-1:-1:-1;;;;;30278:84:71;-1:-1:-1;;;;;;30278:84:71;;;;;;;;;;;-1:-1:-1;;;30051:322:71;30822:7;:29;;-1:-1:-1;;30822:29:71;-1:-1:-1;;;30822:29:71;;;30894:30;;;;30926;;;;30871:92;;;;;30958:4;30871:22;:92::i;:::-;30973:7;:30;;-1:-1:-1;;30973:30:71;;;30861:102;29185:1825;-1:-1:-1;;;;;;29185:1825:71:o;32702:2376::-;32965:12;;;:17;;32878:7;;;;32981:1;;32965:12;32878:7;;32965:17;;32981:1;;-1:-1:-1;;;;;32965:17:71;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;32965:17:71;;;;;-1:-1:-1;;;;;32965:17:71;;;;;;32992:15;33021:14;:51;;;;;;;;;;;;33017:705;;;-1:-1:-1;33099:12:71;;;;-1:-1:-1;;;;;33099:12:71;33017:705;;;33145:123;;33272:15;-1:-1:-1;33145:142:71;;;:277;;-1:-1:-1;33379:43:71;;33360:15;:62;;33145:277;33128:594;;;33478:45;;33451:24;;;;:72;33447:213;;;33543:27;;;:31;;;;-1:-1:-1;;;33543:31:71;;;33447:213;;;33644:1;33613:3;:27;;;:32;;;;;;;;;;-1:-1:-1;;;;;33613:32:71;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;33613:32:71;;;;;-1:-1:-1;;;;;33613:32:71;;;;;;33447:213;-1:-1:-1;33684:27:71;;;;-1:-1:-1;;;33684:27:71;;-1:-1:-1;;;;;33684:27:71;33128:594;33812:15;33785:24;;;:42;33867:20;;;;33838:15;;-1:-1:-1;;;33867:20:71;;-1:-1:-1;;;;;33867:20:71;:24;33863:384;;33931:1;33907:3;:20;;;:25;;;;;;;;;;-1:-1:-1;;;;;33907:25:71;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;33907:25:71;;;;;-1:-1:-1;;;;;33907:25:71;;;;;;33863:384;;;34183:47;;34233:3;;34183:47;;34159:20;34170:8;34159:10;:20::i;:::-;34144:36;;34151:29;;34144:4;:36;:::i;:::-;:86;;;;:::i;:::-;:92;;;;:::i;:::-;34134:102;;33863:384;34535:15;34553:200;34595:8;34654:43;34678:19;1299:4;34654:43;:::i;:::-;34617:7;:34;:80;;;-1:-1:-1;;;34617:34:71;;;;:80;:::i;:::-;34711:7;34732:11;34553:28;:200::i;:::-;34535:218;;34782:7;34768:3;:11;;;:21;34764:91;;;34812:32;;-1:-1:-1;;;34812:32:71;;;;;;;;;;;34764:91;34884:31;;;;:20;;;:31;;;;;;34864:16;;;:51;;34884:31;;34864:16;;:51;;34884:31;;34864:51;:::i;:::-;;;;-1:-1:-1;;34932:31:71;;;;:20;;;:31;;;;;34925:38;;;34973:11;;;:22;;34988:7;;34932:31;34973:22;;34988:7;;34973:22;:::i;:::-;;;;;;;;35028:7;35006:18;;:29;;;;;;;:::i;:::-;;;;-1:-1:-1;35054:7:71;;35063;;-1:-1:-1;32702:2376:71;;-1:-1:-1;;;;;;;32702:2376:71:o;28584:595::-;28731:35;;28701:26;:65;;:26;;:65;;28731:35;;28701:65;:::i;:::-;;;;-1:-1:-1;;28842:25:71;;28813:26;;:54;;28842:25;28813:54;:::i;:::-;28776:33;;:91;;;;;;;:::i;:::-;;;;-1:-1:-1;;28907:16:71;;;28921:1;28907:16;;;;;;;;;28878:26;;28907:16;;;;;;;;;;;-1:-1:-1;28907:16:71;28878:45;;28948:10;28933:9;28943:1;28933:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;28933:25:71;;;:12;;;;;;;;;:25;28968:11;;;:21;28990:9;29001:17;29011:7;29001;:17;:::i;:::-;29020:35;;28968:88;;-1:-1:-1;;;;;;28968:88:71;;;;;;;;;;;29020:35;28968:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;29066:11:71;;29118:25;;-1:-1:-1;;;;;29066:11:71;;;;-1:-1:-1;29066:21:71;;-1:-1:-1;29088:18:71;;29108:35;;:7;:35;:::i;:::-;29145:26;;29066:106;;-1:-1:-1;;;;;;29066:106:71;;;;;;;;;;;29145:26;29066:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28691:488;28584:595;;;:::o;1751:281:30:-;-1:-1:-1;;;;;1476:19:34;;;1824:106:30;;;;-1:-1:-1;;;1824:106:30;;50994:2:127;1824:106:30;;;50976:21:127;51033:2;51013:18;;;51006:30;51072:34;51052:18;;;51045:62;-1:-1:-1;;;51123:18:127;;;51116:43;51176:19;;1824:106:30;50792:409:127;1824:106:30;-1:-1:-1;;;;;;;;;;;1940:85:30;;-1:-1:-1;;;;;;1940:85:30;-1:-1:-1;;;;;1940:85:30;;;;;;;;;;1751:281::o;2424:288::-;2562:29;2573:17;2562:10;:29::i;:::-;2619:1;2605:4;:11;:15;:28;;;;2624:9;2605:28;2601:105;;;2649:46;2671:17;2690:4;2649:21;:46::i;210:225:107:-;287:4;;299:116;323:3;:10;319:1;:14;299:116;;;364:7;354:3;358:1;354:6;;;;;;;;:::i;:::-;;;;;;;:17;350:59;;394:4;387:11;;;;;350:59;335:3;;;;:::i;:::-;;;;299:116;;;;427:5;420:12;;210:225;;;;;:::o;1104:111:27:-;5363:13:32;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:32;;;;;;;:::i;:::-;1176:32:27::1;929:10:35::0;1176:18:27::1;:32::i;437:225:107:-:0;514:4;;526:116;550:3;:10;546:1;:14;526:116;;;591:7;-1:-1:-1;;;;;581:17:107;:3;585:1;581:6;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;581:17:107;;577:59;;621:4;614:11;;;;;577:59;562:3;;;;:::i;:::-;;;;526:116;;4630:464;4696:16;4720:20;4757:5;-1:-1:-1;;;;;4743:20:107;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4743:20:107;;4720:43;;4774:9;4769:63;4793:5;4789:1;:9;4769:63;;;4824:1;4815:3;4819:1;4815:6;;;;;;;;:::i;:::-;;;;;;;;;;:10;4800:3;;;;:::i;:::-;;;;4769:63;;;-1:-1:-1;4849:10:107;;4837:9;;4895:181;4908:1;4902:3;;;:::i;:::-;;;;:7;4895:181;;;4925:14;4938:1;4925:10;:14;:::i;:::-;4921:18;;4991:10;4980:22;;;;;;4690:25:127;;4678:2;4663:18;;4544:177;4980:22:107;;;;;;;;;;;;;4970:33;;;;;;4962:42;;4949:55;;5018:3;5022:1;5018:6;;;;;;;;:::i;:::-;;;;;;;5014:10;;5043:3;5047:1;5043:6;;;;;;;;:::i;:::-;;;;;;;5034:3;5038:1;5034:6;;;;;;;;:::i;:::-;;;;;;:15;;;;;5068:1;5059:3;5063:1;5059:6;;;;;;;;:::i;:::-;;;;;;:10;;;;;4895:181;;;-1:-1:-1;5088:3:107;;4630:464;-1:-1:-1;;;;;4630:464:107:o;3273:1355::-;3362:12;3462:5;3965:24;3962:1;3959:31;3956:51;;;4003:1;4000;3993:12;3956:51;4028:24;4025:1;4021:32;4016:37;;4190:9;4184:2;4181:1;4177:10;4174:1;4170:18;4167:33;4157:61;;4214:1;4211;4204:12;4157:61;;4351:6;4339:19;4329:47;;4372:1;4369;4362:12;4329:47;4598:1;4595;4588:4;4582:11;4575:4;4569;4565:15;4562:1;4554:6;4543:9;4538:62;4527:73;3273:1355;-1:-1:-1;;;;3273:1355:107:o;35425:398:71:-;35618:7;35637:20;35742:11;:33;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35729:9;35689:37;35718:8;35689:26;:37;:::i;:::-;:49;;;;:::i;:::-;35672:67;;:13;:67;:::i;:::-;:105;;;;:::i;:::-;35637:140;-1:-1:-1;35794:22:71;35809:7;35637:140;35794:22;:::i;:::-;35787:29;35425:398;-1:-1:-1;;;;;;35425:398:71:o;2138:152:30:-;2204:37;2223:17;2204:18;:37::i;:::-;2256:27;;-1:-1:-1;;;;;2256:27:30;;;;;;;;2138:152;:::o;6780:455::-;6863:12;-1:-1:-1;;;;;1476:19:34;;;6887:88:30;;;;-1:-1:-1;;;6887:88:30;;51549:2:127;6887:88:30;;;51531:21:127;51588:2;51568:18;;;51561:30;51627:34;51607:18;;;51600:62;-1:-1:-1;;;51678:18:127;;;51671:36;51724:19;;6887:88:30;51347:402:127;6887:88:30;7046:12;7060:23;7087:6;-1:-1:-1;;;;;7087:19:30;7107:4;7087:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7045:67;;;;7129:99;7165:7;7174:10;7129:99;;;;;;;;;;;;;;;;;:35;:99::i;:::-;7122:106;6780:455;-1:-1:-1;;;;;6780:455:30:o;7438:295:34:-;7584:12;7612:7;7608:119;;;-1:-1:-1;7642:10:34;7635:17;;7608:119;7683:33;7691:10;7703:12;7898:17;;:21;7894:379;;8126:10;8120:17;8182:15;8169:10;8165:2;8161:19;8154:44;7894:379;8249:12;8242:20;;-1:-1:-1;;;8242:20:34;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:171:127:-;81:20;;-1:-1:-1;;;;;130:30:127;;120:41;;110:69;;175:1;172;165:12;190:184;248:6;301:2;289:9;280:7;276:23;272:32;269:52;;;317:1;314;307:12;269:52;340:28;358:9;340:28;:::i;379:127::-;440:10;435:3;431:20;428:1;421:31;471:4;468:1;461:15;495:4;492:1;485:15;511:255;583:2;577:9;625:6;613:19;;-1:-1:-1;;;;;647:34:127;;683:22;;;644:62;641:88;;;709:18;;:::i;:::-;745:2;738:22;511:255;:::o;771:253::-;843:2;837:9;885:4;873:17;;-1:-1:-1;;;;;905:34:127;;941:22;;;902:62;899:88;;;967:18;;:::i;1029:251::-;1101:2;1095:9;;;1131:15;;-1:-1:-1;;;;;1161:34:127;;1197:22;;;1158:62;1155:88;;;1223:18;;:::i;1285:255::-;1357:2;1351:9;1399:6;1387:19;;-1:-1:-1;;;;;1421:34:127;;1457:22;;;1418:62;1415:88;;;1483:18;;:::i;1545:253::-;1617:2;1611:9;1659:4;1647:17;;-1:-1:-1;;;;;1679:34:127;;1715:22;;;1676:62;1673:88;;;1741:18;;:::i;1803:275::-;1874:2;1868:9;1939:2;1920:13;;-1:-1:-1;;1916:27:127;1904:40;;-1:-1:-1;;;;;1959:34:127;;1995:22;;;1956:62;1953:88;;;2021:18;;:::i;:::-;2057:2;2050:22;1803:275;;-1:-1:-1;1803:275:127:o;2083:182::-;2142:4;-1:-1:-1;;;;;2167:6:127;2164:30;2161:56;;;2197:18;;:::i;:::-;-1:-1:-1;2242:1:127;2238:14;2254:4;2234:25;;2083:182::o;2270:665::-;2323:5;2376:3;2369:4;2361:6;2357:17;2353:27;2343:55;;2394:1;2391;2384:12;2343:55;2430:6;2417:20;2456:4;2480:59;2496:42;2535:2;2496:42;:::i;:::-;2480:59;:::i;:::-;2573:15;;;2659:1;2655:10;;;;2643:23;;2639:32;;;2604:12;;;;2683:15;;;2680:35;;;2711:1;2708;2701:12;2680:35;2747:2;2739:6;2735:15;2759:147;2775:6;2770:3;2767:15;2759:147;;;2841:22;2859:3;2841:22;:::i;:::-;2829:35;;2884:12;;;;2792;;2759:147;;;-1:-1:-1;2924:5:127;2270:665;-1:-1:-1;;;;;;2270:665:127:o;2940:591::-;3056:6;3064;3117:2;3105:9;3096:7;3092:23;3088:32;3085:52;;;3133:1;3130;3123:12;3085:52;3173:9;3160:23;-1:-1:-1;;;;;3243:2:127;3235:6;3232:14;3229:34;;;3259:1;3256;3249:12;3229:34;3282:60;3334:7;3325:6;3314:9;3310:22;3282:60;:::i;:::-;3272:70;;3395:2;3384:9;3380:18;3367:32;3351:48;;3424:2;3414:8;3411:16;3408:36;;;3440:1;3437;3430:12;3408:36;;3463:62;3517:7;3506:8;3495:9;3491:24;3463:62;:::i;:::-;3453:72;;;2940:591;;;;;:::o;3741:154::-;-1:-1:-1;;;;;3820:5:127;3816:54;3809:5;3806:65;3796:93;;3885:1;3882;3875:12;3900:134;3968:20;;3997:31;3968:20;3997:31;:::i;4039:315::-;4107:6;4115;4168:2;4156:9;4147:7;4143:23;4139:32;4136:52;;;4184:1;4181;4174:12;4136:52;4223:9;4210:23;4242:31;4267:5;4242:31;:::i;:::-;4292:5;4344:2;4329:18;;;;4316:32;;-1:-1:-1;;;4039:315:127:o;4359:180::-;4418:6;4471:2;4459:9;4450:7;4446:23;4442:32;4439:52;;;4487:1;4484;4477:12;4439:52;-1:-1:-1;4510:23:127;;4359:180;-1:-1:-1;4359:180:127:o;5846:247::-;5905:6;5958:2;5946:9;5937:7;5933:23;5929:32;5926:52;;;5974:1;5971;5964:12;5926:52;6013:9;6000:23;6032:31;6057:5;6032:31;:::i;6098:530::-;6140:5;6193:3;6186:4;6178:6;6174:17;6170:27;6160:55;;6211:1;6208;6201:12;6160:55;6247:6;6234:20;-1:-1:-1;;;;;6269:2:127;6266:26;6263:52;;;6295:18;;:::i;:::-;6339:55;6382:2;6363:13;;-1:-1:-1;;6359:27:127;6388:4;6355:38;6339:55;:::i;:::-;6419:2;6410:7;6403:19;6465:3;6458:4;6453:2;6445:6;6441:15;6437:26;6434:35;6431:55;;;6482:1;6479;6472:12;6431:55;6547:2;6540:4;6532:6;6528:17;6521:4;6512:7;6508:18;6495:55;6595:1;6570:16;;;6588:4;6566:27;6559:38;;;;6574:7;6098:530;-1:-1:-1;;;6098:530:127:o;6633:455::-;6710:6;6718;6771:2;6759:9;6750:7;6746:23;6742:32;6739:52;;;6787:1;6784;6777:12;6739:52;6826:9;6813:23;6845:31;6870:5;6845:31;:::i;:::-;6895:5;-1:-1:-1;6951:2:127;6936:18;;6923:32;-1:-1:-1;;;;;6967:30:127;;6964:50;;;7010:1;7007;7000:12;6964:50;7033:49;7074:7;7065:6;7054:9;7050:22;7033:49;:::i;7275:159::-;7342:20;;7402:6;7391:18;;7381:29;;7371:57;;7424:1;7421;7414:12;7439:121;7524:10;7517:5;7513:22;7506:5;7503:33;7493:61;;7550:1;7547;7540:12;7565:132;7632:20;;7661:30;7632:20;7661:30;:::i;7702:803::-;7811:6;7819;7827;7835;7843;7851;7859;7912:3;7900:9;7891:7;7887:23;7883:33;7880:53;;;7929:1;7926;7919:12;7880:53;7952:28;7970:9;7952:28;:::i;:::-;7942:38;;8030:2;8019:9;8015:18;8002:32;8043:30;8067:5;8043:30;:::i;:::-;8092:5;-1:-1:-1;8149:2:127;8134:18;;8121:32;8162;8121;8162;:::i;:::-;8213:7;-1:-1:-1;8272:2:127;8257:18;;8244:32;8285;8244;8285;:::i;:::-;7702:803;;;;-1:-1:-1;7702:803:127;;8390:3;8375:19;;8362:33;;8442:3;8427:19;;8414:33;;-1:-1:-1;8494:3:127;8479:19;;;8466:33;;-1:-1:-1;7702:803:127;-1:-1:-1;;7702:803:127:o;8510:319::-;8577:6;8585;8638:2;8626:9;8617:7;8613:23;8609:32;8606:52;;;8654:1;8651;8644:12;8606:52;8677:28;8695:9;8677:28;:::i;:::-;8667:38;;8755:2;8744:9;8740:18;8727:32;8768:31;8793:5;8768:31;:::i;:::-;8818:5;8808:15;;;8510:319;;;;;:::o;9130:256::-;9196:6;9204;9257:2;9245:9;9236:7;9232:23;9228:32;9225:52;;;9273:1;9270;9263:12;9225:52;9296:28;9314:9;9296:28;:::i;:::-;9286:38;;9343:37;9376:2;9365:9;9361:18;9343:37;:::i;:::-;9333:47;;9130:256;;;;;:::o;9391:732::-;9482:6;9490;9498;9506;9514;9567:3;9555:9;9546:7;9542:23;9538:33;9535:53;;;9584:1;9581;9574:12;9535:53;9623:9;9610:23;9642:30;9666:5;9642:30;:::i;:::-;9691:5;-1:-1:-1;9748:2:127;9733:18;;9720:32;9761;9720;9761;:::i;:::-;9812:7;-1:-1:-1;9871:2:127;9856:18;;9843:32;9884;9843;9884;:::i;:::-;9935:7;-1:-1:-1;9989:2:127;9974:18;;9961:32;;-1:-1:-1;10045:3:127;10030:19;;10017:33;10059:32;10017:33;10059:32;:::i;:::-;10110:7;10100:17;;;9391:732;;;;;;;;:::o;10128:404::-;10231:6;10284:2;10272:9;10263:7;10259:23;10255:32;10252:52;;;10300:1;10297;10290:12;10252:52;10340:9;10327:23;-1:-1:-1;;;;;10365:6:127;10362:30;10359:50;;;10405:1;10402;10395:12;10359:50;10428:22;;10484:3;10466:16;;;10462:26;10459:46;;;10501:1;10498;10491:12;10537:484;10590:3;10628:5;10622:12;10655:6;10650:3;10643:19;10681:4;10710:2;10705:3;10701:12;10694:19;;10747:2;10740:5;10736:14;10768:1;10778:218;10792:6;10789:1;10786:13;10778:218;;;10857:13;;-1:-1:-1;;;;;10853:62:127;10841:75;;10936:12;;;;10971:15;;;;10814:1;10807:9;10778:218;;;-1:-1:-1;11012:3:127;;10537:484;-1:-1:-1;;;;;10537:484:127:o;11026:970::-;11384:4;11413:3;-1:-1:-1;;;;;11447:6:127;11443:55;11432:9;11425:74;11535:2;11530;11519:9;11515:18;11508:30;11555:56;11607:2;11596:9;11592:18;11584:6;11555:56;:::i;:::-;11642:2;11627:18;;11620:34;;;;-1:-1:-1;;11685:2:127;11670:18;;11663:34;;;;-1:-1:-1;;;;;11771:15:127;;;11765:3;11750:19;;11743:44;11824:15;;;11818:3;11803:19;;11796:44;11877:15;;;11871:3;11856:19;;11849:44;11930:15;;;11924:3;11909:19;;11902:44;11977:3;11962:19;;;11955:35;11547:64;11026:970;-1:-1:-1;;11026:970:127:o;12325:162::-;12391:5;12436:3;12427:6;12422:3;12418:16;12414:26;12411:46;;;12453:1;12450;12443:12;12411:46;-1:-1:-1;12475:6:127;12325:162;-1:-1:-1;12325:162:127:o;12492:1170::-;12684:6;12692;12700;12708;12716;12724;12777:3;12765:9;12756:7;12752:23;12748:33;12745:53;;;12794:1;12791;12784:12;12745:53;12833:9;12820:23;12852:30;12876:5;12852:30;:::i;:::-;12901:5;-1:-1:-1;12953:2:127;12938:18;;12925:32;;-1:-1:-1;13004:2:127;12989:18;;12976:32;;-1:-1:-1;13059:2:127;13044:18;;13031:32;-1:-1:-1;;;;;13112:14:127;;;13109:34;;;13139:1;13136;13129:12;13109:34;13162:73;13227:7;13218:6;13207:9;13203:22;13162:73;:::i;:::-;13152:83;;13288:3;13277:9;13273:19;13260:33;13244:49;;13318:2;13308:8;13305:16;13302:36;;;13334:1;13331;13324:12;13302:36;13372:8;13361:9;13357:24;13347:34;;13419:7;13412:4;13408:2;13404:13;13400:27;13390:55;;13441:1;13438;13431:12;13390:55;13481:2;13468:16;13507:2;13499:6;13496:14;13493:34;;;13523:1;13520;13513:12;13493:34;13576:7;13571:2;13561:6;13558:1;13554:14;13550:2;13546:23;13542:32;13539:45;13536:65;;;13597:1;13594;13587:12;13536:65;13628:2;13624;13620:11;13610:21;;13650:6;13640:16;;;;;12492:1170;;;;;;;;:::o;13667:437::-;13769:6;13777;13830:2;13818:9;13809:7;13805:23;13801:32;13798:52;;;13846:1;13843;13836:12;13798:52;13882:9;13869:23;13859:33;;13943:2;13932:9;13928:18;13915:32;-1:-1:-1;;;;;13962:6:127;13959:30;13956:50;;;14002:1;13999;13992:12;13956:50;14025:73;14090:7;14081:6;14070:9;14066:22;14025:73;:::i;16056:118::-;16142:5;16135:13;16128:21;16121:5;16118:32;16108:60;;16164:1;16161;16154:12;16179:128;16244:20;;16273:28;16244:20;16273:28;:::i;16312:385::-;16384:6;16392;16400;16453:2;16441:9;16432:7;16428:23;16424:32;16421:52;;;16469:1;16466;16459:12;16421:52;16508:9;16495:23;16527:28;16549:5;16527:28;:::i;:::-;16574:5;-1:-1:-1;16598:37:127;16631:2;16616:18;;16598:37;:::i;:::-;16588:47;;16654:37;16687:2;16676:9;16672:18;16654:37;:::i;:::-;16644:47;;16312:385;;;;;:::o;16702:161::-;16769:20;;16829:8;16818:20;;16808:31;;16798:59;;16853:1;16850;16843:12;16868:1242;16987:6;16995;17003;17011;17019;17063:9;17054:7;17050:23;17093:3;17089:2;17085:12;17082:32;;;17110:1;17107;17100:12;17082:32;17133:6;17159:2;17155;17151:11;17148:31;;;17175:1;17172;17165:12;17148:31;17201:22;;:::i;:::-;17188:35;;17246:28;17264:9;17246:28;:::i;:::-;17239:5;17232:43;17307:37;17340:2;17329:9;17325:18;17307:37;:::i;:::-;17302:2;17295:5;17291:14;17284:61;17377:37;17410:2;17399:9;17395:18;17377:37;:::i;:::-;17372:2;17365:5;17361:14;17354:61;17447:37;17480:2;17469:9;17465:18;17447:37;:::i;:::-;17442:2;17435:5;17431:14;17424:61;17518:38;17551:3;17540:9;17536:19;17518:38;:::i;:::-;17512:3;17505:5;17501:15;17494:63;17590:38;17623:3;17612:9;17608:19;17590:38;:::i;:::-;17584:3;17577:5;17573:15;17566:63;17662:38;17695:3;17684:9;17680:19;17662:38;:::i;:::-;17656:3;17649:5;17645:15;17638:63;17734:38;17767:3;17756:9;17752:19;17734:38;:::i;:::-;17728:3;17721:5;17717:15;17710:63;17792:3;17827:37;17860:2;17849:9;17845:18;17827:37;:::i;:::-;17822:2;17815:5;17811:14;17804:61;;17884:5;17874:15;;17908:37;17941:2;17930:9;17926:18;17908:37;:::i;:::-;17898:47;;;;17964:36;17995:3;17984:9;17980:19;17964:36;:::i;:::-;16868:1242;;;;-1:-1:-1;17954:46:127;;18047:3;18032:19;;18019:33;;-1:-1:-1;18099:3:127;18084:19;18071:33;;16868:1242;-1:-1:-1;;16868:1242:127:o;18115:127::-;18176:10;18171:3;18167:20;18164:1;18157:31;18207:4;18204:1;18197:15;18231:4;18228:1;18221:15;18247:127;18308:10;18303:3;18299:20;18296:1;18289:31;18339:4;18336:1;18329:15;18363:4;18360:1;18353:15;18379:135;18418:3;18439:17;;;18436:43;;18459:18;;:::i;:::-;-1:-1:-1;18506:1:127;18495:13;;18379:135::o;18519:408::-;18721:2;18703:21;;;18760:2;18740:18;;;18733:30;18799:34;18794:2;18779:18;;18772:62;-1:-1:-1;;;18865:2:127;18850:18;;18843:42;18917:3;18902:19;;18519:408::o;18932:::-;19134:2;19116:21;;;19173:2;19153:18;;;19146:30;19212:34;19207:2;19192:18;;19185:62;-1:-1:-1;;;19278:2:127;19263:18;;19256:42;19330:3;19315:19;;18932:408::o;20140:180::-;-1:-1:-1;;;;;20245:10:127;;;20257;;;20241:27;;20280:11;;;20277:37;;;20294:18;;:::i;:::-;20277:37;20140:180;;;;:::o;20650:128::-;20717:9;;;20738:11;;;20735:37;;;20752:18;;:::i;20783:127::-;20844:10;20839:3;20835:20;20832:1;20825:31;20875:4;20872:1;20865:15;20899:4;20896:1;20889:15;21120:184;21190:6;21243:2;21231:9;21222:7;21218:23;21214:32;21211:52;;;21259:1;21256;21249:12;21211:52;-1:-1:-1;21282:16:127;;21120:184;-1:-1:-1;21120:184:127:o;21499:168::-;21572:9;;;21603;;21620:15;;;21614:22;;21600:37;21590:71;;21641:18;;:::i;21672:127::-;21733:10;21728:3;21724:20;21721:1;21714:31;21764:4;21761:1;21754:15;21788:4;21785:1;21778:15;21804:120;21844:1;21870;21860:35;;21875:18;;:::i;:::-;-1:-1:-1;21909:9:127;;21804:120::o;21929:172::-;21996:10;22026;;;22038;;;22022:27;;22061:11;;;22058:37;;;22075:18;;:::i;22106:125::-;22171:9;;;22192:10;;;22189:36;;;22205:18;;:::i;22236:209::-;22274:3;-1:-1:-1;;;;;22355:2:127;22348:5;22344:14;22382:2;22373:7;22370:15;22367:41;;22388:18;;:::i;:::-;22437:1;22424:15;;22236:209;-1:-1:-1;;;22236:209:127:o;22450:152::-;22527:20;;22576:1;22566:12;;22556:40;;22592:1;22589;22582:12;22607:891;22743:9;22802:4;22794:5;22778:14;22774:26;22770:37;22767:57;;;22820:1;22817;22810:12;22767:57;22848:22;;:::i;:::-;22895:34;22923:5;22895:34;:::i;:::-;22886:7;22879:51;22977:2;22970:5;22966:14;22953:28;-1:-1:-1;;;;;22996:6:127;22993:30;22990:50;;;23036:1;23033;23026:12;22990:50;23074:52;23111:14;23102:6;23095:5;23091:18;23074:52;:::i;:::-;23069:2;23060:7;23056:16;23049:78;;23161:33;23190:2;23183:5;23179:14;23161:33;:::i;:::-;23156:2;23147:7;23143:16;23136:59;23253:2;23246:5;23242:14;23229:28;23224:2;23215:7;23211:16;23204:54;23293:34;23322:3;23315:5;23311:15;23293:34;:::i;:::-;23287:3;23278:7;23274:17;23267:61;23363:34;23392:3;23385:5;23381:15;23363:34;:::i;:::-;23357:3;23344:17;;23337:61;23457:3;23446:15;;;23433:29;23414:17;;;23407:56;;;;-1:-1:-1;23348:7:127;22607:891::o;23997:245::-;24076:6;24084;24137:2;24125:9;24116:7;24112:23;24108:32;24105:52;;;24153:1;24150;24143:12;24105:52;-1:-1:-1;;24176:16:127;;24232:2;24217:18;;;24211:25;24176:16;;24211:25;;-1:-1:-1;23997:245:127:o;24247:127::-;24308:10;24303:3;24299:20;24296:1;24289:31;24339:4;24336:1;24329:15;24363:4;24360:1;24353:15;24379:239;24462:1;24455:5;24452:12;24442:143;;24507:10;24502:3;24498:20;24495:1;24488:31;24542:4;24539:1;24532:15;24570:4;24567:1;24560:15;24442:143;24594:18;;24379:239::o;24623:250::-;24708:1;24718:113;24732:6;24729:1;24726:13;24718:113;;;24808:11;;;24802:18;24789:11;;;24782:39;24754:2;24747:10;24718:113;;;-1:-1:-1;;24865:1:127;24847:16;;24840:27;24623:250::o;24878:270::-;24919:3;24957:5;24951:12;24984:6;24979:3;24972:19;25000:76;25069:6;25062:4;25057:3;25053:14;25046:4;25039:5;25035:16;25000:76;:::i;:::-;25130:2;25109:15;-1:-1:-1;;25105:29:127;25096:39;;;;25137:4;25092:50;;24878:270;-1:-1:-1;;24878:270:127:o;25153:1120::-;25551:4;25580:3;25610:6;25599:9;25592:25;-1:-1:-1;;;;;25657:6:127;25653:31;25648:2;25637:9;25633:18;25626:59;25704:10;25762:2;25754:6;25750:15;25745:2;25734:9;25730:18;25723:43;25775:55;25826:2;25815:9;25811:18;25803:6;25775:55;:::i;:::-;25867:2;25861:3;25850:9;25846:19;25839:31;25887:44;25927:2;25916:9;25912:18;25904:6;25887:44;:::i;:::-;-1:-1:-1;;;;;25968:55:127;;;;25962:3;25947:19;;25940:84;26055:3;26040:19;;26033:35;;;;-1:-1:-1;;26117:6:127;26105:19;;;;26099:3;26084:19;;26077:48;26162:15;;;;26156:3;26141:19;;26134:44;26209:3;26194:19;;26187:35;;;;26253:3;26238:19;26231:36;25879:52;25153:1120;-1:-1:-1;;;;;25153:1120:127:o;26278:851::-;26595:4;26624:3;26636:46;26672:9;26664:6;26636:46;:::i;:::-;26718:2;26713;26702:9;26698:18;26691:30;26738:44;26778:2;26767:9;26763:18;26755:6;26738:44;:::i;:::-;-1:-1:-1;;;;;26818:55:127;;;;26813:2;26798:18;;26791:83;-1:-1:-1;;26905:2:127;26890:18;;26883:34;;;;26966:6;26954:19;;;;26948:3;26933:19;;26926:48;27023:10;27011:23;;;;27005:3;26990:19;;26983:52;27066:3;27051:19;;27044:35;27110:3;27095:19;;;27088:35;26730:52;26278:851;-1:-1:-1;;26278:851:127:o;27748:245::-;27806:6;27859:2;27847:9;27838:7;27834:23;27830:32;27827:52;;;27875:1;27872;27865:12;27827:52;27914:9;27901:23;27933:30;27957:5;27933:30;:::i;27998:212::-;28074:6;28127:2;28115:9;28106:7;28102:23;28098:32;28095:52;;;28143:1;28140;28133:12;28095:52;28166:38;28194:9;28166:38;:::i;28215:521::-;28292:4;28298:6;28358:11;28345:25;28452:2;28448:7;28437:8;28421:14;28417:29;28413:43;28393:18;28389:68;28379:96;;28471:1;28468;28461:12;28379:96;28498:33;;28550:20;;;-1:-1:-1;;;;;;28582:30:127;;28579:50;;;28625:1;28622;28615:12;28579:50;28658:4;28646:17;;-1:-1:-1;28689:14:127;28685:27;;;28675:38;;28672:58;;;28726:1;28723;28716:12;28672:58;28215:521;;;;;:::o;28741:184::-;28799:6;28852:2;28840:9;28831:7;28827:23;28823:32;28820:52;;;28868:1;28865;28858:12;28820:52;28891:28;28909:9;28891:28;:::i;28930:1257::-;29339:4;29368:3;29398:6;29387:9;29380:25;-1:-1:-1;;;;;29445:6:127;29441:31;29436:2;29425:9;29421:18;29414:59;29521:10;29513:6;29509:23;29504:2;29493:9;29489:18;29482:51;29542:55;29593:2;29582:9;29578:18;29570:6;29542:55;:::i;:::-;29634:2;29628:3;29617:9;29613:19;29606:31;29673:6;29668:2;29657:9;29653:18;29646:34;;29699:3;29752:6;29744;29739:2;29728:9;29724:18;29711:48;29808:1;29779:22;;;29775:31;;29768:42;-1:-1:-1;;;;;5549:54:127;;29932:3;29917:19;;5537:67;-1:-1:-1;;29871:2:127;29850:15;;29846:29;29831:45;;29827:54;;-1:-1:-1;29974:6:127;29968:3;29957:9;29953:19;29946:35;29990:46;30031:3;30020:9;30016:19;30008:6;4802;4791:18;4779:31;;4726:90;29990:46;8910:10;8899:22;;30086:3;30071:19;;8887:35;30122:3;30107:19;;30100:36;;;;30167:3;30152:19;30145:36;28930:1257;;-1:-1:-1;;;;;;;;;;28930:1257:127:o;30192:353::-;30286:6;30339:2;30327:9;30318:7;30314:23;30310:32;30307:52;;;30355:1;30352;30345:12;30307:52;30381:22;;:::i;:::-;30439:9;30426:23;30419:5;30412:38;30510:2;30499:9;30495:18;30482:32;30477:2;30470:5;30466:14;30459:56;30534:5;30524:15;;;30192:353;;;;:::o;30550:1119::-;30666:9;30725:6;30717:5;30701:14;30697:26;30693:39;30690:59;;;30745:1;30742;30735:12;30690:59;30773:22;;:::i;:::-;30820:24;30838:5;30820:24;:::i;:::-;30811:7;30804:41;30879:33;30908:2;30901:5;30897:14;30879:33;:::i;:::-;30874:2;30865:7;30861:16;30854:59;30947:43;30986:2;30979:5;30975:14;30947:43;:::i;:::-;30942:2;30933:7;30929:16;30922:69;31038:2;31031:5;31027:14;31014:28;-1:-1:-1;;;;;31057:6:127;31054:30;31051:50;;;31097:1;31094;31087:12;31051:50;31135:52;31172:14;31163:6;31156:5;31152:18;31135:52;:::i;:::-;31130:2;31121:7;31117:16;31110:78;;31223:35;31253:3;31246:5;31242:15;31223:35;:::i;:::-;31217:3;31208:7;31204:17;31197:62;31318:3;31311:5;31307:15;31294:29;31288:3;31279:7;31275:17;31268:56;31359:34;31388:3;31381:5;31377:15;31359:34;:::i;:::-;31353:3;31344:7;31340:17;31333:61;31429:34;31458:3;31451:5;31447:15;31429:34;:::i;:::-;31423:3;31410:17;;31403:61;31483:3;31533:14;;;31520:28;31502:16;;;31495:54;31568:3;31618:14;;;31605:28;31587:16;;;31580:54;;;;-1:-1:-1;31414:7:127;30550:1119::o;31674:558::-;31959:3;31948:9;31941:22;31922:4;31980:57;32032:3;32021:9;32017:19;32009:6;31980:57;:::i;:::-;31972:65;;32073:6;32068:2;32057:9;32053:18;32046:34;32116:6;32111:2;32100:9;32096:18;32089:34;32159:6;32154:2;32143:9;32139:18;32132:34;32217:6;32210:14;32203:22;32197:3;32186:9;32182:19;32175:51;31674:558;;;;;;;;:::o;32897:1501::-;33255:13;;33214:10;33251:22;;;33233:41;;33334:4;33322:17;;;33316:24;33312:33;;33290:20;;;33283:63;33393:4;33381:17;;;33375:24;8899:22;;33440:20;;;8887:35;33510:4;33498:17;;;33492:24;8899:22;;33559:20;;;8887:35;33629:4;33617:17;;;33611:24;8899:22;;;33678:20;;;8887:35;33191:3;33176:19;;;33644:55;33748:4;33740:6;33736:17;33730:24;33763:55;33812:4;33801:9;33797:20;33781:14;14185:8;14174:20;14162:33;;14109:92;33763:55;;33867:4;33859:6;33855:17;33849:24;33882:55;33931:4;33920:9;33916:20;33900:14;14185:8;14174:20;14162:33;;14109:92;33882:55;;33986:4;33978:6;33974:17;33968:24;34001:55;34050:4;34039:9;34035:20;34019:14;14185:8;14174:20;14162:33;;14109:92;34001:55;-1:-1:-1;34075:6:127;34118:15;;;34112:22;14185:8;14174:20;34177:18;;;14162:33;;;;4802:6;4791:18;;;;34246:3;34231:19;;4779:31;5084:13;;5077:21;34299:3;34284:19;;5065:34;34335:3;34320:19;;34313:35;34379:3;34364:19;;;34357:35;34313;32897:1501::o;36080:880::-;36175:6;36206:2;36249;36237:9;36228:7;36224:23;36220:32;36217:52;;;36265:1;36262;36255:12;36217:52;36298:9;36292:16;-1:-1:-1;;;;;36323:6:127;36320:30;36317:50;;;36363:1;36360;36353:12;36317:50;36386:22;;36439:4;36431:13;;36427:27;-1:-1:-1;36417:55:127;;36468:1;36465;36458:12;36417:55;36497:2;36491:9;36520:59;36536:42;36575:2;36536:42;:::i;36520:59::-;36613:15;;;36695:1;36691:10;;;;36683:19;;36679:28;;;36644:12;;;;36719:19;;;36716:39;;;36751:1;36748;36741:12;36716:39;36775:11;;;;36795:135;36811:6;36806:3;36803:15;36795:135;;;36877:10;;36865:23;;36828:12;;;;36908;;;;36795:135;;;36949:5;36080:880;-1:-1:-1;;;;;;;36080:880:127:o;36965:112::-;36997:1;37023;37013:35;;37028:18;;:::i;:::-;-1:-1:-1;37062:9:127;;36965:112::o;37809:175::-;37877:10;37920;;;37908;;;37904:27;;37943:12;;;37940:38;;;37958:18;;:::i;37989:249::-;38060:10;38102;;;38114;;;38098:27;38145:20;;;;38060:10;38184:24;;;38174:58;;38212:18;;:::i;:::-;38174:58;;37989:249;;;;:::o;38243:191::-;38282:1;38308:10;38345:2;38342:1;38338:10;38367:3;38357:37;;38374:18;;:::i;:::-;38412:10;;38408:20;;;;;38243:191;-1:-1:-1;;38243:191:127:o;38439:407::-;38641:2;38623:21;;;38680:2;38660:18;;;38653:30;38719:34;38714:2;38699:18;;38692:62;-1:-1:-1;;;38785:2:127;38770:18;;38763:41;38836:3;38821:19;;38439:407::o;38851:132::-;38927:13;;38949:28;38927:13;38949:28;:::i;38988:245::-;39055:6;39108:2;39096:9;39087:7;39083:23;39079:32;39076:52;;;39124:1;39121;39114:12;39076:52;39156:9;39150:16;39175:28;39197:5;39175:28;:::i;39238:652::-;39299:5;39352:3;39345:4;39337:6;39333:17;39329:27;39319:55;;39370:1;39367;39360:12;39319:55;39403:2;39397:9;39445:3;39437:6;39433:16;39515:6;39503:10;39500:22;-1:-1:-1;;;;;39467:10:127;39464:34;39461:62;39458:88;;;39526:18;;:::i;:::-;39562:2;39555:22;39597:6;39638:3;39626:16;;39654:15;;;39651:35;;;39682:1;39679;39672:12;39651:35;39706:6;39721:139;39737:6;39732:3;39729:15;39721:139;;;39805:10;;39793:23;;39845:4;39836:14;;;;39754;39721:139;;39895:1066;39966:5;40019:3;40012:4;40004:6;40000:17;39996:27;39986:55;;40037:1;40034;40027:12;39986:55;40066:6;40060:13;40092:4;40116:59;40132:42;40171:2;40132:42;:::i;40116:59::-;40209:15;;;40271:4;40314:11;;;40302:24;;40298:33;;;40240:12;;;;40197:3;40343:15;;;40340:35;;;40371:1;40368;40361:12;40340:35;40407:2;40399:6;40395:15;40419:513;40435:6;40430:3;40427:15;40419:513;;;40511:2;40505:3;40500;40496:13;40492:22;40489:112;;;40555:1;40584:2;40580;40573:14;40489:112;40627:22;;:::i;:::-;40683:3;40677:10;40700:33;40725:7;40700:33;:::i;:::-;40746:22;;40804:54;40854:3;40840:12;;;40804:54;:::i;:::-;40788:14;;;40781:78;40872:18;;40910:12;;;;40452;;40419:513;;;-1:-1:-1;40950:5:127;;39895:1066;-1:-1:-1;;;;;;;39895:1066:127:o;40966:733::-;41031:5;41084:3;41077:4;41069:6;41065:17;41061:27;41051:55;;41102:1;41099;41092:12;41051:55;41131:6;41125:13;41157:4;41181:59;41197:42;41236:2;41197:42;:::i;41181:59::-;41274:15;;;41360:1;41356:10;;;;41344:23;;41340:32;;;41305:12;;;;41384:15;;;41381:35;;;41412:1;41409;41402:12;41381:35;41448:2;41440:6;41436:15;41460:210;41476:6;41471:3;41468:15;41460:210;;;41549:3;41543:10;41566:31;41591:5;41566:31;:::i;:::-;41610:18;;41648:12;;;;41493;;41460:210;;41704:1994;41780:5;41833:3;41826:4;41818:6;41814:17;41810:27;41800:55;;41851:1;41848;41841:12;41800:55;41880:6;41874:13;41906:4;41930:59;41946:42;41985:2;41946:42;:::i;41930:59::-;42023:15;;;42109:1;42105:10;;;;42093:23;;42089:32;;;42054:12;;;;42133:15;;;42130:35;;;42161:1;42158;42151:12;42130:35;42197:2;42189:6;42185:15;42209:1460;42225:6;42220:3;42217:15;42209:1460;;;42304:3;42298:10;-1:-1:-1;;;;;42381:2:127;42368:11;42365:19;42362:39;;;42397:1;42394;42387:12;42362:39;42424:24;;;;42471:4;-1:-1:-1;;42529:12:127;;;42525:21;;42521:30;-1:-1:-1;42518:50:127;;;42564:1;42561;42554:12;42518:50;42594:22;;:::i;:::-;42659:2;42655;42651:11;42645:18;42692:2;42682:8;42679:16;42676:36;;;42708:1;42705;42698:12;42676:36;42739:72;42807:3;42802:2;42791:8;42787:2;42783:17;42779:26;42739:72;:::i;:::-;42732:5;42725:87;;42855:2;42851;42847:11;42841:18;42888:2;42878:8;42875:16;42872:36;;;42904:1;42901;42894:12;42872:36;42931:17;;;;;42991:4;42972:12;;;42968:21;;42964:32;42961:122;;;43037:1;43066:2;43062;43055:14;42961:122;43111:22;;:::i;:::-;43096:37;;43176:2;43172;43168:11;43162:18;43153:7;43146:35;43219:53;43268:3;43263:2;43259;43255:11;43219:53;:::i;:::-;43214:2;43205:7;43201:16;43194:79;43316:4;43312:2;43308:13;43302:20;43351:2;43341:8;43338:16;43335:106;;;43395:1;43424:2;43420;43413:14;43335:106;43479:72;43547:3;43542:2;43531:8;43527:2;43523:17;43519:26;43479:72;:::i;:::-;43461:16;;;43454:98;;;;43572:14;;;43565:31;;;;43609:18;;-1:-1:-1;;;43647:12:127;;;;42242;;42209:1460;;43703:1418;43797:6;43850:2;43838:9;43829:7;43825:23;43821:32;43818:52;;;43866:1;43863;43856:12;43818:52;43899:9;43893:16;-1:-1:-1;;;;;43969:2:127;43961:6;43958:14;43955:34;;;43985:1;43982;43975:12;43955:34;44008:22;;;;44064:6;44046:16;;;44042:29;44039:49;;;44084:1;44081;44074:12;44039:49;44110:22;;:::i;:::-;44161:2;44155:9;44148:5;44141:24;44211:2;44207;44203:11;44197:18;44192:2;44185:5;44181:14;44174:42;44262:2;44258;44254:11;44248:18;44243:2;44236:5;44232:14;44225:42;44313:2;44309;44305:11;44299:18;44294:2;44287:5;44283:14;44276:42;44357:3;44353:2;44349:12;44343:19;44387:2;44377:8;44374:16;44371:36;;;44403:1;44400;44393:12;44371:36;44440:73;44505:7;44494:8;44490:2;44486:17;44440:73;:::i;:::-;44434:3;44427:5;44423:15;44416:98;;44553:3;44549:2;44545:12;44539:19;44583:2;44573:8;44570:16;44567:36;;;44599:1;44596;44589:12;44567:36;44636:67;44695:7;44684:8;44680:2;44676:17;44636:67;:::i;:::-;44630:3;44623:5;44619:15;44612:92;;44743:3;44739:2;44735:12;44729:19;44773:2;44763:8;44760:16;44757:36;;;44789:1;44786;44779:12;44757:36;44826:78;44896:7;44885:8;44881:2;44877:17;44826:78;:::i;:::-;44820:3;44813:5;44809:15;44802:103;;44938:40;44973:3;44969:2;44965:12;44938:40;:::i;:::-;44932:3;44925:5;44921:15;44914:65;44998:3;44988:13;;45033:57;45082:7;45077:2;45073;45069:11;45033:57;:::i;:::-;45017:14;;;45010:81;;;;45021:5;43703:1418;-1:-1:-1;;;;43703:1418:127:o;45378:225::-;45533:2;45522:9;45515:21;45496:4;45553:44;45593:2;45582:9;45578:18;45570:6;45553:44;:::i;45608:600::-;45701:6;45754:2;45742:9;45733:7;45729:23;45725:32;45722:52;;;45770:1;45767;45760:12;45722:52;45819:7;45812:4;45801:9;45797:20;45793:34;45783:62;;45841:1;45838;45831:12;45783:62;45865:22;;:::i;:::-;45909:3;45950:2;45939:9;45935:18;45976:7;45968:6;45965:19;45962:39;;;45997:1;45994;45987:12;45962:39;46021:9;46039:139;46055:6;46050:3;46047:15;46039:139;;;46123:10;;46111:23;;46163:4;46154:14;;;;46072;46039:139;;;-1:-1:-1;46197:5:127;;45608:600;-1:-1:-1;;;;;45608:600:127:o;46213:351::-;46331:5;46354:1;46364:194;46378:4;46375:1;46372:11;46364:194;;;46437:13;;46425:26;;46474:4;46498:12;;;;46533:15;;;;46398:1;46391:9;46364:194;;46569:326;46662:5;46685:1;46695:194;46709:4;46706:1;46703:11;46695:194;;;46768:13;;46756:26;;46805:4;46829:12;;;;46864:15;;;;46729:1;46722:9;46695:194;;46900:571;47236:3;47221:19;;47249:68;47225:9;47299:6;47249:68;:::i;:::-;47326:52;47374:2;47363:9;47359:18;47351:6;47326:52;:::i;:::-;47387:78;47460:3;47449:9;47445:19;47437:6;47387:78;:::i;47476:1500::-;47899:3;47952:21;;;48022:13;;47925:18;;;48044:22;;;47870:4;;47899:3;48120:4;;48097:3;48082:19;;;48147:15;;;47870:4;48190:214;48204:6;48201:1;48198:13;48190:214;;;48253:69;48318:3;48309:6;48303:13;48253:69;:::i;:::-;48351:4;48342:14;;;;;48379:15;;;;48226:1;48219:9;48190:214;;;-1:-1:-1;;;48440:19:127;;;48420:18;;;48413:47;48510:13;;48532:21;;;48608:15;;;;48571:12;;;48643:1;48653:207;48669:8;48664:3;48661:17;48653:207;;;48724:48;48766:5;48755:8;48749:15;48724:48;:::i;:::-;48833:17;;;;48794:14;;;;48697:1;48688:11;48653:207;;;48657:3;;48877:5;48869:13;;;;;;48891:79;48964:4;48953:9;48949:20;48941:6;48891:79;:::i;49234:249::-;49303:6;49356:2;49344:9;49335:7;49331:23;49327:32;49324:52;;;49372:1;49369;49362:12;49324:52;49404:9;49398:16;49423:30;49447:5;49423:30;:::i;49488:703::-;49658:4;49706:2;49695:9;49691:18;49736:6;49725:9;49718:25;49762:2;49800;49795;49784:9;49780:18;49773:30;49823:6;49858;49852:13;49889:6;49881;49874:22;49927:2;49916:9;49912:18;49905:25;;49965:2;49957:6;49953:15;49939:29;;49986:1;49996:169;50010:6;50007:1;50004:13;49996:169;;;50071:13;;50059:26;;50140:15;;;;50105:12;;;;50032:1;50025:9;49996:169;;50196:183;-1:-1:-1;;;;;50315:10:127;;;50303;;;50299:27;;50338:12;;;50335:38;;;50353:18;;:::i;50384:403::-;50619:2;50608:9;50601:21;50582:4;50639:56;50691:2;50680:9;50676:18;50668:6;50639:56;:::i;:::-;50726:2;50711:18;;50704:34;;;;-1:-1:-1;50769:2:127;50754:18;50747:34;50631:64;50384:403;-1:-1:-1;50384:403:127:o;51206:136::-;51245:3;51273:5;51263:39;;51282:18;;:::i;:::-;-1:-1:-1;;;51318:18:127;;51206:136::o;51754:287::-;51883:3;51921:6;51915:13;51937:66;51996:6;51991:3;51984:4;51976:6;51972:17;51937:66;:::i;:::-;52019:16;;;;;51754:287;-1:-1:-1;;51754:287:127:o", "linkReferences": { "src/libraries/BLS.sol": { "BLS": [ { "start": 13415, "length": 20 }, { "start": 13781, "length": 20 }, { "start": 13889, "length": 20 }, { "start": 13915, "length": 20 }, { "start": 14422, "length": 20 }, { "start": 14602, "length": 20 }, { "start": 15010, "length": 20 } ] }, "src/libraries/ChainHelper.sol": { "ChainHelper": [ { "start": 5814, "length": 20 }, { "start": 10158, "length": 20 }, { "start": 17747, "length": 20 } ] } }, "immutableReferences": { "31587": [ { "start": 2807, "length": 32 }, { "start": 2880, "length": 32 }, { "start": 3036, "length": 32 }, { "start": 3100, "length": 32 }, { "start": 3247, "length": 32 } ] } }, "methodIdentifiers": { "DEFAULT_MINIMUM_THRESHOLD()": "aa81d59a", "MAX_CONSUMERS()": "64d51a2a", "MAX_REQUEST_CONFIRMATIONS()": "15c48b84", "RANDOMNESS_REWARD_GAS()": "8166d459", "VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD()": "877d38bb", "addConsumer(uint64,address)": "7341c10c", "cancelOvertimeRequest(bytes32,(uint64,uint32,uint8,bytes,address,uint256,uint16,uint32,uint256,uint256))": "d89f241f", "cancelSubscription(uint64,address)": "d7ae1d30", "createSubscription()": "a21a23e4", "estimatePaymentAmountInETH(uint32,uint32,uint32,uint256,uint32)": "a141bbd8", "fulfillRandomness(uint32,bytes32,uint256,(uint64,uint32,uint8,bytes,address,uint256,uint16,uint32,uint256,uint256),(uint256,uint256)[])": "caba5284", "fundSubscription(uint64)": "dfaba794", "getAdapterConfig()": "ef6f4273", "getController()": "3018205f", "getCumulativeData()": "c725a833", "getCurrentSubId()": "06bfa637", "getFeeTier(uint64)": "d2f9f9a7", "getFlatFeeConfig()": "dcdb7b88", "getLastAssignedGroupIndex()": "91a6fe77", "getLastRandomness()": "a4c343f2", "getLastSubscription(address)": "76a911bc", "getPendingRequestCommitment(bytes32)": "1565034c", "getRandomnessCount()": "63602174", "getReferralConfig()": "1e58a872", "getSubscription(uint64)": "a47c7696", "initialize(address)": "c4d66de8", "nodeWithdrawETH(address,uint256)": "0ad98f6a", "owner()": "8da5cb5b", "ownerCancelSubscription(uint64)": "02bcc5b6", "proxiableUUID()": "52d1902d", "removeConsumer(uint64,address)": "9f87fad7", "renounceOwnership()": "715018a6", "requestRandomness((uint8,bytes,uint64,uint256,uint16,uint32,uint256))": "a39402d7", "setAdapterConfig(uint16,uint32,uint32,uint32,uint256,uint256,uint256)": "71b7ca05", "setFlatFeeConfig((uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24),uint16,bool,uint256,uint256)": "f4cc97fc", "setFreeRequestCount(uint64[],uint64[])": "056e5ede", "setReferral(uint64,uint64)": "931d9204", "setReferralConfig(bool,uint16,uint16)": "f362ca61", "transferOwnership(address)": "f2fde38b", "upgradeTo(address)": "3659cfe6", "upgradeToAndCall(address,bytes)": "4f1ef286" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.18+commit.87f61d96\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AtLeastOneRequestIsRequired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyPartialSignatures\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"have\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"want\",\"type\":\"uint32\"}],\"name\":\"GasLimitTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"groupIndex\",\"type\":\"uint256\"}],\"name\":\"GroupNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IdenticalSubscription\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalanceWhenFulfill\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalanceWhenRequest\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"InvalidConsumer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPartialSignatureFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPartialSignatures\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidRequestByEOA\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"have\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"min\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"max\",\"type\":\"uint16\"}],\"name\":\"InvalidRequestConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignature\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignatureFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSubscription\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidZeroAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"MustBeSubOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoAvailableGroups\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoCorrespondingRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotFromCommitter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PendingRequestExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrant\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReferralPromotionDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RequestNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotController\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SubscriptionAlreadyHasReferral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TaskStillExclusive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TaskStillWithinRequestConfirmations\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyConsumers\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"minimumRequestConfirmations\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"maxGasLimit\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"gasAfterPaymentCalculation\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"gasExceptCallback\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"signatureTaskExclusiveWindow\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"rewardPerSignature\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"committerRewardPerSignature\",\"type\":\"uint256\"}],\"name\":\"AdapterConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier1\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier2\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier3\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier4\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier5\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier2\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier3\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier4\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier5\",\"type\":\"uint24\"}],\"indexed\":false,\"internalType\":\"struct IAdapterOwner.FeeConfig\",\"name\":\"flatFeeConfig\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"flatFeePromotionGlobalPercentage\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isFlatFeePromotionEnabledPermanently\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"flatFeePromotionStartTimestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"flatFeePromotionEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"FlatFeeConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"}],\"name\":\"OvertimeRequestCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"groupIndex\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"enum IRequestTypeBase.RequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"requestConfirmations\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"callbackMaxGasPrice\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"estimatedPayment\",\"type\":\"uint256\"}],\"name\":\"RandomnessRequest\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint32\",\"name\":\"groupIndex\",\"type\":\"uint32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"committer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"participantMembers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"randommness\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"payment\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"flatFee\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"name\":\"RandomnessRequestResult\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isReferralEnabled\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferrer\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferee\",\"type\":\"uint16\"}],\"name\":\"ReferralConfigSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"SubscriptionCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"SubscriptionConsumerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"SubscriptionConsumerRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"SubscriptionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldBalance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"SubscriptionFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"referralSubId\",\"type\":\"uint64\"}],\"name\":\"SubscriptionReferralSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_MINIMUM_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_CONSUMERS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_REQUEST_CONFIRMATIONS\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RANDOMNESS_REWARD_GAS\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"addConsumer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"groupIndex\",\"type\":\"uint32\"},{\"internalType\":\"enum IRequestTypeBase.RequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"callbackContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"requestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"callbackMaxGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNum\",\"type\":\"uint256\"}],\"internalType\":\"struct IAdapter.RequestDetail\",\"name\":\"requestDetail\",\"type\":\"tuple\"}],\"name\":\"cancelOvertimeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"cancelSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"createSubscription\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasExceptCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPM\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"weiPerUnitGas\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"groupSize\",\"type\":\"uint32\"}],\"name\":\"estimatePaymentAmountInETH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"groupIndex\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"signature\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"uint32\",\"name\":\"groupIndex\",\"type\":\"uint32\"},{\"internalType\":\"enum IRequestTypeBase.RequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"callbackContract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"requestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"callbackMaxGasPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockNum\",\"type\":\"uint256\"}],\"internalType\":\"struct IAdapter.RequestDetail\",\"name\":\"requestDetail\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"partialSignature\",\"type\":\"uint256\"}],\"internalType\":\"struct IAdapter.PartialSignature[]\",\"name\":\"partialSignatures\",\"type\":\"tuple[]\"}],\"name\":\"fulfillRandomness\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"}],\"name\":\"fundSubscription\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdapterConfig\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"minimumRequestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasAfterPaymentCalculation\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasExceptCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"signatureTaskExclusiveWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerSignature\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"committerRewardPerSignature\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCumulativeData\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSubId\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"reqCount\",\"type\":\"uint64\"}],\"name\":\"getFeeTier\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFlatFeeConfig\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPMTier1\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPMTier2\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPMTier3\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPMTier4\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeLinkPPMTier5\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier2\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier3\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier4\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier5\",\"type\":\"uint24\"},{\"internalType\":\"uint16\",\"name\":\"flatFeePromotionGlobalPercentage\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"isFlatFeePromotionEnabledPermanently\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"flatFeePromotionStartTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"flatFeePromotionEndTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastAssignedGroupIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastRandomness\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"getLastSubscription\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"}],\"name\":\"getPendingRequestCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRandomnessCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getReferralConfig\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isReferralEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferrer\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferee\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"}],\"name\":\"getSubscription\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"consumers\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"inflightCost\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"reqCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"freeRequestCount\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralSubId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"reqCountInCurrentPeriod\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"lastRequestTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"ethAmount\",\"type\":\"uint256\"}],\"name\":\"nodeWithdrawETH\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"}],\"name\":\"ownerCancelSubscription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"consumer\",\"type\":\"address\"}],\"name\":\"removeConsumer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"enum IRequestTypeBase.RequestType\",\"name\":\"requestType\",\"type\":\"uint8\"},{\"internalType\":\"bytes\",\"name\":\"params\",\"type\":\"bytes\"},{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"seed\",\"type\":\"uint256\"},{\"internalType\":\"uint16\",\"name\":\"requestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"callbackGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"callbackMaxGasPrice\",\"type\":\"uint256\"}],\"internalType\":\"struct IAdapter.RandomnessRequestParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"requestRandomness\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"minimumRequestConfirmations\",\"type\":\"uint16\"},{\"internalType\":\"uint32\",\"name\":\"maxGasLimit\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasAfterPaymentCalculation\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"gasExceptCallback\",\"type\":\"uint32\"},{\"internalType\":\"uint256\",\"name\":\"signatureTaskExclusiveWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rewardPerSignature\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"committerRewardPerSignature\",\"type\":\"uint256\"}],\"name\":\"setAdapterConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier1\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier2\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier3\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier4\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"fulfillmentFlatFeeEthPPMTier5\",\"type\":\"uint32\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier2\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier3\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier4\",\"type\":\"uint24\"},{\"internalType\":\"uint24\",\"name\":\"reqsForTier5\",\"type\":\"uint24\"}],\"internalType\":\"struct IAdapterOwner.FeeConfig\",\"name\":\"flatFeeConfig\",\"type\":\"tuple\"},{\"internalType\":\"uint16\",\"name\":\"flatFeePromotionGlobalPercentage\",\"type\":\"uint16\"},{\"internalType\":\"bool\",\"name\":\"isFlatFeePromotionEnabledPermanently\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"flatFeePromotionStartTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"flatFeePromotionEndTimestamp\",\"type\":\"uint256\"}],\"name\":\"setFlatFeeConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64[]\",\"name\":\"subIds\",\"type\":\"uint64[]\"},{\"internalType\":\"uint64[]\",\"name\":\"freeRequestCounts\",\"type\":\"uint64[]\"}],\"name\":\"setFreeRequestCount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"subId\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"referralSubId\",\"type\":\"uint64\"}],\"name\":\"setReferral\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"isReferralEnabled\",\"type\":\"bool\"},{\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferrer\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"freeRequestCountForReferee\",\"type\":\"uint16\"}],\"name\":\"setReferralConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"ownerCancelSubscription(uint64)\":{\"details\":\"notably can be called even if there are pending requests\",\"params\":{\"subId\":\"subscription id\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAdapterConfig(uint16,uint32,uint32,uint32,uint256,uint256,uint256)\":{\"params\":{\"committerRewardPerSignature\":\"reward per signature for the committer\",\"gasAfterPaymentCalculation\":\"gas used in doing accounting after completing the gas measurement\",\"maxGasLimit\":\"global max for request gas limit\",\"minimumRequestConfirmations\":\"global min for request confirmations\",\"rewardPerSignature\":\"reward per signature for every participating node\",\"signatureTaskExclusiveWindow\":\"window in which a signature task is exclusive to the assigned group\"}},\"setFlatFeeConfig((uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24),uint16,bool,uint256,uint256)\":{\"params\":{\"flatFeeConfig\":\"flat fee tier configuration\",\"flatFeePromotionEndTimestamp\":\"flat fee promotion end timestamp\",\"flatFeePromotionGlobalPercentage\":\"global percentage of flat fee promotion\",\"flatFeePromotionStartTimestamp\":\"flat fee promotion start timestamp\",\"isFlatFeePromotionEnabledPermanently\":\"whether flat fee promotion is enabled permanently\"}},\"setFreeRequestCount(uint64[],uint64[])\":{\"params\":{\"freeRequestCounts\":\"free request count for each subscription\",\"subIds\":\"subscription ids\"}},\"setReferralConfig(bool,uint16,uint16)\":{\"params\":{\"freeRequestCountForReferee\":\"free request count for referee\",\"freeRequestCountForReferrer\":\"free request count for referrer\",\"isReferralEnabled\":\"whether referral is enabled\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"ownerCancelSubscription(uint64)\":{\"notice\":\"Owner cancel subscription, sends remaining eth directly to the subscription owner\"},\"setAdapterConfig(uint16,uint32,uint32,uint32,uint256,uint256,uint256)\":{\"notice\":\"Sets the configuration of the adapter\"},\"setFlatFeeConfig((uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24),uint16,bool,uint256,uint256)\":{\"notice\":\"Sets the flat fee configuration of the adapter\"},\"setFreeRequestCount(uint64[],uint64[])\":{\"notice\":\"Sets free request count for subscriptions\"},\"setReferralConfig(bool,uint16,uint16)\":{\"notice\":\"Sets the referral configuration of the adapter\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Adapter.sol\":\"Adapter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":300},\"remappings\":[\":Staking-v0.1/=lib/Staking-v0.1/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a\",\"dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol\":{\"keccak256\":\"0xb8d68221343ed784c7b76edb6a686cb65e49c476d9e22bb89a5c0c3947ff14db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5badb66ffcbf3face237054083aaef757d4f3a56f47a35497f433a5bc93fb952\",\"dweb:/ipfs/Qmbw8k45NEQb5uF3KsqYTFeiG81PspKgnM2UM61iQxJ9FU\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol\":{\"keccak256\":\"0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053\",\"dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol\":{\"keccak256\":\"0x1599637b52d20dc3954cea44914b2a4a9a8a5caade58d9da947e0b6c9acc07ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3b6c04e928ac1e7660cde91b7bf5ae8cc0ded3b7a71fd11c832b67623b351ff\",\"dweb:/ipfs/QmSoZxP838eUa3guVb2LDRF2m7Uau7gxV6sgs5G3V8jdiu\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol\":{\"keccak256\":\"0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1\",\"dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618\",\"dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1\",\"dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol\":{\"keccak256\":\"0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3\",\"dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x00c839ff53d07d19db2e7cfa1e5133f9ee90a8d64b0e2e57f50446a2d1a3a0e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3dac621d015a68a5251b1e5d41dda0faf252699bf6e8bcf46a958b29964d9dd1\",\"dweb:/ipfs/QmP9axjgZv4cezAhALoTemM62sdLtMDJ9MGTxECnNwHgSJ\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0\",\"dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x41506aed9d344097236aaff05216674af38e177288787519d49b71f6396c4af8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://47a4a1d11e3e7c610b12da694f3d406527027e7963cfb7bf302af0b902615d7e\",\"dweb:/ipfs/QmeDwStpqytetvjaq7KA7cQRVPDwxmZySYdEXkvw2DDxsr\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71\",\"dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA\"]},\"src/Adapter.sol\":{\"keccak256\":\"0x3a203d97efc641f05a134e00b20125c0857228a9bbd1c542b06304d07668b89d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3575c5b4142e7e13182c36448b8dc622577f6c2a52ab7d402b94f320ee5d8b6d\",\"dweb:/ipfs/QmeDoVQpbXS8NRgXM96NvY422fz9zs6sG8krLxjkwaCCHP\"]},\"src/interfaces/IAdapter.sol\":{\"keccak256\":\"0xceaa9cd449a635bc914340206fff76d90323507f8c474619774d9c57d546476e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://63f0aee724f8341f7fd42e81585450091c50a6fd3d1e110161f35f9c91afd5c4\",\"dweb:/ipfs/QmNjqhTXGgxWzuCcCkGYw9LAxhmPvsGvdjkWCfBA6R4SbT\"]},\"src/interfaces/IAdapterOwner.sol\":{\"keccak256\":\"0x135ae0f91283cbc21153c609601028cc714a1d0c11a2f0d43af153ba8b744444\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://000e763c61a9216557f84f0554bea8d04f9dc8469e3d80b07e57c9599ccbf1ba\",\"dweb:/ipfs/QmZSvkK9K7BNaU2egzn4UHA7nNCgHtAXfMqPpqAAM89u9Q\"]},\"src/interfaces/IBasicRandcastConsumerBase.sol\":{\"keccak256\":\"0xcf19fecb7df9c8785a892f9d64dafe46ee72046ac14c85350d4784fab3a39564\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5ca61e1ba0b6fc780bdec67fc27931da0f23830882ba24179992687ba62ef0\",\"dweb:/ipfs/QmdognDHPBtXauje5UmAES7idN9VdJvnsRi1jbXU1j5emC\"]},\"src/interfaces/IController.sol\":{\"keccak256\":\"0xc13ad489556dea8bd56814d168b1450d95531c8ddd2671761f0f52298c62c610\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e7024c982917399ed0e826098a207ef2216d123a76d7e8532f04895f03dc5f3a\",\"dweb:/ipfs/QmTE7W5USBTUbi1EAwrqdtz9cr1Y4PkzewRnMJaZLTcNR9\"]},\"src/interfaces/IOPGasPriceOracle.sol\":{\"keccak256\":\"0x07952bc1b3adbc5b8e8cb5a88a8bc48c92992fd9a972d69195309ba19c047432\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://026e4bd5ae6b889fbe03d81bfb04f0f614a5dd44a254466a9ecbafd273c671a9\",\"dweb:/ipfs/QmfVgoJ94bJ7yQRVpWGvqsCXFj9ovtbAPQd3TLxZMxkBDD\"]},\"src/interfaces/IRequestTypeBase.sol\":{\"keccak256\":\"0x2deca9aac14fc3d57f9e51a8d2523fd775338ce0fda77706f282f0702bd1187b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd348830ba48d81bf30d17cff28b4fb72b35be724d2933aa565d5bfd0b65452b\",\"dweb:/ipfs/QmRrTeHSoEdAJABvu96AxhuXJbZcvxiZL6Roxosp53XggY\"]},\"src/libraries/BLS.sol\":{\"keccak256\":\"0x963cd923ec46eab814aec7ab47d02d4565625132482d0dc5db6424b6e795fbdf\",\"license\":\"LGPL 3.0\",\"urls\":[\"bzz-raw://75330a1732e52f73002115b1bf70232a3b5bddeb528562f77ea0a7484538f1f3\",\"dweb:/ipfs/QmPZKvA2eccQBCSL533UvthZDiybM89VRY29yBuLvKe4kP\"]},\"src/libraries/BN256G2.sol\":{\"keccak256\":\"0x7f86978b2856456f588d13dd0f2a1fa8116810427877742fb39c48ba248efd02\",\"license\":\"LGPL 3.0\",\"urls\":[\"bzz-raw://c223787ec2297ee90add7f1ec0ce19ba224231cb7faa0e935d7e61b3fca9f4f8\",\"dweb:/ipfs/QmUDApHuPsYXoxYr7gGezY1mUR9ZXQ1cPSUhuWuDwrH4bA\"]},\"src/libraries/ChainHelper.sol\":{\"keccak256\":\"0xc5ce227fd6dfc3513d9e4bd61404b852a3e71c96fcc545209eb49db0e4befe5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e276f8bffef134b116c84cd3abbfb00e92614ff7a77db4c71cd7366a1b6fa05d\",\"dweb:/ipfs/Qmb6hWEdHXzmkuptKb7gib8ns7xGnRofTQ3XnNSXn6joL9\"]},\"src/utils/RequestIdBase.sol\":{\"keccak256\":\"0x56a342fc2888f53a93ecd62bc0188f1c07f5668c20334299525e71715ac34549\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d92d65bad76524de8bbbc8295cf116fc8b0c83f181f3f4a4fb9b840593b0c580\",\"dweb:/ipfs/QmUE8jF9aqFxdnhvbjmfpsWiX83WoyJVnrZdgAqf9hQhvj\"]},\"src/utils/Utils.sol\":{\"keccak256\":\"0xe05016ecdcd551da8ca90a10160324daa73b7f23737478bfba40df2ae24476c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b644c37646f88489512f0003b8c4eee497a25df6e9a8fa02870c6c89c85fbd01\",\"dweb:/ipfs/QmVeNDMUHDy5i7H1fsnBZoGm2g3jizYtxvihwMoi9TMwaK\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.18+commit.87f61d96" }, "language": "Solidity", "output": { "abi": [ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "type": "error", "name": "AtLeastOneRequestIsRequired" }, { "inputs": [], "type": "error", "name": "EmptyPartialSignatures" }, { "inputs": [ { "internalType": "uint32", "name": "have", "type": "uint32" }, { "internalType": "uint32", "name": "want", "type": "uint32" } ], "type": "error", "name": "GasLimitTooBig" }, { "inputs": [ { "internalType": "uint256", "name": "groupIndex", "type": "uint256" } ], "type": "error", "name": "GroupNotExist" }, { "inputs": [], "type": "error", "name": "IdenticalSubscription" }, { "inputs": [], "type": "error", "name": "IncorrectCommitment" }, { "inputs": [], "type": "error", "name": "InsufficientBalanceWhenFulfill" }, { "inputs": [], "type": "error", "name": "InsufficientBalanceWhenRequest" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "type": "error", "name": "InvalidConsumer" }, { "inputs": [], "type": "error", "name": "InvalidPartialSignatureFormat" }, { "inputs": [], "type": "error", "name": "InvalidPartialSignatures" }, { "inputs": [], "type": "error", "name": "InvalidRequestByEOA" }, { "inputs": [ { "internalType": "uint16", "name": "have", "type": "uint16" }, { "internalType": "uint16", "name": "min", "type": "uint16" }, { "internalType": "uint16", "name": "max", "type": "uint16" } ], "type": "error", "name": "InvalidRequestConfirmations" }, { "inputs": [], "type": "error", "name": "InvalidSignature" }, { "inputs": [], "type": "error", "name": "InvalidSignatureFormat" }, { "inputs": [], "type": "error", "name": "InvalidSubscription" }, { "inputs": [], "type": "error", "name": "InvalidZeroAddress" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "type": "error", "name": "MustBeSubOwner" }, { "inputs": [], "type": "error", "name": "NoAvailableGroups" }, { "inputs": [], "type": "error", "name": "NoCorrespondingRequest" }, { "inputs": [], "type": "error", "name": "NotFromCommitter" }, { "inputs": [], "type": "error", "name": "PendingRequestExists" }, { "inputs": [], "type": "error", "name": "Reentrant" }, { "inputs": [], "type": "error", "name": "ReferralPromotionDisabled" }, { "inputs": [], "type": "error", "name": "RequestNotExpired" }, { "inputs": [], "type": "error", "name": "SenderNotController" }, { "inputs": [], "type": "error", "name": "SubscriptionAlreadyHasReferral" }, { "inputs": [], "type": "error", "name": "TaskStillExclusive" }, { "inputs": [], "type": "error", "name": "TaskStillWithinRequestConfirmations" }, { "inputs": [], "type": "error", "name": "TooManyConsumers" }, { "inputs": [ { "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16", "indexed": false }, { "internalType": "uint32", "name": "maxGasLimit", "type": "uint32", "indexed": false }, { "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32", "indexed": false }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32", "indexed": false }, { "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256", "indexed": false } ], "type": "event", "name": "AdapterConfigSet", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "previousAdmin", "type": "address", "indexed": false }, { "internalType": "address", "name": "newAdmin", "type": "address", "indexed": false } ], "type": "event", "name": "AdminChanged", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "beacon", "type": "address", "indexed": true } ], "type": "event", "name": "BeaconUpgraded", "anonymous": false }, { "inputs": [ { "internalType": "struct IAdapterOwner.FeeConfig", "name": "flatFeeConfig", "type": "tuple", "components": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" } ], "indexed": false }, { "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16", "indexed": false }, { "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool", "indexed": false }, { "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256", "indexed": false } ], "type": "event", "name": "FlatFeeConfigSet", "anonymous": false }, { "inputs": [ { "internalType": "uint8", "name": "version", "type": "uint8", "indexed": false } ], "type": "event", "name": "Initialized", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32", "indexed": true }, { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true } ], "type": "event", "name": "OvertimeRequestCanceled", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "previousOwner", "type": "address", "indexed": true }, { "internalType": "address", "name": "newOwner", "type": "address", "indexed": true } ], "type": "event", "name": "OwnershipTransferred", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32", "indexed": true }, { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32", "indexed": true }, { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8", "indexed": false }, { "internalType": "bytes", "name": "params", "type": "bytes", "indexed": false }, { "internalType": "address", "name": "sender", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "seed", "type": "uint256", "indexed": false }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16", "indexed": false }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32", "indexed": false }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "estimatedPayment", "type": "uint256", "indexed": false } ], "type": "event", "name": "RandomnessRequest", "anonymous": false }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32", "indexed": true }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32", "indexed": true }, { "internalType": "address", "name": "committer", "type": "address", "indexed": true }, { "internalType": "address[]", "name": "participantMembers", "type": "address[]", "indexed": false }, { "internalType": "uint256", "name": "randommness", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "payment", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "flatFee", "type": "uint256", "indexed": false }, { "internalType": "bool", "name": "success", "type": "bool", "indexed": false } ], "type": "event", "name": "RandomnessRequestResult", "anonymous": false }, { "inputs": [ { "internalType": "bool", "name": "isReferralEnabled", "type": "bool", "indexed": false }, { "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16", "indexed": false }, { "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16", "indexed": false } ], "type": "event", "name": "ReferralConfigSet", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "address", "name": "to", "type": "address", "indexed": false }, { "internalType": "uint256", "name": "amount", "type": "uint256", "indexed": false } ], "type": "event", "name": "SubscriptionCanceled", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "address", "name": "consumer", "type": "address", "indexed": false } ], "type": "event", "name": "SubscriptionConsumerAdded", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "address", "name": "consumer", "type": "address", "indexed": false } ], "type": "event", "name": "SubscriptionConsumerRemoved", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "address", "name": "owner", "type": "address", "indexed": true } ], "type": "event", "name": "SubscriptionCreated", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "uint256", "name": "oldBalance", "type": "uint256", "indexed": false }, { "internalType": "uint256", "name": "newBalance", "type": "uint256", "indexed": false } ], "type": "event", "name": "SubscriptionFunded", "anonymous": false }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64", "indexed": true }, { "internalType": "uint64", "name": "referralSubId", "type": "uint64", "indexed": true } ], "type": "event", "name": "SubscriptionReferralSet", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "implementation", "type": "address", "indexed": true } ], "type": "event", "name": "Upgraded", "anonymous": false }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "DEFAULT_MINIMUM_THRESHOLD", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "MAX_CONSUMERS", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "MAX_REQUEST_CONFIRMATIONS", "outputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "RANDOMNESS_REWARD_GAS", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ] }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "addConsumer" }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "internalType": "struct IAdapter.RequestDetail", "name": "requestDetail", "type": "tuple", "components": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "address", "name": "callbackContract", "type": "address" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "blockNum", "type": "uint256" } ] } ], "stateMutability": "nonpayable", "type": "function", "name": "cancelOvertimeRequest" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "to", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "cancelSubscription" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "createSubscription", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ] }, { "inputs": [ { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPM", "type": "uint32" }, { "internalType": "uint256", "name": "weiPerUnitGas", "type": "uint256" }, { "internalType": "uint32", "name": "groupSize", "type": "uint32" } ], "stateMutability": "view", "type": "function", "name": "estimatePaymentAmountInETH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "bytes32", "name": "requestId", "type": "bytes32" }, { "internalType": "uint256", "name": "signature", "type": "uint256" }, { "internalType": "struct IAdapter.RequestDetail", "name": "requestDetail", "type": "tuple", "components": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint32", "name": "groupIndex", "type": "uint32" }, { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "address", "name": "callbackContract", "type": "address" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" }, { "internalType": "uint256", "name": "blockNum", "type": "uint256" } ] }, { "internalType": "struct IAdapter.PartialSignature[]", "name": "partialSignatures", "type": "tuple[]", "components": [ { "internalType": "uint256", "name": "index", "type": "uint256" }, { "internalType": "uint256", "name": "partialSignature", "type": "uint256" } ] } ], "stateMutability": "nonpayable", "type": "function", "name": "fulfillRandomness" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "stateMutability": "payable", "type": "function", "name": "fundSubscription" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getAdapterConfig", "outputs": [ { "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "maxGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256" }, { "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getController", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getCumulativeData", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getCurrentSubId", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ] }, { "inputs": [ { "internalType": "uint64", "name": "reqCount", "type": "uint64" } ], "stateMutability": "view", "type": "function", "name": "getFeeTier", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getFlatFeeConfig", "outputs": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeLinkPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" }, { "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16" }, { "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool" }, { "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getLastAssignedGroupIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getLastRandomness", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "address", "name": "consumer", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "getLastSubscription", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ] }, { "inputs": [ { "internalType": "bytes32", "name": "requestId", "type": "bytes32" } ], "stateMutability": "view", "type": "function", "name": "getPendingRequestCommitment", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getRandomnessCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "getReferralConfig", "outputs": [ { "internalType": "bool", "name": "isReferralEnabled", "type": "bool" }, { "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16" }, { "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16" } ] }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "stateMutability": "view", "type": "function", "name": "getSubscription", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address[]", "name": "consumers", "type": "address[]" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "inflightCost", "type": "uint256" }, { "internalType": "uint64", "name": "reqCount", "type": "uint64" }, { "internalType": "uint64", "name": "freeRequestCount", "type": "uint64" }, { "internalType": "uint64", "name": "referralSubId", "type": "uint64" }, { "internalType": "uint64", "name": "reqCountInCurrentPeriod", "type": "uint64" }, { "internalType": "uint256", "name": "lastRequestTimestamp", "type": "uint256" } ] }, { "inputs": [ { "internalType": "address", "name": "controller", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "initialize" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "ethAmount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "nodeWithdrawETH" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "function", "name": "ownerCancelSubscription" }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "address", "name": "consumer", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "removeConsumer" }, { "inputs": [], "stateMutability": "nonpayable", "type": "function", "name": "renounceOwnership" }, { "inputs": [ { "internalType": "struct IAdapter.RandomnessRequestParams", "name": "params", "type": "tuple", "components": [ { "internalType": "enum IRequestTypeBase.RequestType", "name": "requestType", "type": "uint8" }, { "internalType": "bytes", "name": "params", "type": "bytes" }, { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint256", "name": "seed", "type": "uint256" }, { "internalType": "uint16", "name": "requestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "callbackGasLimit", "type": "uint32" }, { "internalType": "uint256", "name": "callbackMaxGasPrice", "type": "uint256" } ] } ], "stateMutability": "nonpayable", "type": "function", "name": "requestRandomness", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ] }, { "inputs": [ { "internalType": "uint16", "name": "minimumRequestConfirmations", "type": "uint16" }, { "internalType": "uint32", "name": "maxGasLimit", "type": "uint32" }, { "internalType": "uint32", "name": "gasAfterPaymentCalculation", "type": "uint32" }, { "internalType": "uint32", "name": "gasExceptCallback", "type": "uint32" }, { "internalType": "uint256", "name": "signatureTaskExclusiveWindow", "type": "uint256" }, { "internalType": "uint256", "name": "rewardPerSignature", "type": "uint256" }, { "internalType": "uint256", "name": "committerRewardPerSignature", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "setAdapterConfig" }, { "inputs": [ { "internalType": "struct IAdapterOwner.FeeConfig", "name": "flatFeeConfig", "type": "tuple", "components": [ { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier1", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier2", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier3", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier4", "type": "uint32" }, { "internalType": "uint32", "name": "fulfillmentFlatFeeEthPPMTier5", "type": "uint32" }, { "internalType": "uint24", "name": "reqsForTier2", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier3", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier4", "type": "uint24" }, { "internalType": "uint24", "name": "reqsForTier5", "type": "uint24" } ] }, { "internalType": "uint16", "name": "flatFeePromotionGlobalPercentage", "type": "uint16" }, { "internalType": "bool", "name": "isFlatFeePromotionEnabledPermanently", "type": "bool" }, { "internalType": "uint256", "name": "flatFeePromotionStartTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "flatFeePromotionEndTimestamp", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "setFlatFeeConfig" }, { "inputs": [ { "internalType": "uint64[]", "name": "subIds", "type": "uint64[]" }, { "internalType": "uint64[]", "name": "freeRequestCounts", "type": "uint64[]" } ], "stateMutability": "nonpayable", "type": "function", "name": "setFreeRequestCount" }, { "inputs": [ { "internalType": "uint64", "name": "subId", "type": "uint64" }, { "internalType": "uint64", "name": "referralSubId", "type": "uint64" } ], "stateMutability": "nonpayable", "type": "function", "name": "setReferral" }, { "inputs": [ { "internalType": "bool", "name": "isReferralEnabled", "type": "bool" }, { "internalType": "uint16", "name": "freeRequestCountForReferrer", "type": "uint16" }, { "internalType": "uint16", "name": "freeRequestCountForReferee", "type": "uint16" } ], "stateMutability": "nonpayable", "type": "function", "name": "setReferralConfig" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferOwnership" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "stateMutability": "nonpayable", "type": "function", "name": "upgradeTo" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "stateMutability": "payable", "type": "function", "name": "upgradeToAndCall" } ], "devdoc": { "kind": "dev", "methods": { "constructor": { "custom:oz-upgrades-unsafe-allow": "constructor" }, "owner()": { "details": "Returns the address of the current owner." }, "ownerCancelSubscription(uint64)": { "details": "notably can be called even if there are pending requests", "params": { "subId": "subscription id" } }, "proxiableUUID()": { "details": "Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier." }, "renounceOwnership()": { "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." }, "setAdapterConfig(uint16,uint32,uint32,uint32,uint256,uint256,uint256)": { "params": { "committerRewardPerSignature": "reward per signature for the committer", "gasAfterPaymentCalculation": "gas used in doing accounting after completing the gas measurement", "maxGasLimit": "global max for request gas limit", "minimumRequestConfirmations": "global min for request confirmations", "rewardPerSignature": "reward per signature for every participating node", "signatureTaskExclusiveWindow": "window in which a signature task is exclusive to the assigned group" } }, "setFlatFeeConfig((uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24),uint16,bool,uint256,uint256)": { "params": { "flatFeeConfig": "flat fee tier configuration", "flatFeePromotionEndTimestamp": "flat fee promotion end timestamp", "flatFeePromotionGlobalPercentage": "global percentage of flat fee promotion", "flatFeePromotionStartTimestamp": "flat fee promotion start timestamp", "isFlatFeePromotionEnabledPermanently": "whether flat fee promotion is enabled permanently" } }, "setFreeRequestCount(uint64[],uint64[])": { "params": { "freeRequestCounts": "free request count for each subscription", "subIds": "subscription ids" } }, "setReferralConfig(bool,uint16,uint16)": { "params": { "freeRequestCountForReferee": "free request count for referee", "freeRequestCountForReferrer": "free request count for referrer", "isReferralEnabled": "whether referral is enabled" } }, "transferOwnership(address)": { "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." }, "upgradeTo(address)": { "details": "Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." }, "upgradeToAndCall(address,bytes)": { "details": "Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": { "ownerCancelSubscription(uint64)": { "notice": "Owner cancel subscription, sends remaining eth directly to the subscription owner" }, "setAdapterConfig(uint16,uint32,uint32,uint32,uint256,uint256,uint256)": { "notice": "Sets the configuration of the adapter" }, "setFlatFeeConfig((uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24),uint16,bool,uint256,uint256)": { "notice": "Sets the flat fee configuration of the adapter" }, "setFreeRequestCount(uint64[],uint64[])": { "notice": "Sets free request count for subscriptions" }, "setReferralConfig(bool,uint16,uint16)": { "notice": "Sets the referral configuration of the adapter" } }, "version": 1 } }, "settings": { "remappings": [ ":Staking-v0.1/=lib/Staking-v0.1/src/", ":ds-test/=lib/forge-std/lib/ds-test/src/", ":forge-std/=lib/forge-std/src/", ":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/", ":openzeppelin-contracts/=lib/openzeppelin-contracts/" ], "optimizer": { "enabled": true, "runs": 300 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "src/Adapter.sol": "Adapter" }, "libraries": {} }, "sources": { "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol": { "keccak256": "0x247c62047745915c0af6b955470a72d1696ebad4352d7d3011aef1a2463cd888", "urls": [ "bzz-raw://d7fc8396619de513c96b6e00301b88dd790e83542aab918425633a5f7297a15a", "dweb:/ipfs/QmXbP4kiZyp7guuS7xe8KaybnwkRPGrBc2Kbi3vhcTfpxb" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/IERC1967Upgradeable.sol": { "keccak256": "0xb8d68221343ed784c7b76edb6a686cb65e49c476d9e22bb89a5c0c3947ff14db", "urls": [ "bzz-raw://5badb66ffcbf3face237054083aaef757d4f3a56f47a35497f433a5bc93fb952", "dweb:/ipfs/Qmbw8k45NEQb5uF3KsqYTFeiG81PspKgnM2UM61iQxJ9FU" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/interfaces/draft-IERC1822Upgradeable.sol": { "keccak256": "0x77c89f893e403efc6929ba842b7ccf6534d4ffe03afe31670b4a528c0ad78c0f", "urls": [ "bzz-raw://496bd9b3df2455d571018c09f0c6badd29713fdeb907c6aa09d8d28cb603f053", "dweb:/ipfs/QmXdJDyYs6WMwMh21dez2BYPxhSUaUYFMDtVNcn2cgFR79" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/ERC1967/ERC1967UpgradeUpgradeable.sol": { "keccak256": "0x1599637b52d20dc3954cea44914b2a4a9a8a5caade58d9da947e0b6c9acc07ba", "urls": [ "bzz-raw://f3b6c04e928ac1e7660cde91b7bf5ae8cc0ded3b7a71fd11c832b67623b351ff", "dweb:/ipfs/QmSoZxP838eUa3guVb2LDRF2m7Uau7gxV6sgs5G3V8jdiu" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/beacon/IBeaconUpgradeable.sol": { "keccak256": "0x24b86ac8c005b8c654fbf6ac34a5a4f61580d7273541e83e013e89d66fbf0908", "urls": [ "bzz-raw://4dbfe1a3b3b3fb64294ce41fd2ad362e7b7012208117864f42c1a67620a6d5c1", "dweb:/ipfs/QmVMU5tWt7zBQMmf5cpMX8UMHV86T3kFeTxBTBjFqVWfoJ" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": { "keccak256": "0x037c334add4b033ad3493038c25be1682d78c00992e1acb0e2795caff3925271", "urls": [ "bzz-raw://8a313cf42389440e2706837c91370323b85971c06afd6d056d21e2bc86459618", "dweb:/ipfs/QmT8XUrUvQ9aZaPKrqgRU2JVGWnaxBcUYJA7Q7K5KcLBSZ" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol": { "keccak256": "0x7967d130887c4b40666cd88f8744691d4527039a1b2a38aa0de41481ef646778", "urls": [ "bzz-raw://40e60cbf0e2efede4d9c169e66336a64615af7b719a896ef1f37ae8cd4614ec1", "dweb:/ipfs/QmYNiwY22ifhfa8yK6mLCEKfj39caYUHLqe2VBtzDnvdsV" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": { "keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183", "urls": [ "bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06", "dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": { "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149", "urls": [ "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c", "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a" ], "license": "MIT" }, "lib/openzeppelin-contracts-upgradeable/contracts/utils/StorageSlotUpgradeable.sol": { "keccak256": "0x09864aea84f01e39313375b5610c73a3c1c68abbdc51e5ccdd25ff977fdadf9a", "urls": [ "bzz-raw://aedb48081190fa828d243529ce25c708202c7d4ccfe99f0e4ecd6bc0cfcd03f3", "dweb:/ipfs/QmWyiDQHPZA56iqsAwTmiJoxvNeRQLUVr4gTfzpdpXivpo" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol": { "keccak256": "0x00c839ff53d07d19db2e7cfa1e5133f9ee90a8d64b0e2e57f50446a2d1a3a0e0", "urls": [ "bzz-raw://3dac621d015a68a5251b1e5d41dda0faf252699bf6e8bcf46a958b29964d9dd1", "dweb:/ipfs/QmP9axjgZv4cezAhALoTemM62sdLtMDJ9MGTxECnNwHgSJ" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol": { "keccak256": "0x35e258421ae206f3db37281cea70871b4c3553914734aa76139a41af60ac1abb", "urls": [ "bzz-raw://2ef94b6bc4ee356db612a1849c615f7dd4b15542d6c8584c86bb9243a7913cf0", "dweb:/ipfs/QmaxFj5NFpAjjitZtHPNS9PPtCuBATaRz9ktDDRCQCQ83y" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol": { "keccak256": "0x41506aed9d344097236aaff05216674af38e177288787519d49b71f6396c4af8", "urls": [ "bzz-raw://47a4a1d11e3e7c610b12da694f3d406527027e7963cfb7bf302af0b902615d7e", "dweb:/ipfs/QmeDwStpqytetvjaq7KA7cQRVPDwxmZySYdEXkvw2DDxsr" ], "license": "MIT" }, "lib/openzeppelin-contracts/contracts/utils/Address.sol": { "keccak256": "0x2e53602b96c1bf97c731ed3e2a981b4f85e23a9410a5ebd36e549a4cc93340dc", "urls": [ "bzz-raw://523f47b3ecc6d4e47b4b998d3356199988eef8a42a10dff5a3660d5f9e76cc71", "dweb:/ipfs/QmRLH8CNvDsuLzNCjsbpLM3RHD9he5ESXroYoDT3tpaTCA" ], "license": "MIT" }, "src/Adapter.sol": { "keccak256": "0x3a203d97efc641f05a134e00b20125c0857228a9bbd1c542b06304d07668b89d", "urls": [ "bzz-raw://3575c5b4142e7e13182c36448b8dc622577f6c2a52ab7d402b94f320ee5d8b6d", "dweb:/ipfs/QmeDoVQpbXS8NRgXM96NvY422fz9zs6sG8krLxjkwaCCHP" ], "license": "MIT" }, "src/interfaces/IAdapter.sol": { "keccak256": "0xceaa9cd449a635bc914340206fff76d90323507f8c474619774d9c57d546476e", "urls": [ "bzz-raw://63f0aee724f8341f7fd42e81585450091c50a6fd3d1e110161f35f9c91afd5c4", "dweb:/ipfs/QmNjqhTXGgxWzuCcCkGYw9LAxhmPvsGvdjkWCfBA6R4SbT" ], "license": "MIT" }, "src/interfaces/IAdapterOwner.sol": { "keccak256": "0x135ae0f91283cbc21153c609601028cc714a1d0c11a2f0d43af153ba8b744444", "urls": [ "bzz-raw://000e763c61a9216557f84f0554bea8d04f9dc8469e3d80b07e57c9599ccbf1ba", "dweb:/ipfs/QmZSvkK9K7BNaU2egzn4UHA7nNCgHtAXfMqPpqAAM89u9Q" ], "license": "MIT" }, "src/interfaces/IBasicRandcastConsumerBase.sol": { "keccak256": "0xcf19fecb7df9c8785a892f9d64dafe46ee72046ac14c85350d4784fab3a39564", "urls": [ "bzz-raw://bc5ca61e1ba0b6fc780bdec67fc27931da0f23830882ba24179992687ba62ef0", "dweb:/ipfs/QmdognDHPBtXauje5UmAES7idN9VdJvnsRi1jbXU1j5emC" ], "license": "MIT" }, "src/interfaces/IController.sol": { "keccak256": "0xc13ad489556dea8bd56814d168b1450d95531c8ddd2671761f0f52298c62c610", "urls": [ "bzz-raw://e7024c982917399ed0e826098a207ef2216d123a76d7e8532f04895f03dc5f3a", "dweb:/ipfs/QmTE7W5USBTUbi1EAwrqdtz9cr1Y4PkzewRnMJaZLTcNR9" ], "license": "MIT" }, "src/interfaces/IOPGasPriceOracle.sol": { "keccak256": "0x07952bc1b3adbc5b8e8cb5a88a8bc48c92992fd9a972d69195309ba19c047432", "urls": [ "bzz-raw://026e4bd5ae6b889fbe03d81bfb04f0f614a5dd44a254466a9ecbafd273c671a9", "dweb:/ipfs/QmfVgoJ94bJ7yQRVpWGvqsCXFj9ovtbAPQd3TLxZMxkBDD" ], "license": "MIT" }, "src/interfaces/IRequestTypeBase.sol": { "keccak256": "0x2deca9aac14fc3d57f9e51a8d2523fd775338ce0fda77706f282f0702bd1187b", "urls": [ "bzz-raw://fd348830ba48d81bf30d17cff28b4fb72b35be724d2933aa565d5bfd0b65452b", "dweb:/ipfs/QmRrTeHSoEdAJABvu96AxhuXJbZcvxiZL6Roxosp53XggY" ], "license": "MIT" }, "src/libraries/BLS.sol": { "keccak256": "0x963cd923ec46eab814aec7ab47d02d4565625132482d0dc5db6424b6e795fbdf", "urls": [ "bzz-raw://75330a1732e52f73002115b1bf70232a3b5bddeb528562f77ea0a7484538f1f3", "dweb:/ipfs/QmPZKvA2eccQBCSL533UvthZDiybM89VRY29yBuLvKe4kP" ], "license": "LGPL 3.0" }, "src/libraries/BN256G2.sol": { "keccak256": "0x7f86978b2856456f588d13dd0f2a1fa8116810427877742fb39c48ba248efd02", "urls": [ "bzz-raw://c223787ec2297ee90add7f1ec0ce19ba224231cb7faa0e935d7e61b3fca9f4f8", "dweb:/ipfs/QmUDApHuPsYXoxYr7gGezY1mUR9ZXQ1cPSUhuWuDwrH4bA" ], "license": "LGPL 3.0" }, "src/libraries/ChainHelper.sol": { "keccak256": "0xc5ce227fd6dfc3513d9e4bd61404b852a3e71c96fcc545209eb49db0e4befe5c", "urls": [ "bzz-raw://e276f8bffef134b116c84cd3abbfb00e92614ff7a77db4c71cd7366a1b6fa05d", "dweb:/ipfs/Qmb6hWEdHXzmkuptKb7gib8ns7xGnRofTQ3XnNSXn6joL9" ], "license": "MIT" }, "src/utils/RequestIdBase.sol": { "keccak256": "0x56a342fc2888f53a93ecd62bc0188f1c07f5668c20334299525e71715ac34549", "urls": [ "bzz-raw://d92d65bad76524de8bbbc8295cf116fc8b0c83f181f3f4a4fb9b840593b0c580", "dweb:/ipfs/QmUE8jF9aqFxdnhvbjmfpsWiX83WoyJVnrZdgAqf9hQhvj" ], "license": "MIT" }, "src/utils/Utils.sol": { "keccak256": "0xe05016ecdcd551da8ca90a10160324daa73b7f23737478bfba40df2ae24476c1", "urls": [ "bzz-raw://b644c37646f88489512f0003b8c4eee497a25df6e9a8fa02870c6c89c85fbd01", "dweb:/ipfs/QmVeNDMUHDy5i7H1fsnBZoGm2g3jizYtxvihwMoi9TMwaK" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "src/Adapter.sol", "id": 41182, "exportedSymbols": { "Adapter": [ 41181 ], "Address": [ 34066 ], "BLS": [ 46645 ], "ChainHelper": [ 48402 ], "IAdapter": [ 45294 ], "IAdapterOwner": [ 45411 ], "IBasicRandcastConsumerBase": [ 45437 ], "IController": [ 45689 ], "IERC20": [ 33394 ], "OwnableUpgradeable": [ 30991 ], "RequestIdBase": [ 52265 ], "SafeERC20": [ 33736 ], "UUPSUpgradeable": [ 31692 ], "Utils": [ 38363 ] }, "nodeType": "SourceUnit", "src": "32:38308:71", "nodes": [ { "id": 38341, "nodeType": "PragmaDirective", "src": "32:24:71", "nodes": [], "literals": [ "solidity", "^", "0.8", ".18" ] }, { "id": 38343, "nodeType": "ImportDirective", "src": "58:79:71", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "file": "openzeppelin-contracts/contracts/token/ERC20/IERC20.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 33395, "symbolAliases": [ { "foreign": { "id": 38342, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33394, "src": "66:6:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38346, "nodeType": "ImportDirective", "src": "138:100:71", "nodes": [], "absolutePath": "lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol", "file": "openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 33737, "symbolAliases": [ { "foreign": { "id": 38344, "name": "SafeERC20", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 33736, "src": "146:9:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" }, { "foreign": { "id": 38345, "name": "Address", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 34066, "src": "157:7:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38348, "nodeType": "ImportDirective", "src": "239:110:71", "nodes": [], "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", "file": "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 30992, "symbolAliases": [ { "foreign": { "id": 38347, "name": "OwnableUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30991, "src": "247:18:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38350, "nodeType": "ImportDirective", "src": "350:109:71", "nodes": [], "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", "file": "openzeppelin-contracts-upgradeable/contracts/proxy/utils/UUPSUpgradeable.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 31693, "symbolAliases": [ { "foreign": { "id": 38349, "name": "UUPSUpgradeable", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 31692, "src": "358:15:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38352, "nodeType": "ImportDirective", "src": "460:51:71", "nodes": [], "absolutePath": "src/interfaces/IAdapter.sol", "file": "./interfaces/IAdapter.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 45295, "symbolAliases": [ { "foreign": { "id": 38351, "name": "IAdapter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45294, "src": "468:8:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38354, "nodeType": "ImportDirective", "src": "512:61:71", "nodes": [], "absolutePath": "src/interfaces/IAdapterOwner.sol", "file": "./interfaces/IAdapterOwner.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 45412, "symbolAliases": [ { "foreign": { "id": 38353, "name": "IAdapterOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45411, "src": "520:13:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38356, "nodeType": "ImportDirective", "src": "574:57:71", "nodes": [], "absolutePath": "src/interfaces/IController.sol", "file": "./interfaces/IController.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 45690, "symbolAliases": [ { "foreign": { "id": 38355, "name": "IController", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45689, "src": "582:11:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38358, "nodeType": "ImportDirective", "src": "632:87:71", "nodes": [], "absolutePath": "src/interfaces/IBasicRandcastConsumerBase.sol", "file": "./interfaces/IBasicRandcastConsumerBase.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 45438, "symbolAliases": [ { "foreign": { "id": 38357, "name": "IBasicRandcastConsumerBase", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45437, "src": "640:26:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38360, "nodeType": "ImportDirective", "src": "720:56:71", "nodes": [], "absolutePath": "src/utils/RequestIdBase.sol", "file": "./utils/RequestIdBase.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 52266, "symbolAliases": [ { "foreign": { "id": 38359, "name": "RequestIdBase", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52265, "src": "728:13:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38362, "nodeType": "ImportDirective", "src": "777:40:71", "nodes": [], "absolutePath": "src/libraries/BLS.sol", "file": "./libraries/BLS.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 46646, "symbolAliases": [ { "foreign": { "id": 38361, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "785:3:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 38363, "nodeType": "ImportDirective", "src": "864:36:71", "nodes": [], "absolutePath": "src/utils/Utils.sol", "file": "./utils/Utils.sol", "nameLocation": "894:5:71", "scope": 41182, "sourceUnit": 52926, "symbolAliases": [], "unitAlias": "Utils" }, { "id": 38365, "nodeType": "ImportDirective", "src": "901:56:71", "nodes": [], "absolutePath": "src/libraries/ChainHelper.sol", "file": "./libraries/ChainHelper.sol", "nameLocation": "-1:-1:-1", "scope": 41182, "sourceUnit": 48403, "symbolAliases": [ { "foreign": { "id": 38364, "name": "ChainHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48402, "src": "909:11:71", "typeDescriptions": {} }, "nameLocation": "-1:-1:-1" } ], "unitAlias": "" }, { "id": 41181, "nodeType": "ContractDefinition", "src": "959:37380:71", "nodes": [ { "id": 38379, "nodeType": "UsingForDirective", "src": "1061:27:71", "nodes": [], "global": false, "libraryName": { "id": 38376, "name": "SafeERC20", "nameLocations": [ "1067:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 33736, "src": "1067:9:71" }, "typeName": { "id": 38378, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38377, "name": "IERC20", "nameLocations": [ "1081:6:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 33394, "src": "1081:6:71" }, "referencedDeclaration": 33394, "src": "1081:6:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC20_$33394", "typeString": "contract IERC20" } } }, { "id": 38382, "nodeType": "UsingForDirective", "src": "1093:26:71", "nodes": [], "global": false, "libraryName": { "id": 38380, "name": "Address", "nameLocations": [ "1099:7:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 34066, "src": "1099:7:71" }, "typeName": { "id": 38381, "name": "address", "nodeType": "ElementaryTypeName", "src": "1111:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "id": 38385, "nodeType": "VariableDeclaration", "src": "1144:42:71", "nodes": [], "constant": true, "functionSelector": "64d51a2a", "mutability": "constant", "name": "MAX_CONSUMERS", "nameLocation": "1167:13:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38383, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "1144:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "value": { "hexValue": "313030", "id": 38384, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1183:3:71", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "visibility": "public" }, { "id": 38388, "nodeType": "VariableDeclaration", "src": "1192:54:71", "nodes": [], "constant": true, "functionSelector": "15c48b84", "mutability": "constant", "name": "MAX_REQUEST_CONFIRMATIONS", "nameLocation": "1215:25:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38386, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "1192:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "value": { "hexValue": "323030", "id": 38387, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1243:3:71", "typeDescriptions": { "typeIdentifier": "t_rational_200_by_1", "typeString": "int_const 200" }, "value": "200" }, "visibility": "public" }, { "id": 38391, "nodeType": "VariableDeclaration", "src": "1252:51:71", "nodes": [], "constant": true, "functionSelector": "8166d459", "mutability": "constant", "name": "RANDOMNESS_REWARD_GAS", "nameLocation": "1275:21:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38389, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1252:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "39303030", "id": 38390, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1299:4:71", "typeDescriptions": { "typeIdentifier": "t_rational_9000_by_1", "typeString": "int_const 9000" }, "value": "9000" }, "visibility": "public" }, { "id": 38394, "nodeType": "VariableDeclaration", "src": "1309:70:71", "nodes": [], "constant": true, "functionSelector": "877d38bb", "mutability": "constant", "name": "VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD", "nameLocation": "1332:39:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38392, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1309:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "3530303030", "id": 38393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1374:5:71", "typeDescriptions": { "typeIdentifier": "t_rational_50000_by_1", "typeString": "int_const 50000" }, "value": "50000" }, "visibility": "public" }, { "id": 38397, "nodeType": "VariableDeclaration", "src": "1385:52:71", "nodes": [], "constant": true, "functionSelector": "aa81d59a", "mutability": "constant", "name": "DEFAULT_MINIMUM_THRESHOLD", "nameLocation": "1408:25:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38395, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1385:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { "hexValue": "33", "id": 38396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1436:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "visibility": "public" }, { "id": 38400, "nodeType": "VariableDeclaration", "src": "1469:32:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_controller", "nameLocation": "1490:11:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" }, "typeName": { "id": 38399, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38398, "name": "IController", "nameLocations": [ "1469:11:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45689, "src": "1469:11:71" }, "referencedDeclaration": 45689, "src": "1469:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "visibility": "internal" }, { "id": 38402, "nodeType": "VariableDeclaration", "src": "1507:35:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_cumulativeFlatFee", "nameLocation": "1524:18:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38401, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1507:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 38404, "nodeType": "VariableDeclaration", "src": "1548:43:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_cumulativeCommitterReward", "nameLocation": "1565:26:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38403, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1548:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 38406, "nodeType": "VariableDeclaration", "src": "1597:50:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_cumulativePartialSignatureReward", "nameLocation": "1614:33:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38405, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1597:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 38408, "nodeType": "VariableDeclaration", "src": "1683:39:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_lastAssignedGroupIndex", "nameLocation": "1699:23:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38407, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "1683:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "id": 38410, "nodeType": "VariableDeclaration", "src": "1728:32:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_lastRandomness", "nameLocation": "1745:15:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38409, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1728:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 38412, "nodeType": "VariableDeclaration", "src": "1766:33:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_randomnessCount", "nameLocation": "1783:16:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38411, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1766:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "id": 38415, "nodeType": "VariableDeclaration", "src": "1806:30:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_config", "nameLocation": "1829:7:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig" }, "typeName": { "id": 38414, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38413, "name": "AdapterConfig", "nameLocations": [ "1806:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45313, "src": "1806:13:71" }, "referencedDeclaration": 45313, "src": "1806:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage_ptr", "typeString": "struct IAdapterOwner.AdapterConfig" } }, "visibility": "internal" }, { "id": 38419, "nodeType": "VariableDeclaration", "src": "1842:56:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_requestCommitments", "nameLocation": "1879:19:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" }, "typeName": { "id": 38418, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 38416, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1850:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "1842:27:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 38417, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "1861:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } }, "visibility": "internal" }, { "id": 38424, "nodeType": "VariableDeclaration", "src": "1941:48:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_consumers", "nameLocation": "1979:10:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer)" }, "typeName": { "id": 38423, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 38420, "name": "address", "nodeType": "ElementaryTypeName", "src": "1949:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1941:28:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 38422, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38421, "name": "Consumer", "nameLocations": [ "1960:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38444, "src": "1960:8:71" }, "referencedDeclaration": 38444, "src": "1960:8:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage_ptr", "typeString": "struct Adapter.Consumer" } } }, "visibility": "internal" }, { "id": 38429, "nodeType": "VariableDeclaration", "src": "2026:55:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_subscriptions", "nameLocation": "2067:14:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription)" }, "typeName": { "id": 38428, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 38425, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2034:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Mapping", "src": "2026:31:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 38427, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38426, "name": "Subscription", "nameLocations": [ "2044:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38470, "src": "2044:12:71" }, "referencedDeclaration": 38470, "src": "2044:12:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" } } }, "visibility": "internal" }, { "id": 38431, "nodeType": "VariableDeclaration", "src": "2087:29:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_currentSubId", "nameLocation": "2103:13:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38430, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2087:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "id": 38434, "nodeType": "VariableDeclaration", "src": "2149:39:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_referralConfig", "nameLocation": "2173:15:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig" }, "typeName": { "id": 38433, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38432, "name": "ReferralConfig", "nameLocations": [ "2149:14:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45351, "src": "2149:14:71" }, "referencedDeclaration": 45351, "src": "2149:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage_ptr", "typeString": "struct IAdapterOwner.ReferralConfig" } }, "visibility": "internal" }, { "id": 38437, "nodeType": "VariableDeclaration", "src": "2221:37:71", "nodes": [], "constant": false, "mutability": "mutable", "name": "_flatFeeConfig", "nameLocation": "2244:14:71", "scope": 41181, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig" }, "typeName": { "id": 38436, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38435, "name": "FlatFeeConfig", "nameLocations": [ "2221:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45344, "src": "2221:13:71" }, "referencedDeclaration": 45344, "src": "2221:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage_ptr", "typeString": "struct IAdapterOwner.FlatFeeConfig" } }, "visibility": "internal" }, { "id": 38444, "nodeType": "StructDefinition", "src": "2371:126:71", "nodes": [], "canonicalName": "Adapter.Consumer", "members": [ { "constant": false, "id": 38441, "mutability": "mutable", "name": "nonces", "nameLocation": "2451:6:71", "nodeType": "VariableDeclaration", "scope": 38444, "src": "2425:32:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" }, "typeName": { "id": 38440, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 38438, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2433:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Mapping", "src": "2425:25:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 38439, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2443:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } }, "visibility": "internal" }, { "constant": false, "id": 38443, "mutability": "mutable", "name": "lastSubscription", "nameLocation": "2474:16:71", "nodeType": "VariableDeclaration", "scope": 38444, "src": "2467:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38442, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2467:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "name": "Consumer", "nameLocation": "2378:8:71", "scope": 41181, "visibility": "public" }, { "id": 38470, "nodeType": "StructDefinition", "src": "2503:752:71", "nodes": [], "canonicalName": "Adapter.Subscription", "members": [ { "constant": false, "id": 38446, "mutability": "mutable", "name": "owner", "nameLocation": "2541:5:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2533:13:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38445, "name": "address", "nodeType": "ElementaryTypeName", "src": "2533:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38448, "mutability": "mutable", "name": "requestedOwner", "nameLocation": "2607:14:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2599:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38447, "name": "address", "nodeType": "ElementaryTypeName", "src": "2599:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38451, "mutability": "mutable", "name": "consumers", "nameLocation": "2683:9:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2673:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 38449, "name": "address", "nodeType": "ElementaryTypeName", "src": "2673:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 38450, "nodeType": "ArrayTypeName", "src": "2673:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 38453, "mutability": "mutable", "name": "balance", "nameLocation": "2710:7:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2702:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38452, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2702:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38455, "mutability": "mutable", "name": "inflightCost", "nameLocation": "2784:12:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2776:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38454, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2776:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38459, "mutability": "mutable", "name": "inflightPayments", "nameLocation": "2908:16:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2880:44:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "typeName": { "id": 38458, "keyName": "", "keyNameLocation": "-1:-1:-1", "keyType": { "id": 38456, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "2888:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", "src": "2880:27:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueName": "", "valueNameLocation": "-1:-1:-1", "valueType": { "id": 38457, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2899:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "internal" }, { "constant": false, "id": 38461, "mutability": "mutable", "name": "reqCount", "nameLocation": "2941:8:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2934:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38460, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2934:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38463, "mutability": "mutable", "name": "freeRequestCount", "nameLocation": "2983:16:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "2976:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38462, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "2976:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38465, "mutability": "mutable", "name": "referralSubId", "nameLocation": "3067:13:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "3060:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38464, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "3060:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38467, "mutability": "mutable", "name": "reqCountInCurrentPeriod", "nameLocation": "3100:23:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "3093:30:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38466, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "3093:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38469, "mutability": "mutable", "name": "lastRequestTimestamp", "nameLocation": "3194:20:71", "nodeType": "VariableDeclaration", "scope": 38470, "src": "3186:28:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38468, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3186:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "name": "Subscription", "nameLocation": "2510:12:71", "scope": 41181, "visibility": "public" }, { "id": 38486, "nodeType": "EventDefinition", "src": "3277:305:71", "nodes": [], "anonymous": false, "eventSelector": "efeb3292465cf72a302efdd83695ad560a2828353a1e018844e9abd19a642037", "name": "AdapterConfigSet", "nameLocation": "3283:16:71", "parameters": { "id": 38485, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38472, "indexed": false, "mutability": "mutable", "name": "minimumRequestConfirmations", "nameLocation": "3316:27:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3309:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38471, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "3309:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38474, "indexed": false, "mutability": "mutable", "name": "maxGasLimit", "nameLocation": "3360:11:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3353:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38473, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3353:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38476, "indexed": false, "mutability": "mutable", "name": "gasAfterPaymentCalculation", "nameLocation": "3388:26:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3381:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38475, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3381:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38478, "indexed": false, "mutability": "mutable", "name": "gasExceptCallback", "nameLocation": "3431:17:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3424:24:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38477, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "3424:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38480, "indexed": false, "mutability": "mutable", "name": "signatureTaskExclusiveWindow", "nameLocation": "3466:28:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3458:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38479, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3458:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38482, "indexed": false, "mutability": "mutable", "name": "rewardPerSignature", "nameLocation": "3512:18:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3504:26:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38481, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3504:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38484, "indexed": false, "mutability": "mutable", "name": "committerRewardPerSignature", "nameLocation": "3548:27:71", "nodeType": "VariableDeclaration", "scope": 38486, "src": "3540:35:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38483, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3540:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3299:282:71" } }, { "id": 38499, "nodeType": "EventDefinition", "src": "3587:256:71", "nodes": [], "anonymous": false, "eventSelector": "1851d8853c0ab5ed26d95d456344506f759953621e7c115677f2244696b8ba97", "name": "FlatFeeConfigSet", "nameLocation": "3593:16:71", "parameters": { "id": 38498, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38489, "indexed": false, "mutability": "mutable", "name": "flatFeeConfig", "nameLocation": "3629:13:71", "nodeType": "VariableDeclaration", "scope": 38499, "src": "3619:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig" }, "typeName": { "id": 38488, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38487, "name": "FeeConfig", "nameLocations": [ "3619:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45332, "src": "3619:9:71" }, "referencedDeclaration": 45332, "src": "3619:9:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage_ptr", "typeString": "struct IAdapterOwner.FeeConfig" } }, "visibility": "internal" }, { "constant": false, "id": 38491, "indexed": false, "mutability": "mutable", "name": "flatFeePromotionGlobalPercentage", "nameLocation": "3659:32:71", "nodeType": "VariableDeclaration", "scope": 38499, "src": "3652:39:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38490, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "3652:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38493, "indexed": false, "mutability": "mutable", "name": "isFlatFeePromotionEnabledPermanently", "nameLocation": "3706:36:71", "nodeType": "VariableDeclaration", "scope": 38499, "src": "3701:41:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 38492, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3701:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 38495, "indexed": false, "mutability": "mutable", "name": "flatFeePromotionStartTimestamp", "nameLocation": "3760:30:71", "nodeType": "VariableDeclaration", "scope": 38499, "src": "3752:38:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38494, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3752:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38497, "indexed": false, "mutability": "mutable", "name": "flatFeePromotionEndTimestamp", "nameLocation": "3808:28:71", "nodeType": "VariableDeclaration", "scope": 38499, "src": "3800:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38496, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3800:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3609:233:71" } }, { "id": 38507, "nodeType": "EventDefinition", "src": "3848:133:71", "nodes": [], "anonymous": false, "eventSelector": "af8d657c268b3f943977d5288bfb2306420bcb17b7ef17397cffa5d2f4891643", "name": "ReferralConfigSet", "nameLocation": "3854:17:71", "parameters": { "id": 38506, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38501, "indexed": false, "mutability": "mutable", "name": "isReferralEnabled", "nameLocation": "3886:17:71", "nodeType": "VariableDeclaration", "scope": 38507, "src": "3881:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 38500, "name": "bool", "nodeType": "ElementaryTypeName", "src": "3881:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 38503, "indexed": false, "mutability": "mutable", "name": "freeRequestCountForReferrer", "nameLocation": "3912:27:71", "nodeType": "VariableDeclaration", "scope": 38507, "src": "3905:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38502, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "3905:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38505, "indexed": false, "mutability": "mutable", "name": "freeRequestCountForReferee", "nameLocation": "3948:26:71", "nodeType": "VariableDeclaration", "scope": 38507, "src": "3941:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38504, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "3941:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" } ], "src": "3871:109:71" } }, { "id": 38513, "nodeType": "EventDefinition", "src": "3986:71:71", "nodes": [], "anonymous": false, "eventSelector": "464722b4166576d3dcbba877b999bc35cf911f4eaf434b7eba68fa113951d0bf", "name": "SubscriptionCreated", "nameLocation": "3992:19:71", "parameters": { "id": 38512, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38509, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4027:5:71", "nodeType": "VariableDeclaration", "scope": 38513, "src": "4012:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38508, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4012:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38511, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "4050:5:71", "nodeType": "VariableDeclaration", "scope": 38513, "src": "4034:21:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38510, "name": "address", "nodeType": "ElementaryTypeName", "src": "4034:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4011:45:71" } }, { "id": 38521, "nodeType": "EventDefinition", "src": "4062:87:71", "nodes": [], "anonymous": false, "eventSelector": "d39ec07f4e209f627a4c427971473820dc129761ba28de8906bd56f57101d4f8", "name": "SubscriptionFunded", "nameLocation": "4068:18:71", "parameters": { "id": 38520, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38515, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4102:5:71", "nodeType": "VariableDeclaration", "scope": 38521, "src": "4087:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38514, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4087:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38517, "indexed": false, "mutability": "mutable", "name": "oldBalance", "nameLocation": "4117:10:71", "nodeType": "VariableDeclaration", "scope": 38521, "src": "4109:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38516, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4109:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38519, "indexed": false, "mutability": "mutable", "name": "newBalance", "nameLocation": "4137:10:71", "nodeType": "VariableDeclaration", "scope": 38521, "src": "4129:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38518, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4129:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4086:62:71" } }, { "id": 38527, "nodeType": "EventDefinition", "src": "4154:72:71", "nodes": [], "anonymous": false, "eventSelector": "43dc749a04ac8fb825cbd514f7c0e13f13bc6f2ee66043b76629d51776cff8e0", "name": "SubscriptionConsumerAdded", "nameLocation": "4160:25:71", "parameters": { "id": 38526, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38523, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4201:5:71", "nodeType": "VariableDeclaration", "scope": 38527, "src": "4186:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38522, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4186:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38525, "indexed": false, "mutability": "mutable", "name": "consumer", "nameLocation": "4216:8:71", "nodeType": "VariableDeclaration", "scope": 38527, "src": "4208:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38524, "name": "address", "nodeType": "ElementaryTypeName", "src": "4208:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4185:40:71" } }, { "id": 38533, "nodeType": "EventDefinition", "src": "4231:82:71", "nodes": [], "anonymous": false, "eventSelector": "b661d46b53034f62a6c7d50df2a5e055fab98889aaf62f8c618e457edd96c688", "name": "SubscriptionReferralSet", "nameLocation": "4237:23:71", "parameters": { "id": 38532, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38529, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4276:5:71", "nodeType": "VariableDeclaration", "scope": 38533, "src": "4261:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38528, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4261:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38531, "indexed": true, "mutability": "mutable", "name": "referralSubId", "nameLocation": "4298:13:71", "nodeType": "VariableDeclaration", "scope": 38533, "src": "4283:28:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38530, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4283:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "4260:52:71" } }, { "id": 38541, "nodeType": "EventDefinition", "src": "4318:77:71", "nodes": [], "anonymous": false, "eventSelector": "e8ed5b475a5b5987aa9165e8731bb78043f39eee32ec5a1169a89e27fcd49815", "name": "SubscriptionCanceled", "nameLocation": "4324:20:71", "parameters": { "id": 38540, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38535, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4360:5:71", "nodeType": "VariableDeclaration", "scope": 38541, "src": "4345:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38534, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4345:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38537, "indexed": false, "mutability": "mutable", "name": "to", "nameLocation": "4375:2:71", "nodeType": "VariableDeclaration", "scope": 38541, "src": "4367:10:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38536, "name": "address", "nodeType": "ElementaryTypeName", "src": "4367:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38539, "indexed": false, "mutability": "mutable", "name": "amount", "nameLocation": "4387:6:71", "nodeType": "VariableDeclaration", "scope": 38541, "src": "4379:14:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38538, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4379:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4344:50:71" } }, { "id": 38547, "nodeType": "EventDefinition", "src": "4400:74:71", "nodes": [], "anonymous": false, "eventSelector": "182bff9831466789164ca77075fffd84916d35a8180ba73c27e45634549b445b", "name": "SubscriptionConsumerRemoved", "nameLocation": "4406:27:71", "parameters": { "id": 38546, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38543, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4449:5:71", "nodeType": "VariableDeclaration", "scope": 38547, "src": "4434:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38542, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4434:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38545, "indexed": false, "mutability": "mutable", "name": "consumer", "nameLocation": "4464:8:71", "nodeType": "VariableDeclaration", "scope": 38547, "src": "4456:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38544, "name": "address", "nodeType": "ElementaryTypeName", "src": "4456:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4433:40:71" } }, { "id": 38572, "nodeType": "EventDefinition", "src": "4479:372:71", "nodes": [], "anonymous": false, "eventSelector": "d26299589dd9197a8dc30a0fa17b0fe7dd432bc3441aa5f5631ea1e14c1af744", "name": "RandomnessRequest", "nameLocation": "4485:17:71", "parameters": { "id": 38571, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38549, "indexed": true, "mutability": "mutable", "name": "requestId", "nameLocation": "4528:9:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4512:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 38548, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4512:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 38551, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "4562:5:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4547:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38550, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "4547:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38553, "indexed": true, "mutability": "mutable", "name": "groupIndex", "nameLocation": "4592:10:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4577:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38552, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4577:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38556, "indexed": false, "mutability": "mutable", "name": "requestType", "nameLocation": "4624:11:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4612:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, "typeName": { "id": 38555, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38554, "name": "RequestType", "nameLocations": [ "4612:11:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45955, "src": "4612:11:71" }, "referencedDeclaration": 45955, "src": "4612:11:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "visibility": "internal" }, { "constant": false, "id": 38558, "indexed": false, "mutability": "mutable", "name": "params", "nameLocation": "4651:6:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4645:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 38557, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "4645:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" }, { "constant": false, "id": 38560, "indexed": false, "mutability": "mutable", "name": "sender", "nameLocation": "4675:6:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4667:14:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38559, "name": "address", "nodeType": "ElementaryTypeName", "src": "4667:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38562, "indexed": false, "mutability": "mutable", "name": "seed", "nameLocation": "4699:4:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4691:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38561, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4691:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38564, "indexed": false, "mutability": "mutable", "name": "requestConfirmations", "nameLocation": "4720:20:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4713:27:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38563, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "4713:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38566, "indexed": false, "mutability": "mutable", "name": "callbackGasLimit", "nameLocation": "4757:16:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4750:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38565, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4750:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38568, "indexed": false, "mutability": "mutable", "name": "callbackMaxGasPrice", "nameLocation": "4791:19:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4783:27:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38567, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4783:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38570, "indexed": false, "mutability": "mutable", "name": "estimatedPayment", "nameLocation": "4828:16:71", "nodeType": "VariableDeclaration", "scope": 38572, "src": "4820:24:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38569, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4820:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4502:348:71" } }, { "id": 38591, "nodeType": "EventDefinition", "src": "4856:280:71", "nodes": [], "anonymous": false, "eventSelector": "6fc1bcb4bd7d5fdf4017f746304b61ae4472496256e906c6bb44682aa2c9a6d8", "name": "RandomnessRequestResult", "nameLocation": "4862:23:71", "parameters": { "id": 38590, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38574, "indexed": true, "mutability": "mutable", "name": "requestId", "nameLocation": "4911:9:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "4895:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 38573, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "4895:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 38576, "indexed": true, "mutability": "mutable", "name": "groupIndex", "nameLocation": "4945:10:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "4930:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38575, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "4930:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38578, "indexed": true, "mutability": "mutable", "name": "committer", "nameLocation": "4981:9:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "4965:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38577, "name": "address", "nodeType": "ElementaryTypeName", "src": "4965:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38581, "indexed": false, "mutability": "mutable", "name": "participantMembers", "nameLocation": "5010:18:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "5000:28:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 38579, "name": "address", "nodeType": "ElementaryTypeName", "src": "5000:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 38580, "nodeType": "ArrayTypeName", "src": "5000:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 38583, "indexed": false, "mutability": "mutable", "name": "randommness", "nameLocation": "5046:11:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "5038:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38582, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5038:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38585, "indexed": false, "mutability": "mutable", "name": "payment", "nameLocation": "5075:7:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "5067:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38584, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5067:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38587, "indexed": false, "mutability": "mutable", "name": "flatFee", "nameLocation": "5100:7:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "5092:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38586, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5092:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38589, "indexed": false, "mutability": "mutable", "name": "success", "nameLocation": "5122:7:71", "nodeType": "VariableDeclaration", "scope": 38591, "src": "5117:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 38588, "name": "bool", "nodeType": "ElementaryTypeName", "src": "5117:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4885:250:71" } }, { "id": 38597, "nodeType": "EventDefinition", "src": "5141:79:71", "nodes": [], "anonymous": false, "eventSelector": "c1cf1d318384ee8dee53eed48bbf121b2b14fa61e9da5fd2f597dfbee4e5c2e6", "name": "OvertimeRequestCanceled", "nameLocation": "5147:23:71", "parameters": { "id": 38596, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38593, "indexed": true, "mutability": "mutable", "name": "requestId", "nameLocation": "5187:9:71", "nodeType": "VariableDeclaration", "scope": 38597, "src": "5171:25:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 38592, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "5171:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 38595, "indexed": true, "mutability": "mutable", "name": "subId", "nameLocation": "5213:5:71", "nodeType": "VariableDeclaration", "scope": 38597, "src": "5198:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38594, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5198:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "5170:49:71" } }, { "id": 38599, "nodeType": "ErrorDefinition", "src": "5242:18:71", "nodes": [], "errorSelector": "ed3ba6a6", "name": "Reentrant", "nameLocation": "5248:9:71", "parameters": { "id": 38598, "nodeType": "ParameterList", "parameters": [], "src": "5257:2:71" } }, { "id": 38607, "nodeType": "ErrorDefinition", "src": "5265:71:71", "nodes": [], "errorSelector": "a7386976", "name": "InvalidRequestConfirmations", "nameLocation": "5271:27:71", "parameters": { "id": 38606, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38601, "mutability": "mutable", "name": "have", "nameLocation": "5306:4:71", "nodeType": "VariableDeclaration", "scope": 38607, "src": "5299:11:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38600, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "5299:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38603, "mutability": "mutable", "name": "min", "nameLocation": "5319:3:71", "nodeType": "VariableDeclaration", "scope": 38607, "src": "5312:10:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38602, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "5312:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38605, "mutability": "mutable", "name": "max", "nameLocation": "5331:3:71", "nodeType": "VariableDeclaration", "scope": 38607, "src": "5324:10:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38604, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "5324:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" } ], "src": "5298:37:71" } }, { "id": 38609, "nodeType": "ErrorDefinition", "src": "5341:25:71", "nodes": [], "errorSelector": "05a48e0f", "name": "TooManyConsumers", "nameLocation": "5347:16:71", "parameters": { "id": 38608, "nodeType": "ParameterList", "parameters": [], "src": "5363:2:71" } }, { "id": 38611, "nodeType": "ErrorDefinition", "src": "5371:39:71", "nodes": [], "errorSelector": "8894bd5e", "name": "InsufficientBalanceWhenRequest", "nameLocation": "5377:30:71", "parameters": { "id": 38610, "nodeType": "ParameterList", "parameters": [], "src": "5407:2:71" } }, { "id": 38613, "nodeType": "ErrorDefinition", "src": "5415:39:71", "nodes": [], "errorSelector": "964d765f", "name": "InsufficientBalanceWhenFulfill", "nameLocation": "5421:30:71", "parameters": { "id": 38612, "nodeType": "ParameterList", "parameters": [], "src": "5451:2:71" } }, { "id": 38619, "nodeType": "ErrorDefinition", "src": "5459:54:71", "nodes": [], "errorSelector": "f0019fe6", "name": "InvalidConsumer", "nameLocation": "5465:15:71", "parameters": { "id": 38618, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38615, "mutability": "mutable", "name": "subId", "nameLocation": "5488:5:71", "nodeType": "VariableDeclaration", "scope": 38619, "src": "5481:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38614, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "5481:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 38617, "mutability": "mutable", "name": "consumer", "nameLocation": "5503:8:71", "nodeType": "VariableDeclaration", "scope": 38619, "src": "5495:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38616, "name": "address", "nodeType": "ElementaryTypeName", "src": "5495:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "5480:32:71" } }, { "id": 38621, "nodeType": "ErrorDefinition", "src": "5518:28:71", "nodes": [], "errorSelector": "1f6a65b6", "name": "InvalidSubscription", "nameLocation": "5524:19:71", "parameters": { "id": 38620, "nodeType": "ParameterList", "parameters": [], "src": "5543:2:71" } }, { "id": 38623, "nodeType": "ErrorDefinition", "src": "5551:34:71", "nodes": [], "errorSelector": "6dac2701", "name": "ReferralPromotionDisabled", "nameLocation": "5557:25:71", "parameters": { "id": 38622, "nodeType": "ParameterList", "parameters": [], "src": "5582:2:71" } }, { "id": 38625, "nodeType": "ErrorDefinition", "src": "5590:39:71", "nodes": [], "errorSelector": "cae26ee1", "name": "SubscriptionAlreadyHasReferral", "nameLocation": "5596:30:71", "parameters": { "id": 38624, "nodeType": "ParameterList", "parameters": [], "src": "5626:2:71" } }, { "id": 38627, "nodeType": "ErrorDefinition", "src": "5634:30:71", "nodes": [], "errorSelector": "4fe06aa0", "name": "IdenticalSubscription", "nameLocation": "5640:21:71", "parameters": { "id": 38626, "nodeType": "ParameterList", "parameters": [], "src": "5661:2:71" } }, { "id": 38629, "nodeType": "ErrorDefinition", "src": "5669:36:71", "nodes": [], "errorSelector": "a760a237", "name": "AtLeastOneRequestIsRequired", "nameLocation": "5675:27:71", "parameters": { "id": 38628, "nodeType": "ParameterList", "parameters": [], "src": "5702:2:71" } }, { "id": 38633, "nodeType": "ErrorDefinition", "src": "5710:36:71", "nodes": [], "errorSelector": "d8a3fb52", "name": "MustBeSubOwner", "nameLocation": "5716:14:71", "parameters": { "id": 38632, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38631, "mutability": "mutable", "name": "owner", "nameLocation": "5739:5:71", "nodeType": "VariableDeclaration", "scope": 38633, "src": "5731:13:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38630, "name": "address", "nodeType": "ElementaryTypeName", "src": "5731:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "5730:15:71" } }, { "id": 38635, "nodeType": "ErrorDefinition", "src": "5751:26:71", "nodes": [], "errorSelector": "6905ab67", "name": "NoAvailableGroups", "nameLocation": "5757:17:71", "parameters": { "id": 38634, "nodeType": "ParameterList", "parameters": [], "src": "5774:2:71" } }, { "id": 38637, "nodeType": "ErrorDefinition", "src": "5782:31:71", "nodes": [], "errorSelector": "3688124a", "name": "NoCorrespondingRequest", "nameLocation": "5788:22:71", "parameters": { "id": 38636, "nodeType": "ParameterList", "parameters": [], "src": "5810:2:71" } }, { "id": 38639, "nodeType": "ErrorDefinition", "src": "5818:28:71", "nodes": [], "errorSelector": "d529142c", "name": "IncorrectCommitment", "nameLocation": "5824:19:71", "parameters": { "id": 38638, "nodeType": "ParameterList", "parameters": [], "src": "5843:2:71" } }, { "id": 38641, "nodeType": "ErrorDefinition", "src": "5851:28:71", "nodes": [], "errorSelector": "8a3150e7", "name": "InvalidRequestByEOA", "nameLocation": "5857:19:71", "parameters": { "id": 38640, "nodeType": "ParameterList", "parameters": [], "src": "5876:2:71" } }, { "id": 38643, "nodeType": "ErrorDefinition", "src": "5884:27:71", "nodes": [], "errorSelector": "f06e777a", "name": "TaskStillExclusive", "nameLocation": "5890:18:71", "parameters": { "id": 38642, "nodeType": "ParameterList", "parameters": [], "src": "5908:2:71" } }, { "id": 38645, "nodeType": "ErrorDefinition", "src": "5916:44:71", "nodes": [], "errorSelector": "619a4abd", "name": "TaskStillWithinRequestConfirmations", "nameLocation": "5922:35:71", "parameters": { "id": 38644, "nodeType": "ParameterList", "parameters": [], "src": "5957:2:71" } }, { "id": 38647, "nodeType": "ErrorDefinition", "src": "5965:25:71", "nodes": [], "errorSelector": "d9ce719d", "name": "NotFromCommitter", "nameLocation": "5971:16:71", "parameters": { "id": 38646, "nodeType": "ParameterList", "parameters": [], "src": "5987:2:71" } }, { "id": 38651, "nodeType": "ErrorDefinition", "src": "5995:40:71", "nodes": [], "errorSelector": "feddf96a", "name": "GroupNotExist", "nameLocation": "6001:13:71", "parameters": { "id": 38650, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38649, "mutability": "mutable", "name": "groupIndex", "nameLocation": "6023:10:71", "nodeType": "VariableDeclaration", "scope": 38651, "src": "6015:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38648, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6015:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6014:20:71" } }, { "id": 38653, "nodeType": "ErrorDefinition", "src": "6040:28:71", "nodes": [], "errorSelector": "f5caa330", "name": "SenderNotController", "nameLocation": "6046:19:71", "parameters": { "id": 38652, "nodeType": "ParameterList", "parameters": [], "src": "6065:2:71" } }, { "id": 38655, "nodeType": "ErrorDefinition", "src": "6073:29:71", "nodes": [], "errorSelector": "b42f66e8", "name": "PendingRequestExists", "nameLocation": "6079:20:71", "parameters": { "id": 38654, "nodeType": "ParameterList", "parameters": [], "src": "6099:2:71" } }, { "id": 38657, "nodeType": "ErrorDefinition", "src": "6107:27:71", "nodes": [], "errorSelector": "f6b2911f", "name": "InvalidZeroAddress", "nameLocation": "6113:18:71", "parameters": { "id": 38656, "nodeType": "ParameterList", "parameters": [], "src": "6131:2:71" } }, { "id": 38663, "nodeType": "ErrorDefinition", "src": "6139:47:71", "nodes": [], "errorSelector": "f5d7e01e", "name": "GasLimitTooBig", "nameLocation": "6145:14:71", "parameters": { "id": 38662, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38659, "mutability": "mutable", "name": "have", "nameLocation": "6167:4:71", "nodeType": "VariableDeclaration", "scope": 38663, "src": "6160:11:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38658, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6160:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38661, "mutability": "mutable", "name": "want", "nameLocation": "6180:4:71", "nodeType": "VariableDeclaration", "scope": 38663, "src": "6173:11:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38660, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "6173:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "src": "6159:26:71" } }, { "id": 38665, "nodeType": "ErrorDefinition", "src": "6191:26:71", "nodes": [], "errorSelector": "6c804b5d", "name": "RequestNotExpired", "nameLocation": "6197:17:71", "parameters": { "id": 38664, "nodeType": "ParameterList", "parameters": [], "src": "6214:2:71" } }, { "id": 38699, "nodeType": "ModifierDefinition", "src": "6242:281:71", "nodes": [], "body": { "id": 38698, "nodeType": "Block", "src": "6278:245:71", "nodes": [], "statements": [ { "assignments": [ 38670 ], "declarations": [ { "constant": false, "id": 38670, "mutability": "mutable", "name": "owner", "nameLocation": "6296:5:71", "nodeType": "VariableDeclaration", "scope": 38698, "src": "6288:13:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38669, "name": "address", "nodeType": "ElementaryTypeName", "src": "6288:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 38675, "initialValue": { "expression": { "baseExpression": { "id": 38671, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "6304:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38673, "indexExpression": { "id": 38672, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38667, "src": "6319:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6304:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38674, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6326:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "6304:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "6288:43:71" }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 38681, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 38676, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38670, "src": "6345:5:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 38679, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "6362:1:71", "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": 38678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "6354:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 38677, "name": "address", "nodeType": "ElementaryTypeName", "src": "6354:7:71", "typeDescriptions": {} } }, "id": 38680, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6354:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6345:19:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38686, "nodeType": "IfStatement", "src": "6341:78:71", "trueBody": { "id": 38685, "nodeType": "Block", "src": "6366:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 38682, "name": "InvalidSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38621, "src": "6387:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 38683, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6387:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38684, "nodeType": "RevertStatement", "src": "6380:28:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 38690, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 38687, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "6432:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 38688, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "6436:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "6432:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 38689, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38670, "src": "6446:5:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "6432:19:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38696, "nodeType": "IfStatement", "src": "6428:78:71", "trueBody": { "id": 38695, "nodeType": "Block", "src": "6453:53:71", "statements": [ { "errorCall": { "arguments": [ { "id": 38692, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38670, "src": "6489:5:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 38691, "name": "MustBeSubOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38633, "src": "6474:14:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_address_$returns$__$", "typeString": "function (address) pure" } }, "id": 38693, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6474:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38694, "nodeType": "RevertStatement", "src": "6467:28:71" } ] } }, { "id": 38697, "nodeType": "PlaceholderStatement", "src": "6515:1:71" } ] }, "name": "onlySubOwner", "nameLocation": "6251:12:71", "parameters": { "id": 38668, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38667, "mutability": "mutable", "name": "subId", "nameLocation": "6271:5:71", "nodeType": "VariableDeclaration", "scope": 38699, "src": "6264:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38666, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "6264:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "6263:14:71" }, "virtual": false, "visibility": "internal" }, { "id": 38710, "nodeType": "ModifierDefinition", "src": "6529:122:71", "nodes": [], "body": { "id": 38709, "nodeType": "Block", "src": "6553:98:71", "nodes": [], "statements": [ { "condition": { "expression": { "id": 38701, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "6567:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 38702, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "6575:14:71", "memberName": "reentrancyLock", "nodeType": "MemberAccess", "referencedDeclaration": 45302, "src": "6567:22:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38707, "nodeType": "IfStatement", "src": "6563:71:71", "trueBody": { "id": 38706, "nodeType": "Block", "src": "6591:43:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 38703, "name": "Reentrant", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38599, "src": "6612:9:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 38704, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6612:11:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38705, "nodeType": "RevertStatement", "src": "6605:18:71" } ] } }, { "id": 38708, "nodeType": "PlaceholderStatement", "src": "6643:1:71" } ] }, "name": "nonReentrant", "nameLocation": "6538:12:71", "parameters": { "id": 38700, "nodeType": "ParameterList", "parameters": [], "src": "6550:2:71" }, "virtual": false, "visibility": "internal" }, { "id": 38718, "nodeType": "FunctionDefinition", "src": "6710:53:71", "nodes": [], "body": { "id": 38717, "nodeType": "Block", "src": "6724:39:71", "nodes": [], "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 38714, "name": "_disableInitializers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 31537, "src": "6734:20:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 38715, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6734:22:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38716, "nodeType": "ExpressionStatement", "src": "6734:22:71" } ] }, "documentation": { "id": 38711, "nodeType": "StructuredDocumentation", "src": "6657:48:71", "text": "@custom:oz-upgrades-unsafe-allow constructor" }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 38712, "nodeType": "ParameterList", "parameters": [], "src": "6721:2:71" }, "returnParameters": { "id": 38713, "nodeType": "ParameterList", "parameters": [], "src": "6724:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 38735, "nodeType": "FunctionDefinition", "src": "6769:140:71", "nodes": [], "body": { "id": 38734, "nodeType": "Block", "src": "6828:81:71", "nodes": [], "statements": [ { "expression": { "id": 38729, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 38725, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "6838:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 38727, "name": "controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38720, "src": "6864:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 38726, "name": "IController", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45689, "src": "6852:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IController_$45689_$", "typeString": "type(contract IController)" } }, "id": 38728, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6852:23:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "src": "6838:37:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 38730, "nodeType": "ExpressionStatement", "src": "6838:37:71" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "id": 38731, "name": "__Ownable_init", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30886, "src": "6886:14:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, "id": 38732, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6886:16:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38733, "nodeType": "ExpressionStatement", "src": "6886:16:71" } ] }, "functionSelector": "c4d66de8", "implemented": true, "kind": "function", "modifiers": [ { "id": 38723, "kind": "modifierInvocation", "modifierName": { "id": 38722, "name": "initializer", "nameLocations": [ "6816:11:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 31458, "src": "6816:11:71" }, "nodeType": "ModifierInvocation", "src": "6816:11:71" } ], "name": "initialize", "nameLocation": "6778:10:71", "parameters": { "id": 38721, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38720, "mutability": "mutable", "name": "controller", "nameLocation": "6797:10:71", "nodeType": "VariableDeclaration", "scope": 38735, "src": "6789:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38719, "name": "address", "nodeType": "ElementaryTypeName", "src": "6789:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "6788:20:71" }, "returnParameters": { "id": 38724, "nodeType": "ParameterList", "parameters": [], "src": "6828:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 38744, "nodeType": "FunctionDefinition", "src": "6964:66:71", "nodes": [], "body": { "id": 38743, "nodeType": "Block", "src": "7028:2:71", "nodes": [], "statements": [] }, "baseFunctions": [ 31686 ], "implemented": true, "kind": "function", "modifiers": [ { "id": 38741, "kind": "modifierInvocation", "modifierName": { "id": 38740, "name": "onlyOwner", "nameLocations": [ "7018:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "7018:9:71" }, "nodeType": "ModifierInvocation", "src": "7018:9:71" } ], "name": "_authorizeUpgrade", "nameLocation": "6973:17:71", "overrides": { "id": 38739, "nodeType": "OverrideSpecifier", "overrides": [], "src": "7009:8:71" }, "parameters": { "id": 38738, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38737, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 38744, "src": "6991:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38736, "name": "address", "nodeType": "ElementaryTypeName", "src": "6991:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "6990:9:71" }, "returnParameters": { "id": 38742, "nodeType": "ParameterList", "parameters": [], "src": "7028:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 38800, "nodeType": "FunctionDefinition", "src": "7099:1396:71", "nodes": [], "body": { "id": 38799, "nodeType": "Block", "src": "7450:1045:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "id": 38767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 38765, "name": "minimumRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38746, "src": "7464:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 38766, "name": "MAX_REQUEST_CONFIRMATIONS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38388, "src": "7494:25:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "7464:55:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38775, "nodeType": "IfStatement", "src": "7460:235:71", "trueBody": { "id": 38774, "nodeType": "Block", "src": "7521:174:71", "statements": [ { "errorCall": { "arguments": [ { "id": 38769, "name": "minimumRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38746, "src": "7587:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38770, "name": "minimumRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38746, "src": "7616:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38771, "name": "MAX_REQUEST_CONFIRMATIONS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38388, "src": "7645:25:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" } ], "id": 38768, "name": "InvalidRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38607, "src": "7542:27:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint16_$_t_uint16_$_t_uint16_$returns$__$", "typeString": "function (uint16,uint16,uint16) pure" } }, "id": 38772, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7542:142:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38773, "nodeType": "RevertStatement", "src": "7535:149:71" } ] } }, { "expression": { "id": 38787, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 38776, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "7704:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 38778, "name": "minimumRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38746, "src": "7771:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38779, "name": "maxGasLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38748, "src": "7825:11:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38780, "name": "gasAfterPaymentCalculation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38750, "src": "7878:26:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38781, "name": "gasExceptCallback", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38752, "src": "7937:17:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38782, "name": "signatureTaskExclusiveWindow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38754, "src": "7998:28:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38783, "name": "rewardPerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38756, "src": "8060:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38784, "name": "committerRewardPerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38758, "src": "8121:27:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "66616c7365", "id": 38785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "8178:5:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 38777, "name": "AdapterConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45313, "src": "7714:13:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_AdapterConfig_$45313_storage_ptr_$", "typeString": "type(struct IAdapterOwner.AdapterConfig storage pointer)" } }, "id": 38786, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ "7742:27:71", "7812:11:71", "7850:26:71", "7918:17:71", "7968:28:71", "8040:18:71", "8092:27:71", "8162:14:71" ], "names": [ "minimumRequestConfirmations", "maxGasLimit", "gasAfterPaymentCalculation", "gasExceptCallback", "signatureTaskExclusiveWindow", "rewardPerSignature", "committerRewardPerSignature", "reentrancyLock" ], "nodeType": "FunctionCall", "src": "7714:480:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_memory_ptr", "typeString": "struct IAdapterOwner.AdapterConfig memory" } }, "src": "7704:490:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 38788, "nodeType": "ExpressionStatement", "src": "7704:490:71" }, { "eventCall": { "arguments": [ { "id": 38790, "name": "minimumRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38746, "src": "8240:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38791, "name": "maxGasLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38748, "src": "8281:11:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38792, "name": "gasAfterPaymentCalculation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38750, "src": "8306:26:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38793, "name": "gasExceptCallback", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38752, "src": "8346:17:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 38794, "name": "signatureTaskExclusiveWindow", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38754, "src": "8377:28:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38795, "name": "rewardPerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38756, "src": "8419:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38796, "name": "committerRewardPerSignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38758, "src": "8451:27:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 38789, "name": "AdapterConfigSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38486, "src": "8210:16:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint16,uint32,uint32,uint32,uint256,uint256,uint256)" } }, "id": 38797, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8210:278:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38798, "nodeType": "EmitStatement", "src": "8205:283:71" } ] }, "baseFunctions": [ 45369 ], "functionSelector": "71b7ca05", "implemented": true, "kind": "function", "modifiers": [ { "id": 38763, "kind": "modifierInvocation", "modifierName": { "id": 38762, "name": "onlyOwner", "nameLocations": [ "7440:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "7440:9:71" }, "nodeType": "ModifierInvocation", "src": "7440:9:71" } ], "name": "setAdapterConfig", "nameLocation": "7108:16:71", "overrides": { "id": 38761, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38760, "name": "IAdapterOwner", "nameLocations": [ "7425:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "7425:13:71" } ], "src": "7416:23:71" }, "parameters": { "id": 38759, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38746, "mutability": "mutable", "name": "minimumRequestConfirmations", "nameLocation": "7141:27:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7134:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38745, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "7134:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38748, "mutability": "mutable", "name": "maxGasLimit", "nameLocation": "7185:11:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7178:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38747, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "7178:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38750, "mutability": "mutable", "name": "gasAfterPaymentCalculation", "nameLocation": "7213:26:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7206:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38749, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "7206:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38752, "mutability": "mutable", "name": "gasExceptCallback", "nameLocation": "7256:17:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7249:24:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 38751, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "7249:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 38754, "mutability": "mutable", "name": "signatureTaskExclusiveWindow", "nameLocation": "7291:28:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7283:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38753, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7283:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38756, "mutability": "mutable", "name": "rewardPerSignature", "nameLocation": "7337:18:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7329:26:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38755, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7329:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38758, "mutability": "mutable", "name": "committerRewardPerSignature", "nameLocation": "7373:27:71", "nodeType": "VariableDeclaration", "scope": 38800, "src": "7365:35:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38757, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7365:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "7124:282:71" }, "returnParameters": { "id": 38764, "nodeType": "ParameterList", "parameters": [], "src": "7450:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 38837, "nodeType": "FunctionDefinition", "src": "8501:970:71", "nodes": [], "body": { "id": 38836, "nodeType": "Block", "src": "8810:661:71", "nodes": [], "statements": [ { "expression": { "id": 38826, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 38818, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "8820:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 38820, "name": "flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38803, "src": "8873:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, { "id": 38821, "name": "flatFeePromotionGlobalPercentage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38805, "src": "8934:32:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38822, "name": "isFlatFeePromotionEnabledPermanently", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38807, "src": "9018:36:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 38823, "name": "flatFeePromotionStartTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38809, "src": "9100:30:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38824, "name": "flatFeePromotionEndTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38811, "src": "9174:28:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 38819, "name": "FlatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45344, "src": "8837:13:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_FlatFeeConfig_$45344_storage_ptr_$", "typeString": "type(struct IAdapterOwner.FlatFeeConfig storage pointer)" } }, "id": 38825, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ "8865:6:71", "8900:32:71", "8980:36:71", "9068:30:71", "9144:28:71" ], "names": [ "config", "flatFeePromotionGlobalPercentage", "isFlatFeePromotionEnabledPermanently", "flatFeePromotionStartTimestamp", "flatFeePromotionEndTimestamp" ], "nodeType": "FunctionCall", "src": "8837:376:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_memory_ptr", "typeString": "struct IAdapterOwner.FlatFeeConfig memory" } }, "src": "8820:393:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 38827, "nodeType": "ExpressionStatement", "src": "8820:393:71" }, { "eventCall": { "arguments": [ { "id": 38829, "name": "flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38803, "src": "9259:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, { "id": 38830, "name": "flatFeePromotionGlobalPercentage", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38805, "src": "9286:32:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38831, "name": "isFlatFeePromotionEnabledPermanently", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38807, "src": "9332:36:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 38832, "name": "flatFeePromotionStartTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38809, "src": "9382:30:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 38833, "name": "flatFeePromotionEndTimestamp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38811, "src": "9426:28:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 38828, "name": "FlatFeeConfigSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38499, "src": "9229:16:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_struct$_FeeConfig_$45332_memory_ptr_$_t_uint16_$_t_bool_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (struct IAdapterOwner.FeeConfig memory,uint16,bool,uint256,uint256)" } }, "id": 38834, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9229:235:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38835, "nodeType": "EmitStatement", "src": "9224:240:71" } ] }, "baseFunctions": [ 45384 ], "functionSelector": "f4cc97fc", "implemented": true, "kind": "function", "modifiers": [ { "id": 38816, "kind": "modifierInvocation", "modifierName": { "id": 38815, "name": "onlyOwner", "nameLocations": [ "8800:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "8800:9:71" }, "nodeType": "ModifierInvocation", "src": "8800:9:71" } ], "name": "setFlatFeeConfig", "nameLocation": "8510:16:71", "overrides": { "id": 38814, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38813, "name": "IAdapterOwner", "nameLocations": [ "8785:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "8785:13:71" } ], "src": "8776:23:71" }, "parameters": { "id": 38812, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38803, "mutability": "mutable", "name": "flatFeeConfig", "nameLocation": "8553:13:71", "nodeType": "VariableDeclaration", "scope": 38837, "src": "8536:30:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig" }, "typeName": { "id": 38802, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 38801, "name": "FeeConfig", "nameLocations": [ "8536:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45332, "src": "8536:9:71" }, "referencedDeclaration": 45332, "src": "8536:9:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage_ptr", "typeString": "struct IAdapterOwner.FeeConfig" } }, "visibility": "internal" }, { "constant": false, "id": 38805, "mutability": "mutable", "name": "flatFeePromotionGlobalPercentage", "nameLocation": "8583:32:71", "nodeType": "VariableDeclaration", "scope": 38837, "src": "8576:39:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38804, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "8576:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38807, "mutability": "mutable", "name": "isFlatFeePromotionEnabledPermanently", "nameLocation": "8630:36:71", "nodeType": "VariableDeclaration", "scope": 38837, "src": "8625:41:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 38806, "name": "bool", "nodeType": "ElementaryTypeName", "src": "8625:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 38809, "mutability": "mutable", "name": "flatFeePromotionStartTimestamp", "nameLocation": "8684:30:71", "nodeType": "VariableDeclaration", "scope": 38837, "src": "8676:38:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38808, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8676:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 38811, "mutability": "mutable", "name": "flatFeePromotionEndTimestamp", "nameLocation": "8732:28:71", "nodeType": "VariableDeclaration", "scope": 38837, "src": "8724:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38810, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8724:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "8526:240:71" }, "returnParameters": { "id": 38817, "nodeType": "ParameterList", "parameters": [], "src": "8810:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 38865, "nodeType": "FunctionDefinition", "src": "9477:553:71", "nodes": [], "body": { "id": 38864, "nodeType": "Block", "src": "9672:358:71", "nodes": [], "statements": [ { "expression": { "id": 38856, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 38850, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "9682:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 38852, "name": "isReferralEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38839, "src": "9748:17:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 38853, "name": "freeRequestCountForReferrer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38841, "src": "9808:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38854, "name": "freeRequestCountForReferee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38843, "src": "9877:26:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" } ], "id": 38851, "name": "ReferralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45351, "src": "9700:14:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_struct$_ReferralConfig_$45351_storage_ptr_$", "typeString": "type(struct IAdapterOwner.ReferralConfig storage pointer)" } }, "id": 38855, "isConstant": false, "isLValue": false, "isPure": false, "kind": "structConstructorCall", "lValueRequested": false, "nameLocations": [ "9729:17:71", "9779:27:71", "9849:26:71" ], "names": [ "isReferralEnabled", "freeRequestCountForReferrer", "freeRequestCountForReferee" ], "nodeType": "FunctionCall", "src": "9700:214:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_memory_ptr", "typeString": "struct IAdapterOwner.ReferralConfig memory" } }, "src": "9682:232:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 38857, "nodeType": "ExpressionStatement", "src": "9682:232:71" }, { "eventCall": { "arguments": [ { "id": 38859, "name": "isReferralEnabled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38839, "src": "9948:17:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "id": 38860, "name": "freeRequestCountForReferrer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38841, "src": "9967:27:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 38861, "name": "freeRequestCountForReferee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38843, "src": "9996:26:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" } ], "id": 38858, "name": "ReferralConfigSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38507, "src": "9930:17:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bool_$_t_uint16_$_t_uint16_$returns$__$", "typeString": "function (bool,uint16,uint16)" } }, "id": 38862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9930:93:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38863, "nodeType": "EmitStatement", "src": "9925:98:71" } ] }, "baseFunctions": [ 45394 ], "functionSelector": "f362ca61", "implemented": true, "kind": "function", "modifiers": [ { "id": 38848, "kind": "modifierInvocation", "modifierName": { "id": 38847, "name": "onlyOwner", "nameLocations": [ "9662:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "9662:9:71" }, "nodeType": "ModifierInvocation", "src": "9662:9:71" } ], "name": "setReferralConfig", "nameLocation": "9486:17:71", "overrides": { "id": 38846, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38845, "name": "IAdapterOwner", "nameLocations": [ "9647:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "9647:13:71" } ], "src": "9638:23:71" }, "parameters": { "id": 38844, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38839, "mutability": "mutable", "name": "isReferralEnabled", "nameLocation": "9518:17:71", "nodeType": "VariableDeclaration", "scope": 38865, "src": "9513:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 38838, "name": "bool", "nodeType": "ElementaryTypeName", "src": "9513:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 38841, "mutability": "mutable", "name": "freeRequestCountForReferrer", "nameLocation": "9552:27:71", "nodeType": "VariableDeclaration", "scope": 38865, "src": "9545:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38840, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "9545:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 38843, "mutability": "mutable", "name": "freeRequestCountForReferee", "nameLocation": "9596:26:71", "nodeType": "VariableDeclaration", "scope": 38865, "src": "9589:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 38842, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "9589:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" } ], "src": "9503:125:71" }, "returnParameters": { "id": 38849, "nodeType": "ParameterList", "parameters": [], "src": "9672:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 38903, "nodeType": "FunctionDefinition", "src": "10036:309:71", "nodes": [], "body": { "id": 38902, "nodeType": "Block", "src": "10195:150:71", "nodes": [], "statements": [ { "body": { "id": 38900, "nodeType": "Block", "src": "10249:90:71", "statements": [ { "expression": { "id": 38898, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 38889, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "10263:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38893, "indexExpression": { "baseExpression": { "id": 38890, "name": "subIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38868, "src": "10278:6:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[] memory" } }, "id": 38892, "indexExpression": { "id": 38891, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38879, "src": "10285:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10278:9:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10263:25:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38894, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "10289:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "10263:42:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 38895, "name": "freeRequestCounts", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38871, "src": "10308:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[] memory" } }, "id": 38897, "indexExpression": { "id": 38896, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38879, "src": "10326:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10308:20:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "10263:65:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 38899, "nodeType": "ExpressionStatement", "src": "10263:65:71" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 38885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 38882, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38879, "src": "10225:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 38883, "name": "subIds", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38868, "src": "10229:6:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[] memory" } }, "id": 38884, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10236:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "10229:13:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "10225:17:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38901, "initializationExpression": { "assignments": [ 38879 ], "declarations": [ { "constant": false, "id": 38879, "mutability": "mutable", "name": "i", "nameLocation": "10218:1:71", "nodeType": "VariableDeclaration", "scope": 38901, "src": "10210:9:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10210:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 38881, "initialValue": { "hexValue": "30", "id": 38880, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10222:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "10210:13:71" }, "loopExpression": { "expression": { "id": 38887, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "10244:3:71", "subExpression": { "id": 38886, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38879, "src": "10244:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 38888, "nodeType": "ExpressionStatement", "src": "10244:3:71" }, "nodeType": "ForStatement", "src": "10205:134:71" } ] }, "baseFunctions": [ 45404 ], "functionSelector": "056e5ede", "implemented": true, "kind": "function", "modifiers": [ { "id": 38876, "kind": "modifierInvocation", "modifierName": { "id": 38875, "name": "onlyOwner", "nameLocations": [ "10181:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "10181:9:71" }, "nodeType": "ModifierInvocation", "src": "10181:9:71" } ], "name": "setFreeRequestCount", "nameLocation": "10045:19:71", "overrides": { "id": 38874, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38873, "name": "IAdapterOwner", "nameLocations": [ "10158:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "10158:13:71" } ], "src": "10149:23:71" }, "parameters": { "id": 38872, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38868, "mutability": "mutable", "name": "subIds", "nameLocation": "10081:6:71", "nodeType": "VariableDeclaration", "scope": 38903, "src": "10065:22:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[]" }, "typeName": { "baseType": { "id": 38866, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "10065:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 38867, "nodeType": "ArrayTypeName", "src": "10065:8:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", "typeString": "uint64[]" } }, "visibility": "internal" }, { "constant": false, "id": 38871, "mutability": "mutable", "name": "freeRequestCounts", "nameLocation": "10105:17:71", "nodeType": "VariableDeclaration", "scope": 38903, "src": "10089:33:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_memory_ptr", "typeString": "uint64[]" }, "typeName": { "baseType": { "id": 38869, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "10089:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 38870, "nodeType": "ArrayTypeName", "src": "10089:8:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint64_$dyn_storage_ptr", "typeString": "uint64[]" } }, "visibility": "internal" } ], "src": "10064:59:71" }, "returnParameters": { "id": 38877, "nodeType": "ParameterList", "parameters": [], "src": "10195:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 38935, "nodeType": "FunctionDefinition", "src": "10351:277:71", "nodes": [], "body": { "id": 38934, "nodeType": "Block", "src": "10441:187:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 38920, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 38912, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "10455:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38914, "indexExpression": { "id": 38913, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38905, "src": "10470:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10455:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38915, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10477:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "10455:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 38918, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10494:1:71", "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": 38917, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10486:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 38916, "name": "address", "nodeType": "ElementaryTypeName", "src": "10486:7:71", "typeDescriptions": {} } }, "id": 38919, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10486:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10455:41:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38925, "nodeType": "IfStatement", "src": "10451:100:71", "trueBody": { "id": 38924, "nodeType": "Block", "src": "10498:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 38921, "name": "InvalidSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38621, "src": "10519:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 38922, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10519:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38923, "nodeType": "RevertStatement", "src": "10512:28:71" } ] } }, { "expression": { "arguments": [ { "id": 38927, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38905, "src": "10586:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "baseExpression": { "id": 38928, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "10593:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38930, "indexExpression": { "id": 38929, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38905, "src": "10608:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "10593:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38931, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "10615:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "10593:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 38926, "name": "_cancelSubscriptionHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40865, "src": "10560:25:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address)" } }, "id": 38932, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10560:61:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38933, "nodeType": "ExpressionStatement", "src": "10560:61:71" } ] }, "baseFunctions": [ 45410 ], "functionSelector": "02bcc5b6", "implemented": true, "kind": "function", "modifiers": [ { "id": 38910, "kind": "modifierInvocation", "modifierName": { "id": 38909, "name": "onlyOwner", "nameLocations": [ "10431:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30905, "src": "10431:9:71" }, "nodeType": "ModifierInvocation", "src": "10431:9:71" } ], "name": "ownerCancelSubscription", "nameLocation": "10360:23:71", "overrides": { "id": 38908, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38907, "name": "IAdapterOwner", "nameLocations": [ "10416:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "10416:13:71" } ], "src": "10407:23:71" }, "parameters": { "id": 38906, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38905, "mutability": "mutable", "name": "subId", "nameLocation": "10391:5:71", "nodeType": "VariableDeclaration", "scope": 38935, "src": "10384:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38904, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "10384:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "10383:14:71" }, "returnParameters": { "id": 38911, "nodeType": "ParameterList", "parameters": [], "src": "10441:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 38965, "nodeType": "FunctionDefinition", "src": "10692:248:71", "nodes": [], "body": { "id": 38964, "nodeType": "Block", "src": "10783:157:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 38950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 38944, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "10797:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 38945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10801:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "10797:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "id": 38948, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "10819:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } ], "id": 38947, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10811:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 38946, "name": "address", "nodeType": "ElementaryTypeName", "src": "10811:7:71", "typeDescriptions": {} } }, "id": 38949, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10811:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10797:34:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 38955, "nodeType": "IfStatement", "src": "10793:93:71", "trueBody": { "id": 38954, "nodeType": "Block", "src": "10833:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 38951, "name": "SenderNotController", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38653, "src": "10854:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 38952, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10854:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38953, "nodeType": "RevertStatement", "src": "10847:28:71" } ] } }, { "expression": { "arguments": [ { "id": 38961, "name": "ethAmount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38939, "src": "10923:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "arguments": [ { "id": 38958, "name": "recipient", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38937, "src": "10903:9:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 38957, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10895:8:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { "id": 38956, "name": "address", "nodeType": "ElementaryTypeName", "src": "10895:8:71", "stateMutability": "payable", "typeDescriptions": {} } }, "id": 38959, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10895:18:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 38960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10914:8:71", "memberName": "transfer", "nodeType": "MemberAccess", "src": "10895:27:71", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 38962, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10895:38:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38963, "nodeType": "ExpressionStatement", "src": "10895:38:71" } ] }, "baseFunctions": [ 45074 ], "functionSelector": "0ad98f6a", "implemented": true, "kind": "function", "modifiers": [], "name": "nodeWithdrawETH", "nameLocation": "10701:15:71", "overrides": { "id": 38942, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38941, "name": "IAdapter", "nameLocations": [ "10773:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "10773:8:71" } ], "src": "10764:18:71" }, "parameters": { "id": 38940, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38937, "mutability": "mutable", "name": "recipient", "nameLocation": "10725:9:71", "nodeType": "VariableDeclaration", "scope": 38965, "src": "10717:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 38936, "name": "address", "nodeType": "ElementaryTypeName", "src": "10717:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 38939, "mutability": "mutable", "name": "ethAmount", "nameLocation": "10744:9:71", "nodeType": "VariableDeclaration", "scope": 38965, "src": "10736:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 38938, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10736:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "10716:38:71" }, "returnParameters": { "id": 38943, "nodeType": "ParameterList", "parameters": [], "src": "10783:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39001, "nodeType": "FunctionDefinition", "src": "10946:400:71", "nodes": [], "body": { "id": 39000, "nodeType": "Block", "src": "11034:312:71", "nodes": [], "statements": [ { "expression": { "id": 38975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "11044:15:71", "subExpression": { "id": 38974, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "11044:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 38976, "nodeType": "ExpressionStatement", "src": "11044:15:71" }, { "expression": { "id": 38983, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 38977, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "11070:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38979, "indexExpression": { "id": 38978, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "11085:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11070:29:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38980, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "11100:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "11070:35:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 38981, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11108:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 38982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11112:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "11108:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "11070:48:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 38984, "nodeType": "ExpressionStatement", "src": "11070:48:71" }, { "expression": { "id": 38990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 38985, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "11197:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 38987, "indexExpression": { "id": 38986, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "11212:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11197:29:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 38988, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "11227:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "11197:46:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 38989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11246:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11197:50:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 38991, "nodeType": "ExpressionStatement", "src": "11197:50:71" }, { "eventCall": { "arguments": [ { "id": 38993, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "11283:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 38994, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "11298:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 38995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11302:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "11298:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 38992, "name": "SubscriptionCreated", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38513, "src": "11263:19:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address)" } }, "id": 38996, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11263:46:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 38997, "nodeType": "EmitStatement", "src": "11258:51:71" }, { "expression": { "id": 38998, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "11326:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "functionReturnParameters": 38973, "id": 38999, "nodeType": "Return", "src": "11319:20:71" } ] }, "baseFunctions": [ 45103 ], "functionSelector": "a21a23e4", "implemented": true, "kind": "function", "modifiers": [ { "id": 38970, "kind": "modifierInvocation", "modifierName": { "id": 38969, "name": "nonReentrant", "nameLocations": [ "11004:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "11004:12:71" }, "nodeType": "ModifierInvocation", "src": "11004:12:71" } ], "name": "createSubscription", "nameLocation": "10955:18:71", "overrides": { "id": 38968, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 38967, "name": "IAdapter", "nameLocations": [ "10994:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "10994:8:71" } ], "src": "10985:18:71" }, "parameters": { "id": 38966, "nodeType": "ParameterList", "parameters": [], "src": "10973:2:71" }, "returnParameters": { "id": 38973, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 38972, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 39001, "src": "11026:6:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 38971, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "11026:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "11025:8:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39068, "nodeType": "FunctionDefinition", "src": "11352:803:71", "nodes": [], "body": { "id": 39067, "nodeType": "Block", "src": "11466:689:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "expression": { "baseExpression": { "id": 39015, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "11537:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39017, "indexExpression": { "id": 39016, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "11552:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11537:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39018, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11559:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "11537:31:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 39019, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11569:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "11537:38:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 39020, "name": "MAX_CONSUMERS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38385, "src": "11579:13:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "11537:55:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39026, "nodeType": "IfStatement", "src": "11533:111:71", "trueBody": { "id": 39025, "nodeType": "Block", "src": "11594:50:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39022, "name": "TooManyConsumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38609, "src": "11615:16:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39023, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11615:18:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39024, "nodeType": "RevertStatement", "src": "11608:25:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 39034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "expression": { "baseExpression": { "id": 39027, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "11657:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39029, "indexExpression": { "id": 39028, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39005, "src": "11668:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11657:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39030, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11678:6:71", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 38441, "src": "11657:27:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" } }, "id": 39032, "indexExpression": { "id": 39031, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "11685:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11657:34:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 39033, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11695:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "11657:39:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39037, "nodeType": "IfStatement", "src": "11653:203:71", "trueBody": { "id": 39036, "nodeType": "Block", "src": "11698:158:71", "statements": [ { "functionReturnParameters": 39014, "id": 39035, "nodeType": "Return", "src": "11839:7:71" } ] } }, { "expression": { "id": 39045, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "baseExpression": { "id": 39038, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "11941:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39040, "indexExpression": { "id": 39039, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39005, "src": "11952:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11941:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39041, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "11962:6:71", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 38441, "src": "11941:27:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" } }, "id": 39043, "indexExpression": { "id": 39042, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "11969:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11941:34:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 39044, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11978:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "11941:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39046, "nodeType": "ExpressionStatement", "src": "11941:38:71" }, { "expression": { "id": 39052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39047, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "11989:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39049, "indexExpression": { "id": 39048, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39005, "src": "12000:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "11989:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39050, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "12010:16:71", "memberName": "lastSubscription", "nodeType": "MemberAccess", "referencedDeclaration": 38443, "src": "11989:37:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 39051, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "12029:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "11989:45:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39053, "nodeType": "ExpressionStatement", "src": "11989:45:71" }, { "expression": { "arguments": [ { "id": 39059, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39005, "src": "12081:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "expression": { "baseExpression": { "id": 39054, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "12044:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39056, "indexExpression": { "id": 39055, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "12059:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12044:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39057, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12066:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "12044:31:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 39058, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12076:4:71", "memberName": "push", "nodeType": "MemberAccess", "src": "12044:36:71", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", "typeString": "function (address[] storage pointer,address)" } }, "id": 39060, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12044:46:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39061, "nodeType": "ExpressionStatement", "src": "12044:46:71" }, { "eventCall": { "arguments": [ { "id": 39063, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "12132:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39064, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39005, "src": "12139:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39062, "name": "SubscriptionConsumerAdded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38527, "src": "12106:25:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address)" } }, "id": 39065, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12106:42:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39066, "nodeType": "EmitStatement", "src": "12101:47:71" } ] }, "baseFunctions": [ 45110 ], "functionSelector": "7341c10c", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 39010, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39003, "src": "11446:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "id": 39011, "kind": "modifierInvocation", "modifierName": { "id": 39009, "name": "onlySubOwner", "nameLocations": [ "11433:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38699, "src": "11433:12:71" }, "nodeType": "ModifierInvocation", "src": "11433:19:71" }, { "id": 39013, "kind": "modifierInvocation", "modifierName": { "id": 39012, "name": "nonReentrant", "nameLocations": [ "11453:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "11453:12:71" }, "nodeType": "ModifierInvocation", "src": "11453:12:71" } ], "name": "addConsumer", "nameLocation": "11361:11:71", "overrides": { "id": 39008, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39007, "name": "IAdapter", "nameLocations": [ "11423:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "11423:8:71" } ], "src": "11414:18:71" }, "parameters": { "id": 39006, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39003, "mutability": "mutable", "name": "subId", "nameLocation": "11380:5:71", "nodeType": "VariableDeclaration", "scope": 39068, "src": "11373:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39002, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "11373:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39005, "mutability": "mutable", "name": "consumer", "nameLocation": "11395:8:71", "nodeType": "VariableDeclaration", "scope": 39068, "src": "11387:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39004, "name": "address", "nodeType": "ElementaryTypeName", "src": "11387:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "11372:32:71" }, "returnParameters": { "id": 39014, "nodeType": "ParameterList", "parameters": [], "src": "11466:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39167, "nodeType": "FunctionDefinition", "src": "12161:886:71", "nodes": [], "body": { "id": 39166, "nodeType": "Block", "src": "12314:733:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39082, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "12328:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39084, "indexExpression": { "id": 39083, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12343:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12328:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39085, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12350:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "12328:34:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 39086, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12366:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "12328:39:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39092, "nodeType": "IfStatement", "src": "12324:99:71", "trueBody": { "id": 39091, "nodeType": "Block", "src": "12369:54:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39088, "name": "PendingRequestExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38655, "src": "12390:20:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39089, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12390:22:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39090, "nodeType": "RevertStatement", "src": "12383:29:71" } ] } }, { "assignments": [ 39097 ], "declarations": [ { "constant": false, "id": 39097, "mutability": "mutable", "name": "consumers", "nameLocation": "12449:9:71", "nodeType": "VariableDeclaration", "scope": 39166, "src": "12432:26:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 39095, "name": "address", "nodeType": "ElementaryTypeName", "src": "12432:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39096, "nodeType": "ArrayTypeName", "src": "12432:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "id": 39102, "initialValue": { "expression": { "baseExpression": { "id": 39098, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "12461:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39100, "indexExpression": { "id": 39099, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12476:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12461:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39101, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12483:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "12461:31:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "12432:60:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39103, "name": "consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39097, "src": "12506:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 39104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12516:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "12506:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39105, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12526:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "12506:21:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39113, "nodeType": "IfStatement", "src": "12502:91:71", "trueBody": { "id": 39112, "nodeType": "Block", "src": "12529:64:71", "statements": [ { "errorCall": { "arguments": [ { "id": 39108, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12566:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39109, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39072, "src": "12573:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39107, "name": "InvalidConsumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38619, "src": "12550:15:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address) pure" } }, "id": 39110, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12550:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39111, "nodeType": "RevertStatement", "src": "12543:39:71" } ] } }, { "body": { "id": 39159, "nodeType": "Block", "src": "12690:302:71", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 39125, "name": "consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39097, "src": "12708:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 39127, "indexExpression": { "id": 39126, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39115, "src": "12718:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12708:12:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 39128, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39072, "src": "12724:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "12708:24:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39158, "nodeType": "IfStatement", "src": "12704:278:71", "trueBody": { "id": 39157, "nodeType": "Block", "src": "12734:248:71", "statements": [ { "expression": { "id": 39142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "baseExpression": { "id": 39130, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "12752:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39132, "indexExpression": { "id": 39131, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12767:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12752:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39133, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12774:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "12752:31:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 39135, "indexExpression": { "id": 39134, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39115, "src": "12784:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12752:34:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "baseExpression": { "id": 39136, "name": "consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39097, "src": "12789:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 39141, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39137, "name": "consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39097, "src": "12799:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 39138, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12809:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "12799:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "hexValue": "31", "id": 39139, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12818:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12799:20:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12789:31:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "12752:68:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39143, "nodeType": "ExpressionStatement", "src": "12752:68:71" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "expression": { "baseExpression": { "id": 39144, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "12838:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39146, "indexExpression": { "id": 39145, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12853:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "12838:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "12860:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "12838:31:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, "id": 39148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12870:3:71", "memberName": "pop", "nodeType": "MemberAccess", "src": "12838:35:71", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$", "typeString": "function (address[] storage pointer)" } }, "id": 39149, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12838:37:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39150, "nodeType": "ExpressionStatement", "src": "12838:37:71" }, { "eventCall": { "arguments": [ { "id": 39152, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12927:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39153, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39072, "src": "12934:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39151, "name": "SubscriptionConsumerRemoved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38547, "src": "12899:27:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address)" } }, "id": 39154, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12899:44:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39155, "nodeType": "EmitStatement", "src": "12894:49:71" }, { "functionReturnParameters": 39081, "id": 39156, "nodeType": "Return", "src": "12961:7:71" } ] } } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39121, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39118, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39115, "src": "12663:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 39119, "name": "consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39097, "src": "12667:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 39120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12677:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "12667:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "12663:20:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39160, "initializationExpression": { "assignments": [ 39115 ], "declarations": [ { "constant": false, "id": 39115, "mutability": "mutable", "name": "i", "nameLocation": "12656:1:71", "nodeType": "VariableDeclaration", "scope": 39160, "src": "12648:9:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39114, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12648:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39117, "initialValue": { "hexValue": "30", "id": 39116, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12660:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "12648:13:71" }, "loopExpression": { "expression": { "id": 39123, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "12685:3:71", "subExpression": { "id": 39122, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39115, "src": "12685:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 39124, "nodeType": "ExpressionStatement", "src": "12685:3:71" }, "nodeType": "ForStatement", "src": "12643:349:71" }, { "errorCall": { "arguments": [ { "id": 39162, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "13024:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39163, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39072, "src": "13031:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39161, "name": "InvalidConsumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38619, "src": "13008:15:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address) pure" } }, "id": 39164, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13008:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39165, "nodeType": "RevertStatement", "src": "13001:39:71" } ] }, "baseFunctions": [ 45136 ], "functionSelector": "9f87fad7", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 39077, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39070, "src": "12282:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "id": 39078, "kind": "modifierInvocation", "modifierName": { "id": 39076, "name": "onlySubOwner", "nameLocations": [ "12269:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38699, "src": "12269:12:71" }, "nodeType": "ModifierInvocation", "src": "12269:19:71" }, { "id": 39080, "kind": "modifierInvocation", "modifierName": { "id": 39079, "name": "nonReentrant", "nameLocations": [ "12297:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "12297:12:71" }, "nodeType": "ModifierInvocation", "src": "12297:12:71" } ], "name": "removeConsumer", "nameLocation": "12170:14:71", "overrides": { "id": 39075, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39074, "name": "IAdapter", "nameLocations": [ "12251:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "12251:8:71" } ], "src": "12242:18:71" }, "parameters": { "id": 39073, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39070, "mutability": "mutable", "name": "subId", "nameLocation": "12192:5:71", "nodeType": "VariableDeclaration", "scope": 39167, "src": "12185:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39069, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "12185:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39072, "mutability": "mutable", "name": "consumer", "nameLocation": "12207:8:71", "nodeType": "VariableDeclaration", "scope": 39167, "src": "12199:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39071, "name": "address", "nodeType": "ElementaryTypeName", "src": "12199:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "12184:32:71" }, "returnParameters": { "id": 39081, "nodeType": "ParameterList", "parameters": [], "src": "12314:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39215, "nodeType": "FunctionDefinition", "src": "13053:511:71", "nodes": [], "body": { "id": 39214, "nodeType": "Block", "src": "13142:422:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39184, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39176, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13156:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39178, "indexExpression": { "id": 39177, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39169, "src": "13171:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13156:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39179, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13178:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "13156:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 39182, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "13195:1:71", "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": 39181, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "13187:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 39180, "name": "address", "nodeType": "ElementaryTypeName", "src": "13187:7:71", "typeDescriptions": {} } }, "id": 39183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13187:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13156:41:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39189, "nodeType": "IfStatement", "src": "13152:100:71", "trueBody": { "id": 39188, "nodeType": "Block", "src": "13199:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39185, "name": "InvalidSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38621, "src": "13220:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13220:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39187, "nodeType": "RevertStatement", "src": "13213:28:71" } ] } }, { "assignments": [ 39191 ], "declarations": [ { "constant": false, "id": 39191, "mutability": "mutable", "name": "oldBalance", "nameLocation": "13387:10:71", "nodeType": "VariableDeclaration", "scope": 39214, "src": "13379:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39190, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13379:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39196, "initialValue": { "expression": { "baseExpression": { "id": 39192, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13400:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39194, "indexExpression": { "id": 39193, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39169, "src": "13415:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13400:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39195, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13422:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "13400:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "13379:50:71" }, { "expression": { "id": 39203, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39197, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13439:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39199, "indexExpression": { "id": 39198, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39169, "src": "13454:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13439:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39200, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "13461:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "13439:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "expression": { "id": 39201, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "13472:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13476:5:71", "memberName": "value", "nodeType": "MemberAccess", "src": "13472:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13439:42:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 39204, "nodeType": "ExpressionStatement", "src": "13439:42:71" }, { "eventCall": { "arguments": [ { "id": 39206, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39169, "src": "13515:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39207, "name": "oldBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39191, "src": "13522:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39211, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39208, "name": "oldBalance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39191, "src": "13534:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "expression": { "id": 39209, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "13547:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39210, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "13551:5:71", "memberName": "value", "nodeType": "MemberAccess", "src": "13547:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "13534:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39205, "name": "SubscriptionFunded", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38521, "src": "13496:18:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (uint64,uint256,uint256)" } }, "id": 39212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13496:61:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39213, "nodeType": "EmitStatement", "src": "13491:66:71" } ] }, "baseFunctions": [ 45115 ], "functionSelector": "dfaba794", "implemented": true, "kind": "function", "modifiers": [ { "id": 39174, "kind": "modifierInvocation", "modifierName": { "id": 39173, "name": "nonReentrant", "nameLocations": [ "13129:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "13129:12:71" }, "nodeType": "ModifierInvocation", "src": "13129:12:71" } ], "name": "fundSubscription", "nameLocation": "13062:16:71", "overrides": { "id": 39172, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39171, "name": "IAdapter", "nameLocations": [ "13119:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "13119:8:71" } ], "src": "13110:18:71" }, "parameters": { "id": 39170, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39169, "mutability": "mutable", "name": "subId", "nameLocation": "13086:5:71", "nodeType": "VariableDeclaration", "scope": 39215, "src": "13079:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39168, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "13079:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "13078:14:71" }, "returnParameters": { "id": 39175, "nodeType": "ParameterList", "parameters": [], "src": "13142:0:71" }, "scope": 41181, "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "id": 39309, "nodeType": "FunctionDefinition", "src": "13570:1001:71", "nodes": [], "body": { "id": 39308, "nodeType": "Block", "src": "13724:847:71", "nodes": [], "statements": [ { "condition": { "id": 39231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "13738:34:71", "subExpression": { "expression": { "id": 39229, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "13739:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 39230, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13755:17:71", "memberName": "isReferralEnabled", "nodeType": "MemberAccess", "referencedDeclaration": 45346, "src": "13739:33:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39236, "nodeType": "IfStatement", "src": "13734:99:71", "trueBody": { "id": 39235, "nodeType": "Block", "src": "13774:59:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39232, "name": "ReferralPromotionDisabled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38623, "src": "13795:25:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39233, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13795:27:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39234, "nodeType": "RevertStatement", "src": "13788:34:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39237, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13846:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39239, "indexExpression": { "id": 39238, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "13861:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13846:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39240, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13868:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "13846:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "baseExpression": { "id": 39241, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13877:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39243, "indexExpression": { "id": 39242, "name": "referralSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39219, "src": "13892:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13877:29:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39244, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "13907:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "13877:35:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13846:66:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39250, "nodeType": "IfStatement", "src": "13842:127:71", "trueBody": { "id": 39249, "nodeType": "Block", "src": "13914:55:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39246, "name": "IdenticalSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38627, "src": "13935:21:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39247, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13935:23:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39248, "nodeType": "RevertStatement", "src": "13928:30:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 39256, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39251, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "13982:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39253, "indexExpression": { "id": 39252, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "13997:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13982:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39254, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14004:13:71", "memberName": "referralSubId", "nodeType": "MemberAccess", "referencedDeclaration": 38465, "src": "13982:35:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 39255, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14021:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "13982:40:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39261, "nodeType": "IfStatement", "src": "13978:110:71", "trueBody": { "id": 39260, "nodeType": "Block", "src": "14024:64:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39257, "name": "SubscriptionAlreadyHasReferral", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38625, "src": "14045:30:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39258, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14045:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39259, "nodeType": "RevertStatement", "src": "14038:39:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 39274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 39267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39262, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14101:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39264, "indexExpression": { "id": 39263, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "14116:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14101:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39265, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14123:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "14101:30:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39266, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14135:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14101:35:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 39273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39268, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14140:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39270, "indexExpression": { "id": 39269, "name": "referralSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39219, "src": "14155:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14140:29:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39271, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14170:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "14140:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14182:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14140:43:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "14101:82:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39279, "nodeType": "IfStatement", "src": "14097:149:71", "trueBody": { "id": 39278, "nodeType": "Block", "src": "14185:61:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39275, "name": "AtLeastOneRequestIsRequired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38629, "src": "14206:27:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39276, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14206:29:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39277, "nodeType": "RevertStatement", "src": "14199:36:71" } ] } }, { "expression": { "id": 39286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39280, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14255:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39282, "indexExpression": { "id": 39281, "name": "referralSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39219, "src": "14270:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14255:29:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39283, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "14285:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "14255:46:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "expression": { "id": 39284, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "14305:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 39285, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14321:27:71", "memberName": "freeRequestCountForReferrer", "nodeType": "MemberAccess", "referencedDeclaration": 45348, "src": "14305:43:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "14255:93:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39287, "nodeType": "ExpressionStatement", "src": "14255:93:71" }, { "expression": { "id": 39294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39288, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14358:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39290, "indexExpression": { "id": 39289, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "14373:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14358:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39291, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "14380:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "14358:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "expression": { "id": 39292, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "14400:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 39293, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14416:26:71", "memberName": "freeRequestCountForReferee", "nodeType": "MemberAccess", "referencedDeclaration": 45350, "src": "14400:42:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "14358:84:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39295, "nodeType": "ExpressionStatement", "src": "14358:84:71" }, { "expression": { "id": 39301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39296, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14452:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39298, "indexExpression": { "id": 39297, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "14467:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14452:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39299, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "14474:13:71", "memberName": "referralSubId", "nodeType": "MemberAccess", "referencedDeclaration": 38465, "src": "14452:35:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 39300, "name": "referralSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39219, "src": "14490:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "14452:51:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39302, "nodeType": "ExpressionStatement", "src": "14452:51:71" }, { "eventCall": { "arguments": [ { "id": 39304, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "14543:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39305, "name": "referralSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39219, "src": "14550:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" } ], "id": 39303, "name": "SubscriptionReferralSet", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38533, "src": "14519:23:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_uint64_$returns$__$", "typeString": "function (uint64,uint64)" } }, "id": 39306, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14519:45:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39307, "nodeType": "EmitStatement", "src": "14514:50:71" } ] }, "baseFunctions": [ 45122 ], "functionSelector": "931d9204", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 39224, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39217, "src": "13692:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "id": 39225, "kind": "modifierInvocation", "modifierName": { "id": 39223, "name": "onlySubOwner", "nameLocations": [ "13679:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38699, "src": "13679:12:71" }, "nodeType": "ModifierInvocation", "src": "13679:19:71" }, { "id": 39227, "kind": "modifierInvocation", "modifierName": { "id": 39226, "name": "nonReentrant", "nameLocations": [ "13707:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "13707:12:71" }, "nodeType": "ModifierInvocation", "src": "13707:12:71" } ], "name": "setReferral", "nameLocation": "13579:11:71", "overrides": { "id": 39222, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39221, "name": "IAdapter", "nameLocations": [ "13661:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "13661:8:71" } ], "src": "13652:18:71" }, "parameters": { "id": 39220, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39217, "mutability": "mutable", "name": "subId", "nameLocation": "13598:5:71", "nodeType": "VariableDeclaration", "scope": 39309, "src": "13591:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39216, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "13591:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39219, "mutability": "mutable", "name": "referralSubId", "nameLocation": "13612:13:71", "nodeType": "VariableDeclaration", "scope": 39309, "src": "13605:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39218, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "13605:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "13590:36:71" }, "returnParameters": { "id": 39228, "nodeType": "ParameterList", "parameters": [], "src": "13724:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39351, "nodeType": "FunctionDefinition", "src": "14577:395:71", "nodes": [], "body": { "id": 39350, "nodeType": "Block", "src": "14728:244:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39328, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39323, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39313, "src": "14742:2:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 39326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14756:1:71", "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": 39325, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "14748:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 39324, "name": "address", "nodeType": "ElementaryTypeName", "src": "14748:7:71", "typeDescriptions": {} } }, "id": 39327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14748:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "14742:16:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39333, "nodeType": "IfStatement", "src": "14738:74:71", "trueBody": { "id": 39332, "nodeType": "Block", "src": "14760:52:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39329, "name": "InvalidZeroAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38657, "src": "14781:18:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39330, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14781:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39331, "nodeType": "RevertStatement", "src": "14774:27:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39339, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "baseExpression": { "id": 39334, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "14825:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39336, "indexExpression": { "id": 39335, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39311, "src": "14840:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "14825:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "14847:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "14825:34:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "hexValue": "30", "id": 39338, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14863:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14825:39:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39344, "nodeType": "IfStatement", "src": "14821:99:71", "trueBody": { "id": 39343, "nodeType": "Block", "src": "14866:54:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39340, "name": "PendingRequestExists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38655, "src": "14887:20:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39341, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14887:22:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39342, "nodeType": "RevertStatement", "src": "14880:29:71" } ] } }, { "expression": { "arguments": [ { "id": 39346, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39311, "src": "14955:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39347, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39313, "src": "14962:2:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39345, "name": "_cancelSubscriptionHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40865, "src": "14929:25:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address)" } }, "id": 39348, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14929:36:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39349, "nodeType": "ExpressionStatement", "src": "14929:36:71" } ] }, "baseFunctions": [ 45129 ], "functionSelector": "d7ae1d30", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "id": 39318, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39311, "src": "14696:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "id": 39319, "kind": "modifierInvocation", "modifierName": { "id": 39317, "name": "onlySubOwner", "nameLocations": [ "14683:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38699, "src": "14683:12:71" }, "nodeType": "ModifierInvocation", "src": "14683:19:71" }, { "id": 39321, "kind": "modifierInvocation", "modifierName": { "id": 39320, "name": "nonReentrant", "nameLocations": [ "14711:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "14711:12:71" }, "nodeType": "ModifierInvocation", "src": "14711:12:71" } ], "name": "cancelSubscription", "nameLocation": "14586:18:71", "overrides": { "id": 39316, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39315, "name": "IAdapter", "nameLocations": [ "14665:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "14665:8:71" } ], "src": "14656:18:71" }, "parameters": { "id": 39314, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39311, "mutability": "mutable", "name": "subId", "nameLocation": "14612:5:71", "nodeType": "VariableDeclaration", "scope": 39351, "src": "14605:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39310, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "14605:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39313, "mutability": "mutable", "name": "to", "nameLocation": "14627:2:71", "nodeType": "VariableDeclaration", "scope": 39351, "src": "14619:10:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39312, "name": "address", "nodeType": "ElementaryTypeName", "src": "14619:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "14604:26:71" }, "returnParameters": { "id": 39322, "nodeType": "ParameterList", "parameters": [], "src": "14728:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39465, "nodeType": "FunctionDefinition", "src": "14978:1580:71", "nodes": [], "body": { "id": 39464, "nodeType": "Block", "src": "15156:1402:71", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 39369, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 39365, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "15170:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39367, "indexExpression": { "id": 39366, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "15190:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15170:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15204:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "15170:35:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39374, "nodeType": "IfStatement", "src": "15166:97:71", "trueBody": { "id": 39373, "nodeType": "Block", "src": "15207:56:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39370, "name": "NoCorrespondingRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38637, "src": "15228:22:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39371, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15228:24:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39372, "nodeType": "RevertStatement", "src": "15221:31:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 39404, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "id": 39375, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "15289:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39377, "indexExpression": { "id": 39376, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "15309:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "15289:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 39381, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "15406:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39382, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15441:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15455:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "15441:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39384, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15486:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15500:10:71", "memberName": "groupIndex", "nodeType": "MemberAccess", "referencedDeclaration": 45049, "src": "15486:24:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39386, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15536:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15550:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45052, "src": "15536:25:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, { "expression": { "id": 39388, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15587:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39389, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15601:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45054, "src": "15587:20:71", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "expression": { "id": 39390, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15633:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15647:16:71", "memberName": "callbackContract", "nodeType": "MemberAccess", "referencedDeclaration": 45056, "src": "15633:30:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 39392, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15689:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15703:4:71", "memberName": "seed", "nodeType": "MemberAccess", "referencedDeclaration": 45058, "src": "15689:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39394, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15733:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39395, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15747:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45060, "src": "15733:34:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 39396, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15793:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15807:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45062, "src": "15793:30:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39398, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15849:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15863:19:71", "memberName": "callbackMaxGasPrice", "nodeType": "MemberAccess", "referencedDeclaration": 45064, "src": "15849:33:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39400, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15908:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15922:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "15908:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 39379, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "15370:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 39380, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "15374:6:71", "memberName": "encode", "nodeType": "MemberAccess", "src": "15370:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 39402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15370:582:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 39378, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "15339:9:71", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 39403, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15339:631:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "15289:681:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39409, "nodeType": "IfStatement", "src": "15272:762:71", "trueBody": { "id": 39408, "nodeType": "Block", "src": "15981:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39405, "name": "IncorrectCommitment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38639, "src": "16002:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39406, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16002:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39407, "nodeType": "RevertStatement", "src": "15995:28:71" } ] } }, { "assignments": [ 39411 ], "declarations": [ { "constant": false, "id": 39411, "mutability": "mutable", "name": "blockNum24H", "nameLocation": "16051:11:71", "nodeType": "VariableDeclaration", "scope": 39464, "src": "16043:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39410, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16043:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39417, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31", "id": 39412, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16065:6:71", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400" }, "value": "1" }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 39413, "name": "ChainHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48402, "src": "16074:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ChainHelper_$48402_$", "typeString": "type(library ChainHelper)" } }, "id": 39414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16086:12:71", "memberName": "getBlockTime", "nodeType": "MemberAccess", "referencedDeclaration": 48275, "src": "16074:24:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 39415, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16074:26:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16065:35:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "16043:57:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39424, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39418, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "16114:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 39419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16120:6:71", "memberName": "number", "nodeType": "MemberAccess", "src": "16114:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39420, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "16129:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39421, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16143:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "16129:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 39422, "name": "blockNum24H", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39411, "src": "16154:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16129:36:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16114:51:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39429, "nodeType": "IfStatement", "src": "16110:108:71", "trueBody": { "id": 39428, "nodeType": "Block", "src": "16167:51:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39425, "name": "RequestNotExpired", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38665, "src": "16188:17:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39426, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16188:19:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39427, "nodeType": "RevertStatement", "src": "16181:26:71" } ] } }, { "expression": { "id": 39433, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "16227:37:71", "subExpression": { "baseExpression": { "id": 39430, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "16234:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39432, "indexExpression": { "id": 39431, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "16254:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16234:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39434, "nodeType": "ExpressionStatement", "src": "16227:37:71" }, { "expression": { "id": 39447, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39435, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "16274:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39438, "indexExpression": { "expression": { "id": 39436, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "16289:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39437, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16303:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "16289:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16274:35:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39439, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "16310:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "16274:48:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "baseExpression": { "expression": { "baseExpression": { "id": 39440, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "16338:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39443, "indexExpression": { "expression": { "id": 39441, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "16353:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39442, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16367:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "16353:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16338:35:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39444, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "16374:16:71", "memberName": "inflightPayments", "nodeType": "MemberAccess", "referencedDeclaration": 38459, "src": "16338:52:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, "id": 39446, "indexExpression": { "id": 39445, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "16391:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16338:63:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16274:127:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 39448, "nodeType": "ExpressionStatement", "src": "16274:127:71" }, { "expression": { "id": 39456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "16411:70:71", "subExpression": { "baseExpression": { "expression": { "baseExpression": { "id": 39449, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "16418:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39452, "indexExpression": { "expression": { "id": 39450, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "16433:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39451, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16447:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "16433:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16418:35:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 39453, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "16454:16:71", "memberName": "inflightPayments", "nodeType": "MemberAccess", "referencedDeclaration": 38459, "src": "16418:52:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, "id": 39455, "indexExpression": { "id": 39454, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "16471:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16418:63:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39457, "nodeType": "ExpressionStatement", "src": "16411:70:71" }, { "eventCall": { "arguments": [ { "id": 39459, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39353, "src": "16520:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39460, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "16531:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16545:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "16531:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" } ], "id": 39458, "name": "OvertimeRequestCanceled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38597, "src": "16496:23:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint64_$returns$__$", "typeString": "function (bytes32,uint64)" } }, "id": 39462, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16496:55:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39463, "nodeType": "EmitStatement", "src": "16491:60:71" } ] }, "baseFunctions": [ 45144 ], "functionSelector": "d89f241f", "implemented": true, "kind": "function", "modifiers": [ { "arguments": [ { "expression": { "id": 39361, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39356, "src": "15131:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "15145:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "15131:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "id": 39363, "kind": "modifierInvocation", "modifierName": { "id": 39360, "name": "onlySubOwner", "nameLocations": [ "15118:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38699, "src": "15118:12:71" }, "nodeType": "ModifierInvocation", "src": "15118:33:71" } ], "name": "cancelOvertimeRequest", "nameLocation": "14987:21:71", "overrides": { "id": 39359, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39358, "name": "IAdapter", "nameLocations": [ "15100:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "15100:8:71" } ], "src": "15091:18:71" }, "parameters": { "id": 39357, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39353, "mutability": "mutable", "name": "requestId", "nameLocation": "15017:9:71", "nodeType": "VariableDeclaration", "scope": 39465, "src": "15009:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39352, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "15009:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 39356, "mutability": "mutable", "name": "requestDetail", "nameLocation": "15051:13:71", "nodeType": "VariableDeclaration", "scope": 39465, "src": "15028:36:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail" }, "typeName": { "id": 39355, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39354, "name": "RequestDetail", "nameLocations": [ "15028:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45067, "src": "15028:13:71" }, "referencedDeclaration": 45067, "src": "15028:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_storage_ptr", "typeString": "struct IAdapter.RequestDetail" } }, "visibility": "internal" } ], "src": "15008:57:71" }, "returnParameters": { "id": 39364, "nodeType": "ParameterList", "parameters": [], "src": "15156:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "id": 39693, "nodeType": "FunctionDefinition", "src": "16564:3194:71", "nodes": [], "body": { "id": 39692, "nodeType": "Block", "src": "16741:3017:71", "nodes": [], "statements": [ { "assignments": [ 39479 ], "declarations": [ { "constant": false, "id": 39479, "mutability": "mutable", "name": "p", "nameLocation": "16782:1:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "16751:32:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams" }, "typeName": { "id": 39478, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39477, "name": "RandomnessRequestParams", "nameLocations": [ "16751:23:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45045, "src": "16751:23:71" }, "referencedDeclaration": 45045, "src": "16751:23:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_storage_ptr", "typeString": "struct IAdapter.RandomnessRequestParams" } }, "visibility": "internal" } ], "id": 39481, "initialValue": { "id": 39480, "name": "params", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39468, "src": "16786:6:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_calldata_ptr", "typeString": "struct IAdapter.RandomnessRequestParams calldata" } }, "nodeType": "VariableDeclarationStatement", "src": "16751:41:71" }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39486, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39482, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "16860:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16864:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "16860:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 39484, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -26, "src": "16874:2:71", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, "id": 39485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "16877:6:71", "memberName": "origin", "nodeType": "MemberAccess", "src": "16874:9:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "16860:23:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39491, "nodeType": "IfStatement", "src": "16856:82:71", "trueBody": { "id": 39490, "nodeType": "Block", "src": "16885:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39487, "name": "InvalidRequestByEOA", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38641, "src": "16906:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39488, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16906:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39489, "nodeType": "RevertStatement", "src": "16899:28:71" } ] } }, { "assignments": [ 39494 ], "declarations": [ { "constant": false, "id": 39494, "mutability": "mutable", "name": "sub", "nameLocation": "16969:3:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "16948:24:71", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" }, "typeName": { "id": 39493, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39492, "name": "Subscription", "nameLocations": [ "16948:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38470, "src": "16948:12:71" }, "referencedDeclaration": 38470, "src": "16948:12:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" } }, "visibility": "internal" } ], "id": 39499, "initialValue": { "baseExpression": { "id": 39495, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "16975:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39498, "indexExpression": { "expression": { "id": 39496, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "16990:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39497, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "16992:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "16990:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "16975:23:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "16948:50:71" }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39500, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39494, "src": "17073:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39501, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17077:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "17073:9:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 39504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17094:1:71", "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": 39503, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "17086:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 39502, "name": "address", "nodeType": "ElementaryTypeName", "src": "17086:7:71", "typeDescriptions": {} } }, "id": 39505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17086:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "17073:23:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39511, "nodeType": "IfStatement", "src": "17069:82:71", "trueBody": { "id": 39510, "nodeType": "Block", "src": "17098:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39507, "name": "InvalidSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38621, "src": "17119:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39508, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17119:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39509, "nodeType": "RevertStatement", "src": "17112:28:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 39521, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "baseExpression": { "expression": { "baseExpression": { "id": 39512, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "17396:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39515, "indexExpression": { "expression": { "id": 39513, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "17407:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39514, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "17411:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "17407:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17396:22:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39516, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17419:6:71", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 38441, "src": "17396:29:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" } }, "id": 39519, "indexExpression": { "expression": { "id": 39517, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "17426:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39518, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17428:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "17426:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "17396:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39520, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "17438:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "17396:43:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39530, "nodeType": "IfStatement", "src": "17392:117:71", "trueBody": { "id": 39529, "nodeType": "Block", "src": "17441:68:71", "statements": [ { "errorCall": { "arguments": [ { "expression": { "id": 39523, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "17478:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39524, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17480:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "17478:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39525, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "17487:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "17491:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "17487:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 39522, "name": "InvalidConsumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38619, "src": "17462:15:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint64_$_t_address_$returns$__$", "typeString": "function (uint64,address) pure" } }, "id": 39527, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17462:36:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39528, "nodeType": "RevertStatement", "src": "17455:43:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 39540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "id": 39535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39531, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "17536:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39532, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17538:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45040, "src": "17536:22:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 39533, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "17561:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 39534, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17569:27:71", "memberName": "minimumRequestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45298, "src": "17561:35:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "17536:60:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "id": 39539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39536, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "17616:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39537, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17618:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45040, "src": "17616:22:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "id": 39538, "name": "MAX_REQUEST_CONFIRMATIONS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38388, "src": "17641:25:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "17616:50:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "17536:130:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39550, "nodeType": "IfStatement", "src": "17519:335:71", "trueBody": { "id": 39549, "nodeType": "Block", "src": "17677:177:71", "statements": [ { "errorCall": { "arguments": [ { "expression": { "id": 39542, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "17743:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39543, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17745:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45040, "src": "17743:22:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 39544, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "17767:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 39545, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "17775:27:71", "memberName": "minimumRequestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45298, "src": "17767:35:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "id": 39546, "name": "MAX_REQUEST_CONFIRMATIONS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38388, "src": "17804:25:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" } ], "id": 39541, "name": "InvalidRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38607, "src": "17698:27:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint16_$_t_uint16_$_t_uint16_$returns$__$", "typeString": "function (uint16,uint16,uint16) pure" } }, "id": 39547, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "17698:145:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39548, "nodeType": "RevertStatement", "src": "17691:152:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 39555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39551, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18084:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39552, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18086:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45042, "src": "18084:18:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "expression": { "id": 39553, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "18105:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 39554, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18113:11:71", "memberName": "maxGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45300, "src": "18105:19:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "18084:40:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39564, "nodeType": "IfStatement", "src": "18080:133:71", "trueBody": { "id": 39563, "nodeType": "Block", "src": "18126:87:71", "statements": [ { "errorCall": { "arguments": [ { "expression": { "id": 39557, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18162:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18164:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45042, "src": "18162:18:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39559, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "18182:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 39560, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18190:11:71", "memberName": "maxGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45300, "src": "18182:19:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 39556, "name": "GasLimitTooBig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38663, "src": "18147:14:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint32_$_t_uint32_$returns$__$", "typeString": "function (uint32,uint32) pure" } }, "id": 39561, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18147:55:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39562, "nodeType": "RevertStatement", "src": "18140:62:71" } ] } }, { "expression": { "id": 39571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 39565, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "18310:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 39568, "name": "_findGroupToAssignTask", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40957, "src": "18343:22:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 39569, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18343:24:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39567, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18336:6:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 39566, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "18336:6:71", "typeDescriptions": {} } }, "id": 39570, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18336:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "18310:58:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 39572, "nodeType": "ExpressionStatement", "src": "18310:58:71" }, { "assignments": [ 39574 ], "declarations": [ { "constant": false, "id": 39574, "mutability": "mutable", "name": "rawSeed", "nameLocation": "18431:7:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "18423:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39573, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18423:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39591, "initialValue": { "arguments": [ { "expression": { "id": 39576, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18464:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39577, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18466:4:71", "memberName": "seed", "nodeType": "MemberAccess", "referencedDeclaration": 45038, "src": "18464:6:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39578, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18472:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39579, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18474:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "18472:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39580, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18481:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39581, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "18485:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "18481:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "baseExpression": { "expression": { "baseExpression": { "id": 39582, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "18493:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39585, "indexExpression": { "expression": { "id": 39583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18504:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "18508:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "18504:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18493:22:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39586, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18516:6:71", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 38441, "src": "18493:29:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" } }, "id": 39589, "indexExpression": { "expression": { "id": 39587, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18523:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39588, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18525:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "18523:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18493:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" } ], "id": 39575, "name": "_makeRandcastInputSeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52249, "src": "18441:22:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint64_$_t_address_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint64,address,uint256) view returns (uint256)" } }, "id": 39590, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18441:91:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "18423:109:71" }, { "expression": { "id": 39599, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "baseExpression": { "id": 39592, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "18542:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39595, "indexExpression": { "expression": { "id": 39593, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18553:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39594, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "18557:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "18553:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18542:22:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39596, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "18565:16:71", "memberName": "lastSubscription", "nodeType": "MemberAccess", "referencedDeclaration": 38443, "src": "18542:39:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 39597, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18584:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39598, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18586:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "18584:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "18542:49:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39600, "nodeType": "ExpressionStatement", "src": "18542:49:71" }, { "expression": { "id": 39610, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "baseExpression": { "id": 39601, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "18601:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39604, "indexExpression": { "expression": { "id": 39602, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "18612:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39603, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "18616:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "18612:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "18601:22:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39605, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18624:6:71", "memberName": "nonces", "nodeType": "MemberAccess", "referencedDeclaration": 38441, "src": "18601:29:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_uint64_$", "typeString": "mapping(uint64 => uint64)" } }, "id": 39608, "indexExpression": { "expression": { "id": 39606, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18631:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39607, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18633:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "18631:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "18601:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 39609, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "18643:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "18601:43:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 39611, "nodeType": "ExpressionStatement", "src": "18601:43:71" }, { "assignments": [ 39613 ], "declarations": [ { "constant": false, "id": 39613, "mutability": "mutable", "name": "requestId", "nameLocation": "18662:9:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "18654:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39612, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "18654:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 39617, "initialValue": { "arguments": [ { "id": 39615, "name": "rawSeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39574, "src": "18689:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39614, "name": "_makeRequestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 52264, "src": "18674:14:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (uint256) pure returns (bytes32)" } }, "id": 39616, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18674:23:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "18654:43:71" }, { "assignments": [ null, 39619 ], "declarations": [ null, { "constant": false, "id": 39619, "mutability": "mutable", "name": "groupSize", "nameLocation": "18719:9:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "18711:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39618, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18711:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39624, "initialValue": { "arguments": [ { "id": 39622, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "18762:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "expression": { "id": 39620, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "18732:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 39621, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "18744:17:71", "memberName": "getGroupThreshold", "nodeType": "MemberAccess", "referencedDeclaration": 45629, "src": "18732:29:71", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$_t_uint256_$", "typeString": "function (uint256) view external returns (uint256,uint256)" } }, "id": 39623, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18732:54:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256)" } }, "nodeType": "VariableDeclarationStatement", "src": "18708:78:71" }, { "assignments": [ 39626 ], "declarations": [ { "constant": false, "id": 39626, "mutability": "mutable", "name": "payment", "nameLocation": "18805:7:71", "nodeType": "VariableDeclaration", "scope": 39692, "src": "18797:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39625, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "18797:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39639, "initialValue": { "arguments": [ { "id": 39628, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39494, "src": "18856:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, { "id": 39629, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39613, "src": "18861:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "arguments": [ { "id": 39632, "name": "groupSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39619, "src": "18879:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39631, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "18872:6:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 39630, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "18872:6:71", "typeDescriptions": {} } }, "id": 39633, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18872:17:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39634, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18891:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39635, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18893:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45042, "src": "18891:18:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39636, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "18911:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39637, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "18913:19:71", "memberName": "callbackMaxGasPrice", "nodeType": "MemberAccess", "referencedDeclaration": 45044, "src": "18911:21:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39627, "name": "_freezePaymentBySubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40663, "src": "18827:28:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Subscription_$38470_storage_ptr_$_t_bytes32_$_t_uint32_$_t_uint32_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (struct Adapter.Subscription storage pointer,bytes32,uint32,uint32,uint256) returns (uint256)" } }, "id": 39638, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18827:106:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "18797:136:71" }, { "expression": { "id": 39667, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 39640, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "18944:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39642, "indexExpression": { "id": 39641, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39613, "src": "18964:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "18944:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [ { "id": 39646, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39613, "src": "19028:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39647, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19055:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39648, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19057:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "19055:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39649, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "19080:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39650, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19121:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39651, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19123:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45032, "src": "19121:13:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, { "expression": { "id": 39652, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19152:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39653, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19154:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45034, "src": "19152:8:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "expression": { "id": 39654, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "19178:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39655, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "19182:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "19178:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 39656, "name": "rawSeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39574, "src": "19206:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39657, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19231:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39658, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19233:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45040, "src": "19231:22:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 39659, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19271:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39660, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19273:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45042, "src": "19271:18:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39661, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19307:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39662, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19309:19:71", "memberName": "callbackMaxGasPrice", "nodeType": "MemberAccess", "referencedDeclaration": 45044, "src": "19307:21:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39663, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "19346:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 39664, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "19352:6:71", "memberName": "number", "nodeType": "MemberAccess", "src": "19346:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 39644, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "19000:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 39645, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "19004:6:71", "memberName": "encode", "nodeType": "MemberAccess", "src": "19000:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 39665, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19000:372:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 39643, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "18977:9:71", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 39666, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "18977:405:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "18944:438:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "id": 39668, "nodeType": "ExpressionStatement", "src": "18944:438:71" }, { "eventCall": { "arguments": [ { "id": 39670, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39613, "src": "19429:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39671, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19452:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39672, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19454:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45036, "src": "19452:7:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 39673, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "19473:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39674, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19510:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39675, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19512:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45032, "src": "19510:13:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, { "expression": { "id": 39676, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19537:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39677, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19539:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45034, "src": "19537:8:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "expression": { "id": 39678, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "19559:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "19563:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "19559:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 39680, "name": "rawSeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39574, "src": "19583:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39681, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19604:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39682, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19606:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45040, "src": "19604:22:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 39683, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19640:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39684, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19642:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45042, "src": "19640:18:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39685, "name": "p", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39479, "src": "19672:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_memory_ptr", "typeString": "struct IAdapter.RandomnessRequestParams memory" } }, "id": 39686, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "19674:19:71", "memberName": "callbackMaxGasPrice", "nodeType": "MemberAccess", "referencedDeclaration": 45044, "src": "19672:21:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39687, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39626, "src": "19707:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39669, "name": "RandomnessRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38572, "src": "19398:17:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint64_$_t_uint32_$_t_enum$_RequestType_$45955_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_uint16_$_t_uint32_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint64,uint32,enum IRequestTypeBase.RequestType,bytes memory,address,uint256,uint16,uint32,uint256,uint256)" } }, "id": 39688, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "19398:326:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39689, "nodeType": "EmitStatement", "src": "19393:331:71" }, { "expression": { "id": 39690, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39613, "src": "19742:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 39476, "id": 39691, "nodeType": "Return", "src": "19735:16:71" } ] }, "baseFunctions": [ 45082 ], "functionSelector": "a39402d7", "implemented": true, "kind": "function", "modifiers": [ { "id": 39473, "kind": "modifierInvocation", "modifierName": { "id": 39472, "name": "nonReentrant", "nameLocations": [ "16698:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "16698:12:71" }, "nodeType": "ModifierInvocation", "src": "16698:12:71" } ], "name": "requestRandomness", "nameLocation": "16573:17:71", "overrides": { "id": 39471, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39470, "name": "IAdapter", "nameLocations": [ "16680:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "16680:8:71" } ], "src": "16671:18:71" }, "parameters": { "id": 39469, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39468, "mutability": "mutable", "name": "params", "nameLocation": "16624:6:71", "nodeType": "VariableDeclaration", "scope": 39693, "src": "16591:39:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_calldata_ptr", "typeString": "struct IAdapter.RandomnessRequestParams" }, "typeName": { "id": 39467, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39466, "name": "RandomnessRequestParams", "nameLocations": [ "16591:23:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45045, "src": "16591:23:71" }, "referencedDeclaration": 45045, "src": "16591:23:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RandomnessRequestParams_$45045_storage_ptr", "typeString": "struct IAdapter.RandomnessRequestParams" } }, "visibility": "internal" } ], "src": "16590:41:71" }, "returnParameters": { "id": 39476, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39475, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 39693, "src": "16728:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39474, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "16728:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "16727:9:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 39895, "nodeType": "FunctionDefinition", "src": "19764:2720:71", "nodes": [], "body": { "id": 39894, "nodeType": "Block", "src": "20026:2458:71", "nodes": [], "statements": [ { "assignments": [ 39714 ], "declarations": [ { "constant": false, "id": 39714, "mutability": "mutable", "name": "startGas", "nameLocation": "20044:8:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "20036:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39713, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "20036:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39717, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "id": 39715, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -7, "src": "20055:7:71", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 39716, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20055:9:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "20036:28:71" }, { "assignments": [ 39719 ], "declarations": [ { "constant": false, "id": 39719, "mutability": "mutable", "name": "commitment", "nameLocation": "20083:10:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "20075:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39718, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "20075:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "id": 39723, "initialValue": { "baseExpression": { "id": 39720, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "20096:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39722, "indexExpression": { "id": 39721, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "20116:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "20096:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", "src": "20075:51:71" }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 39726, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39724, "name": "commitment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39719, "src": "20140:10:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 39725, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "20154:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "20140:15:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39731, "nodeType": "IfStatement", "src": "20136:77:71", "trueBody": { "id": 39730, "nodeType": "Block", "src": "20157:56:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39727, "name": "NoCorrespondingRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38637, "src": "20178:22:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39728, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20178:24:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39729, "nodeType": "RevertStatement", "src": "20171:31:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "id": 39759, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39732, "name": "commitment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39719, "src": "20239:10:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "arguments": [ { "id": 39736, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "20336:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39737, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20371:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39738, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20385:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "20371:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39739, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20416:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20430:10:71", "memberName": "groupIndex", "nodeType": "MemberAccess", "referencedDeclaration": 45049, "src": "20416:24:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39741, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20466:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39742, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20480:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45052, "src": "20466:25:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, { "expression": { "id": 39743, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20517:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39744, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20531:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45054, "src": "20517:20:71", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, { "expression": { "id": 39745, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20563:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20577:16:71", "memberName": "callbackContract", "nodeType": "MemberAccess", "referencedDeclaration": 45056, "src": "20563:30:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 39747, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20619:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20633:4:71", "memberName": "seed", "nodeType": "MemberAccess", "referencedDeclaration": 45058, "src": "20619:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39749, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20663:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20677:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45060, "src": "20663:34:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 39751, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20723:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39752, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20737:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45062, "src": "20723:30:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39753, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20779:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39754, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20793:19:71", "memberName": "callbackMaxGasPrice", "nodeType": "MemberAccess", "referencedDeclaration": 45064, "src": "20779:33:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39755, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20838:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20852:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "20838:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint16", "typeString": "uint16" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 39734, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "20300:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 39735, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "20304:6:71", "memberName": "encode", "nodeType": "MemberAccess", "src": "20300:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 39757, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20300:582:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 39733, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "20269:9:71", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 39758, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20269:631:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "src": "20239:661:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39764, "nodeType": "IfStatement", "src": "20222:742:71", "trueBody": { "id": 39763, "nodeType": "Block", "src": "20911:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39760, "name": "IncorrectCommitment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38639, "src": "20932:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39761, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "20932:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39762, "nodeType": "RevertStatement", "src": "20925:28:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39772, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39765, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "20978:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 39766, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "20984:6:71", "memberName": "number", "nodeType": "MemberAccess", "src": "20978:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39767, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "20993:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39768, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21007:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "20993:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "expression": { "id": 39769, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21018:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21032:20:71", "memberName": "requestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45060, "src": "21018:34:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "20993:59:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "20978:74:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39777, "nodeType": "IfStatement", "src": "20974:149:71", "trueBody": { "id": 39776, "nodeType": "Block", "src": "21054:69:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39773, "name": "TaskStillWithinRequestConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38645, "src": "21075:35:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39774, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21075:37:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39775, "nodeType": "RevertStatement", "src": "21068:44:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 39790, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 39781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39778, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39695, "src": "21150:10:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "expression": { "id": 39779, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21164:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39780, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21178:10:71", "memberName": "groupIndex", "nodeType": "MemberAccess", "referencedDeclaration": 45049, "src": "21164:24:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "21150:38:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39789, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39782, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "21208:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 39783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21214:6:71", "memberName": "number", "nodeType": "MemberAccess", "src": "21208:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39788, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39784, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21224:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21238:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "21224:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "expression": { "id": 39786, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "21249:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 39787, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "21257:28:71", "memberName": "signatureTaskExclusiveWindow", "nodeType": "MemberAccess", "referencedDeclaration": 45308, "src": "21249:36:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21224:61:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21208:77:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "21150:135:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39795, "nodeType": "IfStatement", "src": "21133:215:71", "trueBody": { "id": 39794, "nodeType": "Block", "src": "21296:52:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39791, "name": "TaskStillExclusive", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38643, "src": "21317:18:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39792, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21317:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39793, "nodeType": "RevertStatement", "src": "21310:27:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 39800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 39796, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39695, "src": "21361:10:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 39797, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "21375:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 39798, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21387:13:71", "memberName": "getGroupCount", "nodeType": "MemberAccess", "referencedDeclaration": 45612, "src": "21375:25:71", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 39799, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21375:27:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21361:41:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39806, "nodeType": "IfStatement", "src": "21357:104:71", "trueBody": { "id": 39805, "nodeType": "Block", "src": "21404:57:71", "statements": [ { "errorCall": { "arguments": [ { "id": 39802, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39695, "src": "21439:10:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 39801, "name": "GroupNotExist", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38651, "src": "21425:13:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$__$", "typeString": "function (uint256) pure" } }, "id": 39803, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21425:25:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39804, "nodeType": "RevertStatement", "src": "21418:32:71" } ] } }, { "assignments": [ 39811 ], "declarations": [ { "constant": false, "id": 39811, "mutability": "mutable", "name": "participantMembers", "nameLocation": "21488:18:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "21471:35:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 39809, "name": "address", "nodeType": "ElementaryTypeName", "src": "21471:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39810, "nodeType": "ArrayTypeName", "src": "21471:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "id": 39821, "initialValue": { "arguments": [ { "id": 39813, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39695, "src": "21538:10:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39814, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21550:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39815, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21564:4:71", "memberName": "seed", "nodeType": "MemberAccess", "referencedDeclaration": 45058, "src": "21550:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39816, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21570:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39817, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21584:8:71", "memberName": "blockNum", "nodeType": "MemberAccess", "referencedDeclaration": 45066, "src": "21570:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39818, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39699, "src": "21594:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39819, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39706, "src": "21605:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IAdapter.PartialSignature calldata[] calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IAdapter.PartialSignature calldata[] calldata" } ], "id": 39812, "name": "_verifySignature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41180, "src": "21521:16:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256,uint256,uint256,uint256,struct IAdapter.PartialSignature memory[] memory) view returns (address[] memory)" } }, "id": 39820, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21521:102:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "21471:152:71" }, { "expression": { "id": 39825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "21634:37:71", "subExpression": { "baseExpression": { "id": 39822, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "21641:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39824, "indexExpression": { "id": 39823, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "21661:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "21641:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39826, "nodeType": "ExpressionStatement", "src": "21634:37:71" }, { "assignments": [ 39828 ], "declarations": [ { "constant": false, "id": 39828, "mutability": "mutable", "name": "randomness", "nameLocation": "21690:10:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "21682:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39827, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21682:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39838, "initialValue": { "arguments": [ { "arguments": [ { "arguments": [ { "id": 39834, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39699, "src": "21732:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 39832, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "21721:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 39833, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "21725:6:71", "memberName": "encode", "nodeType": "MemberAccess", "src": "21721:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 39835, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21721:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 39831, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "21711:9:71", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 39836, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21711:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 39830, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "21703:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 39829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "21703:7:71", "typeDescriptions": {} } }, "id": 39837, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21703:41:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "21682:62:71" }, { "expression": { "id": 39841, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 39839, "name": "_randomnessCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38412, "src": "21755:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 39840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "21775:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "21755:21:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 39842, "nodeType": "ExpressionStatement", "src": "21755:21:71" }, { "expression": { "id": 39845, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 39843, "name": "_lastRandomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38410, "src": "21786:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 39844, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39828, "src": "21804:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "21786:28:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 39846, "nodeType": "ExpressionStatement", "src": "21786:28:71" }, { "expression": { "arguments": [ { "id": 39850, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39828, "src": "21850:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 39847, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "21824:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 39849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "21836:13:71", "memberName": "setLastOutput", "nodeType": "MemberAccess", "referencedDeclaration": 45572, "src": "21824:25:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, "id": 39851, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21824:37:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39852, "nodeType": "ExpressionStatement", "src": "21824:37:71" }, { "assignments": [ 39854 ], "declarations": [ { "constant": false, "id": 39854, "mutability": "mutable", "name": "success", "nameLocation": "21925:7:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "21920:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 39853, "name": "bool", "nodeType": "ElementaryTypeName", "src": "21920:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "id": 39860, "initialValue": { "arguments": [ { "id": 39856, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "21952:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 39857, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39828, "src": "21963:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39858, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "21975:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } ], "id": 39855, "name": "_fulfillCallback", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40538, "src": "21935:16:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_struct$_RequestDetail_$45067_memory_ptr_$returns$_t_bool_$", "typeString": "function (bytes32,uint256,struct IAdapter.RequestDetail memory) returns (bool)" } }, "id": 39859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "21935:54:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", "src": "21920:69:71" }, { "assignments": [ 39862, 39864 ], "declarations": [ { "constant": false, "id": 39862, "mutability": "mutable", "name": "payment", "nameLocation": "22009:7:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "22001:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39861, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22001:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 39864, "mutability": "mutable", "name": "flatFee", "nameLocation": "22026:7:71", "nodeType": "VariableDeclaration", "scope": 39894, "src": "22018:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39863, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22018:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 39875, "initialValue": { "arguments": [ { "baseExpression": { "id": 39866, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "22068:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39869, "indexExpression": { "expression": { "id": 39867, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39702, "src": "22083:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail calldata" } }, "id": 39868, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "22097:5:71", "memberName": "subId", "nodeType": "MemberAccess", "referencedDeclaration": 45047, "src": "22083:19:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22068:35:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, { "id": 39870, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "22105:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "expression": { "id": 39871, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39706, "src": "22116:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IAdapter.PartialSignature calldata[] calldata" } }, "id": 39872, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "22134:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "22116:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39873, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39714, "src": "22142:8:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39865, "name": "_payBySubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40828, "src": "22049:18:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Subscription_$38470_storage_ptr_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", "typeString": "function (struct Adapter.Subscription storage pointer,bytes32,uint256,uint256) returns (uint256,uint256)" } }, "id": 39874, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22049:102:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256)" } }, "nodeType": "VariableDeclarationStatement", "src": "22000:151:71" }, { "expression": { "arguments": [ { "id": 39877, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39811, "src": "22225:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "id": 39878, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39862, "src": "22245:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39879, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39864, "src": "22254:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 39876, "name": "_rewardRandomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40370, "src": "22207:17:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address[] memory,uint256,uint256)" } }, "id": 39880, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22207:55:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39881, "nodeType": "ExpressionStatement", "src": "22207:55:71" }, { "eventCall": { "arguments": [ { "id": 39883, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39697, "src": "22375:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 39884, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39695, "src": "22386:10:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 39885, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "22398:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 39886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "22402:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "22398:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 39887, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39811, "src": "22410:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "id": 39888, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39828, "src": "22430:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39889, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39862, "src": "22442:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39890, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39864, "src": "22451:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 39891, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39854, "src": "22460:7:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 39882, "name": "RandomnessRequestResult", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38591, "src": "22338:23:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint32_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", "typeString": "function (bytes32,uint32,address,address[] memory,uint256,uint256,uint256,bool)" } }, "id": 39892, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "22338:139:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39893, "nodeType": "EmitStatement", "src": "22333:144:71" } ] }, "baseFunctions": [ 45098 ], "functionSelector": "caba5284", "implemented": true, "kind": "function", "modifiers": [ { "id": 39711, "kind": "modifierInvocation", "modifierName": { "id": 39710, "name": "nonReentrant", "nameLocations": [ "20013:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "20013:12:71" }, "nodeType": "ModifierInvocation", "src": "20013:12:71" } ], "name": "fulfillRandomness", "nameLocation": "19773:17:71", "overrides": { "id": 39709, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39708, "name": "IAdapter", "nameLocations": [ "20003:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "20003:8:71" } ], "src": "19994:18:71" }, "parameters": { "id": 39707, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39695, "mutability": "mutable", "name": "groupIndex", "nameLocation": "19807:10:71", "nodeType": "VariableDeclaration", "scope": 39895, "src": "19800:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 39694, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "19800:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 39697, "mutability": "mutable", "name": "requestId", "nameLocation": "19835:9:71", "nodeType": "VariableDeclaration", "scope": 39895, "src": "19827:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39696, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "19827:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 39699, "mutability": "mutable", "name": "signature", "nameLocation": "19862:9:71", "nodeType": "VariableDeclaration", "scope": 39895, "src": "19854:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39698, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "19854:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 39702, "mutability": "mutable", "name": "requestDetail", "nameLocation": "19904:13:71", "nodeType": "VariableDeclaration", "scope": 39895, "src": "19881:36:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_calldata_ptr", "typeString": "struct IAdapter.RequestDetail" }, "typeName": { "id": 39701, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39700, "name": "RequestDetail", "nameLocations": [ "19881:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45067, "src": "19881:13:71" }, "referencedDeclaration": 45067, "src": "19881:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_storage_ptr", "typeString": "struct IAdapter.RequestDetail" } }, "visibility": "internal" }, { "constant": false, "id": 39706, "mutability": "mutable", "name": "partialSignatures", "nameLocation": "19955:17:71", "nodeType": "VariableDeclaration", "scope": 39895, "src": "19927:45:71", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_calldata_ptr_$dyn_calldata_ptr", "typeString": "struct IAdapter.PartialSignature[]" }, "typeName": { "baseType": { "id": 39704, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39703, "name": "PartialSignature", "nameLocations": [ "19927:16:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45029, "src": "19927:16:71" }, "referencedDeclaration": 45029, "src": "19927:16:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_storage_ptr", "typeString": "struct IAdapter.PartialSignature" } }, "id": 39705, "nodeType": "ArrayTypeName", "src": "19927:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_storage_$dyn_storage_ptr", "typeString": "struct IAdapter.PartialSignature[]" } }, "visibility": "internal" } ], "src": "19790:188:71" }, "returnParameters": { "id": 39712, "nodeType": "ParameterList", "parameters": [], "src": "20026:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 39910, "nodeType": "FunctionDefinition", "src": "22490:156:71", "nodes": [], "body": { "id": 39909, "nodeType": "Block", "src": "22585:61:71", "nodes": [], "statements": [ { "expression": { "expression": { "baseExpression": { "id": 39904, "name": "_consumers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38424, "src": "22602:10:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Consumer_$38444_storage_$", "typeString": "mapping(address => struct Adapter.Consumer storage ref)" } }, "id": 39906, "indexExpression": { "id": 39905, "name": "consumer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39897, "src": "22613:8:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "22602:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Consumer_$38444_storage", "typeString": "struct Adapter.Consumer storage ref" } }, "id": 39907, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "22623:16:71", "memberName": "lastSubscription", "nodeType": "MemberAccess", "referencedDeclaration": 38443, "src": "22602:37:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "functionReturnParameters": 39903, "id": 39908, "nodeType": "Return", "src": "22595:44:71" } ] }, "baseFunctions": [ 45151 ], "functionSelector": "76a911bc", "implemented": true, "kind": "function", "modifiers": [], "name": "getLastSubscription", "nameLocation": "22499:19:71", "overrides": { "id": 39900, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39899, "name": "IAdapter", "nameLocations": [ "22558:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "22558:8:71" } ], "src": "22549:18:71" }, "parameters": { "id": 39898, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39897, "mutability": "mutable", "name": "consumer", "nameLocation": "22527:8:71", "nodeType": "VariableDeclaration", "scope": 39910, "src": "22519:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39896, "name": "address", "nodeType": "ElementaryTypeName", "src": "22519:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "22518:18:71" }, "returnParameters": { "id": 39903, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39902, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 39910, "src": "22577:6:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39901, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "22577:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "22576:8:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 39976, "nodeType": "FunctionDefinition", "src": "22652:901:71", "nodes": [], "body": { "id": 39975, "nodeType": "Block", "src": "23095:458:71", "nodes": [], "statements": [ { "assignments": [ 39938 ], "declarations": [ { "constant": false, "id": 39938, "mutability": "mutable", "name": "sub", "nameLocation": "23126:3:71", "nodeType": "VariableDeclaration", "scope": 39975, "src": "23105:24:71", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" }, "typeName": { "id": 39937, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 39936, "name": "Subscription", "nameLocations": [ "23105:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38470, "src": "23105:12:71" }, "referencedDeclaration": 38470, "src": "23105:12:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" } }, "visibility": "internal" } ], "id": 39942, "initialValue": { "baseExpression": { "id": 39939, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "23132:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 39941, "indexExpression": { "id": 39940, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39912, "src": "23147:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23132:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "23105:48:71" }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 39949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 39943, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23167:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23171:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "23167:9:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 39947, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "23188:1:71", "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": 39946, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "23180:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 39945, "name": "address", "nodeType": "ElementaryTypeName", "src": "23180:7:71", "typeDescriptions": {} } }, "id": 39948, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23180:10:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "23167:23:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 39954, "nodeType": "IfStatement", "src": "23163:82:71", "trueBody": { "id": 39953, "nodeType": "Block", "src": "23192:53:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 39950, "name": "InvalidSubscription", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38621, "src": "23213:19:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 39951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "23213:21:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 39952, "nodeType": "RevertStatement", "src": "23206:28:71" } ] } }, { "expression": { "components": [ { "expression": { "id": 39955, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23275:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39956, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23279:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "23275:9:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "expression": { "id": 39957, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23298:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39958, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23302:9:71", "memberName": "consumers", "nodeType": "MemberAccess", "referencedDeclaration": 38451, "src": "23298:13:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, { "expression": { "id": 39959, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23325:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39960, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23329:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "23325:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39961, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23350:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39962, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23354:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "23350:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 39963, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23380:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39964, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23384:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "23380:12:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39965, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23406:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39966, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23410:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "23406:20:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39967, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23440:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39968, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23444:13:71", "memberName": "referralSubId", "nodeType": "MemberAccess", "referencedDeclaration": 38465, "src": "23440:17:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39969, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23471:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39970, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23475:23:71", "memberName": "reqCountInCurrentPeriod", "nodeType": "MemberAccess", "referencedDeclaration": 38467, "src": "23471:27:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "expression": { "id": 39971, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39938, "src": "23512:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 39972, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "23516:20:71", "memberName": "lastRequestTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 38469, "src": "23512:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 39973, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "23261:285:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_address_$_t_array$_t_address_$dyn_storage_$_t_uint256_$_t_uint256_$_t_uint64_$_t_uint64_$_t_uint64_$_t_uint64_$_t_uint256_$", "typeString": "tuple(address,address[] storage ref,uint256,uint256,uint64,uint64,uint64,uint64,uint256)" } }, "functionReturnParameters": 39935, "id": 39974, "nodeType": "Return", "src": "23254:292:71" } ] }, "baseFunctions": [ 45175 ], "functionSelector": "a47c7696", "implemented": true, "kind": "function", "modifiers": [], "name": "getSubscription", "nameLocation": "22661:15:71", "overrides": { "id": 39915, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39914, "name": "IAdapter", "nameLocations": [ "22738:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "22738:8:71" } ], "src": "22729:18:71" }, "parameters": { "id": 39913, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39912, "mutability": "mutable", "name": "subId", "nameLocation": "22684:5:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22677:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39911, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "22677:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "22676:14:71" }, "returnParameters": { "id": 39935, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39917, "mutability": "mutable", "name": "owner", "nameLocation": "22786:5:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22778:13:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 39916, "name": "address", "nodeType": "ElementaryTypeName", "src": "22778:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 39920, "mutability": "mutable", "name": "consumers", "nameLocation": "22822:9:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22805:26:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 39918, "name": "address", "nodeType": "ElementaryTypeName", "src": "22805:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 39919, "nodeType": "ArrayTypeName", "src": "22805:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 39922, "mutability": "mutable", "name": "balance", "nameLocation": "22853:7:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22845:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39921, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22845:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 39924, "mutability": "mutable", "name": "inflightCost", "nameLocation": "22882:12:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22874:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39923, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "22874:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 39926, "mutability": "mutable", "name": "reqCount", "nameLocation": "22915:8:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22908:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39925, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "22908:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39928, "mutability": "mutable", "name": "freeRequestCount", "nameLocation": "22944:16:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22937:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39927, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "22937:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39930, "mutability": "mutable", "name": "referralSubId", "nameLocation": "22981:13:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "22974:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39929, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "22974:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39932, "mutability": "mutable", "name": "reqCountInCurrentPeriod", "nameLocation": "23015:23:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "23008:30:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 39931, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "23008:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 39934, "mutability": "mutable", "name": "lastRequestTimestamp", "nameLocation": "23060:20:71", "nodeType": "VariableDeclaration", "scope": 39976, "src": "23052:28:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39933, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23052:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "22764:326:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 39990, "nodeType": "FunctionDefinition", "src": "23559:159:71", "nodes": [], "body": { "id": 39989, "nodeType": "Block", "src": "23664:54:71", "nodes": [], "statements": [ { "expression": { "baseExpression": { "id": 39985, "name": "_requestCommitments", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38419, "src": "23681:19:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bytes32_$", "typeString": "mapping(bytes32 => bytes32)" } }, "id": 39987, "indexExpression": { "id": 39986, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 39978, "src": "23701:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "23681:30:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "functionReturnParameters": 39984, "id": 39988, "nodeType": "Return", "src": "23674:37:71" } ] }, "baseFunctions": [ 45182 ], "functionSelector": "1565034c", "implemented": true, "kind": "function", "modifiers": [], "name": "getPendingRequestCommitment", "nameLocation": "23568:27:71", "overrides": { "id": 39981, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39980, "name": "IAdapter", "nameLocations": [ "23636:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "23636:8:71" } ], "src": "23627:18:71" }, "parameters": { "id": 39979, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39978, "mutability": "mutable", "name": "requestId", "nameLocation": "23604:9:71", "nodeType": "VariableDeclaration", "scope": 39990, "src": "23596:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39977, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "23596:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "23595:19:71" }, "returnParameters": { "id": 39984, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39983, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 39990, "src": "23655:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 39982, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "23655:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" } ], "src": "23654:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 40000, "nodeType": "FunctionDefinition", "src": "23724:135:71", "nodes": [], "body": { "id": 39999, "nodeType": "Block", "src": "23812:47:71", "nodes": [], "statements": [ { "expression": { "id": 39997, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "23829:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 39996, "id": 39998, "nodeType": "Return", "src": "23822:30:71" } ] }, "baseFunctions": [ 45187 ], "functionSelector": "91a6fe77", "implemented": true, "kind": "function", "modifiers": [], "name": "getLastAssignedGroupIndex", "nameLocation": "23733:25:71", "overrides": { "id": 39993, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 39992, "name": "IAdapter", "nameLocations": [ "23784:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "23784:8:71" } ], "src": "23775:18:71" }, "parameters": { "id": 39991, "nodeType": "ParameterList", "parameters": [], "src": "23758:2:71" }, "returnParameters": { "id": 39996, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 39995, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40000, "src": "23803:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 39994, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23803:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "23802:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40010, "nodeType": "FunctionDefinition", "src": "23865:119:71", "nodes": [], "body": { "id": 40009, "nodeType": "Block", "src": "23945:39:71", "nodes": [], "statements": [ { "expression": { "id": 40007, "name": "_lastRandomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38410, "src": "23962:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40006, "id": 40008, "nodeType": "Return", "src": "23955:22:71" } ] }, "baseFunctions": [ 45192 ], "functionSelector": "a4c343f2", "implemented": true, "kind": "function", "modifiers": [], "name": "getLastRandomness", "nameLocation": "23874:17:71", "overrides": { "id": 40003, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40002, "name": "IAdapter", "nameLocations": [ "23917:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "23917:8:71" } ], "src": "23908:18:71" }, "parameters": { "id": 40001, "nodeType": "ParameterList", "parameters": [], "src": "23891:2:71" }, "returnParameters": { "id": 40006, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40005, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40010, "src": "23936:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40004, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "23936:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "23935:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40020, "nodeType": "FunctionDefinition", "src": "23990:121:71", "nodes": [], "body": { "id": 40019, "nodeType": "Block", "src": "24071:40:71", "nodes": [], "statements": [ { "expression": { "id": 40017, "name": "_randomnessCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38412, "src": "24088:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40016, "id": 40018, "nodeType": "Return", "src": "24081:23:71" } ] }, "baseFunctions": [ 45197 ], "functionSelector": "63602174", "implemented": true, "kind": "function", "modifiers": [], "name": "getRandomnessCount", "nameLocation": "23999:18:71", "overrides": { "id": 40013, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40012, "name": "IAdapter", "nameLocations": [ "24043:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "24043:8:71" } ], "src": "24034:18:71" }, "parameters": { "id": 40011, "nodeType": "ParameterList", "parameters": [], "src": "24017:2:71" }, "returnParameters": { "id": 40016, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40015, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40020, "src": "24062:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40014, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24062:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "24061:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40030, "nodeType": "FunctionDefinition", "src": "24117:114:71", "nodes": [], "body": { "id": 40029, "nodeType": "Block", "src": "24194:37:71", "nodes": [], "statements": [ { "expression": { "id": 40027, "name": "_currentSubId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38431, "src": "24211:13:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "functionReturnParameters": 40026, "id": 40028, "nodeType": "Return", "src": "24204:20:71" } ] }, "baseFunctions": [ 45202 ], "functionSelector": "06bfa637", "implemented": true, "kind": "function", "modifiers": [], "name": "getCurrentSubId", "nameLocation": "24126:15:71", "overrides": { "id": 40023, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40022, "name": "IAdapter", "nameLocations": [ "24167:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "24167:8:71" } ], "src": "24158:18:71" }, "parameters": { "id": 40021, "nodeType": "ParameterList", "parameters": [], "src": "24141:2:71" }, "returnParameters": { "id": 40026, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40025, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40030, "src": "24186:6:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 40024, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "24186:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "24185:8:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40047, "nodeType": "FunctionDefinition", "src": "24237:205:71", "nodes": [], "body": { "id": 40046, "nodeType": "Block", "src": "24335:107:71", "nodes": [], "statements": [ { "expression": { "components": [ { "id": 40041, "name": "_cumulativeFlatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38402, "src": "24353:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40042, "name": "_cumulativeCommitterReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38404, "src": "24373:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40043, "name": "_cumulativePartialSignatureReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38406, "src": "24401:33:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40044, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "24352:83:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256,uint256)" } }, "functionReturnParameters": 40040, "id": 40045, "nodeType": "Return", "src": "24345:90:71" } ] }, "baseFunctions": [ 45211 ], "functionSelector": "c725a833", "implemented": true, "kind": "function", "modifiers": [], "name": "getCumulativeData", "nameLocation": "24246:17:71", "overrides": { "id": 40033, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40032, "name": "IAdapter", "nameLocations": [ "24289:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "24289:8:71" } ], "src": "24280:18:71" }, "parameters": { "id": 40031, "nodeType": "ParameterList", "parameters": [], "src": "24263:2:71" }, "returnParameters": { "id": 40040, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40035, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40047, "src": "24308:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40034, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24308:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40037, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40047, "src": "24317:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40036, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24317:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40039, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40047, "src": "24326:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40038, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24326:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "24307:27:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40060, "nodeType": "FunctionDefinition", "src": "24448:120:71", "nodes": [], "body": { "id": 40059, "nodeType": "Block", "src": "24524:44:71", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 40056, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "24549:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } ], "id": 40055, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "24541:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 40054, "name": "address", "nodeType": "ElementaryTypeName", "src": "24541:7:71", "typeDescriptions": {} } }, "id": 40057, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "24541:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 40053, "id": 40058, "nodeType": "Return", "src": "24534:27:71" } ] }, "baseFunctions": [ 45216 ], "functionSelector": "3018205f", "implemented": true, "kind": "function", "modifiers": [], "name": "getController", "nameLocation": "24457:13:71", "overrides": { "id": 40050, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40049, "name": "IAdapter", "nameLocations": [ "24496:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "24496:8:71" } ], "src": "24487:18:71" }, "parameters": { "id": 40048, "nodeType": "ParameterList", "parameters": [], "src": "24470:2:71" }, "returnParameters": { "id": 40053, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40052, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40060, "src": "24515:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 40051, "name": "address", "nodeType": "ElementaryTypeName", "src": "24515:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "24514:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40096, "nodeType": "FunctionDefinition", "src": "24574:762:71", "nodes": [], "body": { "id": 40095, "nodeType": "Block", "src": "24994:342:71", "nodes": [], "statements": [ { "expression": { "components": [ { "expression": { "id": 40079, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25025:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40080, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25033:27:71", "memberName": "minimumRequestConfirmations", "nodeType": "MemberAccess", "referencedDeclaration": 45298, "src": "25025:35:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 40081, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25074:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40082, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25082:11:71", "memberName": "maxGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45300, "src": "25074:19:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40083, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25107:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40084, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25115:26:71", "memberName": "gasAfterPaymentCalculation", "nodeType": "MemberAccess", "referencedDeclaration": 45304, "src": "25107:34:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40085, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25155:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40086, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25163:17:71", "memberName": "gasExceptCallback", "nodeType": "MemberAccess", "referencedDeclaration": 45306, "src": "25155:25:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40087, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25194:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40088, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25202:28:71", "memberName": "signatureTaskExclusiveWindow", "nodeType": "MemberAccess", "referencedDeclaration": 45308, "src": "25194:36:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40089, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25244:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40090, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25252:18:71", "memberName": "rewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45310, "src": "25244:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40091, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "25284:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40092, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "25292:27:71", "memberName": "committerRewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45312, "src": "25284:35:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40093, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "25011:318:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint16_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint16,uint32,uint32,uint32,uint256,uint256,uint256)" } }, "functionReturnParameters": 40078, "id": 40094, "nodeType": "Return", "src": "25004:325:71" } ] }, "baseFunctions": [ 45233 ], "functionSelector": "ef6f4273", "implemented": true, "kind": "function", "modifiers": [], "name": "getAdapterConfig", "nameLocation": "24583:16:71", "overrides": { "id": 40063, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40062, "name": "IAdapter", "nameLocations": [ "24649:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "24649:8:71" } ], "src": "24640:18:71" }, "parameters": { "id": 40061, "nodeType": "ParameterList", "parameters": [], "src": "24599:2:71" }, "returnParameters": { "id": 40078, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40065, "mutability": "mutable", "name": "minimumRequestConfirmations", "nameLocation": "24696:27:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24689:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 40064, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "24689:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 40067, "mutability": "mutable", "name": "maxGasLimit", "nameLocation": "24744:11:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24737:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40066, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "24737:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40069, "mutability": "mutable", "name": "gasAfterPaymentCalculation", "nameLocation": "24776:26:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24769:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40068, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "24769:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40071, "mutability": "mutable", "name": "gasExceptCallback", "nameLocation": "24823:17:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24816:24:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40070, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "24816:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40073, "mutability": "mutable", "name": "signatureTaskExclusiveWindow", "nameLocation": "24862:28:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24854:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40072, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24854:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40075, "mutability": "mutable", "name": "rewardPerSignature", "nameLocation": "24912:18:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24904:26:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40074, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24904:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40077, "mutability": "mutable", "name": "committerRewardPerSignature", "nameLocation": "24952:27:71", "nodeType": "VariableDeclaration", "scope": 40096, "src": "24944:35:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40076, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "24944:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "24675:314:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40162, "nodeType": "FunctionDefinition", "src": "25342:1388:71", "nodes": [], "body": { "id": 40161, "nodeType": "Block", "src": "26055:675:71", "nodes": [], "statements": [ { "assignments": [ 40129 ], "declarations": [ { "constant": false, "id": 40129, "mutability": "mutable", "name": "fc", "nameLocation": "26082:2:71", "nodeType": "VariableDeclaration", "scope": 40161, "src": "26065:19:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig" }, "typeName": { "id": 40128, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40127, "name": "FeeConfig", "nameLocations": [ "26065:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45332, "src": "26065:9:71" }, "referencedDeclaration": 45332, "src": "26065:9:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage_ptr", "typeString": "struct IAdapterOwner.FeeConfig" } }, "visibility": "internal" } ], "id": 40132, "initialValue": { "expression": { "id": 40130, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "26087:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40131, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26102:6:71", "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 45335, "src": "26087:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage", "typeString": "struct IAdapterOwner.FeeConfig storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "26065:43:71" }, { "expression": { "components": [ { "expression": { "id": 40133, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26139:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40134, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26142:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier1", "nodeType": "MemberAccess", "referencedDeclaration": 45315, "src": "26139:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40135, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26185:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40136, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26188:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier2", "nodeType": "MemberAccess", "referencedDeclaration": 45317, "src": "26185:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40137, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26231:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40138, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26234:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier3", "nodeType": "MemberAccess", "referencedDeclaration": 45319, "src": "26231:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40139, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26277:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40140, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26280:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier4", "nodeType": "MemberAccess", "referencedDeclaration": 45321, "src": "26277:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40141, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26323:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40142, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26326:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier5", "nodeType": "MemberAccess", "referencedDeclaration": 45323, "src": "26323:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40143, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26369:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40144, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26372:12:71", "memberName": "reqsForTier2", "nodeType": "MemberAccess", "referencedDeclaration": 45325, "src": "26369:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, { "expression": { "id": 40145, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26398:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40146, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26401:12:71", "memberName": "reqsForTier3", "nodeType": "MemberAccess", "referencedDeclaration": 45327, "src": "26398:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, { "expression": { "id": 40147, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26427:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40148, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26430:12:71", "memberName": "reqsForTier4", "nodeType": "MemberAccess", "referencedDeclaration": 45329, "src": "26427:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, { "expression": { "id": 40149, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40129, "src": "26456:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40150, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26459:12:71", "memberName": "reqsForTier5", "nodeType": "MemberAccess", "referencedDeclaration": 45331, "src": "26456:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, { "expression": { "id": 40151, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "26485:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40152, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26500:32:71", "memberName": "flatFeePromotionGlobalPercentage", "nodeType": "MemberAccess", "referencedDeclaration": 45337, "src": "26485:47:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 40153, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "26546:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40154, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26561:36:71", "memberName": "isFlatFeePromotionEnabledPermanently", "nodeType": "MemberAccess", "referencedDeclaration": 45339, "src": "26546:51:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "expression": { "id": 40155, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "26611:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40156, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26626:30:71", "memberName": "flatFeePromotionStartTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45341, "src": "26611:45:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40157, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "26670:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40158, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26685:28:71", "memberName": "flatFeePromotionEndTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45343, "src": "26670:43:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40159, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "26125:598:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint24_$_t_uint16_$_t_bool_$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint32,uint32,uint32,uint32,uint32,uint24,uint24,uint24,uint24,uint16,bool,uint256,uint256)" } }, "functionReturnParameters": 40126, "id": 40160, "nodeType": "Return", "src": "26118:605:71" } ] }, "baseFunctions": [ 45262 ], "functionSelector": "dcdb7b88", "implemented": true, "kind": "function", "modifiers": [], "name": "getFlatFeeConfig", "nameLocation": "25351:16:71", "overrides": { "id": 40099, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40098, "name": "IAdapter", "nameLocations": [ "25417:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "25417:8:71" } ], "src": "25408:18:71" }, "parameters": { "id": 40097, "nodeType": "ParameterList", "parameters": [], "src": "25367:2:71" }, "returnParameters": { "id": 40126, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40101, "mutability": "mutable", "name": "fulfillmentFlatFeeLinkPPMTier1", "nameLocation": "25464:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25457:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40100, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "25457:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40103, "mutability": "mutable", "name": "fulfillmentFlatFeeLinkPPMTier2", "nameLocation": "25515:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25508:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40102, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "25508:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40105, "mutability": "mutable", "name": "fulfillmentFlatFeeLinkPPMTier3", "nameLocation": "25566:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25559:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40104, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "25559:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40107, "mutability": "mutable", "name": "fulfillmentFlatFeeLinkPPMTier4", "nameLocation": "25617:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25610:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40106, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "25610:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40109, "mutability": "mutable", "name": "fulfillmentFlatFeeLinkPPMTier5", "nameLocation": "25668:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25661:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40108, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "25661:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40111, "mutability": "mutable", "name": "reqsForTier2", "nameLocation": "25719:12:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25712:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 40110, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "25712:6:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 40113, "mutability": "mutable", "name": "reqsForTier3", "nameLocation": "25752:12:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25745:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 40112, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "25745:6:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 40115, "mutability": "mutable", "name": "reqsForTier4", "nameLocation": "25785:12:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25778:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 40114, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "25778:6:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 40117, "mutability": "mutable", "name": "reqsForTier5", "nameLocation": "25818:12:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25811:19:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" }, "typeName": { "id": 40116, "name": "uint24", "nodeType": "ElementaryTypeName", "src": "25811:6:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "visibility": "internal" }, { "constant": false, "id": 40119, "mutability": "mutable", "name": "flatFeePromotionGlobalPercentage", "nameLocation": "25851:32:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25844:39:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 40118, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "25844:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 40121, "mutability": "mutable", "name": "isFlatFeePromotionEnabledPermanently", "nameLocation": "25902:36:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25897:41:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 40120, "name": "bool", "nodeType": "ElementaryTypeName", "src": "25897:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 40123, "mutability": "mutable", "name": "flatFeePromotionStartTimestamp", "nameLocation": "25960:30:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "25952:38:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40122, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "25952:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40125, "mutability": "mutable", "name": "flatFeePromotionEndTimestamp", "nameLocation": "26012:28:71", "nodeType": "VariableDeclaration", "scope": 40162, "src": "26004:36:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40124, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "26004:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "25443:607:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40182, "nodeType": "FunctionDefinition", "src": "26736:396:71", "nodes": [], "body": { "id": 40181, "nodeType": "Block", "src": "26938:194:71", "nodes": [], "statements": [ { "expression": { "components": [ { "expression": { "id": 40173, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "26969:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 40174, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "26985:17:71", "memberName": "isReferralEnabled", "nodeType": "MemberAccess", "referencedDeclaration": 45346, "src": "26969:33:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "expression": { "id": 40175, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "27016:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 40176, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27032:27:71", "memberName": "freeRequestCountForReferrer", "nodeType": "MemberAccess", "referencedDeclaration": 45348, "src": "27016:43:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, { "expression": { "id": 40177, "name": "_referralConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38434, "src": "27073:15:71", "typeDescriptions": { "typeIdentifier": "t_struct$_ReferralConfig_$45351_storage", "typeString": "struct IAdapterOwner.ReferralConfig storage ref" } }, "id": 40178, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27089:26:71", "memberName": "freeRequestCountForReferee", "nodeType": "MemberAccess", "referencedDeclaration": 45350, "src": "27073:42:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } } ], "id": 40179, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "26955:170:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_uint16_$_t_uint16_$", "typeString": "tuple(bool,uint16,uint16)" } }, "functionReturnParameters": 40172, "id": 40180, "nodeType": "Return", "src": "26948:177:71" } ] }, "baseFunctions": [ 45271 ], "functionSelector": "1e58a872", "implemented": true, "kind": "function", "modifiers": [], "name": "getReferralConfig", "nameLocation": "26745:17:71", "overrides": { "id": 40165, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40164, "name": "IAdapter", "nameLocations": [ "26812:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "26812:8:71" } ], "src": "26803:18:71" }, "parameters": { "id": 40163, "nodeType": "ParameterList", "parameters": [], "src": "26762:2:71" }, "returnParameters": { "id": 40172, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40167, "mutability": "mutable", "name": "isReferralEnabled", "nameLocation": "26844:17:71", "nodeType": "VariableDeclaration", "scope": 40182, "src": "26839:22:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 40166, "name": "bool", "nodeType": "ElementaryTypeName", "src": "26839:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" }, { "constant": false, "id": 40169, "mutability": "mutable", "name": "freeRequestCountForReferrer", "nameLocation": "26870:27:71", "nodeType": "VariableDeclaration", "scope": 40182, "src": "26863:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 40168, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "26863:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" }, { "constant": false, "id": 40171, "mutability": "mutable", "name": "freeRequestCountForReferee", "nameLocation": "26906:26:71", "nodeType": "VariableDeclaration", "scope": 40182, "src": "26899:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" }, "typeName": { "id": 40170, "name": "uint16", "nodeType": "ElementaryTypeName", "src": "26899:6:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "visibility": "internal" } ], "src": "26838:95:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "external" }, { "id": 40252, "nodeType": "FunctionDefinition", "src": "27138:708:71", "nodes": [], "body": { "id": 40251, "nodeType": "Block", "src": "27223:623:71", "nodes": [], "statements": [ { "assignments": [ 40193 ], "declarations": [ { "constant": false, "id": 40193, "mutability": "mutable", "name": "fc", "nameLocation": "27250:2:71", "nodeType": "VariableDeclaration", "scope": 40251, "src": "27233:19:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig" }, "typeName": { "id": 40192, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40191, "name": "FeeConfig", "nameLocations": [ "27233:9:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45332, "src": "27233:9:71" }, "referencedDeclaration": 45332, "src": "27233:9:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage_ptr", "typeString": "struct IAdapterOwner.FeeConfig" } }, "visibility": "internal" } ], "id": 40196, "initialValue": { "expression": { "id": 40194, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "27255:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40195, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27270:6:71", "memberName": "config", "nodeType": "MemberAccess", "referencedDeclaration": 45335, "src": "27255:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_storage", "typeString": "struct IAdapterOwner.FeeConfig storage ref" } }, "nodeType": "VariableDeclarationStatement", "src": "27233:43:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40197, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27290:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40198, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27302:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40199, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27305:12:71", "memberName": "reqsForTier2", "nodeType": "MemberAccess", "referencedDeclaration": 45325, "src": "27302:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "src": "27290:27:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40205, "nodeType": "IfStatement", "src": "27286:97:71", "trueBody": { "id": 40204, "nodeType": "Block", "src": "27319:64:71", "statements": [ { "expression": { "expression": { "id": 40201, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27340:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40202, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27343:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier1", "nodeType": "MemberAccess", "referencedDeclaration": 45315, "src": "27340:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 40190, "id": 40203, "nodeType": "Return", "src": "27333:39:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 40214, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40206, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27396:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40207, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27399:12:71", "memberName": "reqsForTier2", "nodeType": "MemberAccess", "referencedDeclaration": 45325, "src": "27396:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40208, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27414:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "27396:26:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40210, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27426:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40211, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27438:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40212, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27441:12:71", "memberName": "reqsForTier3", "nodeType": "MemberAccess", "referencedDeclaration": 45327, "src": "27438:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "src": "27426:27:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "27396:57:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40219, "nodeType": "IfStatement", "src": "27392:127:71", "trueBody": { "id": 40218, "nodeType": "Block", "src": "27455:64:71", "statements": [ { "expression": { "expression": { "id": 40215, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27476:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40216, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27479:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier2", "nodeType": "MemberAccess", "referencedDeclaration": 45317, "src": "27476:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 40190, "id": 40217, "nodeType": "Return", "src": "27469:39:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 40228, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40220, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27532:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40221, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27535:12:71", "memberName": "reqsForTier3", "nodeType": "MemberAccess", "referencedDeclaration": 45327, "src": "27532:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40222, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27550:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "27532:26:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40224, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27562:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40225, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27574:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40226, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27577:12:71", "memberName": "reqsForTier4", "nodeType": "MemberAccess", "referencedDeclaration": 45329, "src": "27574:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "src": "27562:27:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "27532:57:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40233, "nodeType": "IfStatement", "src": "27528:127:71", "trueBody": { "id": 40232, "nodeType": "Block", "src": "27591:64:71", "statements": [ { "expression": { "expression": { "id": 40229, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27612:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40230, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27615:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier3", "nodeType": "MemberAccess", "referencedDeclaration": 45319, "src": "27612:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 40190, "id": 40231, "nodeType": "Return", "src": "27605:39:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 40242, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40237, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40234, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27668:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40235, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27671:12:71", "memberName": "reqsForTier4", "nodeType": "MemberAccess", "referencedDeclaration": 45329, "src": "27668:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40236, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27686:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "27668:26:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40238, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40184, "src": "27698:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40239, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27710:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40240, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27713:12:71", "memberName": "reqsForTier5", "nodeType": "MemberAccess", "referencedDeclaration": 45331, "src": "27710:15:71", "typeDescriptions": { "typeIdentifier": "t_uint24", "typeString": "uint24" } }, "src": "27698:27:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "27668:57:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40247, "nodeType": "IfStatement", "src": "27664:127:71", "trueBody": { "id": 40246, "nodeType": "Block", "src": "27727:64:71", "statements": [ { "expression": { "expression": { "id": 40243, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27748:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40244, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27751:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier4", "nodeType": "MemberAccess", "referencedDeclaration": 45321, "src": "27748:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 40190, "id": 40245, "nodeType": "Return", "src": "27741:39:71" } ] } }, { "expression": { "expression": { "id": 40248, "name": "fc", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40193, "src": "27807:2:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FeeConfig_$45332_memory_ptr", "typeString": "struct IAdapterOwner.FeeConfig memory" } }, "id": 40249, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "27810:29:71", "memberName": "fulfillmentFlatFeeEthPPMTier5", "nodeType": "MemberAccess", "referencedDeclaration": 45323, "src": "27807:32:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "functionReturnParameters": 40190, "id": 40250, "nodeType": "Return", "src": "27800:39:71" } ] }, "baseFunctions": [ 45278 ], "functionSelector": "d2f9f9a7", "implemented": true, "kind": "function", "modifiers": [], "name": "getFeeTier", "nameLocation": "27147:10:71", "overrides": { "id": 40187, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40186, "name": "IAdapter", "nameLocations": [ "27196:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "27196:8:71" } ], "src": "27187:18:71" }, "parameters": { "id": 40185, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40184, "mutability": "mutable", "name": "reqCount", "nameLocation": "27165:8:71", "nodeType": "VariableDeclaration", "scope": 40252, "src": "27158:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 40183, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "27158:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "src": "27157:17:71" }, "returnParameters": { "id": 40190, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40189, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40252, "src": "27215:6:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40188, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "27215:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "src": "27214:8:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 40305, "nodeType": "FunctionDefinition", "src": "27852:667:71", "nodes": [], "body": { "id": 40304, "nodeType": "Block", "src": "28108:411:71", "nodes": [], "statements": [ { "assignments": [ 40270 ], "declarations": [ { "constant": false, "id": 40270, "mutability": "mutable", "name": "estimatedFulfillmentL1CostWei", "nameLocation": "28191:29:71", "nodeType": "VariableDeclaration", "scope": 40304, "src": "28183:37:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40269, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28183:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40282, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "arguments": [ { "id": 40275, "name": "groupSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40262, "src": "28300:9:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "expression": { "id": 40273, "name": "ChainHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48402, "src": "28262:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ChainHelper_$48402_$", "typeString": "type(library ChainHelper)" } }, "id": 40274, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "28274:25:71", "memberName": "getFulfillmentTxL1GasUsed", "nodeType": "MemberAccess", "referencedDeclaration": 48401, "src": "28262:37:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint32_$returns$_t_uint256_$", "typeString": "function (uint32) view returns (uint256)" } }, "id": 40276, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28262:48:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40271, "name": "ChainHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48402, "src": "28235:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ChainHelper_$48402_$", "typeString": "type(library ChainHelper)" } }, "id": 40272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "28247:14:71", "memberName": "getTxL1GasFees", "nodeType": "MemberAccess", "referencedDeclaration": 48367, "src": "28235:26:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256) view returns (uint256)" } }, "id": 40277, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28235:76:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "hexValue": "33", "id": 40278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28314:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_3_by_1", "typeString": "int_const 3" }, "value": "3" }, "src": "28235:80:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "hexValue": "32", "id": 40280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28318:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "src": "28235:84:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "28183:136:71" }, { "assignments": [ 40284 ], "declarations": [ { "constant": false, "id": 40284, "mutability": "mutable", "name": "paymentNoFee", "nameLocation": "28337:12:71", "nodeType": "VariableDeclaration", "scope": 40304, "src": "28329:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40283, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28329:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40293, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40292, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40290, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40285, "name": "weiPerUnitGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40260, "src": "28352:13:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40286, "name": "gasExceptCallback", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40256, "src": "28369:17:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 40287, "name": "callbackGasLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40254, "src": "28389:16:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "28369:36:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "id": 40289, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "28368:38:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "28352:54:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 40291, "name": "estimatedFulfillmentL1CostWei", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40270, "src": "28409:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28352:86:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "28329:109:71" }, { "expression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40294, "name": "paymentNoFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40284, "src": "28456:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40300, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31653132", "id": 40295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28471:4:71", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000_by_1", "typeString": "int_const 1000000000000" }, "value": "1e12" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [ { "id": 40298, "name": "fulfillmentFlatFeeEthPPM", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40258, "src": "28486:24:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 40297, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "28478:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 40296, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28478:7:71", "typeDescriptions": {} } }, "id": 40299, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28478:33:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28471:40:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28456:55:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40302, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "28455:57:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40268, "id": 40303, "nodeType": "Return", "src": "28448:64:71" } ] }, "baseFunctions": [ 45293 ], "functionSelector": "a141bbd8", "implemented": true, "kind": "function", "modifiers": [], "name": "estimatePaymentAmountInETH", "nameLocation": "27861:26:71", "overrides": { "id": 40265, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 40264, "name": "IAdapter", "nameLocations": [ "28080:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "28080:8:71" } ], "src": "28071:18:71" }, "parameters": { "id": 40263, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40254, "mutability": "mutable", "name": "callbackGasLimit", "nameLocation": "27904:16:71", "nodeType": "VariableDeclaration", "scope": 40305, "src": "27897:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40253, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "27897:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40256, "mutability": "mutable", "name": "gasExceptCallback", "nameLocation": "27937:17:71", "nodeType": "VariableDeclaration", "scope": 40305, "src": "27930:24:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40255, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "27930:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40258, "mutability": "mutable", "name": "fulfillmentFlatFeeEthPPM", "nameLocation": "27971:24:71", "nodeType": "VariableDeclaration", "scope": 40305, "src": "27964:31:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40257, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "27964:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40260, "mutability": "mutable", "name": "weiPerUnitGas", "nameLocation": "28013:13:71", "nodeType": "VariableDeclaration", "scope": 40305, "src": "28005:21:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40259, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28005:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40262, "mutability": "mutable", "name": "groupSize", "nameLocation": "28043:9:71", "nodeType": "VariableDeclaration", "scope": 40305, "src": "28036:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40261, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "28036:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "src": "27887:171:71" }, "returnParameters": { "id": 40268, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40267, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40305, "src": "28099:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40266, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28099:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "28098:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "public" }, { "id": 40370, "nodeType": "FunctionDefinition", "src": "28584:595:71", "nodes": [], "body": { "id": 40369, "nodeType": "Block", "src": "28691:488:71", "nodes": [], "statements": [ { "expression": { "id": 40318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40315, "name": "_cumulativeCommitterReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38404, "src": "28701:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "expression": { "id": 40316, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "28731:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40317, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "28739:27:71", "memberName": "committerRewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45312, "src": "28731:35:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28701:65:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40319, "nodeType": "ExpressionStatement", "src": "28701:65:71" }, { "expression": { "id": 40326, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40320, "name": "_cumulativePartialSignatureReward", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38406, "src": "28776:33:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40325, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40321, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "28813:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40322, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "28821:18:71", "memberName": "rewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45310, "src": "28813:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 40323, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40308, "src": "28842:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 40324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "28861:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "28842:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28813:54:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "28776:91:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40327, "nodeType": "ExpressionStatement", "src": "28776:91:71" }, { "assignments": [ 40332 ], "declarations": [ { "constant": false, "id": 40332, "mutability": "mutable", "name": "committer", "nameLocation": "28895:9:71", "nodeType": "VariableDeclaration", "scope": 40369, "src": "28878:26:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 40330, "name": "address", "nodeType": "ElementaryTypeName", "src": "28878:7:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 40331, "nodeType": "ArrayTypeName", "src": "28878:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "id": 40338, "initialValue": { "arguments": [ { "hexValue": "31", "id": 40336, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28921:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 40335, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "28907:13:71", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 40333, "name": "address", "nodeType": "ElementaryTypeName", "src": "28911:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 40334, "nodeType": "ArrayTypeName", "src": "28911:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 40337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28907:16:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "28878:45:71" }, { "expression": { "id": 40344, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 40339, "name": "committer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40332, "src": "28933:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 40341, "indexExpression": { "hexValue": "30", "id": 40340, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "28943:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "28933:12:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40342, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "28948:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 40343, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "28952:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "28948:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "28933:25:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 40345, "nodeType": "ExpressionStatement", "src": "28933:25:71" }, { "expression": { "arguments": [ { "id": 40349, "name": "committer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40332, "src": "28990:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40350, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40310, "src": "29001:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 40351, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40312, "src": "29011:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "29001:17:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40353, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "29020:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40354, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "29028:27:71", "memberName": "committerRewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45312, "src": "29020:35:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40346, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "28968:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 40348, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "28980:9:71", "memberName": "addReward", "nodeType": "MemberAccess", "referencedDeclaration": 45567, "src": "28968:21:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address[] memory,uint256,uint256) external" } }, "id": 40355, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "28968:88:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40356, "nodeType": "ExpressionStatement", "src": "28968:88:71" }, { "expression": { "arguments": [ { "id": 40360, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40308, "src": "29088:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40364, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40361, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40312, "src": "29108:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "expression": { "id": 40362, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40308, "src": "29118:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 40363, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "29137:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "29118:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "29108:35:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40365, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "29145:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40366, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "29153:18:71", "memberName": "rewardPerSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45310, "src": "29145:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40357, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "29066:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 40359, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "29078:9:71", "memberName": "addReward", "nodeType": "MemberAccess", "referencedDeclaration": 45567, "src": "29066:21:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address[] memory,uint256,uint256) external" } }, "id": 40367, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29066:106:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40368, "nodeType": "ExpressionStatement", "src": "29066:106:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_rewardRandomness", "nameLocation": "28593:17:71", "parameters": { "id": 40313, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40308, "mutability": "mutable", "name": "participantMembers", "nameLocation": "28628:18:71", "nodeType": "VariableDeclaration", "scope": 40370, "src": "28611:35:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 40306, "name": "address", "nodeType": "ElementaryTypeName", "src": "28611:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 40307, "nodeType": "ArrayTypeName", "src": "28611:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" }, { "constant": false, "id": 40310, "mutability": "mutable", "name": "payment", "nameLocation": "28656:7:71", "nodeType": "VariableDeclaration", "scope": 40370, "src": "28648:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40309, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28648:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40312, "mutability": "mutable", "name": "flatFee", "nameLocation": "28673:7:71", "nodeType": "VariableDeclaration", "scope": 40370, "src": "28665:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40311, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "28665:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "28610:71:71" }, "returnParameters": { "id": 40314, "nodeType": "ParameterList", "parameters": [], "src": "28691:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 40538, "nodeType": "FunctionDefinition", "src": "29185:1825:71", "nodes": [], "body": { "id": 40537, "nodeType": "Block", "src": "29338:1672:71", "nodes": [], "statements": [ { "assignments": [ 40384 ], "declarations": [ { "constant": false, "id": 40384, "mutability": "mutable", "name": "b", "nameLocation": "29375:1:71", "nodeType": "VariableDeclaration", "scope": 40537, "src": "29348:28:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_contract$_IBasicRandcastConsumerBase_$45437", "typeString": "contract IBasicRandcastConsumerBase" }, "typeName": { "id": 40383, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40382, "name": "IBasicRandcastConsumerBase", "nameLocations": [ "29348:26:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45437, "src": "29348:26:71" }, "referencedDeclaration": 45437, "src": "29348:26:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IBasicRandcastConsumerBase_$45437", "typeString": "contract IBasicRandcastConsumerBase" } }, "visibility": "internal" } ], "id": 40385, "nodeType": "VariableDeclarationStatement", "src": "29348:28:71" }, { "assignments": [ 40387 ], "declarations": [ { "constant": false, "id": 40387, "mutability": "mutable", "name": "resp", "nameLocation": "29399:4:71", "nodeType": "VariableDeclaration", "scope": 40537, "src": "29386:17:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 40386, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "29386:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 40388, "nodeType": "VariableDeclarationStatement", "src": "29386:17:71" }, { "condition": { "commonType": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, "id": 40393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40389, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "29417:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40390, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "29431:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45052, "src": "29417:25:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 40391, "name": "RequestType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45955, "src": "29446:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_RequestType_$45955_$", "typeString": "type(enum IRequestTypeBase.RequestType)" } }, "id": 40392, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29458:10:71", "memberName": "Randomness", "nodeType": "MemberAccess", "referencedDeclaration": 45952, "src": "29446:22:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "src": "29417:51:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, "id": 40410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40406, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "29590:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40407, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "29604:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45052, "src": "29590:25:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 40408, "name": "RequestType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45955, "src": "29619:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_RequestType_$45955_$", "typeString": "type(enum IRequestTypeBase.RequestType)" } }, "id": 40409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29631:11:71", "memberName": "RandomWords", "nodeType": "MemberAccess", "referencedDeclaration": 45953, "src": "29619:23:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "src": "29590:52:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" }, "id": 40476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40472, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "30055:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40473, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "30069:11:71", "memberName": "requestType", "nodeType": "MemberAccess", "referencedDeclaration": 45052, "src": "30055:25:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "id": 40474, "name": "RequestType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 45955, "src": "30084:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_RequestType_$45955_$", "typeString": "type(enum IRequestTypeBase.RequestType)" } }, "id": 40475, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30096:9:71", "memberName": "Shuffling", "nodeType": "MemberAccess", "referencedDeclaration": 45954, "src": "30084:21:71", "typeDescriptions": { "typeIdentifier": "t_enum$_RequestType_$45955", "typeString": "enum IRequestTypeBase.RequestType" } }, "src": "30055:50:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40511, "nodeType": "IfStatement", "src": "30051:322:71", "trueBody": { "id": 40510, "nodeType": "Block", "src": "30107:266:71", "statements": [ { "assignments": [ 40478 ], "declarations": [ { "constant": false, "id": 40478, "mutability": "mutable", "name": "upper", "nameLocation": "30128:5:71", "nodeType": "VariableDeclaration", "scope": 40510, "src": "30121:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40477, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "30121:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "id": 40487, "initialValue": { "arguments": [ { "expression": { "id": 40481, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "30147:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40482, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "30161:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45054, "src": "30147:20:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "components": [ { "id": 40484, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "30170:6:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 40483, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "30170:6:71", "typeDescriptions": {} } } ], "id": 40485, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "30169:8:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" } ], "expression": { "id": 40479, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30136:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40480, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30140:6:71", "memberName": "decode", "nodeType": "MemberAccess", "src": "30136:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40486, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30136:42:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", "src": "30121:57:71" }, { "assignments": [ 40492 ], "declarations": [ { "constant": false, "id": 40492, "mutability": "mutable", "name": "shuffledArray", "nameLocation": "30209:13:71", "nodeType": "VariableDeclaration", "scope": 40510, "src": "30192:30:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 40490, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "30192:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40491, "nodeType": "ArrayTypeName", "src": "30192:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "id": 40498, "initialValue": { "arguments": [ { "id": 40495, "name": "upper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40478, "src": "30239:5:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 40496, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40374, "src": "30246:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40493, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38363, "src": "30225:5:71", "typeDescriptions": { "typeIdentifier": "t_module_52926", "typeString": "module \"src/utils/Utils.sol\"" } }, "id": 40494, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30231:7:71", "memberName": "shuffle", "nodeType": "MemberAccess", "referencedDeclaration": 52925, "src": "30225:13:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256,uint256) pure returns (uint256[] memory)" } }, "id": 40497, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30225:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "30192:65:71" }, { "expression": { "id": 40508, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40499, "name": "resp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40387, "src": "30271:4:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "expression": { "id": 40502, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40384, "src": "30301:1:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IBasicRandcastConsumerBase_$45437", "typeString": "contract IBasicRandcastConsumerBase" } }, "id": 40503, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "30303:23:71", "memberName": "rawFulfillShuffledArray", "nodeType": "MemberAccess", "referencedDeclaration": 45436, "src": "30301:25:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,uint256[] memory) external" } }, "id": 40504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "30327:8:71", "memberName": "selector", "nodeType": "MemberAccess", "src": "30301:34:71", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, { "id": 40505, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40372, "src": "30337:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 40506, "name": "shuffledArray", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40492, "src": "30348:13:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 40500, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "30278:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40501, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30282:18:71", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "30278:22:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, "id": 40507, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30278:84:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "30271:91:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 40509, "nodeType": "ExpressionStatement", "src": "30271:91:71" } ] } }, "id": 40512, "nodeType": "IfStatement", "src": "29586:787:71", "trueBody": { "id": 40471, "nodeType": "Block", "src": "29644:401:71", "statements": [ { "assignments": [ 40412 ], "declarations": [ { "constant": false, "id": 40412, "mutability": "mutable", "name": "numWords", "nameLocation": "29665:8:71", "nodeType": "VariableDeclaration", "scope": 40471, "src": "29658:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40411, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "29658:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" } ], "id": 40421, "initialValue": { "arguments": [ { "expression": { "id": 40415, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "29687:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40416, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "29701:6:71", "memberName": "params", "nodeType": "MemberAccess", "referencedDeclaration": 45054, "src": "29687:20:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, { "components": [ { "id": 40418, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "29710:6:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { "id": 40417, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "29710:6:71", "typeDescriptions": {} } } ], "id": 40419, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", "src": "29709:8:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" }, { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" } ], "expression": { "id": 40413, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29676:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40414, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29680:6:71", "memberName": "decode", "nodeType": "MemberAccess", "src": "29676:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40420, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29676:42:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", "src": "29658:60:71" }, { "assignments": [ 40426 ], "declarations": [ { "constant": false, "id": 40426, "mutability": "mutable", "name": "randomWords", "nameLocation": "29749:11:71", "nodeType": "VariableDeclaration", "scope": 40471, "src": "29732:28:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 40424, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29732:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40425, "nodeType": "ArrayTypeName", "src": "29732:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "id": 40432, "initialValue": { "arguments": [ { "id": 40430, "name": "numWords", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40412, "src": "29777:8:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 40429, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "29763:13:71", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[] memory)" }, "typeName": { "baseType": { "id": 40427, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29767:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40428, "nodeType": "ArrayTypeName", "src": "29767:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, "id": 40431, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29763:23:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "29732:54:71" }, { "body": { "id": 40458, "nodeType": "Block", "src": "29839:95:71", "statements": [ { "expression": { "id": 40456, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 40443, "name": "randomWords", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40426, "src": "29857:11:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 40445, "indexExpression": { "id": 40444, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40434, "src": "29869:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "29857:14:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "arguments": [ { "arguments": [ { "id": 40451, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40374, "src": "29903:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40452, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40434, "src": "29915:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40449, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29892:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40450, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29896:6:71", "memberName": "encode", "nodeType": "MemberAccess", "src": "29892:10:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 40453, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29892:25:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 40448, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -8, "src": "29882:9:71", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, "id": 40454, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29882:36:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } ], "id": 40447, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "29874:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 40446, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29874:7:71", "typeDescriptions": {} } }, "id": 40455, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29874:45:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "29857:62:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40457, "nodeType": "ExpressionStatement", "src": "29857:62:71" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40439, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40437, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40434, "src": "29820:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40438, "name": "numWords", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40412, "src": "29824:8:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "29820:12:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40459, "initializationExpression": { "assignments": [ 40434 ], "declarations": [ { "constant": false, "id": 40434, "mutability": "mutable", "name": "i", "nameLocation": "29813:1:71", "nodeType": "VariableDeclaration", "scope": 40459, "src": "29805:9:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40433, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29805:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40436, "initialValue": { "hexValue": "30", "id": 40435, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "29817:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "29805:13:71" }, "loopExpression": { "expression": { "id": 40441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "29834:3:71", "subExpression": { "id": 40440, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40434, "src": "29834:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40442, "nodeType": "ExpressionStatement", "src": "29834:3:71" }, "nodeType": "ForStatement", "src": "29800:134:71" }, { "expression": { "id": 40469, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40460, "name": "resp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40387, "src": "29947:4:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "expression": { "id": 40463, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40384, "src": "29977:1:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IBasicRandcastConsumerBase_$45437", "typeString": "contract IBasicRandcastConsumerBase" } }, "id": 40464, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "29979:21:71", "memberName": "rawFulfillRandomWords", "nodeType": "MemberAccess", "referencedDeclaration": 45428, "src": "29977:23:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", "typeString": "function (bytes32,uint256[] memory) external" } }, "id": 40465, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "30001:8:71", "memberName": "selector", "nodeType": "MemberAccess", "src": "29977:32:71", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, { "id": 40466, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40372, "src": "30011:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 40467, "name": "randomWords", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40426, "src": "30022:11:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } ], "expression": { "id": 40461, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29954:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40462, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29958:18:71", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "29954:22:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, "id": 40468, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29954:80:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "29947:87:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 40470, "nodeType": "ExpressionStatement", "src": "29947:87:71" } ] } }, "id": 40513, "nodeType": "IfStatement", "src": "29413:960:71", "trueBody": { "id": 40405, "nodeType": "Block", "src": "29470:110:71", "statements": [ { "expression": { "id": 40403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40394, "name": "resp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40387, "src": "29484:4:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "expression": { "id": 40397, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40384, "src": "29514:1:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IBasicRandcastConsumerBase_$45437", "typeString": "contract IBasicRandcastConsumerBase" } }, "id": 40398, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "29516:20:71", "memberName": "rawFulfillRandomness", "nodeType": "MemberAccess", "referencedDeclaration": 45420, "src": "29514:22:71", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_uint256_$returns$__$", "typeString": "function (bytes32,uint256) external" } }, "id": 40399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "29537:8:71", "memberName": "selector", "nodeType": "MemberAccess", "src": "29514:31:71", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, { "id": 40400, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40372, "src": "29547:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { "id": 40401, "name": "randomness", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40374, "src": "29558:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40395, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "29491:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 40396, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "29495:18:71", "memberName": "encodeWithSelector", "nodeType": "MemberAccess", "src": "29491:22:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", "typeString": "function (bytes4) pure returns (bytes memory)" } }, "id": 40402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "29491:78:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "src": "29484:85:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 40404, "nodeType": "ExpressionStatement", "src": "29484:85:71" } ] } }, { "expression": { "id": 40518, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40514, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "30822:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40516, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "30830:14:71", "memberName": "reentrancyLock", "nodeType": "MemberAccess", "referencedDeclaration": 45302, "src": "30822:22:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "74727565", "id": 40517, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "30847:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "30822:29:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40519, "nodeType": "ExpressionStatement", "src": "30822:29:71" }, { "expression": { "id": 40529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40520, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40380, "src": "30861:7:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "id": 40523, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "30894:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40524, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "30908:16:71", "memberName": "callbackGasLimit", "nodeType": "MemberAccess", "referencedDeclaration": 45062, "src": "30894:30:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "expression": { "id": 40525, "name": "requestDetail", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40377, "src": "30926:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail memory" } }, "id": 40526, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "30940:16:71", "memberName": "callbackContract", "nodeType": "MemberAccess", "referencedDeclaration": 45056, "src": "30926:30:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 40527, "name": "resp", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40387, "src": "30958:4:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 40521, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38363, "src": "30871:5:71", "typeDescriptions": { "typeIdentifier": "t_module_52926", "typeString": "module \"src/utils/Utils.sol\"" } }, "id": 40522, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "30877:16:71", "memberName": "callWithExactGas", "nodeType": "MemberAccess", "referencedDeclaration": 52828, "src": "30871:22:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (uint256,address,bytes memory) returns (bool)" } }, "id": 40528, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "30871:92:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "30861:102:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40530, "nodeType": "ExpressionStatement", "src": "30861:102:71" }, { "expression": { "id": 40535, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40531, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "30973:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40533, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "30981:14:71", "memberName": "reentrancyLock", "nodeType": "MemberAccess", "referencedDeclaration": 45302, "src": "30973:22:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "66616c7365", "id": 40534, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "30998:5:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, "src": "30973:30:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40536, "nodeType": "ExpressionStatement", "src": "30973:30:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_fulfillCallback", "nameLocation": "29194:16:71", "parameters": { "id": 40378, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40372, "mutability": "mutable", "name": "requestId", "nameLocation": "29219:9:71", "nodeType": "VariableDeclaration", "scope": 40538, "src": "29211:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 40371, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "29211:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 40374, "mutability": "mutable", "name": "randomness", "nameLocation": "29238:10:71", "nodeType": "VariableDeclaration", "scope": 40538, "src": "29230:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40373, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "29230:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40377, "mutability": "mutable", "name": "requestDetail", "nameLocation": "29271:13:71", "nodeType": "VariableDeclaration", "scope": 40538, "src": "29250:34:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_memory_ptr", "typeString": "struct IAdapter.RequestDetail" }, "typeName": { "id": 40376, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40375, "name": "RequestDetail", "nameLocations": [ "29250:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45067, "src": "29250:13:71" }, "referencedDeclaration": 45067, "src": "29250:13:71", "typeDescriptions": { "typeIdentifier": "t_struct$_RequestDetail_$45067_storage_ptr", "typeString": "struct IAdapter.RequestDetail" } }, "visibility": "internal" } ], "src": "29210:75:71" }, "returnParameters": { "id": 40381, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40380, "mutability": "mutable", "name": "success", "nameLocation": "29325:7:71", "nodeType": "VariableDeclaration", "scope": 40538, "src": "29320:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 40379, "name": "bool", "nodeType": "ElementaryTypeName", "src": "29320:4:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "29319:14:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 40663, "nodeType": "FunctionDefinition", "src": "31016:1680:71", "nodes": [], "body": { "id": 40662, "nodeType": "Block", "src": "31244:1452:71", "nodes": [], "statements": [ { "assignments": [ 40555 ], "declarations": [ { "constant": false, "id": 40555, "mutability": "mutable", "name": "reqCount", "nameLocation": "31261:8:71", "nodeType": "VariableDeclaration", "scope": 40662, "src": "31254:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 40554, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "31254:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "id": 40556, "nodeType": "VariableDeclarationStatement", "src": "31254:15:71" }, { "condition": { "expression": { "id": 40557, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "31283:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40558, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31298:36:71", "memberName": "isFlatFeePromotionEnabledPermanently", "nodeType": "MemberAccess", "referencedDeclaration": 45339, "src": "31283:51:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 40575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40569, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40565, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "31407:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40566, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31500:30:71", "memberName": "flatFeePromotionStartTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45341, "src": "31407:123:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40567, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "31534:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 40568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "31540:9:71", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "31534:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "31407:142:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40570, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "31622:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 40571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "31628:9:71", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "31622:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40572, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "31641:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40573, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31656:28:71", "memberName": "flatFeePromotionEndTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45343, "src": "31641:43:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "31622:62:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "31407:277:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40596, "nodeType": "IfStatement", "src": "31390:533:71", "trueBody": { "id": 40595, "nodeType": "Block", "src": "31695:228:71", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40580, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40576, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "31713:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40577, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31717:20:71", "memberName": "lastRequestTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 38469, "src": "31713:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 40578, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "31740:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40579, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31755:30:71", "memberName": "flatFeePromotionStartTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45341, "src": "31740:45:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "31713:72:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 40593, "nodeType": "Block", "src": "31838:75:71", "statements": [ { "expression": { "id": 40591, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40586, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40555, "src": "31856:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40587, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "31867:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40588, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31871:23:71", "memberName": "reqCountInCurrentPeriod", "nodeType": "MemberAccess", "referencedDeclaration": 38467, "src": "31867:27:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 40589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31897:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "31867:31:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "31856:42:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40592, "nodeType": "ExpressionStatement", "src": "31856:42:71" } ] }, "id": 40594, "nodeType": "IfStatement", "src": "31709:204:71", "trueBody": { "id": 40585, "nodeType": "Block", "src": "31787:45:71", "statements": [ { "expression": { "id": 40583, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40581, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40555, "src": "31805:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 40582, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "31816:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "31805:12:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40584, "nodeType": "ExpressionStatement", "src": "31805:12:71" } ] } } ] } }, "id": 40597, "nodeType": "IfStatement", "src": "31279:644:71", "trueBody": { "id": 40564, "nodeType": "Block", "src": "31336:48:71", "statements": [ { "expression": { "id": 40562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40559, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40555, "src": "31350:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40560, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "31361:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40561, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "31365:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "31361:12:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "31350:23:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40563, "nodeType": "ExpressionStatement", "src": "31350:23:71" } ] } }, { "assignments": [ 40599 ], "declarations": [ { "constant": false, "id": 40599, "mutability": "mutable", "name": "payment", "nameLocation": "31993:7:71", "nodeType": "VariableDeclaration", "scope": 40662, "src": "31985:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40598, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31985:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40633, "initialValue": { "arguments": [ { "id": 40601, "name": "callbackGasLimit", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40547, "src": "32043:16:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40614, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40602, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "32073:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40603, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32081:17:71", "memberName": "gasExceptCallback", "nodeType": "MemberAccess", "referencedDeclaration": 45306, "src": "32073:25:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40604, "name": "RANDOMNESS_REWARD_GAS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38391, "src": "32101:21:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 40605, "name": "groupSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40545, "src": "32125:9:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32101:33:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32073:61:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40613, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40608, "name": "VERIFICATION_GAS_OVER_MINIMUM_THRESHOLD", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38394, "src": "32153:39:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40609, "name": "groupSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40545, "src": "32196:9:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "id": 40610, "name": "DEFAULT_MINIMUM_THRESHOLD", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38397, "src": "32208:25:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32196:37:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "id": 40612, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "32195:39:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32153:81:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "src": "32073:161:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40618, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40615, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "32248:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40616, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32252:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "32248:20:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 40617, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "32271:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "32248:24:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40627, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40625, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 40621, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40555, "src": "32323:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" } ], "id": 40620, "name": "getFeeTier", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40252, "src": "32312:10:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_uint32_$", "typeString": "function (uint64) view returns (uint32)" } }, "id": 40622, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32312:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 40623, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "32335:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40624, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32350:32:71", "memberName": "flatFeePromotionGlobalPercentage", "nodeType": "MemberAccess", "referencedDeclaration": 45337, "src": "32335:47:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "32312:70:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "hexValue": "313030", "id": 40626, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "32385:3:71", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "32312:76:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "id": 40628, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "32311:78:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "id": 40629, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "32248:141:71", "trueExpression": { "hexValue": "30", "id": 40619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "32291:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { "id": 40630, "name": "callbackMaxGasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40549, "src": "32403:19:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40631, "name": "groupSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40545, "src": "32436:9:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 40600, "name": "estimatePaymentAmountInETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40305, "src": "32003:26:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$_t_uint32_$_t_uint32_$_t_uint256_$_t_uint32_$returns$_t_uint256_$", "typeString": "function (uint32,uint32,uint32,uint256,uint32) view returns (uint256)" } }, "id": 40632, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32003:452:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "31985:470:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40638, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40634, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "32470:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40635, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32474:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "32470:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "expression": { "id": 40636, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "32484:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40637, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32488:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "32484:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "32470:30:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40639, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40599, "src": "32503:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "32470:40:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40645, "nodeType": "IfStatement", "src": "32466:110:71", "trueBody": { "id": 40644, "nodeType": "Block", "src": "32512:64:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 40641, "name": "InsufficientBalanceWhenRequest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38611, "src": "32533:30:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40642, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "32533:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40643, "nodeType": "RevertStatement", "src": "32526:39:71" } ] } }, { "expression": { "id": 40650, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40646, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "32586:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40648, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "32590:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "32586:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "id": 40649, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40599, "src": "32606:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "32586:27:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40651, "nodeType": "ExpressionStatement", "src": "32586:27:71" }, { "expression": { "id": 40658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "expression": { "id": 40652, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40541, "src": "32623:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40655, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "32627:16:71", "memberName": "inflightPayments", "nodeType": "MemberAccess", "referencedDeclaration": 38459, "src": "32623:20:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, "id": 40656, "indexExpression": { "id": 40654, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40543, "src": "32644:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "32623:31:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 40657, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40599, "src": "32657:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "32623:41:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40659, "nodeType": "ExpressionStatement", "src": "32623:41:71" }, { "expression": { "id": 40660, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40599, "src": "32682:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40553, "id": 40661, "nodeType": "Return", "src": "32675:14:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_freezePaymentBySubscription", "nameLocation": "31025:28:71", "parameters": { "id": 40550, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40541, "mutability": "mutable", "name": "sub", "nameLocation": "31084:3:71", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31063:24:71", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" }, "typeName": { "id": 40540, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40539, "name": "Subscription", "nameLocations": [ "31063:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38470, "src": "31063:12:71" }, "referencedDeclaration": 38470, "src": "31063:12:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" } }, "visibility": "internal" }, { "constant": false, "id": 40543, "mutability": "mutable", "name": "requestId", "nameLocation": "31105:9:71", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31097:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 40542, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "31097:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 40545, "mutability": "mutable", "name": "groupSize", "nameLocation": "31131:9:71", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31124:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40544, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "31124:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40547, "mutability": "mutable", "name": "callbackGasLimit", "nameLocation": "31157:16:71", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31150:23:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "typeName": { "id": 40546, "name": "uint32", "nodeType": "ElementaryTypeName", "src": "31150:6:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" }, { "constant": false, "id": 40549, "mutability": "mutable", "name": "callbackMaxGasPrice", "nameLocation": "31191:19:71", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31183:27:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40548, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31183:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "31053:163:71" }, "returnParameters": { "id": 40553, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40552, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40663, "src": "31235:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40551, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "31235:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "31234:9:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 40828, "nodeType": "FunctionDefinition", "src": "32702:2376:71", "nodes": [], "body": { "id": 40827, "nodeType": "Block", "src": "32896:2182:71", "nodes": [], "statements": [ { "expression": { "id": 40683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40679, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "32965:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40681, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "32969:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "32965:12:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 40682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "32981:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "32965:17:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40684, "nodeType": "ExpressionStatement", "src": "32965:17:71" }, { "assignments": [ 40686 ], "declarations": [ { "constant": false, "id": 40686, "mutability": "mutable", "name": "reqCount", "nameLocation": "32999:8:71", "nodeType": "VariableDeclaration", "scope": 40827, "src": "32992:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 40685, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "32992:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" } ], "id": 40687, "nodeType": "VariableDeclarationStatement", "src": "32992:15:71" }, { "condition": { "expression": { "id": 40688, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "33021:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40689, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33036:36:71", "memberName": "isFlatFeePromotionEnabledPermanently", "nodeType": "MemberAccess", "referencedDeclaration": 45339, "src": "33021:51:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "condition": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 40706, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40700, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40696, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "33145:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40697, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33238:30:71", "memberName": "flatFeePromotionStartTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45341, "src": "33145:123:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40698, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "33272:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 40699, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "33278:9:71", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "33272:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33145:142:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "&&", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40705, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40701, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "33360:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 40702, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "33366:9:71", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "33360:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "expression": { "id": 40703, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "33379:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40704, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33394:28:71", "memberName": "flatFeePromotionEndTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45343, "src": "33379:43:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33360:62:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "33145:277:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40733, "nodeType": "IfStatement", "src": "33128:594:71", "trueBody": { "id": 40732, "nodeType": "Block", "src": "33433:289:71", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40711, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40707, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33451:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40708, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33455:20:71", "memberName": "lastRequestTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 38469, "src": "33451:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 40709, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "33478:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40710, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33493:30:71", "memberName": "flatFeePromotionStartTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 45341, "src": "33478:45:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33451:72:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 40725, "nodeType": "Block", "src": "33595:65:71", "statements": [ { "expression": { "id": 40723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40719, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33613:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40721, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "33617:23:71", "memberName": "reqCountInCurrentPeriod", "nodeType": "MemberAccess", "referencedDeclaration": 38467, "src": "33613:27:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 40722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33644:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "33613:32:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40724, "nodeType": "ExpressionStatement", "src": "33613:32:71" } ] }, "id": 40726, "nodeType": "IfStatement", "src": "33447:213:71", "trueBody": { "id": 40718, "nodeType": "Block", "src": "33525:64:71", "statements": [ { "expression": { "id": 40716, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40712, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33543:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40714, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "33547:23:71", "memberName": "reqCountInCurrentPeriod", "nodeType": "MemberAccess", "referencedDeclaration": 38467, "src": "33543:27:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "hexValue": "31", "id": 40715, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33573:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "33543:31:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40717, "nodeType": "ExpressionStatement", "src": "33543:31:71" } ] } }, { "expression": { "id": 40730, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40727, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40686, "src": "33673:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40728, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33684:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40729, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33688:23:71", "memberName": "reqCountInCurrentPeriod", "nodeType": "MemberAccess", "referencedDeclaration": 38467, "src": "33684:27:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "33673:38:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40731, "nodeType": "ExpressionStatement", "src": "33673:38:71" } ] } }, "id": 40734, "nodeType": "IfStatement", "src": "33017:705:71", "trueBody": { "id": 40695, "nodeType": "Block", "src": "33074:48:71", "statements": [ { "expression": { "id": 40693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40690, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40686, "src": "33088:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40691, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33099:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40692, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33103:8:71", "memberName": "reqCount", "nodeType": "MemberAccess", "referencedDeclaration": 38461, "src": "33099:12:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "src": "33088:23:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40694, "nodeType": "ExpressionStatement", "src": "33088:23:71" } ] } }, { "expression": { "id": 40740, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40735, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33785:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40737, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "33789:20:71", "memberName": "lastRequestTimestamp", "nodeType": "MemberAccess", "referencedDeclaration": 38469, "src": "33785:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "id": 40738, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -4, "src": "33812:5:71", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, "id": 40739, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "33818:9:71", "memberName": "timestamp", "nodeType": "MemberAccess", "src": "33812:15:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "33785:42:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40741, "nodeType": "ExpressionStatement", "src": "33785:42:71" }, { "assignments": [ 40743 ], "declarations": [ { "constant": false, "id": 40743, "mutability": "mutable", "name": "flatFee", "nameLocation": "33846:7:71", "nodeType": "VariableDeclaration", "scope": 40827, "src": "33838:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40742, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "33838:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40744, "nodeType": "VariableDeclarationStatement", "src": "33838:15:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "id": 40748, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40745, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33867:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40746, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "33871:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "33867:20:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 40747, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33890:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "33867:24:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 40772, "nodeType": "Block", "src": "33949:298:71", "statements": [ { "expression": { "id": 40770, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40756, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40743, "src": "34134:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40769, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40767, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40764, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "31653132", "id": 40757, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "34144:4:71", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000_by_1", "typeString": "int_const 1000000000000" }, "value": "1e12" }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "arguments": [ { "arguments": [ { "id": 40761, "name": "reqCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40686, "src": "34170:8:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" } ], "id": 40760, "name": "getFeeTier", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40252, "src": "34159:10:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint64_$returns$_t_uint32_$", "typeString": "function (uint64) view returns (uint32)" } }, "id": 40762, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34159:20:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint32", "typeString": "uint32" } ], "id": 40759, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "34151:7:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { "id": 40758, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "34151:7:71", "typeDescriptions": {} } }, "id": 40763, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34151:29:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34144:36:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "expression": { "id": 40765, "name": "_flatFeeConfig", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38437, "src": "34183:14:71", "typeDescriptions": { "typeIdentifier": "t_struct$_FlatFeeConfig_$45344_storage", "typeString": "struct IAdapterOwner.FlatFeeConfig storage ref" } }, "id": 40766, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "34198:32:71", "memberName": "flatFeePromotionGlobalPercentage", "nodeType": "MemberAccess", "referencedDeclaration": 45337, "src": "34183:47:71", "typeDescriptions": { "typeIdentifier": "t_uint16", "typeString": "uint16" } }, "src": "34144:86:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { "hexValue": "313030", "id": 40768, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "34233:3:71", "typeDescriptions": { "typeIdentifier": "t_rational_100_by_1", "typeString": "int_const 100" }, "value": "100" }, "src": "34144:92:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34134:102:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40771, "nodeType": "ExpressionStatement", "src": "34134:102:71" } ] }, "id": 40773, "nodeType": "IfStatement", "src": "33863:384:71", "trueBody": { "id": 40755, "nodeType": "Block", "src": "33893:50:71", "statements": [ { "expression": { "id": 40753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40749, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "33907:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40751, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "33911:16:71", "memberName": "freeRequestCount", "nodeType": "MemberAccess", "referencedDeclaration": 38463, "src": "33907:20:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "hexValue": "31", "id": 40752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "33931:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "33907:25:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "id": 40754, "nodeType": "ExpressionStatement", "src": "33907:25:71" } ] } }, { "assignments": [ 40775 ], "declarations": [ { "constant": false, "id": 40775, "mutability": "mutable", "name": "payment", "nameLocation": "34543:7:71", "nodeType": "VariableDeclaration", "scope": 40827, "src": "34535:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "34535:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40788, "initialValue": { "arguments": [ { "id": 40777, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40672, "src": "34595:8:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40783, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40778, "name": "_config", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38415, "src": "34617:7:71", "typeDescriptions": { "typeIdentifier": "t_struct$_AdapterConfig_$45313_storage", "typeString": "struct IAdapterOwner.AdapterConfig storage ref" } }, "id": 40779, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "34625:26:71", "memberName": "gasAfterPaymentCalculation", "nodeType": "MemberAccess", "referencedDeclaration": 45304, "src": "34617:34:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40782, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40780, "name": "RANDOMNESS_REWARD_GAS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38391, "src": "34654:21:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "id": 40781, "name": "partialSignersCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40670, "src": "34678:19:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34654:43:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34617:80:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40784, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40743, "src": "34711:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "expression": { "id": 40785, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -26, "src": "34732:2:71", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, "id": 40786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "34735:8:71", "memberName": "gasprice", "nodeType": "MemberAccess", "src": "34732:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 40776, "name": "_calculatePaymentAmountInETH", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40899, "src": "34553:28:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", "typeString": "function (uint256,uint256,uint256,uint256) view returns (uint256)" } }, "id": 40787, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34553:200:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "34535:218:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40789, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "34768:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40790, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "34772:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "34768:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "id": 40791, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40775, "src": "34782:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34768:21:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40797, "nodeType": "IfStatement", "src": "34764:91:71", "trueBody": { "id": 40796, "nodeType": "Block", "src": "34791:64:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 40793, "name": "InsufficientBalanceWhenFulfill", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38613, "src": "34812:30:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40794, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "34812:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40795, "nodeType": "RevertStatement", "src": "34805:39:71" } ] } }, { "expression": { "id": 40805, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40798, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "34864:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40800, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "34868:12:71", "memberName": "inflightCost", "nodeType": "MemberAccess", "referencedDeclaration": 38455, "src": "34864:16:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "baseExpression": { "expression": { "id": 40801, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "34884:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40802, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "34888:16:71", "memberName": "inflightPayments", "nodeType": "MemberAccess", "referencedDeclaration": 38459, "src": "34884:20:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, "id": 40804, "indexExpression": { "id": 40803, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40668, "src": "34905:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "34884:31:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34864:51:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40806, "nodeType": "ExpressionStatement", "src": "34864:51:71" }, { "expression": { "id": 40811, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "34925:38:71", "subExpression": { "baseExpression": { "expression": { "id": 40807, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "34932:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40808, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "34936:16:71", "memberName": "inflightPayments", "nodeType": "MemberAccess", "referencedDeclaration": 38459, "src": "34932:20:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, "id": 40810, "indexExpression": { "id": 40809, "name": "requestId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40668, "src": "34953:9:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "34932:31:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40812, "nodeType": "ExpressionStatement", "src": "34925:38:71" }, { "expression": { "id": 40817, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { "id": 40813, "name": "sub", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40666, "src": "34973:3:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription storage pointer" } }, "id": 40815, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "34977:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "34973:11:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "id": 40816, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40775, "src": "34988:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "34973:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40818, "nodeType": "ExpressionStatement", "src": "34973:22:71" }, { "expression": { "id": 40821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40819, "name": "_cumulativeFlatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38402, "src": "35006:18:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "id": 40820, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40743, "src": "35028:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35006:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40822, "nodeType": "ExpressionStatement", "src": "35006:29:71" }, { "expression": { "components": [ { "id": 40823, "name": "payment", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40775, "src": "35054:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 40824, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40743, "src": "35063:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40825, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "35053:18:71", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", "typeString": "tuple(uint256,uint256)" } }, "functionReturnParameters": 40678, "id": 40826, "nodeType": "Return", "src": "35046:25:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_payBySubscription", "nameLocation": "32711:18:71", "parameters": { "id": 40673, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40666, "mutability": "mutable", "name": "sub", "nameLocation": "32760:3:71", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32739:24:71", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" }, "typeName": { "id": 40665, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40664, "name": "Subscription", "nameLocations": [ "32739:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38470, "src": "32739:12:71" }, "referencedDeclaration": 38470, "src": "32739:12:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage_ptr", "typeString": "struct Adapter.Subscription" } }, "visibility": "internal" }, { "constant": false, "id": 40668, "mutability": "mutable", "name": "requestId", "nameLocation": "32781:9:71", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32773:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, "typeName": { "id": 40667, "name": "bytes32", "nodeType": "ElementaryTypeName", "src": "32773:7:71", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" }, { "constant": false, "id": 40670, "mutability": "mutable", "name": "partialSignersCount", "nameLocation": "32808:19:71", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32800:27:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40669, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32800:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40672, "mutability": "mutable", "name": "startGas", "nameLocation": "32845:8:71", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32837:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40671, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32837:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "32729:130:71" }, "returnParameters": { "id": 40678, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40675, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32878:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40674, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32878:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40677, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40828, "src": "32887:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40676, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "32887:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "32877:18:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 40865, "nodeType": "FunctionDefinition", "src": "35084:285:71", "nodes": [], "body": { "id": 40864, "nodeType": "Block", "src": "35167:202:71", "nodes": [], "statements": [ { "assignments": [ 40838 ], "declarations": [ { "constant": false, "id": 40838, "mutability": "mutable", "name": "balance", "nameLocation": "35185:7:71", "nodeType": "VariableDeclaration", "scope": 40864, "src": "35177:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40837, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35177:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40843, "initialValue": { "expression": { "baseExpression": { "id": 40839, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "35195:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 40841, "indexExpression": { "id": 40840, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40830, "src": "35210:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "35195:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 40842, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "35217:7:71", "memberName": "balance", "nodeType": "MemberAccess", "referencedDeclaration": 38453, "src": "35195:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "35177:47:71" }, { "expression": { "id": 40848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "35234:34:71", "subExpression": { "expression": { "baseExpression": { "id": 40844, "name": "_subscriptions", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38429, "src": "35241:14:71", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint64_$_t_struct$_Subscription_$38470_storage_$", "typeString": "mapping(uint64 => struct Adapter.Subscription storage ref)" } }, "id": 40846, "indexExpression": { "id": 40845, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40830, "src": "35256:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "35241:21:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Subscription_$38470_storage", "typeString": "struct Adapter.Subscription storage ref" } }, "id": 40847, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberLocation": "35263:5:71", "memberName": "owner", "nodeType": "MemberAccess", "referencedDeclaration": 38446, "src": "35241:27:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40849, "nodeType": "ExpressionStatement", "src": "35234:34:71" }, { "eventCall": { "arguments": [ { "id": 40851, "name": "subId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40830, "src": "35304:5:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, { "id": 40852, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40832, "src": "35311:2:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 40853, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40838, "src": "35315:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint64", "typeString": "uint64" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 40850, "name": "SubscriptionCanceled", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38541, "src": "35283:20:71", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (uint64,address,uint256)" } }, "id": 40854, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35283:40:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40855, "nodeType": "EmitStatement", "src": "35278:45:71" }, { "expression": { "arguments": [ { "id": 40861, "name": "balance", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40838, "src": "35354:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "arguments": [ { "id": 40858, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40832, "src": "35341:2:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 40857, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "35333:8:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_payable_$", "typeString": "type(address payable)" }, "typeName": { "id": 40856, "name": "address", "nodeType": "ElementaryTypeName", "src": "35333:8:71", "stateMutability": "payable", "typeDescriptions": {} } }, "id": 40859, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35333:11:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, "id": 40860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "35345:8:71", "memberName": "transfer", "nodeType": "MemberAccess", "src": "35333:20:71", "typeDescriptions": { "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256)" } }, "id": 40862, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35333:29:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40863, "nodeType": "ExpressionStatement", "src": "35333:29:71" } ] }, "implemented": true, "kind": "function", "modifiers": [ { "id": 40835, "kind": "modifierInvocation", "modifierName": { "id": 40834, "name": "nonReentrant", "nameLocations": [ "35154:12:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 38710, "src": "35154:12:71" }, "nodeType": "ModifierInvocation", "src": "35154:12:71" } ], "name": "_cancelSubscriptionHelper", "nameLocation": "35093:25:71", "parameters": { "id": 40833, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40830, "mutability": "mutable", "name": "subId", "nameLocation": "35126:5:71", "nodeType": "VariableDeclaration", "scope": 40865, "src": "35119:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" }, "typeName": { "id": 40829, "name": "uint64", "nodeType": "ElementaryTypeName", "src": "35119:6:71", "typeDescriptions": { "typeIdentifier": "t_uint64", "typeString": "uint64" } }, "visibility": "internal" }, { "constant": false, "id": 40832, "mutability": "mutable", "name": "to", "nameLocation": "35141:2:71", "nodeType": "VariableDeclaration", "scope": 40865, "src": "35133:10:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 40831, "name": "address", "nodeType": "ElementaryTypeName", "src": "35133:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "35118:26:71" }, "returnParameters": { "id": 40836, "nodeType": "ParameterList", "parameters": [], "src": "35167:0:71" }, "scope": 41181, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "id": 40899, "nodeType": "FunctionDefinition", "src": "35425:398:71", "nodes": [], "body": { "id": 40898, "nodeType": "Block", "src": "35627:196:71", "nodes": [], "statements": [ { "assignments": [ 40879 ], "declarations": [ { "constant": false, "id": 40879, "mutability": "mutable", "name": "paymentNoFee", "nameLocation": "35645:12:71", "nodeType": "VariableDeclaration", "scope": 40898, "src": "35637:20:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40878, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35637:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40893, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40888, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40880, "name": "weiPerUnitGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40873, "src": "35672:13:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "*", "rightExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40881, "name": "gasAfterPaymentCalculation", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40869, "src": "35689:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 40882, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40867, "src": "35718:8:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35689:37:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 40884, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -7, "src": "35729:7:71", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 40885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35729:9:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35689:49:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40887, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "35688:51:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35672:67:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 40889, "name": "ChainHelper", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 48402, "src": "35742:11:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ChainHelper_$48402_$", "typeString": "type(library ChainHelper)" } }, "id": 40890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "35754:21:71", "memberName": "getCurrentTxL1GasFees", "nodeType": "MemberAccess", "referencedDeclaration": 48309, "src": "35742:33:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, "id": 40891, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35742:35:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35672:105:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "35637:140:71" }, { "expression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40896, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40894, "name": "paymentNoFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40879, "src": "35794:12:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "id": 40895, "name": "flatFee", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40871, "src": "35809:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "35794:22:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40877, "id": 40897, "nodeType": "Return", "src": "35787:29:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_calculatePaymentAmountInETH", "nameLocation": "35434:28:71", "parameters": { "id": 40874, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40867, "mutability": "mutable", "name": "startGas", "nameLocation": "35480:8:71", "nodeType": "VariableDeclaration", "scope": 40899, "src": "35472:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40866, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35472:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40869, "mutability": "mutable", "name": "gasAfterPaymentCalculation", "nameLocation": "35506:26:71", "nodeType": "VariableDeclaration", "scope": 40899, "src": "35498:34:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40868, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35498:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40871, "mutability": "mutable", "name": "flatFee", "nameLocation": "35550:7:71", "nodeType": "VariableDeclaration", "scope": 40899, "src": "35542:15:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40870, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35542:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40873, "mutability": "mutable", "name": "weiPerUnitGas", "nameLocation": "35575:13:71", "nodeType": "VariableDeclaration", "scope": 40899, "src": "35567:21:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40872, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35567:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "35462:132:71" }, "returnParameters": { "id": 40877, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40876, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40899, "src": "35618:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40875, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35618:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "35617:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 40957, "nodeType": "FunctionDefinition", "src": "35829:624:71", "nodes": [], "body": { "id": 40956, "nodeType": "Block", "src": "35895:558:71", "nodes": [], "statements": [ { "assignments": [ 40908 ], "declarations": [ { "constant": false, "id": 40908, "mutability": "mutable", "name": "validGroupIndices", "nameLocation": "35922:17:71", "nodeType": "VariableDeclaration", "scope": 40956, "src": "35905:34:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[]" }, "typeName": { "baseType": { "id": 40906, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35905:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40907, "nodeType": "ArrayTypeName", "src": "35905:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } }, "visibility": "internal" } ], "id": 40912, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 40909, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "35942:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 40910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "35954:20:71", "memberName": "getValidGroupIndices", "nodeType": "MemberAccess", "referencedDeclaration": 45602, "src": "35942:32:71", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "function () view external returns (uint256[] memory)" } }, "id": 40911, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "35942:34:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "35905:71:71" }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40916, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40913, "name": "validGroupIndices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40908, "src": "35991:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, "id": 40914, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36009:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "35991:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 40915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "36019:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "35991:29:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40921, "nodeType": "IfStatement", "src": "35987:86:71", "trueBody": { "id": 40920, "nodeType": "Block", "src": "36022:51:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 40917, "name": "NoAvailableGroups", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38635, "src": "36043:17:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40918, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36043:19:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40919, "nodeType": "RevertStatement", "src": "36036:26:71" } ] } }, { "assignments": [ 40923 ], "declarations": [ { "constant": false, "id": 40923, "mutability": "mutable", "name": "groupCount", "nameLocation": "36091:10:71", "nodeType": "VariableDeclaration", "scope": 40956, "src": "36083:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40922, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36083:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40927, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 40924, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "36104:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 40925, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36116:13:71", "memberName": "getGroupCount", "nodeType": "MemberAccess", "referencedDeclaration": 45612, "src": "36104:25:71", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", "typeString": "function () view external returns (uint256)" } }, "id": 40926, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36104:27:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "36083:48:71" }, { "assignments": [ 40929 ], "declarations": [ { "constant": false, "id": 40929, "mutability": "mutable", "name": "currentAssignedGroupIndex", "nameLocation": "36150:25:71", "nodeType": "VariableDeclaration", "scope": 40956, "src": "36142:33:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40928, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36142:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 40936, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40935, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, "id": 40932, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40930, "name": "_lastAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38408, "src": "36179:23:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 40931, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "36205:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "36179:27:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], "id": 40933, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "36178:29:71", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "id": 40934, "name": "groupCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40923, "src": "36210:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "36178:42:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", "src": "36142:78:71" }, { "body": { "id": 40952, "nodeType": "Block", "src": "36307:97:71", "statements": [ { "expression": { "id": 40950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 40943, "name": "currentAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40929, "src": "36321:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "components": [ { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 40944, "name": "currentAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40929, "src": "36350:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { "hexValue": "31", "id": 40945, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "36378:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "36350:29:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "id": 40947, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "36349:31:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { "id": 40948, "name": "groupCount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40923, "src": "36383:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "36349:44:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "36321:72:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 40951, "nodeType": "ExpressionStatement", "src": "36321:72:71" } ] }, "condition": { "id": 40942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "36238:67:71", "subExpression": { "arguments": [ { "id": 40939, "name": "validGroupIndices", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40908, "src": "36260:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, { "id": 40940, "name": "currentAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40929, "src": "36279:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40937, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38363, "src": "36239:5:71", "typeDescriptions": { "typeIdentifier": "t_module_52926", "typeString": "module \"src/utils/Utils.sol\"" } }, "id": 40938, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "36245:14:71", "memberName": "containElement", "nodeType": "MemberAccess", "referencedDeclaration": 52467, "src": "36239:20:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256[] memory,uint256) pure returns (bool)" } }, "id": 40941, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36239:66:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40953, "nodeType": "WhileStatement", "src": "36231:173:71" }, { "expression": { "id": 40954, "name": "currentAssignedGroupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40929, "src": "36421:25:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 40903, "id": 40955, "nodeType": "Return", "src": "36414:32:71" } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_findGroupToAssignTask", "nameLocation": "35838:22:71", "parameters": { "id": 40900, "nodeType": "ParameterList", "parameters": [], "src": "35860:2:71" }, "returnParameters": { "id": 40903, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40902, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 40957, "src": "35886:7:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40901, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "35886:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "35885:9:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "id": 41180, "nodeType": "FunctionDefinition", "src": "36459:1878:71", "nodes": [], "body": { "id": 41179, "nodeType": "Block", "src": "36707:1630:71", "nodes": [], "statements": [ { "condition": { "id": 40979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "36721:23:71", "subExpression": { "arguments": [ { "id": 40977, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40965, "src": "36734:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 40975, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "36722:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 40976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36726:7:71", "memberName": "isValid", "nodeType": "MemberAccess", "referencedDeclaration": 46527, "src": "36722:11:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 40978, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36722:22:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40986, "nodeType": "IfStatement", "src": "36717:89:71", "trueBody": { "id": 40985, "nodeType": "Block", "src": "36746:60:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 40980, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "36767:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 40982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36771:22:71", "memberName": "InvalidSignatureFormat", "nodeType": "MemberAccess", "referencedDeclaration": 45985, "src": "36767:26:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40983, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36767:28:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40984, "nodeType": "RevertStatement", "src": "36760:35:71" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 40990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 40987, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "36820:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 40988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36838:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "36820:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 40989, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "36848:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "36820:29:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 40997, "nodeType": "IfStatement", "src": "36816:95:71", "trueBody": { "id": 40996, "nodeType": "Block", "src": "36851:60:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 40991, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "36872:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 40993, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36876:22:71", "memberName": "EmptyPartialSignatures", "nodeType": "MemberAccess", "referencedDeclaration": 45993, "src": "36872:26:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 40994, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36872:28:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 40995, "nodeType": "RevertStatement", "src": "36865:35:71" } ] } }, { "assignments": [ 41002 ], "declarations": [ { "constant": false, "id": 41002, "mutability": "mutable", "name": "g", "nameLocation": "36946:1:71", "nodeType": "VariableDeclaration", "scope": 41179, "src": "36921:26:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group" }, "typeName": { "id": 41001, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 41000, "name": "IController.Group", "nameLocations": [ "36921:11:71", "36933:5:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45478, "src": "36921:17:71" }, "referencedDeclaration": 45478, "src": "36921:17:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_storage_ptr", "typeString": "struct IController.Group" } }, "visibility": "internal" } ], "id": 41007, "initialValue": { "arguments": [ { "id": 41005, "name": "groupIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40959, "src": "36971:10:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 41003, "name": "_controller", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38400, "src": "36950:11:71", "typeDescriptions": { "typeIdentifier": "t_contract$_IController_$45689", "typeString": "contract IController" } }, "id": 41004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "36962:8:71", "memberName": "getGroup", "nodeType": "MemberAccess", "referencedDeclaration": 45620, "src": "36950:20:71", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Group_$45478_memory_ptr_$", "typeString": "function (uint256) view external returns (struct IController.Group memory)" } }, "id": 41006, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36950:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group memory" } }, "nodeType": "VariableDeclarationStatement", "src": "36921:61:71" }, { "condition": { "id": 41015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "36997:47:71", "subExpression": { "arguments": [ { "expression": { "id": 41010, "name": "g", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41002, "src": "37019:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group memory" } }, "id": 41011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "37021:10:71", "memberName": "committers", "nodeType": "MemberAccess", "referencedDeclaration": 45467, "src": "37019:12:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { "expression": { "id": 41012, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -15, "src": "37033:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, "id": 41013, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37037:6:71", "memberName": "sender", "nodeType": "MemberAccess", "src": "37033:10:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "expression": { "id": 41008, "name": "Utils", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38363, "src": "36998:5:71", "typeDescriptions": { "typeIdentifier": "t_module_52926", "typeString": "module \"src/utils/Utils.sol\"" } }, "id": 41009, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37004:14:71", "memberName": "containElement", "nodeType": "MemberAccess", "referencedDeclaration": 52502, "src": "36998:20:71", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$_t_address_$returns$_t_bool_$", "typeString": "function (address[] memory,address) pure returns (bool)" } }, "id": 41014, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "36998:46:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 41020, "nodeType": "IfStatement", "src": "36993:103:71", "trueBody": { "id": 41019, "nodeType": "Block", "src": "37046:50:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "id": 41016, "name": "NotFromCommitter", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 38647, "src": "37067:16:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 41017, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37067:18:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 41018, "nodeType": "RevertStatement", "src": "37060:25:71" } ] } }, { "assignments": [ 41022 ], "declarations": [ { "constant": false, "id": 41022, "mutability": "mutable", "name": "actualSeed", "nameLocation": "37119:10:71", "nodeType": "VariableDeclaration", "scope": 41179, "src": "37106:23:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 41021, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "37106:5:71", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "id": 41028, "initialValue": { "arguments": [ { "id": 41025, "name": "seed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40961, "src": "37149:4:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 41026, "name": "blockNum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40963, "src": "37155:8:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 41023, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "37132:3:71", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 41024, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "37136:12:71", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "37132:16:71", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 41027, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37132:32:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", "src": "37106:58:71" }, { "assignments": [ 41034 ], "declarations": [ { "constant": false, "id": 41034, "mutability": "mutable", "name": "message", "nameLocation": "37193:7:71", "nodeType": "VariableDeclaration", "scope": 41179, "src": "37175:25:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2]" }, "typeName": { "baseType": { "id": 41032, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37175:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41033, "length": { "hexValue": "32", "id": 41031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37183:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "ArrayTypeName", "src": "37175:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" } }, "visibility": "internal" } ], "id": 41039, "initialValue": { "arguments": [ { "id": 41037, "name": "actualSeed", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41022, "src": "37219:10:71", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "id": 41035, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37203:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41036, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37207:11:71", "memberName": "hashToPoint", "nodeType": "MemberAccess", "referencedDeclaration": 46241, "src": "37203:15:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_bytes_memory_ptr_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (bytes memory) view returns (uint256[2] memory)" } }, "id": 41038, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37203:27:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "37175:55:71" }, { "condition": { "id": 41050, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "37304:66:71", "subExpression": { "arguments": [ { "arguments": [ { "id": 41044, "name": "signature", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40965, "src": "37337:9:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 41042, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37322:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37326:10:71", "memberName": "decompress", "nodeType": "MemberAccess", "referencedDeclaration": 46495, "src": "37322:14:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (uint256) view returns (uint256[2] memory)" } }, "id": 41045, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37322:25:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, { "expression": { "id": 41046, "name": "g", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41002, "src": "37349:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group memory" } }, "id": 41047, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "37351:9:71", "memberName": "publicKey", "nodeType": "MemberAccess", "referencedDeclaration": 45477, "src": "37349:11:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, { "id": 41048, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41034, "src": "37362:7:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" }, { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" }, { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } ], "expression": { "id": 41040, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37305:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37309:12:71", "memberName": "verifySingle", "nodeType": "MemberAccess", "referencedDeclaration": 46073, "src": "37305:16:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$4_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_bool_$", "typeString": "function (uint256[2] memory,uint256[4] memory,uint256[2] memory) view returns (bool)" } }, "id": 41049, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37305:65:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 41057, "nodeType": "IfStatement", "src": "37300:126:71", "trueBody": { "id": 41056, "nodeType": "Block", "src": "37372:54:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 41051, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37393:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41053, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37397:16:71", "memberName": "InvalidSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45987, "src": "37393:20:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 41054, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37393:22:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 41055, "nodeType": "RevertStatement", "src": "37386:29:71" } ] } }, { "assignments": [ 41064 ], "declarations": [ { "constant": false, "id": 41064, "mutability": "mutable", "name": "partials", "nameLocation": "37530:8:71", "nodeType": "VariableDeclaration", "scope": 41179, "src": "37510:28:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[2][]" }, "typeName": { "baseType": { "baseType": { "id": 41061, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37510:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41062, "length": { "hexValue": "32", "id": 41060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37518:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "ArrayTypeName", "src": "37510:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" } }, "id": 41063, "nodeType": "ArrayTypeName", "src": "37510:12:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$dyn_storage_ptr", "typeString": "uint256[2][]" } }, "visibility": "internal" } ], "id": 41073, "initialValue": { "arguments": [ { "expression": { "id": 41070, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37558:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37576:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "37558:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 41069, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "37541:16:71", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[2] memory[] memory)" }, "typeName": { "baseType": { "baseType": { "id": 41065, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37545:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41067, "length": { "hexValue": "32", "id": 41066, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37553:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", "typeString": "int_const 2" }, "value": "2" }, "nodeType": "ArrayTypeName", "src": "37545:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", "typeString": "uint256[2]" } }, "id": 41068, "nodeType": "ArrayTypeName", "src": "37545:12:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$dyn_storage_ptr", "typeString": "uint256[2][]" } } }, "id": 41072, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37541:42:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[2] memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "37510:73:71" }, { "assignments": [ 41080 ], "declarations": [ { "constant": false, "id": 41080, "mutability": "mutable", "name": "pubkeys", "nameLocation": "37613:7:71", "nodeType": "VariableDeclaration", "scope": 41179, "src": "37593:27:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[4][]" }, "typeName": { "baseType": { "baseType": { "id": 41077, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37593:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41078, "length": { "hexValue": "34", "id": 41076, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37601:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "nodeType": "ArrayTypeName", "src": "37593:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, "id": 41079, "nodeType": "ArrayTypeName", "src": "37593:12:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" } }, "visibility": "internal" } ], "id": 41089, "initialValue": { "arguments": [ { "expression": { "id": 41086, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37640:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37658:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "37640:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 41085, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "37623:16:71", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint256[4] memory[] memory)" }, "typeName": { "baseType": { "baseType": { "id": 41081, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37627:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41083, "length": { "hexValue": "34", "id": 41082, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37635:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_4_by_1", "typeString": "int_const 4" }, "value": "4" }, "nodeType": "ArrayTypeName", "src": "37627:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", "typeString": "uint256[4]" } }, "id": 41084, "nodeType": "ArrayTypeName", "src": "37627:12:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_storage_$dyn_storage_ptr", "typeString": "uint256[4][]" } } }, "id": 41088, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37623:42:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, "nodeType": "VariableDeclarationStatement", "src": "37593:72:71" }, { "expression": { "id": 41097, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 41090, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40973, "src": "37675:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "id": 41094, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37710:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37728:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "37710:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 41093, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", "src": "37696:13:71", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { "id": 41091, "name": "address", "nodeType": "ElementaryTypeName", "src": "37700:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 41092, "nodeType": "ArrayTypeName", "src": "37700:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, "id": 41096, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37696:39:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "src": "37675:60:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 41098, "nodeType": "ExpressionStatement", "src": "37675:60:71" }, { "body": { "id": 41163, "nodeType": "Block", "src": "37800:407:71", "statements": [ { "condition": { "id": 41117, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "37818:51:71", "subExpression": { "arguments": [ { "expression": { "baseExpression": { "id": 41112, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37831:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41114, "indexExpression": { "id": 41113, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "37849:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "37831:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory" } }, "id": 41115, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "37852:16:71", "memberName": "partialSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45028, "src": "37831:37:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 41110, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37819:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41111, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37823:7:71", "memberName": "isValid", "nodeType": "MemberAccess", "referencedDeclaration": 46527, "src": "37819:11:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 41116, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37819:50:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 41124, "nodeType": "IfStatement", "src": "37814:132:71", "trueBody": { "id": 41123, "nodeType": "Block", "src": "37871:75:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 41118, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37896:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37900:29:71", "memberName": "InvalidPartialSignatureFormat", "nodeType": "MemberAccess", "referencedDeclaration": 45989, "src": "37896:33:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 41121, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37896:35:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 41122, "nodeType": "RevertStatement", "src": "37889:42:71" } ] } }, { "expression": { "id": 41135, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 41125, "name": "partials", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41064, "src": "37959:8:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[2] memory[] memory" } }, "id": 41127, "indexExpression": { "id": 41126, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "37968:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "37959:11:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "expression": { "baseExpression": { "id": 41130, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37988:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41132, "indexExpression": { "id": 41131, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "38006:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "37988:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory" } }, "id": 41133, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38009:16:71", "memberName": "partialSignature", "nodeType": "MemberAccess", "referencedDeclaration": 45028, "src": "37988:37:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 41128, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "37973:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37977:10:71", "memberName": "decompress", "nodeType": "MemberAccess", "referencedDeclaration": 46495, "src": "37973:14:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_uint256_$returns$_t_array$_t_uint256_$2_memory_ptr_$", "typeString": "function (uint256) view returns (uint256[2] memory)" } }, "id": 41134, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "37973:53:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, "src": "37959:67:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } }, "id": 41136, "nodeType": "ExpressionStatement", "src": "37959:67:71" }, { "expression": { "id": 41148, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 41137, "name": "pubkeys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41080, "src": "38040:7:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, "id": 41139, "indexExpression": { "id": 41138, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "38048:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "38040:10:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "baseExpression": { "expression": { "id": 41140, "name": "g", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41002, "src": "38053:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group memory" } }, "id": 41141, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38055:7:71", "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 45464, "src": "38053:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Member_$45485_memory_ptr_$dyn_memory_ptr", "typeString": "struct IController.Member memory[] memory" } }, "id": 41146, "indexExpression": { "expression": { "baseExpression": { "id": 41142, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "38063:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41144, "indexExpression": { "id": 41143, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "38081:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "38063:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory" } }, "id": 41145, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38084:5:71", "memberName": "index", "nodeType": "MemberAccess", "referencedDeclaration": 45026, "src": "38063:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "38053:37:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$45485_memory_ptr", "typeString": "struct IController.Member memory" } }, "id": 41147, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38091:16:71", "memberName": "partialPublicKey", "nodeType": "MemberAccess", "referencedDeclaration": 45484, "src": "38053:54:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, "src": "38040:67:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", "typeString": "uint256[4] memory" } }, "id": 41149, "nodeType": "ExpressionStatement", "src": "38040:67:71" }, { "expression": { "id": 41161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 41150, "name": "participantMembers", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40973, "src": "38121:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, "id": 41152, "indexExpression": { "id": 41151, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "38140:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "38121:21:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "expression": { "baseExpression": { "expression": { "id": 41153, "name": "g", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41002, "src": "38145:1:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Group_$45478_memory_ptr", "typeString": "struct IController.Group memory" } }, "id": 41154, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38147:7:71", "memberName": "members", "nodeType": "MemberAccess", "referencedDeclaration": 45464, "src": "38145:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Member_$45485_memory_ptr_$dyn_memory_ptr", "typeString": "struct IController.Member memory[] memory" } }, "id": 41159, "indexExpression": { "expression": { "baseExpression": { "id": 41155, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "38155:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41157, "indexExpression": { "id": 41156, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "38173:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "38155:20:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory" } }, "id": 41158, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38176:5:71", "memberName": "index", "nodeType": "MemberAccess", "referencedDeclaration": 45026, "src": "38155:26:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "38145:37:71", "typeDescriptions": { "typeIdentifier": "t_struct$_Member_$45485_memory_ptr", "typeString": "struct IController.Member memory" } }, "id": 41160, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberLocation": "38183:13:71", "memberName": "nodeIdAddress", "nodeType": "MemberAccess", "referencedDeclaration": 45480, "src": "38145:51:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "38121:75:71", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 41162, "nodeType": "ExpressionStatement", "src": "38121:75:71" } ] }, "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 41106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 41103, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "37765:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { "expression": { "id": 41104, "name": "partialSignatures", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 40969, "src": "37769:17:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature memory[] memory" } }, "id": 41105, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "37787:6:71", "memberName": "length", "nodeType": "MemberAccess", "src": "37769:24:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "37765:28:71", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 41164, "initializationExpression": { "assignments": [ 41100 ], "declarations": [ { "constant": false, "id": 41100, "mutability": "mutable", "name": "i", "nameLocation": "37758:1:71", "nodeType": "VariableDeclaration", "scope": 41164, "src": "37750:9:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 41099, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "37750:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "id": 41102, "initialValue": { "hexValue": "30", "id": 41101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "37762:1:71", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "nodeType": "VariableDeclarationStatement", "src": "37750:13:71" }, "loopExpression": { "expression": { "id": 41108, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "++", "prefix": false, "src": "37795:3:71", "subExpression": { "id": 41107, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41100, "src": "37795:1:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 41109, "nodeType": "ExpressionStatement", "src": "37795:3:71" }, "nodeType": "ForStatement", "src": "37745:462:71" }, { "condition": { "id": 41171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "38220:47:71", "subExpression": { "arguments": [ { "id": 41167, "name": "partials", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41064, "src": "38240:8:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[2] memory[] memory" } }, { "id": 41168, "name": "pubkeys", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41080, "src": "38250:7:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" } }, { "id": 41169, "name": "message", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 41034, "src": "38259:7:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[2] memory[] memory" }, { "typeIdentifier": "t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr", "typeString": "uint256[4] memory[] memory" }, { "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", "typeString": "uint256[2] memory" } ], "expression": { "id": 41165, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "38221:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41166, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "38225:14:71", "memberName": "verifyPartials", "nodeType": "MemberAccess", "referencedDeclaration": 46197, "src": "38221:18:71", "typeDescriptions": { "typeIdentifier": "t_function_delegatecall_view$_t_array$_t_array$_t_uint256_$2_memory_ptr_$dyn_memory_ptr_$_t_array$_t_array$_t_uint256_$4_memory_ptr_$dyn_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_bool_$", "typeString": "function (uint256[2] memory[] memory,uint256[4] memory[] memory,uint256[2] memory) view returns (bool)" } }, "id": 41170, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38221:46:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 41178, "nodeType": "IfStatement", "src": "38216:115:71", "trueBody": { "id": 41177, "nodeType": "Block", "src": "38269:62:71", "statements": [ { "errorCall": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 41172, "name": "BLS", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 46645, "src": "38290:3:71", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_BLS_$46645_$", "typeString": "type(library BLS)" } }, "id": 41174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "38294:24:71", "memberName": "InvalidPartialSignatures", "nodeType": "MemberAccess", "referencedDeclaration": 45991, "src": "38290:28:71", "typeDescriptions": { "typeIdentifier": "t_function_error_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 41175, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "38290:30:71", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 41176, "nodeType": "RevertStatement", "src": "38283:37:71" } ] } } ] }, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifySignature", "nameLocation": "36468:16:71", "parameters": { "id": 40970, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40959, "mutability": "mutable", "name": "groupIndex", "nameLocation": "36502:10:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36494:18:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40958, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36494:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40961, "mutability": "mutable", "name": "seed", "nameLocation": "36530:4:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36522:12:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40960, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36522:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40963, "mutability": "mutable", "name": "blockNum", "nameLocation": "36552:8:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36544:16:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40962, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36544:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40965, "mutability": "mutable", "name": "signature", "nameLocation": "36578:9:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36570:17:71", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 40964, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "36570:7:71", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 40969, "mutability": "mutable", "name": "partialSignatures", "nameLocation": "36623:17:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36597:43:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_memory_ptr_$dyn_memory_ptr", "typeString": "struct IAdapter.PartialSignature[]" }, "typeName": { "baseType": { "id": 40967, "nodeType": "UserDefinedTypeName", "pathNode": { "id": 40966, "name": "PartialSignature", "nameLocations": [ "36597:16:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45029, "src": "36597:16:71" }, "referencedDeclaration": 45029, "src": "36597:16:71", "typeDescriptions": { "typeIdentifier": "t_struct$_PartialSignature_$45029_storage_ptr", "typeString": "struct IAdapter.PartialSignature" } }, "id": 40968, "nodeType": "ArrayTypeName", "src": "36597:18:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_PartialSignature_$45029_storage_$dyn_storage_ptr", "typeString": "struct IAdapter.PartialSignature[]" } }, "visibility": "internal" } ], "src": "36484:162:71" }, "returnParameters": { "id": 40974, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 40973, "mutability": "mutable", "name": "participantMembers", "nameLocation": "36687:18:71", "nodeType": "VariableDeclaration", "scope": 41180, "src": "36670:35:71", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[]" }, "typeName": { "baseType": { "id": 40971, "name": "address", "nodeType": "ElementaryTypeName", "src": "36670:7:71", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 40972, "nodeType": "ArrayTypeName", "src": "36670:9:71", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } }, "visibility": "internal" } ], "src": "36669:37:71" }, "scope": 41181, "stateMutability": "view", "virtual": false, "visibility": "internal" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 38366, "name": "UUPSUpgradeable", "nameLocations": [ "979:15:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 31692, "src": "979:15:71" }, "id": 38367, "nodeType": "InheritanceSpecifier", "src": "979:15:71" }, { "baseName": { "id": 38368, "name": "IAdapter", "nameLocations": [ "996:8:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45294, "src": "996:8:71" }, "id": 38369, "nodeType": "InheritanceSpecifier", "src": "996:8:71" }, { "baseName": { "id": 38370, "name": "IAdapterOwner", "nameLocations": [ "1006:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 45411, "src": "1006:13:71" }, "id": 38371, "nodeType": "InheritanceSpecifier", "src": "1006:13:71" }, { "baseName": { "id": 38372, "name": "RequestIdBase", "nameLocations": [ "1021:13:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 52265, "src": "1021:13:71" }, "id": 38373, "nodeType": "InheritanceSpecifier", "src": "1021:13:71" }, { "baseName": { "id": 38374, "name": "OwnableUpgradeable", "nameLocations": [ "1036:18:71" ], "nodeType": "IdentifierPath", "referencedDeclaration": 30991, "src": "1036:18:71" }, "id": 38375, "nodeType": "InheritanceSpecifier", "src": "1036:18:71" } ], "canonicalName": "Adapter", "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, "linearizedBaseContracts": [ 41181, 30991, 32018, 52265, 45411, 45294, 45956, 31692, 31377, 31012, 31022, 31556 ], "name": "Adapter", "nameLocation": "968:7:71", "scope": 41182, "usedErrors": [ 38599, 38607, 38609, 38611, 38613, 38619, 38621, 38623, 38625, 38627, 38629, 38633, 38635, 38637, 38639, 38641, 38643, 38645, 38647, 38651, 38653, 38655, 38657, 38663, 38665, 45985, 45987, 45989, 45991, 45993 ] } ], "license": "MIT" }, "id": 71 }